Tengo un conjunto de rásteres (.vrt) con datos diarios de humedad del suelo. Quiero sumar los píxeles de todos los rásteres para tener una medida por mes. Sin embargo, el mundo entero no está cubierto todos los días, lo que da como resultado valores de nodatos en lugares donde existen medidas para los otros días.
Lo que quiero hacer es sumar los valores de cada ráster. Sin embargo, parece que cada vez que un píxel de nodata está en la suma, el píxel resultante se clasifica directamente como nodata. Me gustaría tener lo contrario: ignorar todos los valores de nodata y sumar el resto.
Pensé en 2 formas de resolver el problema:
- sumando rásteres ignorando valores de nodata
- convertir píxeles de nodata al valor 0, luego sumar todos los rásteres
Desafortunadamente, no puedo encontrar ninguna herramienta para hacer esto.
¿Alguien puede ayudarme?
Respuestas:
Si tiene acceso a ArcGIS, la herramienta Estadísticas de celda tiene la opción de ignorar los nodos que suma \ mean \ min \ max sus rásteres.
fuente
En primer lugar, puede usar gdal_calc.py para cambiar todo -9999 a 0 y establecer el valor NoData en 0.
Por ejemplo:
Luego, puede ignorar el valor NoData usando gdal_translate con la opción -a_nodata seguida de none .
Ejemplo:
fuente
gdal_translate -a_nodata none ...
. Por ejemplo:gdal_calc.py -A input.tif --outfile=input_with_NoData.tif --type=Int16 --calc="A+9999*(A==-9999)" --NoDataValue=0
cd
comando y vuelva a intentarlo para tener solo-A test.tif
.En R:
fuente
s
, con el argumento quena.rm=TRUE
da como resultadoNA
que se ignoren los valores. El objeto de salidass
es unraster
objeto que se puede exportar conwriteRaster
(ver?writeRaster
). (@RobertH es el creador delraster
paquete R ).La herramienta condicional en Spatial Analyst es una manera fácil de convertir valores nulos a ceros. Luego, tomar las sumas debe ser fácil.
fuente
Tuve el mismo problema hace un tiempo y logré resolverlo.
Solo como una nota sobre la visualización de valores de nodata en QGIS: los valores de nodata siempre se muestran como valores de nodata en la ventana del mapa y cuando se usa la herramienta "información de objeto", sin importar si realmente tienen el valor -9999, 0, NULL, etc. Entonces, después de la reclasificación de los valores de nodata a 0, si va a la configuración de la capa, encontrará en los Metadatos que los nodata tienen el valor 0.
Finalmente encontré la herramienta perfecta para la búsqueda, la HIERBA
r.series
. Con la configuración de "operación agregada" "máxima" y los "NULOS de propagación" desmarcados, la herramienta creará una capa que se ajuste a sus necesidades.fuente
Recuerdo haber tenido este problema hace un tiempo. Como solución, creo que hice +1 a todas las celdas en el ráster, agregué los rásteres juntos, luego hice una resta final (de los muchos +1 que haya agregado). Es bastante crudo, pero si hace el trabajo ...!
Alternativamente, use 'Reclasificar valores de cuadrícula' en la caja de herramientas Procesamiento en QGIS para convertir sus valores nulos a cero.
fuente