Sustituir valores de un raster con QGIS

En este momento estás viendo Sustituir valores de un raster con QGIS
  • Categoría de la entrada:QGIS
  • Tiempo de lectura:7 minutos de lectura

En otros tutoriales hemos realizado diversas operaciones con datos raster, hemos aprendido a realizar la unión de varios raster y a usar la calculadora raster. En esta ocasión, vamos a aprender a sustituir valores de un raster con QGIS.

Sustituir valores de un raster con QGIS

Al trabajar con información raster es muy probable que necesitemos sustituir los valores de un raster por un valor numérico, o incluso por los valores de otro raster diferente.

Si lo que queremos es sustituir los valores por otro valor numérico siempre podemos usar la calculadora raster. Sin embargo, cuando debemos sustituirlos por los valores de otro raster esto no lo podemos hacer con la calculadora. Además, para ambas tareas en  QGIS tenemos una opción mucho más fácil de usar, se trata de la operación condicional que se encuentra en la calculadora raster.

Vamos a sustituir valores de un raster de diferentes formas, pero siempre haciendo una operación con la calculadora raster mediante un operador de condicional «If» Herramientas < Análisis raster < Raster calculator.

Con este operador habrá que indicar lo siguiente, en este orden:

  • Primero le indicamos la condición que queremos aplicar: “si el raster “X” cumple esta condición”.
  • Después le decimos cuál es el raster que contiene los valores a aplicar “entonces pon estos valores”.
  • Y por último el raster que contiene los valores a aplicar si no se cumple la condición “y si no, pon estos otros valores”.

Sustituir valores de un raster con QGIS por un valor numérico

Tenemos un raster con los datos de precipitación mensual (P) en una cuenca hidrológica:01_Sustituir_valores_raster_QGIS

Lo que queremos es sustituir valores para que cuando la precipitación sea menor de 70 mm ponga un valor de «10» y que conserve los valores originales de P en el resto de celdas. Abrimos la calculadora raster y escribimos la siguiente expresión:

If (P_cuenca < 70, 10, P_cuenca)

Además debemos indicar una capa de referencia («Reference layer(s)») de la que el programa cogerá parámetros necesarios como la extensión, el tamaño de celda, el sistema de proyección etc. Para hacerlo pulsamos en los tres puntos, seleccionamos la capa de precipitación y hacemos clic en Aceptar. Por último, podemos darle un nombre al raster de salida si queremos.

02_Sustituir_valores_raster_QGIS

03_Sustituir_valores_raster_QGIS

Así estamos indicando que si la precipitación es menor de 70 mm (P < 70), entonces utilizar el valor de 10 (10), y si no se cumple esa condición, entonces utiliza el valor del raster de precipitación (P).

04_Sustituir_valores_raster_QGIS

Ahora el raster presenta el valor de 10 en las celdas con una P menor de 70 mm.

Sustituir valores de un raster con QGIS por valores de otro raster

En este caso vamos a usar el operador de condicional para realizar el cálculo de la Evapotranspiración Real (ETR) en un balance hídrico. La ETR es función de dos factores, la precipitación (P) y la Evapotranspiración Potencial (ETP):

  • Si P – ETP > 0 –> ETR = ETP
  • Si P – ETP < 0 –> ETR = P

De manera que usamos el condicional para indicar la siguiente expresión:

If (P_cuenca – ETP_cuenca > 0, ETP_cuenca, P_cuenca)

De nuevo indicaremos una capa de referencia para el análisis y un nombre para el raster de salida.

05_Sustituir_valores_raster_QGIS

Así estamos indicando que si la precipitación menos la evaportranspiración potencial es mayor que 0 (P – ETP > 0), entonces utiliza el valor del raster de evapotranspiración potencial (ETP), y si no se cumple esa condición, entonces utiliza el valor del raster de precipitación (P).

06_Sustituir_valores_raster_QGIS

Obtenemos un raster con el valor de la ETP en las celdas donde la diferencia entre la P y la ETP es mayor de 0 y el valor de P donde esta diferencia es menor que 0.

Sustituir valores NoData de un raster con QGIS

En esta ocasión tenemos un Modelo Digital del Terreno (MDT) que presenta algunas zonas sin dato (NoData):

07_Sustituir_valores_raster_QGIS

Por otro lado, disponemos de un raster de datos LIDAR para la misma zona así que lo que vamos a hacer es sustituir las celdas sin dato (NoData) del MDT por los valores del Lidar.

En QGIS las celdas sin dato se almacenan con el valor -32768 por lo tanto la expresión que debemos indicar es la siguiente:

if(«mdt@1″ = -32768,»LIDAR@1″,»mdt@1»)

08_Sustituir_valores_raster_QGIS

Así estamos indicando que si el MDT es Nodata (-32768) entonces usa el valor del raster del lidar (lidar) y si no se cumple esa condición, entonces usa el valor del mdt (mdt).

09_Sustituir_valores_raster_QGIS

Ahora tenemos un MDT sin valores NoData.

Como podemos comprobar, la operación de condicional es muy útil para sustituir valores de un raster, ya sea por un valor numérico o por los valores de otro raster y además nos permite establecer varias condiciones.

< CURSOS QUE PUEDEN INTERESARTE

Rebeca Benayas Polo

LICENCIADA EN CIENCIAS AMBIENTALES Y MASTER EN HIDROLOGÍA Y GESTIÓN DE RECURSOS HÍDRICOS Desempeña su labor profesional como consultora técnica en hidrología, Planificación Hidrológica y SIG (INTECSA-INARSA, S.A., Tragsatec, S.A., CYTSA, S.A.). A lo largo de su trayectoria profesional ha participado en la elaboración y seguimiento de diferentes planes hidrológicos: Ebro, Miño-Sil, Cuencas Mediterráneas Andaluzas y Cuencas Internas del País Vasco.