Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用rgeos加速多边形溶解_R_Topology_Geos - Fatal编程技术网

用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)