有了一个多边形shapefile,我需要生成一个只包含多边形之间公共边框的折线shapefile(参见图片)。
我的问题类似于1和2,我只需要在R
中执行此操作。后一个类似的问题是指使用Shapely
python
包的解决方案。 Shapely
R
的类似物是rgeos
。但是,我自己找不到rgeos
的解决方案。
注意:带有用于插图的边框的shapefile是使用类似问题1的解决方案在ArcGIS中生成的。现在我需要在R
中执行相同操作。
答案 0 :(得分:5)
你想要的是来自溶解区域的线组与区域本身线之间差异的线。在rgeos
包中,gUnaryUnion
将解散多边形,gDifference
将减去。
对于我的小欧盟子集eusub
,我可以这样做:
library(rgeos); library(sp)
borders = gDifference(
as(eusub,"SpatialLines"),
as(gUnaryUnion(eusub),"SpatialLines"),
byid=TRUE)
注意需要将多边形转换为直线,因为输出将是直线。
然后看到这个:
plot(eusub)
plot(borders, col="red",lwd=2,add=TRUE)