gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:18:46 35 4
gpt4 key购买 nike

我是处理空间数据的新手,并且是在 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

该函数的帮助没有说明 dsn 的预期值也不适用于 layer当文件为地理空间 pdf 格式时。

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

顺便说一下,我有 Ubuntu 14.04.3Qgis已安装,最新版本 Rrgeos .

最佳答案

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

请注意,这仅适用于以特定方式存储 map 数据的一类特殊 PDF 文件。仅仅因为您的 PDF 中有 map ,并不能使其成为地理空间 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 向量,假设它们是向量(乍一看显示 map 不是图像),然后找到对任何坐标系的正确转换,然后如果您只有线段,则可能重建拓扑...

  • 我使用 pstoedit 取得了一些成功将 PDF 转换为 DXF可以加载到 QGIS 中的文件,但是你必须清理它并重建多边形,然后它仍然不在正确的地理位置。如果您可以获得感兴趣区域的 shapefile,那就简单多了。

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

    关于r - 如何在R中加载地理空间pdf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34848818/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com