
栅格计算器
2025/10/25大约 3 分钟
ArcGIS Pro 栅格计算器常用函数汇总
一、运算符概述
三种运算符,分别是:
- 算术运算符:包含
+、-、*、/。 - 比较运算符:有
>、<、<=、>=、!=。 - 逻辑运算符:
&(与)、|(或)、~(非)。
二、函数分类介绍
(一)条件分析函数
| 函数 | 参数 | 用途 | 示例 |
|---|---|---|---|
Pick("index", X, Y) | Condition:条件判断,index为索引栅格;X:栅格,当index像元值为 1 时输出取自X;Y:栅格,当index像元值为 2 时输出取自Y | 按索引选择不同栅格的像元值 | Pick("index", "A", "B") |
SetNull(condition, X) | Condition:条件判断;X:栅格 | 条件为真时,栅格赋值为Nodata | SetNull("slope" > 30, "slope") 表示坡度 > 30 设为空 |
Con(condition,A,B) | Condition:条件判断;A:判断通过时执行内容;B:判断未通过时执行内容 | 条件判断为真时,执行A,反之执行B | Con("ndvi" > 0.3, 1, 0) 指 NDVI > 0.3 的区域赋 1,否则赋 0 |
(二)数学分析函数
| 函数 | 参数 | 用途 | 示例 |
|---|---|---|---|
Abs(X) | X:栅格或数值 | 计算绝对值(absolute) | Abs("dem") 可用于消除负高程值 |
Mod(X, Y) | X:栅格或数值;Y:栅格或数值 | 返回X除以Y的余数,结果符号与X一致 | Mod(7, 3) = 1,Mod(-7, 3) = -1 |
Sqrt(X) | X:栅格或数值(x≥0) | 计算平方根(Square root) | Sqrt("slope") 可用于计算根号下坡度值 |
Power(X, Y) | X:底数(栅格 / 数值);Y:指数 | 计算x的y次方(乘方:power) | Power("ndvi", 2) 可用于计算 NDVI 的平方 |
Int(x) | X:栅格或数值 | 取整数部分(截断小数,非四舍五入) | Int("precipitation") |
Round(X, n) | X:栅格 / 数值;n:保留小数位数 | 四舍五入保留n位小数(n = 0为整数) | Round("elevation", 1) 保留一位小数 |
(三)三角函数
| 函数 | 参数 | 用途 | 示例 |
|---|---|---|---|
Sin(x) | X:栅格或数值(弧度制) | 计算正弦,输入为弧度 | Sin("slope" * 3.14 / 180),其中slope单位为度 |
Cos(x) | X:栅格或数值(弧度制) | 计算余弦,输入为弧度 | Cos("slope" * 3.14 / 180),其中slope单位为度 |
ASin(x) | X:栅格或数值(-1≤x≤1) | 计算反正弦,返回弧度值(范围 -π/2 到 π/2) | ASin("raster") |
ACos(x) | X:栅格或数值(-1≤x≤1) | 计算反余弦,返回弧度值(范围 0 到 π) | ACos("raster") |
(四)逻辑函数
| 函数 | 参数 | 用途 | 示例 |
|---|---|---|---|
InList(X, list) | X:栅格值;list:值列表(如 [1,2,3]) | 判断x是否在列表中,返回 1(是)/0(否) | InList("landuse", [1, 2]) 判断栅格值是否属于列表 |
IsNull(x) | X:栅格 | 识别空值(NoData),返回 1(空)/0(非空) | Con(IsNull("landcover"),0,"landcover") 可用于填充缺失值 |
Diff(X, Y) | X:栅格 1;Y:栅格 2 | 若像元值不同输出像元值为 1,反之输出像元值为 0;若任一栅格在该像元位置为 NoData,输出也为 NoData | 可通过Diff("landuse_2020", "landuse_2025") 识别土地利用类型发生变化的区域 |
Over(X, Y) | X:栅格 1;Y:栅格 2 | 用于判断X栅格的像元值是否在Y栅格的像元值范围内,返回 1(属于)和 0(不属于) | 可通过Over("species_range","protected_areas") 判断物种分布是否在保护区范围内 |