Tengo dos cuadrículas, la cuadrícula A representa las extensiones observadas de inundaciones y la cuadrícula B representa las extensiones simuladas de un modelo hidráulico. Los rásteres tienen el mismo alcance y tamaño de cuadrícula.
Quiero poder comparar cada píxel y crear un nuevo ráster con 4 valores únicos (A/B/C/D) equivalente a la tabla a continuación para mostrar la diferencia entre los dos rásteres:
Si esto fuera un problema de una calculadora de campo de shapefile, usaría una lógica de CASO como la siguiente, pero estoy luchando por identificar un equivalente basado en ráster de QGIS. ¿Alguien puede sugerir algo que pueda intentar?
CASO
CUANDO "Modelado" > 0 Y "Observado" > 0 LUEGO D
CUANDO "Modelado" = 0 Y "Observado" > 0 LUEGO C
CUANDO "Modelado" > 0 Y "Observado" = 0 LUEGO B
CUANDO "Modelado" = 0 Y "Observado" = 0 LUEGO A
FIN
0 votos
Hola, ¿has probado la Calculadora de Raster? Puedes agregar muchas expresiones diferentes con una sintaxis similar a la del Calculadora de Campo vectorial.
0 votos
Por lo que yo veo, la calculadora de raster estándar no admite declaraciones CASE/ELSE o IF/ELSE. La calculadora de cuadrícula de SAGA admitirá IF/ELSE pero no permitirá encadenamiento de declaraciones juntas; por ejemplo, A>0 Y B>0.
0 votos
Tienes razón, pero tal vez puedas lograr lo que estás buscando con alguna declaración lógica. Tal vez esta respuesta te pueda ayudar: gis.stackexchange.com/questions/48752/…
0 votos
Intenté pero el cálculo de cuadrícula parece fallar con el AND utilizado en "eq(g1>0 AND g2>0" - Seguiré investigando.
0 votos
@EdRollason - Olvidé que no se usa
AND
. Prueba algo así:ifelse(gt(a,0)+gt(b,0),400,ifelse(eq(a,0)+gt(b,0),300,ifelse(gt(a,0)+eq(b,0),200,ifelse(eq(a,0)+eq(b,0),100,0))))