15 votos

¿Cómo calcular las estadísticas de la trama de polígonos?

¿cómo puedo calcular sumas, promedios, etc raster-puntos (multi-banda) por el polígono de vectores de la capa. Me dijeron que esto se llama "zonal estadísticas". Traté de que con QGIS primera.

Hay una manera de hacerlo, pero que es demasiado lento (convertir raster a vector, se cruzan con el segundo vector de la capa, calcular la geometría, la exportación de los números, el cálculo de estadísticas con hoja de cálculo u otro programa, vuelva a importar los resultados, tarda una eternidad para mi 350.000 raster-puntos).

También recibí la sugerencia de utilizar la saga gis. Que ha "zonal statistics" pero aquellos que se basan en categorías a partir de una trama de banda, no en los polígonos a partir de un vector de la capa. Para utilizar este tendría que convertir mi vector de la capa a trama y, a continuación, calcular la estadística.

Este parece ser el camino equivocado para solucionar esto. No habría forma de tener en cuenta para la trama de los puntos que pertenecen a 2 o más polígonos porque son intersectados por el polígono límite. Supongo que el polígono basado en las estadísticas deben ser capaces de manejar esta así también asumo que no he encontrado el módulo correcto todavía.

Saga gis tiene realmente muchos módulos. Por favor, hágamelo saber cual es el más adecuado para esta aplicación.

THX, stn

23voto

rudivonstaden Puntos 1684

Yo estaba luchando para hacer exactamente la misma cosa, pero por diversas razones por las que estoy comprometido a usar QGIS. He intentado utilizar v. rast.estadísticas de uso de la HIERBA plugin y también a través de Sextante plugin. El último enfoque fallado, porque parece adjuntar las estadísticas temporal de una capa vectorial que luego se elimina. La HIERBA plugin trabajado, pero no lidiar con la superposición de polígonos.

Después de hacer algunas excavaciones alrededor (en la fuente de la prometedora sonido ZonalStats plugin), me encontré con que QGIS en realidad tiene zonal métodos de estadísticas integradas en el API, y estos también tienen enlaces Python. Así que mientras usted está buscando solamente count, sum y mean estadísticas de su polígono características, la Consola de Python (Plugins > la Consola de Python) es actualmente la forma más sencilla de adjuntar las estadísticas para el polígono atributo de la tabla.

  1. Seleccione su capa ráster en la tabla de contenido, y escriba lo siguiente en la consola (se agarra el nombre de archivo de origen de su capa de trama)

    >>> rasterfile = qgis.utils.iface.mapCanvas().currentLayer().source()

  2. Seleccione su capa vectorial, y ejecutar el siguiente comando en la consola (se agarra la capa vectorial en sí mismo)

    >>> vectorlayer = qgis.utils.iface.mapCanvas().currentLayer()

  3. Ejecutar los siguientes tres comandos en la consola (que pasan a la capa vectorial y el raster a QGIS integrada zonal de estadísticas de la calculadora)

    >>> import qgis.analysis

    >>> zonalstats = qgis.analysis.QgsZonalStatistics(vectorlayer,rasterfile)

    >>> zonalstats.calculateStatistics(None)

Los resultados se anexará como campos adicionales en la capa de polígonos.

Zonal Statistics

Tenga en cuenta que si desea añadir un prefijo a los nuevos campos (en lugar de tener sólo como la suma, la media y la cuenta), entonces habría que reemplazar el primer comando en el paso 3 con el siguiente (suponiendo que quería usar 'zonal_' como prefijo:

>>> zonalstats = qgis.analysis.QgsZonalStatistics(vectorlayer,rasterfile,"zonal_")

6voto

Joey Gibson Puntos 3779

Finalmente lo encontró: en Saga GIS abren categoría polígonos y cuadrícula de datos y formas-> rejilla-> valor red-> las estadísticas de la red de polígonos

3voto

Gary Peck Puntos 151

Puede hacer esto fácilmente con PostGIS. Ver este tutorial: http://trac.osgeo.org/postgis/wiki/WKTRasterTutorial01

3voto

Dan Bach Puntos 1

Este problema parece haber sido resuelto ya hace algún tiempo, pero Mal añadir mi cuchara para la sopa de todos modos ya que recientemente necesitaba un poco de la trama estadísticas de mí mismo.

El QGIS metodología descrita por rudivonstaden trabajó como un encanto, gracias por la sugerencia. Sin embargo, en mi caso también quería saber min&max, valores y sexual, para el ráster de valores dentro de mi polígonos, y que la funcionalidad no pude encontrar en QGIS. He encontrado una solución a través de la función isectpolyrst en GME, que es una de mis favoritas para la solución de los SIG problemas.Esta función me dio las estadísticas que necesitaba y más rápido.

PS. GME tiene un poco de un desafortunado de dependencia (ArcGIS). Así que aunque el programa en sí está disponible gratuitamente para todo el mundo, necesita de ArcGIS para ejecutarlo. Pero si usted tiene ArcGIS (en cualquier nivel de la licencia), os recomiendo probarlo.

EDITAR:

Tengo los stats que yo quería, pero más tarde me enteré de que me saltó a conclusiones un poco de prisa después de mirar los números reales. Usted obtener estadísticas, sí, pero sólo para la primera banda en una trama. Así que si usted opera con un 3-banda de imagen de trama, las estadísticas son incompletas. Yo debería haber señalado el número de canales en mi post original. Mejor usar la SAGA GIS como stn propuestas anteriormente si tu trabajo con múltiples banda de imágenes raster.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X