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

HÃ¥vard

On 11. feb. 2019 03:11, Nyall Dawson wrote:
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-user mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user

_______________________________________________
Qgis-user mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user

Reply via email to