Mam chmurę punktów rozproszonych w przestrzeni Euklidesa 2D. Chciałbym obliczyć obszar wewnątrz wielokąta łączącego najbardziej ekstremalne (= peryferyjne) punkty chmury. Innymi słowy, chciałbym oszacować obszar objęty chmurą w tej przestrzeni. Czy istnieje wzór w R? Wielkie dzięki za każdą odpowiedź JulienObszar objęty chmurą punktów z R
8
A
Odpowiedz
15
To się nazywa problem z wypukłym kadłubem; R wbudowana funkcja chull
powinna wykonać pracę. Aby policzyć obszar, możesz użyć wzoru z here.
EDYCJA: Jeszcze lepiej; splancs
pakiet ma funkcję areapl
. Więc funkcja rozwiązywania problemu powinien wyglądać następująco:
cha<-function(x,y){
chull(x,y)->i
return(areapl(cbind(x[i],y[i])))
}
Na przykład:
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' współpracuje z klas stworzonych do rozwiązywania problemów przestrzennych (patrz pakiet' sp'). Być może warto się wybrać w tym kierunku. –