我是处理空间数据的新手,而在R中更新。
我最后的尝试是尝试以地理pdf格式读取数据。它是关于墨西哥政治信息的信息,所以多边形,the file。
我尝试使用rgdal
包来读取数据。输入显示可用驱动程序的ogrDrivers()[40:45,]
后,我得到了。
name write
40 PCIDSK TRUE
41 PDF TRUE
42 PDS FALSE
43 PGDump TRUE
44 PGeo FALSE
45 PostgreSQL TRUE
结果显示有一个PDF驱动程序,但尝试通常的方式来读取文件readOGR(dsn = "data source name", layer = "LAYER")
会产生:
Error in ogrInfo(dsn = dsn, layer = layer, encoding = encoding, use_iconv = use_iconv, :
Cannot open file
当文件采用地理空间pdf格式时,函数的帮助并未说明dsn
和layer
所期望的值。
有人知道从pdf导入数据的方法吗?这是来自地理空间格式;我很感激任何答案。
顺便说一下,我安装了14.04.3
的{{1}},以及最新版本的Qgis
和R
。
答案 0 :(得分:5)
dsn
是文件路径,图层名称是PDF的内部。您可以在文件名上获得ogrListLayers
的图层列表:
> ogrListLayers("foo.pdf")
[1] "polys"
attr(,"driver")
[1] "PDF"
attr(,"nlayers")
[1] 1
丑陋的输出,但这是一个名为polys
的图层。所以我可以这样读:
> polys = readOGR("./foo.pdf","polys")
OGR data source with driver: PDF
Source: "./foo.pdf", layer: "polys"
with 9 features
It has 1 fields
请注意,这仅适用于特殊类别的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)
以及对你的测试:
$ 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]
所以你没有拥有地理空间PDF。
您可以按照简单的顺序选择:
我使用pstoedit
将PDF转换为可以加载到QGIS中的DXF
文件取得了一些成功,但是您必须清理它并重新构建多边形,然后它仍然不在正确的地理位置。如果你能得到你感兴趣的地区的形状文件会更简单。
如果你想要的是PDF的光栅版本,那么你可以使用raster::stack("file.pdf")
或readGDAL("file.pdf")
。但是你会得到一个没有地理参考的图像(它只有一个像素数的边界框),因为没有与PDF的坐标系。