¿Identificando grupos en datos vectoriales usando QGIS?

34

Tengo un conjunto de datos vectoriales de puntos de datos de banda ancha rural (qué tan rápido, etc.) y me gustaría explorar si hay grupos de puntos con características similares, y trazar polígonos que los abarquen.

Por ejemplo, es posible que tenga 45,000 puntos en un solo conjunto de datos PostGIS distribuidos en un paisaje. Quiero identificar los grupos que están a una distancia de x km y donde la velocidad está por debajo de y kbps, y producir cascos convexos para cada grupo que califique.

¿Hay una forma sencilla de hacer esto en QGIS, por ejemplo?

    
pregunta Adrian 22.06.2011 - 10:04

5 respuestas

15

He combinado bits de varias sugerencias y he añadido un poco de mi propia y he encontrado una solución que funciona bien para mí, ¡y todo desde QGis!

Primero ejecuté un PostGis SELECT para encontrar los puntos que tienen los atributos comunes correctos y se encuentran dentro de x km unos de otros:

  

SELECCIONAR DISTINTO s1.postcode, s1.the_geom, s1.gid       DESDE broadband_data AS s1 ÚNETE broadband_data AS s2         EN ST_DWithin (s1.the_geom, s2.the_geom, 1000)      DONDE s1.postcode! = S2.postcode        Y s1.fastest_broadband < = 2000

(De manera bastante directa, el muy buen libro PostGis en acción de Manning, solo agrega una auto-unión)

Luego cargué el complemento ManageR de Carson Farmer e importé la capa. Desde aquí seguí el proceso de agrupamiento de PAM sugerido aquí , y exporté el resultado a un archivo de forma, en el que Los cascos convexos se calcularon en segundos usando fTools (¡Carson se mueve!).

    
respondido por el Adrian 24.06.2011 - 12:31
8

Aunque no es una solución QGIS, personalmente optaría por un análisis exploratorio utilizando SaTScan . Es rápido, está bien documentado y se aplica ampliamente, por lo que no debería tener problemas para comenzar. Sin embargo, 45k puntos pueden requerir algo de RAM.

No estoy seguro de si se puede leer directamente desde Postgres pero se importa fácilmente desde archivos dbf y de texto.

La salida del análisis puede luego leerse fácilmente a Postgres o QGIS. Puede decidir buscar clústeres circulares o elipsis (podría ser útil utilizarlos si existe un tipo particular de asentamientos en sus datos, por ejemplo, ciudades / aldeas de forma larga en valles, etc.). Luego, puede generar polígonos o puntos suspensivos o solo las ubicaciones que son miembros de grupos.

Para obtener una vista previa rápida de los resultados en Google Earth, también puede utilizar Herramienta de conversión de SaTScan a Google Earth de NAACCR .

Es importante destacar que, si decide ejecutar simulaciones de Monte Carlo (99 como mínimo, creo), también podrá decir algo sobre la importancia estadística de sus grupos. La interpretación y la justificación de estos grupos será otro tema, ya que se ha debatido en ciencias espaciales al menos durante las últimas dos décadas (creo;).

Puedes intentar realizar análisis puramente espaciales buscando grupos de alta, baja o hagh & valores bajos. Si tiene algunos atributos temporales en sus datos * agregados semanales, entonces creo que sería realmente interesante ejecutar algunos modelos de espacio-tiempo.

    
respondido por el radek 22.06.2011 - 14:10
5

SciPy tiene un paquete de clustering (para python), puedes usarlo en la consola de python, escribir un complemento simple para hacer eso o usar PL / python dentro de postgis.

enlace

Después del análisis, solo usa f-tools para crear los cascos convexos.

    
respondido por el Pablo 22.06.2011 - 14:15
5

Hay un ejemplo similar de lo que quieres hacer usando R y GRASS aquí . Como alternativa, puede usar las herramientas de agrupamiento de scipy como se sugiere, y luego hacer los cálculos del casco convexo usando este método .

    
respondido por el Jose 22.06.2011 - 15:59
3

Puedes probar el complemento Ftools. Vector > Geoprocessing Tools > Convex Hulls .

Hay una opción para Create convex hulls based on input field , el parámetro del campo de entrada debe provenir de los atributos de sus puntos de entrada.

    
respondido por el maning 22.06.2011 - 10:47

Lea otras preguntas en las etiquetas