用rgeos加速多边形溶解
我在用rgeos加速多边形溶解,r,topology,geos,R,Topology,Geos,我在R中有一个300个空间多边形数据帧的列表,我希望以几何方式分解这些数据帧。每个SpatialPolygonsDataFrame包含大约500个多边形。 我已经尝试了rgeos软件包中包含的功能gUnion和gUnaryUnion 使用gUnion进行处理的方式如下: dissolved <- gUnion(tilelist[[1]], tilelist[[2]], byid=FALSE, id=NULL) for(k in 1:length(tilelist)){ dissolve
R
中有一个300个空间多边形数据帧的列表,我希望以几何方式分解这些数据帧。每个SpatialPolygonsDataFrame
包含大约500个多边形。
我已经尝试了rgeos软件包中包含的功能gUnion
和gUnaryUnion
使用gUnion
进行处理的方式如下:
dissolved <- gUnion(tilelist[[1]], tilelist[[2]], byid=FALSE, id=NULL)
for(k in 1:length(tilelist)){
dissolved <- gUnion(dissolved, tilelist[[k]], byid=FALSE, id=NULL)
}
这两种方法都需要数小时来执行溶解(在Win 64、16 GB RAM上)。关于如何提高处理时间有什么算法想法吗?关于
version\u GEOS0()
或version\u GEOS()
的输出是什么?version\u GEOS()
的输出是“3.3.8-CAPI-1.7.8”
您有一个最新版本的GEOS,因此与此无关。但如果没有您的数据或类似数据,则很难判断。如何使用maptools::unionSpatialPolygons
并尝试使用gpclib
(参数avoidGEOS=TRUE
)并比较两个选项谢谢您的建议。但是,根据文档,maptools
中的unionSpatialPolygons
函数使用rgeos中的gUnaryUnion
。此外,我希望避免使用gpclib
,因为它的许可证受到限制。好的,因此我们必须测试此性能是否与GEOS
或R
(I/O开销)直接相关。您是否有权访问PostGIS
或SpatiaLite
或GRASS
?
flatpolygon=list()
for(k in 1:length(tilelist)){
flatpolygon[[k]] <- tilelist[[k]]@polygons
}
mypoly <- SpatialPolygons(unlist(flatpolygon))
final <- gUnaryUnion(mypoly, id = NULL)