【发布时间】:2012-04-16 03:38:05
【问题描述】:
有谁知道如何计算 R 中 2 个或多个多边形之间的共同面积?我希望这种计算的输出是该重叠区域的新多边形的坐标。 干杯
【问题讨论】:
标签: r overlay polygon intersection
有谁知道如何计算 R 中 2 个或多个多边形之间的共同面积?我希望这种计算的输出是该重叠区域的新多边形的坐标。 干杯
【问题讨论】:
标签: r overlay polygon intersection
编辑:这些天我会使用 'raster' 包中的 'intersect'、'cover'、'erase'、'union' 和相关函数。他们努力保持顶级对象和属性。
原点:
您可以使用带有 gIntersection 功能的 rgeos 包。对之间的连续呼叫和由此产生的交叉点将使您到达那里。见
library(rgeos)
?gIntersection
您需要进入sp 包中的“SpatialPolygons”结构以获得最终坐标。请参阅小插图(“sp”)。
【讨论】:
只是想我会添加我最终使用的解决方案 - PBSmapping 包中的 joinPolys 函数。
library(PBSmapping)
p1 <- data.frame(PID=rep(1, 4), POS=1:4, X=c(1,1,6,6), Y=c(1,3,3,1))
p2 <- data.frame(PID=rep(2, 5), POS=1:5, X=c(4,4,8,8,6), Y=c(2,4,4,2,1))
p3 <- joinPolys(p1,p2)
x11()
par(mar=c(3,3,1,1))
plot(1,1,ylim=c(0,5),xlim=c(0,9), t="n", xlab="", ylab="")
polygon(p1$X, p1$Y, border=2)
polygon(p2$X, p2$Y)
polygon(p3$X, p3$Y, col=rgb(0,0,1,0.2))
【讨论】: