Как рассчитать площадь перекрытия полигонов в R? - PullRequest
8 голосов
/ 02 апреля 2012

Кто-нибудь знает, как рассчитать общую площадь для двух или более полигонов в R?Я хотел бы, чтобы результат такого вычисления был координатами нового многоугольника для этой области перекрытия.Приветствия

Ответы [ 2 ]

11 голосов
/ 02 апреля 2012

РЕДАКТИРОВАТЬ: в эти дни я бы использовал функции 'intersect', 'cover', 'erase', 'union' и связанные с ними в пакете 'raster'. Они делают тяжелую работу, чтобы сохранить объект и атрибуты верхнего уровня.

ORIG: Вы можете использовать пакет rgeos с его функцией gIntersection. Последовательные вызовы между парами и получающиеся пересечения доставят вас туда. См

library(rgeos)
?gIntersection

Вам понадобится войти в структуру "SpatialPolygons" в пакете sp, чтобы получить окончательные координаты. Смотрите виньетка («зр»).

8 голосов
/ 29 апреля 2013

Просто подумал, что добавлю решение, которое в конечном итоге использовал - функцию joinPolys из пакета PBSmapping.

Пример:

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

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...