J'ai un nuage de points dispersés dans un espace euclidien 2D. Je voudrais calculer la zone à l'intérieur du polygone reliant les points les plus extrêmes (= périphériques) du nuage. En d'autres termes, je voudrais estimer la zone couverte par le nuage dans cet espace. Y a-t-il une formule dans R? Merci beaucoup pour toute réponse JulienZone couverte par un nuage de points avec R
8
A
Répondre
15
C'est ce qu'on appelle le problème de la coque convexe; R intégré chull
fonction devrait faire le travail. Pour compter la zone, vous pouvez utiliser une formule de here.
EDIT: Encore mieux; Le paquet splancs
a la fonction areapl
. Ainsi, la fonction résoudre votre problème devrait ressembler à ceci:
cha<-function(x,y){
chull(x,y)->i
return(areapl(cbind(x[i],y[i])))
}
Par exemple:
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' fonctionne avec des classes créées pour gérer les problèmes spatiaux (voir paquet' sp'). Cela pourrait valoir la peine d'explorer dans cette direction. –