Agrupación de datos espaciales en R

12

Tengo un conjunto de datos mensuales de temperatura de la superficie del mar (SST) y quiero aplicar alguna metodología de clúster para detectar regiones con patrones de SST similares. Tengo un conjunto de archivos de datos mensuales que se ejecutan desde 1985 hasta 2009 y quiero aplicar el agrupamiento a cada mes como primer paso.

Cada archivo contiene datos cuadriculados para 358416 puntos donde aproximadamente el 50% son terrestres y están marcados con un valor de 99.99 que será NA. El formato de datos es:

   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

He intentado el método de agrupación CLARA y obtuve algunos resultados aparentemente buenos, pero también me parece que es solo suavizar (agrupar) las isolinas. Entonces no estoy seguro de que este sea el mejor método de agrupamiento para analizar datos espaciales.

¿Hay algún otro método de agrupación dedicado a este tipo de conjuntos de datos? Alguna referencia sería buena para comenzar a leer.

Gracias por adelantado.

pacomet
fuente
2
Debe consultar cran.r-project.org/web/views/Spatial.html . Hay algunos paquetes que tienen clúster justo en el nombre que probablemente sean de interés.
Andy W
¿Encontró algún buen paquete R para agrupar datos espaciales?
kaptan
@kaptan Desafortunadamente no lo hice y es uno de los
pacomet
El título de esta pregunta es confuso: , no R ! (x,y,T)R3R
GeoMatt22

Respuestas:

2

Hay un enfoque diferente para la agrupación escalable, el enfoque de división y conquista, la agrupación paralela y la incremental. Esto es para un enfoque general después de que pueda usar métodos de agrupación normales. Un buen método de agrupación que realmente aprecio es DBSCAN (agrupación espacial basada en densidad de aplicaciones con ruido), es uno de los algoritmos de agrupación más utilizados.

404Dreamer_ML
fuente
Ok, buscaré DBSCAN y lo intentaré. Gracias
pacomet
Si alguna respuesta lo ayudó o si descubre otra forma, es mejor darnos, por lo que toda la comunidad se aprovechará de eso. O elija una respuesta para cerrar la pregunta, gracias.
404Dreamer_ML
Lamento la demora en responder pero el punto es que no tuve mucho tiempo para probar dbscan y los primeros intentos resultaron en un problema de memoria. R dice que no puede asignar el vector. Comienzo con una cuadrícula espaciada de 4 km con 779191 puntos que termina en 300000 puntos al eliminar puntos SST terrestres (no válidos). Tal vez no estoy obteniendo el enfoque correcto, cualquier sugerencia sería apreciada.
pacomet
1
Hola, todavía no puedo encontrar una solución. He leído algunos documentos sobre DBSCAN y tengo algunas preguntas al respecto. ¿Cómo encontrar la distancia mínima con R? Como mis datos son de longitud tridimensional, latitud y temperatura, ¿qué "distancia" debo usar? ¿Qué dimensión está relacionada con esa distancia? ¿temperatura? ¿Existe algún método para determinar el número mínimo de puntos para un clúster? Buscando en Google no pude encontrar un ejemplo de R para usar dbscan en un conjunto de datos similar al mío, ¿conoces algún sitio web con este tipo de ejemplos? Entonces puedo leer e intentar adaptarme a mi caso. Gracias de nuevo
pacomet
0

Una biblioteca de Python bien documentada para el análisis espacial que tiene algún agrupamiento es pySAL .

Otra biblioteca de Python en la etapa de desarrollo que se centra en la agrupación espacial es clusterPy (presentación de diapositivas en pdf) .

Con una opción más limitada de algoritmos de agrupamiento pero con una interfaz de mapeo agradable, es el software GUI GeoGrouper .

b_dev
fuente
Gracias, nunca he trabajado con Python. Intentaré encontrar una solución R
pacomet