我有很多GML文件在R中循环,但它们都不是非常重(最大文件大小为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)
答案 0 :(得分:1)
正如@LoBu在评论部分所说,sf::st_read()
比readOGR快得多。要记住的唯一问题是,现在您使用sf
个对象,您必须使用sf
包执行操作,或者将sf对象转换为as(file, "Spatial")
的SpatialPolygonsDataframe。 / p>
对于使用工作笔记本电脑的人来说,
警告:正如我在评论部分提到的那样,可能会出现错误。确保您使用的是具有完全管理许可的笔记本电脑