读取地理空间PDF矢量图层并使用python / R写入shapefile

时间:2019-01-04 15:52:11

标签: python r pdf gdal ogr

我确定PDF是地理空间PDF,因为打开时将鼠标悬停在文件上时,我可以使用Adobe Acrobat Reader的地理空间测量工具并查看纬度值。 PDF File

它是使用Esri ArcMap创建的(我从元数据中知道)。我无权访问原始shapefile,任务是将矢量层(特别是多边形层)导出到shapefile。 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()`时,我得到了nonetype对象。

我可以使用gdal_translate将各个图层导出到单独的tiff。但是我不想要那个。

我尝试过的其他操作:(1)将文件导入Adobe Illustrator并导出.dxf,这很好地导出了矢量几何,但是丢失了地理空间信息。也许Illustrator无法读取/写入地理数据。 (2)使用gdal_translate导出tiff之后,我对栅格进行了多边形处理,但这在要素细节上损失巨大。

此地理空间PDF文档:https://www.gdal.org/frmt_pdf.html说gdal支持PDF的矢量读取。因此,我相信应该有一些方法可以做到这一点。当gdal.Open()读取文件时,ogr.Open()给出错误。如果OGR可以读取文件,也许它可以识别矢量层?

我一直将python和GIS数据一起使用,但是如果有一种方法可以通过R进行操作,那将非常有帮助。我非常乐于助人,任何帮助(甚至是对PDF数据结构的有用见解)都将不胜感激。

0 个答案:

没有答案