Tengo dos binarios rásteres con los valores de NaN
y 254
. Quiero generar una nueva trama que se compone de los píxeles que tienen un valor NaN
de mapa de bits a y 254
de mapa de bits B y viceversa - los que deben ser 1
, el resto debe ser NaN
de nuevo.
Quiero usar gdal_calc.py en un script de bash para que. Mi fragmento de código se parece a esto:
gdal_calc.py -A S2_2015_AOI_NDBI_bin.tif -B S2_2015_AOI_NDSI_bin.tif --outfile=S2_2015_AOI_diff_auto.tif --calc="1*(A!=B)" --NoDataValue=0
Pero todo lo que se devuelve es un nuevo ráster con NaN
todas partes.
También probé --calc="1*(not_equal(A,B)
, --calc="1*(logical_or(logical_and(A==254, not_equal(B, 254)), logical_and(B==254, not_equal(A, 254))))"
, y varias otras combinaciones que se me podía venir. Nada funcionaba todavía.
Cosa extraña es, que funciona a la perfección en el QGIS Raster Calculator con la fórmula ("S2_2015_AOI_NDBI_bin@1" != "S2_2015_AOI_NDSI_bin@1") = 1
, pero quiero que esto sea automático. También, esta calculadora arroja 0
en lugar de NaN
, lo cual no es adecuado para su posterior procesamiento como el I plan.
La entrada de dos rásteres fueron previamente generado por:
gdal_calc.py -A S2_2015_AOI_NDBI.tif --outfile=S2_2015_AOI_NDBI_bin.tif --calc="254*(A>-0.15)" --NoDataValue=0
y
gdal_calc.py -A S2_2015_AOI_NDSI.tif --outfile=S2_2015_AOI_NDSI_bin.tif --calc="254*(A>0.4)" --NoDataValue=0`
Los rásteres todos tienen el mismo CRS. Estoy corriendo GDAL v. 1.11.3, es un poco anticuado, podría ser esta el problema?
ACTUALIZACIÓN
He resuelto el problema por saltarse el paso de la creación de la "binario" los rásteres de entrada con 254
y NaN
valores (véase la pregunta del segundo y tercer bloques de código). El código se ve como esta ahora:
gdal_calc.py -A S2_2015_AOI_NDBI.tif -B S2_2015_AOI_NDSI.tif --outfile=out.tif --calc="1*(logical_and(A>-0.15, B<0.4))" --NoDataValue=0
Esto proporciona el resultado que quería.
Aunque esta es una solución adecuada para mí, personalmente, todavía no responde a la pregunta original.