如何基于条件为GeoTIFF栅格像素赋值?报错求助
解决gdal_calc.py栅格重分类报错问题
报错原因是numpy数组不支持50<=A<=100这种链式比较语法,Python会将其解析为(50<=A) <=100,布尔数组与数值直接比较会触发"真值歧义"错误。
将计算表达式拆分为两个独立条件,并用numpy的逻辑与运算符&连接(注意每个条件需加括号保证优先级),修改后的命令如下:
gdal_calc.py -A input.tif --outfile=output.tif --calc="1*((A >= 50) & (A <= 100))" --NoDataValue=0
如果原栅格存在自定义NoData值,且需要保留该值而非设为0,可进一步调整计算式:
gdal_calc.py -A input.tif --outfile=output.tif --calc="1*((A >= 50) & (A <= 100) & (A != nodata))" --NoDataValue=原NoData值
内容的提问来源于stack exchange,提问作者emax
相关产品推荐
相关产品推荐

