Lors de la recherche sur le Web, les solutions pour trouver des centroïdes de polygones apparaissent assez souvent. Ce qui m'intéresse, c'est de trouver un centroïde d'un groupe de points. Une sorte de moyenne pondérée. J'apprécierais que quelqu'un puisse fournir des pointeurs, un pseudo-code (ou mieux encore, un package R qui a déjà résolu ce problème) ou des liens sur la manière de résoudre ce problème.
MODIFIER
La convergence est en marche (encore). iant a suggéré une méthode pour calculer la moyenne des coordonnées et l'utiliser pour le centroïde. C'est exactement ce qui m'est venu à l'esprit lorsque j'ai vu la bonne image sur cette page Web .
Voici un code R simple pour dessiner la figure suivante qui le démontre (× est le centroïde):
xcor <- rchisq(10, 3, 2)
ycor <- runif(10, min = 1, max = 100)
mx <- mean(xcor)
my <- mean(ycor)
plot(xcor, ycor, pch = 1)
points(mx, my, pch = 3)
EDIT 2
cluster::pam()$medoids
renvoie un médoïde d'un ensemble de cluster. Voici un exemple sans vergogne volé à @Joris Meys:
library(cluster)
df <- data.frame(X = rnorm(100, 0), Y = rpois(100, 2))
plot(df$X, df$Y)
points(pam(df, 1)$medoids, pch = 16, col = "red")
Réponses:
il suffit de faire la moyenne des coordonnées X et Y (multiplier par un poids si vous le souhaitez) et il y a votre centroïde.
la source
Vous pouvez utiliser la fonction centroïde du package géosphère.
https://www.rdocumentation.org/packages/geosphere/versions/1.5-5/topics/centroid
la source