Hey all,

I'm seeking some feedback on whether our current handling of nodata
pixels in the raster calculator is correct, or (my suspicion) annoying
and limiting.

Currently, we treat nodata pixels the same as a "NULL" value in SQL --
so ANY function or operation with nodata as an input results in a
nodata output.

This means:

- nodata + 1 = nodata
- nodata * 1 = nodata
- nodata AND 1 = nodata
- nodata OR 1 = nodata

To me this is a mistake. I don't think we should treat nodata the same
as NULL, and I think for rasters then "nodata OR 1" should return 1.

The end result of the current behaviour is that ANY nodata input
blocks processing of that pixel. So you can't do something like take
two raster files, and create an output showing where either input has
a 1 value (which I would expect raster1@1 OR raster2@1 to do).

Otherwise, we need to have some concept of "coalesce" in the raster
calc. So then at least you could do:

    coalesce(raster1@1, 0) OR coalesce(raster@1, 0) ....


Thoughts?

Nyall
_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to