跳到主要内容

栅格计算函数参考

本文档汇总了栅格计算器中可用的函数与常用写法(按类别整理),便于检索与编写表达式。

说明:

  • 函数用于逐像元(Local)计算
  • 逻辑/比较类函数返回布尔数组(True/False),参与算术运算时会自动转为 1/0
  • 栅格数组的逻辑判断不使用 Python 原生 and/or/not,请使用 & | ~ 或对应 logical_* 函数

条件函数

函数参数描述示例
wherecond, x, y逐像元条件选择where(A > 0, A, 0)

数学函数(Math)

函数参数描述示例
addx, y逐像元相加add(A, B)
subtractx1, x2逐像元相减subtract(A, B)
multiplyx1, x2逐像元相乘multiply(A, B)
dividex1, x2逐像元相除divide(A, B)
true_dividex, y真除法(浮点结果)true_divide(A, 100)
floor_dividex1, x2向下取整除法floor_divide(A, 3)
powerx1, x2幂运算power(A, 2)
float_powerx1, x2浮点幂运算float_power(A, 0.5)
negativex取负值negative(A)
positivex取正值positive(A)
absx绝对值abs(A)
fabsx浮点绝对值fabs(A)
squarex平方square(A)
sqrtx平方根sqrt(A)
cbrtx立方根cbrt(A)
reciprocalx倒数reciprocal(A)
expx自然指数 e^xexp(A)
exp2x2 的指数exp2(A)
logx自然对数log(A)
log2x以 2 为底对数log2(A)
log10x以 10 为底对数log10(A)
log1pxlog(1+x)(小值稳定)log1p(A)
expm1xexp(x)-1(小值稳定)expm1(A)
floorx向下取整floor(A)
ceilx向上取整ceil(A)
truncx向 0 取整trunc(A)
roundx, n四舍五入到 n 位小数round(A, 2)
rintx就近取整rint(A)
signx返回符号(-1/0/1)sign(A)
hypotx, y欧氏长度 sqrt(x^2+y^2)hypot(dx, dy)
remainderx1, x2余数remainder(A, 5)
modx, y模运算mod(A, 5)
fmodx, y浮点模运算fmod(A, 5)
gcdx, y最大公约数gcd(A, B)
lcmx, y最小公倍数lcm(A, B)
heavisidex, y阶跃函数heaviside(A-10, 0)

三角函数(Trigonometric Function)

函数参数描述示例
sinx正弦sin(A)
cosx余弦cos(A)
tanx正切tan(A)
arcsinx反正弦arcsin(A)
arccosx反余弦arccos(A)
arctanx反正切arctan(A)
arctan2y, x反正切(考虑象限)arctan2(dy, dx)
sinhx双曲正弦sinh(A)
coshx双曲余弦cosh(A)
tanhx双曲正切tanh(A)
arcsinhx反双曲正弦arcsinh(A)
arccoshx反双曲余弦arccosh(A)
arctanhx反双曲正切arctanh(A)

提示:

  • 三角函数输入通常为弧度;若你的角度值为“度”,建议先转换后再计算

叠加函数(Overlay)

函数参数描述示例
Sigma[x1...xn]对多个输入逐像元求和Sigma([A, B, C])

归约/统计函数(Reduction)

函数参数描述示例
nanmaxx忽略 NaN 的最大值nanmax(A)
nanminx忽略 NaN 的最小值nanmin(A)
nanmeanx忽略 NaN 的均值nanmean(A)
nanmedianx忽略 NaN 的中位数nanmedian(A)
nansumx忽略 NaN 的求和nansum(A)
nanstdx忽略 NaN 的标准差nanstd(A)
nanvarx忽略 NaN 的方差nanvar(A)
nanprodx忽略 NaN 的乘积nanprod(A)
nanquantilex, q忽略 NaN 的分位数nanquantile(A, 0.9)

位运算函数(Bitwise)

函数参数描述示例
bitwise_andx1, x2按位与bitwise_and(A, B)
bitwise_orx1, x2按位或bitwise_or(A, B)
bitwise_xorx1, x2按位异或bitwise_xor(A, B)
invertx按位取反invert(A)
left_shiftx1, x2左移left_shift(A, 1)
right_shiftx1, x2右移right_shift(A, 1)

比较与逻辑运算(Comparison & Logic)

类别函数参数描述示例
比较greaterx1, x2大于判断greater(A, 10)
比较greater_equalx1, x2大于等于判断greater_equal(A, B)
比较lessx1, x2小于判断less(A, 0)
比较less_equalx1, x2小于等于判断less_equal(A, B)
比较equalx1, x2等于判断equal(A, B)
比较not_equalx1, x2不等于判断not_equal(A, 0)
比较maximumx1, x2逐像元最大值maximum(A, B)
比较minimumx1, x2逐像元最小值minimum(A, B)
逻辑logical_andx1, x2逻辑与logical_and(A > 0, B > 0)
逻辑logical_orx1, x2逻辑或logical_or(A > 0, B > 0)
逻辑logical_xorx1, x2逻辑异或logical_xor(A > 0, B > 0)
逻辑logical_notx逻辑非logical_not(A > 0)

浮点状态判断(Floating State)

函数参数描述示例
isfinitex是否为有限数isfinite(A)
isinfx是否为无穷大isinf(A)
isnanx是否为 NaNisnan(A)
signbitx是否为负号signbit(A)

说明与建议

  • maximum(x1, x2)minimum(x1, x2) 通常只接收两个参数;多栅格求极值可用嵌套写法:maximum(A, maximum(B, C))
  • nan* 系列函数用于忽略 NaN;如果你的缺失值不是 NaN,而是 NoData,请优先在数据层面统一 NoData,或用 where 显式处理