Clustering räumlicher Daten in R


12

Ich habe eine Reihe von monatlichen SST-Daten (Sea Surface Temperature) und möchte eine Cluster-Methode anwenden, um Regionen mit ähnlichen SST-Mustern zu erkennen. Ich habe eine Reihe von monatlichen Datendateien, die von 1985 bis 2009 laufen, und möchte als ersten Schritt das Clustering auf jeden Monat anwenden.

Jede Datei enthält Rasterdaten für 358416 Punkte, bei denen ungefähr 50% Land sind und mit einem 99,99-Wert markiert sind, der NA ist. Das Datenformat ist:

   lon     lat   sst
-10.042  44.979  12.38
 -9.998  44.979  12.69
 -9.954  44.979  12.90
 -9.910  44.979  12.90
 -9.866  44.979  12.54
 -9.822  44.979  12.37
 -9.778  44.979  12.37
 -9.734  44.979  12.51
 -9.690  44.979  12.39
 -9.646  44.979  12.36

Ich habe die CLARA-Clustermethode ausprobiert und einige anscheinend schöne Ergebnisse erzielt, aber es scheint mir auch, dass es sich nur um das Glätten (Gruppieren) von Isolinien handelt. Dann bin ich mir nicht sicher, ob dies die beste Clustermethode für die Analyse von Geodaten ist.

Gibt es eine andere Clustering-Methode für diese Art von Datensätzen? Ein Hinweis wäre gut, um mit dem Lesen zu beginnen.

Danke im Voraus.


2
Sie sollten cran.r-project.org/web/views/Spatial.html überprüfen . Es gibt einige Pakete mit Cluster-Rechten im Namen, die wahrscheinlich von Interesse sind.
Andy W

Haben Sie ein gutes R-Paket gefunden, um räumliche Daten zu gruppieren?
kaptan

@kaptan Leider habe ich nicht und es ist einer der
pacomet

(x,y,T)R3R

Antworten:


2

Es gibt verschiedene Ansätze für skalierbares Clustering, Divide- und Conquer-Ansätze, paralleles Clustering und inkrementelles Clustering. Dies ist eine allgemeine Vorgehensweise, nachdem Sie normale Clustering-Methoden verwenden können. Ich schätze, dass DBSCAN (Density-Based Spatial Clustering von Anwendungen mit Rauschen) eine gute Clustering-Methode ist. Es ist einer der am häufigsten verwendeten Clustering-Algorithmen.


Ok, ich suche nach DBSCAN und probiere es aus. Danke
Pacomet

Wenn Ihnen eine Antwort geholfen hat oder Sie einen anderen Weg finden, ist es besser, uns eine Antwort zu geben, damit die gesamte Community davon profitiert. Oder wählen Sie eine Antwort, um die Frage zu schließen, danke.
404Dreamer_ML

Es tut mir leid für die Verzögerung bei der Beantwortung, aber der Punkt ist, dass ich nicht viel Zeit habe, um dbscan auszuprobieren, und die ersten Versuche zu einem Speicherproblem geführt haben. R sagt, es kann keinen Vektor zuordnen. Ich beginne mit einem 4 km-Raster mit 779191 Punkten, das beim Entfernen von Land (ungültig) SST-Punkten mit 300000 Punkten endet. Vielleicht verstehe ich mich nicht richtig, jeder Hinweis wäre willkommen.
pacomet

1
Hallo, ich kann immer noch keine Lösung finden. Ich habe einige Dokumente zu DBSCAN gelesen und habe einige Fragen zu. Wie finde ich den Mindestabstand mit R? Welche "Entfernung" soll ich verwenden, da meine Daten dreidimensionale Längen-, Breiten- und Temperaturangaben sind? Welche Dimension hängt mit dieser Entfernung zusammen? Temperatur? Gibt es eine Methode, um die Mindestanzahl von Punkten für einen Cluster zu bestimmen? Wenn ich über Google suche, konnte ich kein R-Beispiel für die Verwendung von dbscan in einem Dataset finden, das meinem ähnlich ist. Kennen Sie eine Website mit solchen Beispielen? So kann ich lesen und versuchen, mich an meinen Fall anzupassen.
Nochmals vielen

0

Eine gut dokumentierte Python-Bibliothek für räumliche Analysen mit einigen Clustern ist pySAL .

Eine weitere Python-Bibliothek in der Entwicklungsphase, die sich auf räumliches Clustering konzentriert, ist clusterPy (pdf-Präsentation) .

Mit einer begrenzten Auswahl an Clustering-Algorithmen, aber mit einer schönen Mapping-Oberfläche ist die GUI-Software GeoGrouper .


Danke, ich habe noch nie mit Python gearbeitet. Ich werde versuchen, eine R-Lösung zu finden
Pacomet
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.