Estadística zonal con PyQGIS: clase QgsZonalStatistics

Las estadísticas zonales en PyQGIS se realizan con objetos de la clase QgsZonalStatistics de qgis.analysis. Instanciar los objetos requiere 5 parámetros que en este orden son: la referencia a la capa vectorial tipo polígono, la ruta absoluta al raster, el prefijo a ser colocado en cada campo de estadísticas de la tabla de atributos del vectorial, la banda del ráster y una constante del tipo enumerado de la clase QgsZonalStatistics señalando el tipo de estadísticas a evaluar.

Para la siguiente situación:

zonal1

este código:

from qgis.analysis import QgsZonalStatistics

mapcanvas = iface.mapCanvas()

layers = mapcanvas.layers()
provider = layers[1].dataProvider()

path = provider.dataSourceUri()

zoneStat = QgsZonalStatistics(layers[0], path,"", 1, QgsZonalStatistics.Mean)

zoneStat.calculateStatistics(None)

produce sólo la creación del campo ‘mean’ con la media de los valores de píxeles en la zona delimitada por el vectorial tipo polígono.

zonal2

Si se desean todas las estadísticas se ha modificar el código con la instrucción siguiente:

.
.
.
zoneStat = QgsZonalStatistics(layers[0], path,"", 1, QgsZonalStatistics.All)
.
.
.

y con sólo una selección de parámetros estadísticos, por ejemplo ‘Mean’ y ‘Sum’, la modificación sería como la siguiente:

.
.
.
zoneStat = QgsZonalStatistics(layers[0], path,"", 1, QgsZonalStatistics.Mean | QgsZonalStatistics.Sum)
.
.
.
Esta entrada fue publicada en PyQGIS, QGIS, SIG, Software Libre. Guarda el enlace permanente.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s