¿Cómo resumir los valores de píxeles en QGIS?


10

Necesito saber el valor de la suma de todos los píxeles en un ráster. Sin embargo, en la sección Estadísticas de la pestaña Metadatos en Propiedades, en Suma de todas las celdas siempre indica 0.00. He intentado con diferentes formatos de trama en vano. ¿Qué estoy haciendo mal? ¿Cómo puedo obtener este valor?


Me interesa su aplicación de este método, si no le importa compartir.
MLowry

Asegúrese de verificar sus cálculos, hice una comprobación rápida con un ráster que contiene valores faltantes, el promedio se calcula sobre todas las celdas de ráster, sin embargo, multiplicar este promedio por el ancho y la altura de su ráster no da como resultado una suma correcta, usted ¡debería corregir la cantidad de celdas ráster que consisten en valores faltantes!

Respuestas:


9
  1. Cree un polígono usando Vector> Herramientas de investigación> Polígono a partir de la extensión de capa. Aquí la capa es la trama en cuestión.
  2. Activar / instalar el complemento de estadísticas zonales.
  3. Use el complemento de estadísticas zonales donde el ráster es aquel cuya suma se requiere y el polígono es el que creó a partir de la extensión de capa. Ingrese el prefijo de la columna de salida (por ejemplo, stats_). Ejecute el complemento.
  4. Abra la tabla de atributos del polígono. Ahora tiene la columna stats_sum junto con otras columnas con el prefijo stats_.
  5. Verifiqué los valores en GRASS GIS y la coincidencia es perfecta.

Esto no funciona en QGIS 2.18. No estoy seguro de cómo podría haber funcionado esto, ya que "Polígono desde la extensión de capa" toma una capa vectorial y no un ráster como entrada. Las capas ráster no aparecen en la lista desplegable, y si carga la capa ráster externamente, la capa de extensión resultante está vacía.
Stephen Bosch

Funciona para mí en 2.18.
mitchus

4

En QGIS 2.x, puede obtener estadísticas ráster para toda la capa (incluida la suma de todos los valores de píxeles en la banda) utilizando el algoritmo de estadísticas de capa Ráster en la caja de herramientas Procesamiento.

Procesamiento | Caja de herramientas (casilla de verificación)

luego vaya a la caja de herramientas Procesamiento:

Geoalgoritmos QGIS | Herramientas rasterizadas | Estadísticas de capa ráster

Genere las estadísticas para la capa que desea inspeccionar. Los resultados se almacenan en los metadatos de la capa, a los que se puede acceder haciendo clic con el botón derecho en la capa y seleccionando Propiedades.


1

Entendí la pregunta como: ¿Cómo obtengo la suma de todos los valores de píxeles de un ráster? Algo así como ejecutar estadísticas sobre los atributos de un vector. Uno puede hacer esto fácilmente a través de la programación. Se me ocurre otra forma de hacer esto a través de QGIS. Sería ineficiente y ligeramente inexacto, pero funcionará.

  • Cree una capa de puntos que represente cada píxel del ráster. Puede hacerlo a través de Vector -> Herramientas de investigación -> Puntos regulares. Use el número de puntos como x_size * y_size. Por lo tanto, para un ráster de 100 px de ancho x 100 px de altura, use 10000. Especifique un desplazamiento de (resolución de píxeles) / 2, de modo que esté muestreando el centro del píxel.
  • Luego, instale el complemento Point Sampling. Con este complemento, puede muestrear el ráster en todos los 10000 puntos y obtener un valor de atributo que es el valor de píxel.
  • Ejecute Vector -> Análisis -> Estadísticas básicas en el vector resultante para obtener la suma.

1

Puede usar gdalinfo para obtener las estadísticas ráster, por ejemplo:

gdalinfo -stats filename.tif

Esto le dará el valor medio de píxeles y el tamaño de la trama en píxeles. También puede obtener estos datos de la pestaña Propiedades -> Metadatos.

Entonces es una cuestión de aritmética: valor medio x (altura en píxeles x ancho en píxeles).

Mella.


44
Eso está mal. Primero, estas estadísticas no siempre están presentes (depende de la aplicación que escribió el archivo) y si están presentes, no puede estar seguro de que sean correctas. En segundo lugar, la multiplicación ignora la posibilidad de que no haya valores Sin datos (en cuyo caso este cálculo sería incorrecto).
Robert Hijmans

0

Puedes usar python:

import gdal
import numpy as np
ds = gdal.Open(r'C:\somefolder\someraster.tif')
band1 = ds.GetRasterBand(1).ReadAsArray()
s = np.sum(band1)
print(s)

-1

Espero haberte entendido bien; Traté de reconstruir tu problema con un Raster mío. La suma de todos los píxeles en un ráster son los x-píxeles * y-píxeles, ¿verdad? Este valor se puede obtener de 2 maneras: 1) Haga clic derecho en el archivo real (un tiff en mi caso), la ventana de detalles debe proporcionar esta información 2) Dentro del Gis, haga clic en Ráster-> Misceláneo-> Información. Seleccione su archivo-> editar-> ok. Entonces deberías los dos valores, que tienen que multiplicarse. El resultado es la suma de todos los píxeles en un ráster.


2
Incorrecto. Eso te daría la cantidad de celdas. No es la suma de los valores de las celdas
Robert Hijmans el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.