gdal_translate 8 位(字节格式),如何处理无数据值

gdal_translate 8bits (Byte format), how to handle nodata-values

我在 GTiff 中有一张范围为 0 - 65535 的卫星图像,我需要将其转换为字节格式 (0-255)。

使用: gdal_translate [-a_nodata 0 和 -scale 0 65535 0 255] -ot 字节 infile.if outfile.tif

这很好用,但我得到很多像素,这些像素被向下舍入(截断)为 0,这是我的无数据值,这意味着它们在可视化时变得透明。

我试过 -a_nodata 0 和 -scale 1 65535 0 255,但我一直无法找到适合我的解决方案。

我正在寻找的是将 0 作为无数据,将 1-255 作为数据范围。

如果其他人偶然发现了这个,我只想 post 我找到的解决方案。

例程 gdal_calc.py,它使人们能够使用 Python 函数,例如numpy 和 math,可以轻松搞定。

gdal_calc.py -A inputfile.tif --outfile=outputfile.tif --calc="A/258+1" --NoDataValue=0

然后只需要通过 gdal_translate og gdalwarp 将其转换为字节格式(如果还需要重新网格化数据)。