Clustering dei dati spaziali in R


12

Ho una serie di dati mensili sulla temperatura della superficie del mare (SST) e voglio applicare una metodologia di cluster per rilevare regioni con modelli SST simili. Ho una serie di file di dati mensili che vanno dal 1985 al 2009 e voglio applicare il clustering ogni mese come primo passo.

Ogni file contiene dati grigliati per 358416 punti in cui circa il 50% sono terreni e sono contrassegnati con un valore di 99,99 che sarà NA. Il formato dei dati è:

   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

Ho provato il metodo di clustering CLARA e ho ottenuto alcuni risultati apparentemente piacevoli, ma mi sembra anche che stia semplicemente uniformando (raggruppando) gli isoline. Quindi non sono sicuro che questo sia il miglior metodo di clustering per analizzare i dati spaziali.

Esiste un altro metodo di clustering dedicato a questo tipo di set di dati? Qualche riferimento sarebbe utile per iniziare a leggere.

Grazie in anticipo.


2
Dovresti dare un'occhiata a cran.r-project.org/web/views/Spatial.html . Ci sono alcuni pacchetti che hanno cluster proprio nel nome che probabilmente sarebbero di interesse.
Andy W,

Hai trovato un buon pacchetto R per raggruppare i dati spaziali?
kaptan il

@kaptan Sfortunatamente non l'ho fatto ed è uno dei
pacomet del

Il titolo di questa domanda è confuso: , non ! R(x,y,T)R3R
GeoMatt22,

Risposte:


2

Esiste un approccio diverso per il clustering scalabile, l'approccio di divisione e conquista, il clustering parallelo e uno incrementale. Questo è per un approccio generale dopo che è possibile utilizzare i normali metodi di clustering. Esiste un buon metodo di clustering che apprezzo molto è DBSCAN (cluster spaziale basato su densità di applicazioni con rumore), è uno degli algoritmi di clustering più utilizzati.


Ok, cercherò DBSCAN e proverò. Grazie
pacomet

Se qualche risposta ti ha aiutato o hai scoperto un altro modo, è meglio darci, quindi tutta la comunità ne trarrà vantaggio. O scegli una risposta per chiudere la domanda, grazie.
404Dreamer_ML,

Mi dispiace per il ritardo nella risposta, ma il punto è che non ho molto tempo per provare dbscan e i primi tentativi hanno provocato un problema di memoria. R dice che non può allocare il vettore. Comincio con una griglia distanziata di 4 km con 779191 punti che termina in 300000 punti quando si rimuovono i punti SST di terra (non validi). Forse non sto ottenendo l'approccio giusto, qualsiasi suggerimento sarebbe apprezzato.
pacomet

1
Ciao, non riesco ancora a trovare una soluzione. Ho letto alcuni documenti su DBSCAN e ho alcune domande su. Come trovare la distanza minima con R? Dato che i miei dati sono longitudine tridimensionale, latitudine e temperatura, quale "distanza" dovrei usare? quale dimensione è correlata a quella distanza? temperatura? Esiste un metodo per determinare il numero minimo di punti per un cluster? Cercando su Google non sono riuscito a trovare un esempio R per l'utilizzo di dbscan in un set di dati simile al mio, conosci qualche sito Web con questo tipo di esempi? Quindi posso leggere e provare ad adattarmi al mio caso. Grazie ancora
pacomet

0

Una libreria Python ben documentata per l'analisi spaziale che presenta alcuni cluster è pySAL .

Un'altra libreria Python in fase di sviluppo focalizzata sul clustering spaziale è clusterPy (presentazione di diapositive pdf) .

Con una scelta più limitata di algoritmi di clustering ma con una bella interfaccia di mappatura è il software GUI GeoGrouper .


Grazie, non ho mai lavorato con Python. Proverò a trovare una soluzione R
pacomet
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.