我正在使用 gIntersection 从 SpatialPolygonsDataFrame 中一次一个地裁剪一个全国性的路径网络。我正在遍历每个多边形,剪裁路径网络,计算剪裁路径的长度,并将其保存到名为 path.lgth 的数据帧中:
poly<-readShapePoly("C:\\temp\\polygons.shp")
paths<-readShapeLines("C:\\temp\\paths.shp")
#loop through all polygons clipping lines
path.lgth<-data.frame()
for (i in 1:length(poly)){
clip<-gIntersection(paths,poly[i,])
lgth<-gLength(clip)
vid<-poly@data[i,3]
data<-cbind(vid,lgth)
path.lgth<-rbind(path.lgth,data)
print(i)
}
vid 行只是提取多边形 ID 以保存在具有路径长度的数据帧中。
我的问题是做第一个多边形需要太长时间(大约 12 分钟!)。有没有办法加快这个速度?我不确定 gIntersection 在数学上做了什么(它是否检查所有路径以查看它们是否与多边形重叠?)。我已经简化了我的路径,所以它们只是一个功能。
谢谢你的帮助。