Площадь, покрытая облаком точек с R - PullRequest
9 голосов
/ 09 сентября 2010

У меня есть облако точек, разбросанных в двухмерном евклидовом пространстве. Я хотел бы рассчитать площадь внутри многоугольника, связывающего самые крайние (= периферийные) точки облака. Другими словами, я хотел бы оценить площадь, покрытую облаком в этом пространстве. Есть ли формула в R? Большое спасибо за любой ответ Julien

1 Ответ

16 голосов
/ 09 сентября 2010

Это называется проблемой выпуклой оболочки;Встроенная функция R chull должна работать.Для подсчета площади вы можете использовать формулу от здесь .

РЕДАКТИРОВАТЬ: еще лучше;Пакет splancs имеет функцию areapl.Поэтому функция, решающая вашу проблему, должна выглядеть следующим образом:

cha<-function(x,y){
chull(x,y)->i
return(areapl(cbind(x[i],y[i])))
}

Например:

library(splancs);
x<-rnorm(20);rnorm(20)->y;
#Some visualization
i<-chull(x,y);plot(x,y);polygon(x[i],y[i]);
#The area
cha(x,y);
...