Kartenpunkte in feste Clustergrößen gruppieren?

10

Ich habe einen Datensatz von 655 Lat / Long-Paaren, den ich in ungefähr 100 Gruppen aufteilen möchte. Eine Gruppe sollte 5-10 Paare haben, die geografisch nahe beieinander liegen. Dichte Gruppen sollten mehr Punkte haben, spärliche Gruppen sollten weniger haben. Zum Beispiel sollten städtische Gruppierungen größer sein, ländliche kleinere.

Gibt es einen etablierten Algorithmus für diese Art der Gruppierung oder muss ich einen von Grund auf neu entwerfen?

Ich verwende die Google Maps v3-API, um diese Daten anzuzeigen, aber da es sich um einen festen Datensatz handelt, bin ich bereit, einige Offline-Nummern zu ermitteln.

Graeme Hilton
quelle
4
Eine Fülle von Optionen steht zur Verfügung, wenn Sie bereit sind, den Komfort Ihres GIS für spezielle oder anspruchsvolle Analysen wie diese zu verlassen. Überprüfen Sie beispielsweise alle mit R verfügbaren Clustering-Lösungen . (Andere Statistikpakete bieten auch viele Clustering-Lösungen.) Die RVerwendung dieser Lösungen ist ebenfalls nicht sehr einfach : Sie müssen lernen, wie Sie Ihre Koordinaten lesen, eine Clustering-Routine anwenden und die Ergebnisse aufschreiben (falls erforderlich). In eine Datei kann Ihr GIS nachbearbeiten.
whuber
Können Sie in Größendefinitionen explizit angeben?
Raphael

Antworten:

11

Sie können den k-means Clustering-Algorithmus hier testen .

Beim Data Mining ist k-means Clustering eine Methode der Clusteranalyse, die darauf abzielt, n Beobachtungen in k Cluster zu unterteilen, in denen jede Beobachtung zum Cluster mit dem nächsten Mittelwert gehört. Dies führt zu einer Aufteilung des Datenraums in Voronoi-Zellen.

kmeans-postgresql Implementierung hier .. und ich treffe dieses Thema neu Spatial Clustering mit PostGIS, können Sie hier von @Mike Toews mit ST_MinimumBoundingCircle-Funktion überprüfen ..

mikey


kmeans

Aragon
quelle