使用 R 中的 readOGR 读取慢速 GML(地理标记语言)文件

Slow GML (Geographic Markup Language) file reading with readOGR in R

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

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

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

我的 readOGR 代码:

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

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

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