У меня есть облако точек, разбросанных по 2D-евклидову пространству. Я хотел бы рассчитать площадь внутри многоугольника, связывающего самые экстремальные (= периферийные) точки облака. Другими словами, я хотел бы оценить область, охваченную облаком в этом пространстве. Есть ли формула в R? Большое спасибо за любой ответ JulienОбласть, покрытая облаком точек с R
8
A
ответ
15
Это называется проблемой выпуклого корпуса; R встроенный chull
функция должна выполнять работу. Чтобы подсчитать область, вы можете использовать формулу от here.
EDIT: Еще лучше; 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);
'rgeos :: gArea' работает с классами, созданных для обработки пространственных задач (см пакета' sp'). Возможно, стоит изучить в этом направлении. –