跳到主要内容

栅格计算

栅格计算器用于对一个或多个栅格进行像元级(逐像元)计算。你可以用表达式对输入栅格像元值执行数学、比较、逻辑和条件运算,并输出新的栅格。

栅格引用与波段引用

  • 栅格引用:直接使用输入列表中的文件引用名称(通常为文件名)
  • 波段引用:栅格名.bandNN 从 1 开始);单波段栅格 aa.band1 等价

示例:

nd = 空飞-多波段栅格-100m.tif.band4 - 空飞-多波段栅格-100m.tif.band2

单语句与代码块

  • 单语句:必须为 输出变量 = 表达式
  • 代码块:允许多行,至少一行是赋值;若有多条赋值,以最后一条作为输出
class1 = dem.tif <= 1610
class2 = dem.tif <= 2415
class3 = dem.tif <= 3468
result = where(class1, 1, where(class2, 2, where(class3, 3, 4)))

逻辑与条件

  • 不支持 Python 原生 and / or / not(它们不能对数组逐像元计算)
  • 请使用逐像元逻辑:& | ~,并用括号明确优先级
  • 条件赋值请使用 where(条件, 值1, 值2)(不要用 Python 的 if
mask = (a.tif > 0) & (a.tif < 10)
result = where(mask, a.tif, 0)

NoData 与空间对齐

  • 任一操作数为 NoData,则结果为 NoData
  • 若输入栅格在 CRS、分辨率、网格对齐或范围上不一致,会自动重投影/重采样到同一网格
  • 对齐基准为“输入列表中的第一个栅格”