如何在R中加载地理空间pdf?

Alb*_*mes 4 pdf r geospatial

我是处理空间数据的新手,而在R中更新.

我最后的尝试是尝试以地理pdf格式读取数据.这是关于墨西哥政治信息的信息,所以多边形,文件.

我试图使用rgdal包来读取数据.键入后ogrDrivers()[40:45,],显示可用的驱动程序,我得到了.

         name write
40     PCIDSK  TRUE
41        PDF  TRUE
42        PDS FALSE
43     PGDump  TRUE
44       PGeo FALSE
45 PostgreSQL  TRUE
Run Code Online (Sandbox Code Playgroud)

结果显示有一个PDF驱动程序,但尝试通常的方式来读取文件readOGR(dsn = "data source name", layer = "LAYER")会产生:

Error in ogrInfo(dsn = dsn, layer = layer, encoding = encoding, use_iconv = use_iconv,  : 
  Cannot open file
Run Code Online (Sandbox Code Playgroud)

该功能的帮助不说,预计既不值dsn,也不是layer当文件在地理空间PDF格式.

有人知道从pdf导入数据的方法吗?这是来自地理空间格式; 我很感激任何答案.

顺便说一句,我的Ubuntu 14.04.3Qgis安装,以及最新版本的Rrgeos.

Spa*_*man 5

dsn是文件路径,图层名称是内部的PDF.您可以ogrListLayers在文件名上获取图层列表:

> ogrListLayers("foo.pdf")
[1] "polys"
attr(,"driver")
[1] "PDF"
attr(,"nlayers")
[1] 1
Run Code Online (Sandbox Code Playgroud)

丑陋的输出,但这是一层叫polys.所以我可以这样读:

> polys = readOGR("./foo.pdf","polys")
OGR data source with driver: PDF 
Source: "./foo.pdf", layer: "polys"
with 9 features
It has 1 fields
Run Code Online (Sandbox Code Playgroud)

请注意,这仅适用于特殊类别的PDF文件,其中地图数据以特定方式存储.仅仅因为您的PDF中包含地图,并不会使其成为地理空间PDF.这是我的地理空间PDF上的命令行测试:

$ ogrinfo Monaco/foo.pdf 
Had to open data source read-only.
INFO: Open of `Monaco/foo.pdf'
      using driver `PDF' successful.
1: polys (Polygon)
Run Code Online (Sandbox Code Playgroud)

这是对你的测试:

$ ogrinfo CED06_CARTA_110614.pdf 
FAILURE:
Unable to open datasource `CED06_CARTA_110614.pdf' with the following drivers.
  -> ESRI Shapefile
  -> MapInfo File
   [etc etc]
  -> PDF
   [etc etc]
Run Code Online (Sandbox Code Playgroud)

所以你没有地理空间PDF.

您可以按照简单的顺序选择以下内容:

  • 获取GIS数据格式的边界数据(例如shapefile,GeoPDF)
  • 保存为图像,加载到GIS,地理配准并跟踪它(QGIS可以这样做)
  • 从PDF中获取原始PDF向量,假设它们是向量(第一眼看到我显示地图不是图像),然后找到正确的转换到任何坐标系,然后可能重建拓扑,如果你只有线段...

我已经成功pstoedit地将PDF转换为DXF可以加载到QGIS 的文件,但是你必须清理它并重建多边形,然后它仍然不在正确的地理位置.如果你能得到你感兴趣的区域的shapefile会更简单.

如果您想要的是PDF的光栅版本,那么您可以使用raster::stack("file.pdf")readGDAL("file.pdf").但是你会得到一个没有地理配准的图像(它只有一个像素数的边界框),因为没有PDF的坐标系.