如何在 R 中加载地理空间 pdf?
How to load a geospatial pdf in R?
我是处理空间数据的新手,而且是用 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 导入数据的方法吗?这是来自地理空间格式;我将不胜感激任何答案。
顺便说一句,我安装了 Ubuntu 14.04.3
和 Qgis
,以及 R
和 rgeos
的最新版本。
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
请注意,这仅适用于地图数据以特定方式存储的特殊 class 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。
你的选择,按照可能的简单顺序,是这样的:
- 获取GIS数据格式的边界数据(例如shapefile、GeoPDF)
- 另存为图像,载入 GIS,地理配准并追踪它(QGIS 可以做到)
- 从 PDF 中获取原始 PDF 向量,假设它们是向量(乍一看地图不是图像),然后找到对任何坐标系的正确转换,然后可能重建拓扑如果所有你有线段...
我使用 pstoedit
将 PDF 转换为可以加载到 QGIS 中的 DXF
文件取得了一些成功,但是你必须清理它并重建多边形,然后它仍然不在正确的地理位置。如果你能得到你感兴趣的区域的shapefile,那就简单多了。
如果您想要的是 PDF 的光栅版本,那么您可以使用 raster::stack("file.pdf")
或 readGDAL("file.pdf")
。但是你会得到一个没有地理配准的图像(它只有一个像素数的边界框),因为 PDF 没有坐标系。
我是处理空间数据的新手,而且是用 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 导入数据的方法吗?这是来自地理空间格式;我将不胜感激任何答案。
顺便说一句,我安装了 Ubuntu 14.04.3
和 Qgis
,以及 R
和 rgeos
的最新版本。
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
请注意,这仅适用于地图数据以特定方式存储的特殊 class 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。
你的选择,按照可能的简单顺序,是这样的:
- 获取GIS数据格式的边界数据(例如shapefile、GeoPDF)
- 另存为图像,载入 GIS,地理配准并追踪它(QGIS 可以做到)
- 从 PDF 中获取原始 PDF 向量,假设它们是向量(乍一看地图不是图像),然后找到对任何坐标系的正确转换,然后可能重建拓扑如果所有你有线段...
我使用 pstoedit
将 PDF 转换为可以加载到 QGIS 中的 DXF
文件取得了一些成功,但是你必须清理它并重建多边形,然后它仍然不在正确的地理位置。如果你能得到你感兴趣的区域的shapefile,那就简单多了。
如果您想要的是 PDF 的光栅版本,那么您可以使用 raster::stack("file.pdf")
或 readGDAL("file.pdf")
。但是你会得到一个没有地理配准的图像(它只有一个像素数的边界框),因为 PDF 没有坐标系。