Ho una nuvola di punti sparsi in uno spazio euclideo 2D. Vorrei calcolare l'area all'interno del poligono che collega i punti più estremi (= periferici) del cloud. In altre parole, mi piacerebbe stimare l'area coperta dalla nuvola in questo spazio. Esiste una formula in R? Grazie mille per qualsiasi risposta JulienArea coperta da una nuvola di punti con R
8
A
risposta
15
Questo è chiamato il problema dello scafo convesso; La funzione integrata R chull
dovrebbe funzionare. Per contare l'area, è possibile utilizzare una formula da here.
MODIFICA: Ancora meglio; Il pacchetto splancs
ha la funzione areapl
. Così la funzione di risolvere il tuo problema dovrebbe essere simile a questo:
cha<-function(x,y){
chull(x,y)->i
return(areapl(cbind(x[i],y[i])))
}
Per esempio:
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' lavora con classi create per gestire problemi spaziali (vedi pacchetto' sp'). Potrebbe valere la pena esplorare in quella direzione. –