Finden Sie den Schwerpunkt einer Gruppe von Punkten

27

Beim Durchsuchen des Webs werden häufig Lösungen zum Auffinden von Zentroiden von Polygonen gefunden. Was mich interessiert, ist, einen Schwerpunkt aus einer Gruppe von Punkten zu finden. Ein gewichteter Mittelwert. Ich würde es begrüßen, wenn jemand Hinweise, Pseudocode (oder noch besser ein R-Paket, das dies bereits gelöst hat) oder Links zur Behebung dieses Problems bereitstellen könnte.

BEARBEITEN

Die Konvergenz war (wieder) im Gange. iant hat eine Methode vorgeschlagen, um die Koordinaten zu mitteln und diese für den Schwerpunkt zu verwenden. Genau das fiel mir ein, als ich das richtige Bild auf dieser Webseite sah .

Hier ist ein einfacher R-Code zum Zeichnen der folgenden Abbildung, die dies demonstriert (× ist der Schwerpunkt):

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)

Bildbeschreibung hier eingeben

BEARBEITEN 2

cluster::pam()$medoidsGibt ein Medoid einer Gruppe von Clustern zurück. Dies ist ein Beispiel, das @Joris Meys schamlos gestohlen wurde:

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")
Roman Luštrik
quelle
1
Gibt es einen Grund, warum der mittlere Mittelpunkt oder der Mittelpunkt des Mindestabstands der Punkte nicht ausreicht?
Andy W
1
@Roman: Die Grafik ist falsch: Sie müssen den Mittelwert verwenden , nicht den Median. Für räumliche 2D-Punktwolken gibt es Analoga eines Medianzentrums, aber dies ist keines davon (da es koordinatenabhängig ist): Eine Diskussion finden Sie unter stats.stackexchange.com/q/1927/919 .
whuber
1
Ich würde auch vorschlagen, Kapitel 4 der Crimestat-Arbeitsmappe zu lesen : icpsr.umich.edu/CrimeStat/files/CrimeStatChapter.4.pdf . Es ist ein ziemlich vorsichtiges Intro, das beschreibt und grafisch darstellt, warum der Median für höhere Dimensionen keine eindeutige Lösung hat, und andere Maße der zentralen Tendenz und Varianz von räumlichen Punktmustern beschreibt.
Andy W
Das wird immer interessanter. Danke für deine Antworten. Ich untersuche die Sache.
Roman Luštrik
2
"schlug eine Methode vor, um Koordinaten zu mitteln und diese für den Schwerpunkt zu verwenden." Dies ist in der Tat die Definition des Schwerpunkts, nicht einfach etwas, was eine gute Annäherung darstellt.
Colin K

Antworten:

43

mittle einfach die X- und Y-Koordinaten (multipliziere mit einem Gewicht, wenn du willst) und da ist dein Schwerpunkt.

Ian Turton
quelle
4
+1 Tolle Lösung. Sie erstreckt sich auch auf die Schwerpunkte auf dem Sphäroid (was zur Vermeidung projektionsbedingter Verzerrungen unerlässlich ist, wenn die Punkte über einen großen Teil des Globus verteilt sind): Zuerst konvertieren (lat, lon) in 3D (x, y, z) ( Geozentrische Koordinaten, mitteln sie und konvertieren dann das Ergebnis zurück in (lat, lon) (wobei die fast unvermeidliche Tatsache ignoriert wird, dass der 3D-Durchschnitt tief unter der Oberfläche liegt).
whuber
Ich habe meine Frage aktualisiert, um Ihre Antwort widerzuspiegeln.
Roman Luštrik
1

Sie können die Schwerpunktfunktion aus dem Geosphere-Paket verwenden.

https://www.rdocumentation.org/packages/geosphere/versions/1.5-5/topics/centroid

Leonardo Leite Ferraz de Campo
quelle
Willkommen bei GIS StackExchange und vielen Dank für Ihre Antwort. Bitte nehmen Sie sich einen Moment Zeit, um die Tour durchzulesen und mehr über unser spezielles Q & A-Format zu erfahren. Bearbeiten Sie Ihre Antwort, um weitere Details zu enthalten, da wir im Allgemeinen nach längeren Antworten (nicht nach Antworten mit 1-2 Sätzen) suchen, die dem Originalposter oder zukünftigen Suchern helfen. Eine Änderung, die Sie vornehmen können, besteht darin, einen Grund anzugeben, aus dem Sie glauben, dass dieses Tool hilfreich ist, oder einen Codeausschnitt / Screenshots.
Smiller