1

I have a raster which nodata is 0,0,0 in all three bands, how can I reclassify them into 255,255,255?

enter image description here

1

QGIS Raster Calculator returns only one image at a time, so you need to calculate it for each band.

# Band1
    (BM24_10K_0501@1 = 0) * (BM24_10K_0501@2 = 0) * (BM24_10K_0501@3 = 0) * 255
    + (((BM24_10K_0501@1 > 0) + (BM24_10K_0501@2 > 0) + (BM24_10K_0501@3 > 0))>0) * BM24_10K_0501@1

This may look complicated;

  • When the cell is RGB(0,0,0), the first line becomes (0=0)*(0=0)*(0=0)*255, which means True*True*True*255 or 1*1*1*255. So it outputs cell value 255.
  • At the same time the second line becomes ((0>0)+(0>0)+(0>0))>0*band1, which means ((False+False+False)>0)*band1 or (0+0+0)>0*band1. So it returns zero.
  • Overall, this expression replaces Band1= 0 by 255 if input cells are RGB(0,0,0).

Repeat this for Band 2 and Band 3:

# Band2
    (BM24_10K_0501@1 = 0) * (BM24_10K_0501@2 = 0) * (BM24_10K_0501@3 = 0) * 255
    + (((BM24_10K_0501@1 > 0) + (BM24_10K_0501@2 > 0) + (BM24_10K_0501@3 > 0))>0) * BM24_10K_0501@2
# Band3
    (BM24_10K_0501@1 = 0) * (BM24_10K_0501@2 = 0) * (BM24_10K_0501@3 = 0) * 255
    + (((BM24_10K_0501@1 > 0) + (BM24_10K_0501@2 > 0) + (BM24_10K_0501@3 > 0))>0) * BM24_10K_0501@3

Final step: Merge these new rasters into single raster.

0

If you dont want to work with raster calculator you can do this task by using Reclassify values (simple) from SAGA processing toolbox.

enter image description here

Choose Grid value equals low value as condition and create a lookup table with lowest and highest value 0 to be replaced by 255. This will not touch your other values (means no need to enter the whole table from 0 to 254).

Do this for all 3 bands, e.g. by using batch processing.

PS: just tried with reclassify by table (non SAGA) with no success, no idea why. However, the SAGA tool works just fine.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.