Grupowanie danych przestrzennych w R.

12

Mam zestaw danych miesięcznych dotyczących temperatury powierzchni morza (SST) i chcę zastosować metodologię klastrową do wykrywania regionów o podobnych wzorcach SST. Mam zestaw miesięcznych plików danych od 1985 do 2009 roku i chcę zastosować klastrowanie do każdego miesiąca jako pierwszy krok.

Każdy plik zawiera dane siatkowe dla 358416 punktów, z których około 50% to grunty i są oznaczone wartością 99,99, która będzie NA. Format danych to:

   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

Wypróbowałem metodę klastrowania CLARA i uzyskałem kilka pozornie dobrych rezultatów, ale wydaje mi się, że to tylko wygładzanie (grupowanie) izolinii. Nie jestem więc pewien, czy jest to najlepsza metoda klastrowania do analizy danych przestrzennych.

Czy istnieje inna metoda klastrowania poświęcona tego typu zestawom danych? Przydałoby się trochę odniesień, by zacząć czytać.

Z góry dziękuję.

pacomet
źródło
2
Powinieneś sprawdzić cran.r-project.org/web/views/Spatial.html . Istnieje kilka pakietów, które mają klaster w nazwie, które prawdopodobnie byłyby interesujące.
Andy W
Czy znalazłeś jakiś dobry pakiet R do klastrowania danych przestrzennych?
kaptan
@kaptan Niestety nie zrobiłem i jest to jeden z
pacomet
Tytuł tego pytania jest mylący: , a nie ! R(x,y,T)R3R
GeoMatt22,

Odpowiedzi:

2

Istnieje inne podejście do skalowalnego grupowania, dziel i podbij, klastrowanie równoległe i przyrostowe. Jest to ogólne podejście po użyciu normalnych metod grupowania. Dobrą metodą klastrowania, którą naprawdę doceniam, jest DBSCAN (przestrzenne grupowanie aplikacji z hałasem). Jest to jeden z najczęściej używanych algorytmów klastrowania.

404Dreamer_ML
źródło
Ok, poszukaj DBSCAN i spróbuję. Dzięki
pacomet
Jeśli jakakolwiek odpowiedź pomogła Ci lub znajdziesz inny sposób, lepiej nam dać, aby cała społeczność skorzystała z tego. Lub wybierz odpowiedź, aby zamknąć pytanie, dzięki.
404Dreamer_ML
Przepraszam za opóźnienie w odpowiedzi, ale chodzi o to, że nie mam dużo czasu na wypróbowanie dbscan, a pierwsze próby spowodowały problem z pamięcią. R mówi, że nie może przydzielić wektora. Zaczynam od 4-kilometrowej siatki z 779191 punktami, która kończy się na 300000 punktów podczas usuwania lądowych (nieważnych) punktów SST. Może nie przyjmuję właściwego podejścia, każda wskazówka byłaby mile widziana.
pacomet
1
Cześć, wciąż nie mogę znaleźć rozwiązania. Przeczytałem kilka dokumentów na temat DBSCAN i mam pytania dotyczące. Jak znaleźć minimalną odległość za pomocą R? Ponieważ moje dane to długość, szerokość i temperatura trójwymiarowa, jakiej „odległości” powinienem użyć? który wymiar ma związek z tą odległością? temperatura? Czy istnieje metoda określania minimalnej liczby punktów dla klastra? Przeszukując Google, nie mogłem znaleźć R dla przykładu użycia dbscan w zbiorze danych podobnym do mojego, czy znasz jakieś strony z tego rodzaju przykładami? Więc mogę czytać i próbować dostosować się do mojej sprawy.
Jeszcze
0

Dobrze udokumentowana biblioteka Pythona do analizy przestrzennej, która ma pewne klastrowanie, to pySAL .

Inną biblioteką Pythona na etapie programowania, która koncentruje się na klastrowaniu przestrzennym, jest klasterPy (prezentacja slajdów pdf) .

Z bardziej ograniczonym wyborem algorytmów klastrowania, ale z przyjemnym interfejsem mapowania, jest oprogramowanie GUI GeoGrouper .

b_dev
źródło
Dzięki, nigdy nie pracowałem z Pythonem. Spróbuję znaleźć rozwiązanie R
pacomet