2010-09-08 16 views
8

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

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); 
+0

'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. –

Powiązane problemy