Я уверен, что PDF - это геопространственный PDF, потому что я могу использовать инструмент геопространственных измерений Adobe Acrobat Reader и просматривать длинные значения широты при наведении курсора на файл при его открытии. Файл PDF
Он создан с использованием Esri ArcMap (я знаю это по метаданным). У меня нет доступа к оригинальным шейп-файлам, и задача состоит в том, чтобы экспортировать векторные слои (в частности, слой многоугольника) в шейп-файлы. Gdalinfo показывает это о файле:
Driver: PDF/Geospatial PDF
Files: CityMasterPlan.pdf
Size is 7022, 4967
Coordinate System is:
PROJCS["WGS_1984_UTM_Zone_43N",
GEOGCS["GCS_WGS_1984",
DATUM["WGS_1984",
SPHEROID["WGS_84",6378137.0,298.257223563]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]],
PROJECTION["Transverse_Mercator"],
PARAMETER["False_Easting",500000.0],
PARAMETER["False_Northing",0.0],
PARAMETER["Central_Meridian",75.0],
PARAMETER["Scale_Factor",0.9996],
PARAMETER["Latitude_Of_Origin",0.0],
UNIT["Meter",1.0]]
GeoTransform =
783046.665618713, 0.8718736932027874, 0.0001382368909749281
1440610.872932251, -0.0004378118742855751, -0.8734990288453748
Metadata:
CREATION_DATE=D:20171124160214+05'30'
CREATOR=Esri ArcMap 10.5.0.6491
Хотя я могу читать метаданные файла, я не могу понять, как читать его векторные слои. Когда я использую `GetLayerByName ()`, я получаю не тип объекта.
Я могу экспортировать отдельные слои в отдельные tiff-файлы, используя gdal_translate. Но я этого не хочу.
Другие вещи, которые я просто попробовал: (1) Импортировать файл в Adobe Illustrator и экспортировать .dxf, который очень хорошо экспортировал векторную геометрию, однако геопространственная информация была потеряна. Возможно, Illustrator не может читать / записывать геоданные; (2) После экспорта tiff с использованием gdal_translate я полигонировал растр, но это было огромной потерей в деталях объекта.
В этой документации геопространственного PDF: https://www.gdal.org/frmt_pdf.html говорится, что gdal поддерживает векторное чтение PDF. Поэтому я считаю, что должен быть какой-то способ сделать это. Пока gdal.Open () читает файл, ogr.Open () выдает ошибку. Если бы OGR мог прочитать файл, может быть, он мог бы распознать векторный слой?
Я всегда использовал python с данными ГИС, но если есть путь через R, даже это было бы очень полезно. Я на грани своего ума, и любая помощь (даже полезная информация о структуре данных PDF) будет очень цениться.