1

我有很多 GML 文件要在 R 中循环,但它们都不是非常重(最大文件大小为 600 Mb,但通常它们的范围在 10-60 Mb 之间)。我的问题是 {rgdal} 包中的 readOGR 函数需要很长时间才能读取它们,并且它会大大减慢循环速度。读取一个文件需要 3 分钟到 30 分钟...

我已经遍历了 .shp 文件,它们不会占用太多时间来阅读。

所以我的问题实际上是两个:

  • R 中是否有更快的函数来读取 GML 文件?到目前为止还没有找到
  • 如果无法实现更快的读取功能,是否有一种将 GML 文件转换为 .shp 的快速方法?

我的 readOGR 代码:

llayer<-ogrListLayers(gmls)[1]
a<- readOGR(dsn=gmls, layer=llayer, encoding = "UTF-8", disambiguateFIDs = T)
4

1 回答 1

1

正如@LoBu 在评论部分所说,sf::st_read()它比 readOGR 快得多。唯一要记住的是,现在您使用sf对象,您必须使用sf包执行操作或将 sf 对象转换为 SpatialPolygonsDataframe as(file, "Spatial")

警告,对于使用工作笔记本电脑的人:正如我在评论部分提到的那样,可能会发生错误。确保您使用的是具有完整管理员权限的笔记本电脑

于 2017-06-19T16:37:51.080 回答