Tengo dos capas: una capa ráster y una capa vectorial (polígono). Puedo ver los valores de los píxeles de trama, pero no sé cómo combinarlos con la información de la capa de polígono. Más específicamente, me gustaría:
- Sumar valores de todos los píxeles dentro de los bordes de un polígono
- contar la cantidad de píxeles con un valor específico dentro de los bordes de un polígono
¿Alguien puede ayudar y aconsejar sobre cómo hacer esto en QGIS?
Respuestas:
Solía ser que tenía que usar v.rast.stats en el complemento GRASS, pero ahora puede usar las estadísticas zonales incorporadas en el menú Ráster.
Tiene una capa de polígono cargada y el ráster. Ejecutas el elemento del menú.
eso responderá la parte a) de su pregunta.
v.rast.stats y otras herramientas le proporcionarán resultados más detallados, pero probablemente un flujo de trabajo simple para b) es extraer cada polígono (use el menú Ráster | Extracción | Clipper) y luego ejecutar un histograma en cada uno. Depende de la estructura de sus datos, con qué frecuencia tiene que hacerlo, etc.
fuente
Para su primer objetivo, como dijo Willy, puede usar el módulo v.rast.stat. El módulo creará nuevas columnas pobladas en su base de datos de vectores con los valores estadísticos que está buscando (valor mínimo, máximo, media, desviación estándar, conteo , etc.).
En cuanto a su segunda pregunta, debe "ocultar" los valores que están por debajo (o por encima) de su umbral. Una forma de hacerlo es usando la calculadora ráster de qgis e ingresando la siguiente expresión para calcular:
El paréntesis creará una máscara, lo que significa que todos los valores por encima de 10 tomarán el valor de 1 y todos los valores por debajo del valor de 0. Y a continuación, multiplique ambos valores con los valores originales. Y obviamente 0 por algo es igual a 0.
Establezca el valor de nodata para que sea igual a 0 para la máscara-raster producida y luego vuelva a ejecutar v.rast.stats.
fuente