最近距离计算
该工具作用是计算每个像元到最近目标像元的距离。
功能说明
根据输入栅格中的非 NoData 像元计算最近距离,并可同时输出最近目标像元的原始值。例如,以河流像元为目标,可分析各位置到最近河流的距离。

按目标选择使用方式
默认寻找非空像元;启用“计算到最近 NULL 像元”可改为寻找空值。距离阈值可限制输出范围;测地线距离适用于经纬度坐标系。
默认情况下,所有非 NoData 像元都是目标,包括值为 0 的像元。如果 0/1 栅格中只有 1 表示河流等目标,应先将非目标的 0 转换为 NoData,再运行本工具;否则 0 像元也会被当成目标。
选择距离计算方法
| 方法 | 中文名称 | 如何理解和选择 |
|---|---|---|
euclidean | 欧氏距离 | 默认;平面上两点间的直线距离。 |
squared | 欧氏距离平方 | 欧氏距离的平方,可用于比较相对远近;不能直接按普通距离解释。 |
manhattan | 曼哈顿距离 | 水平和垂直方向距离绝对值之和。 |
maximum | 切比雪夫距离 | 水平和垂直方向距离绝对值中的较大者。 |
geodesic | 大地测量距离 | 用于经纬度坐标系;可配合“距离单位输出为米”。 |
欧氏、曼哈顿和切比雪夫度量会形成不同的距离分布。选择时应结合数据坐标系和分析目的,不要把它们当成等价方法。
参数说明
| 参数 | 说明 | 必填 | 默认值 |
|---|---|---|---|
| 输入栅格文件 | 需要计算距离的源栅格文件 | 是 | 空 |
| 距离度量方式 | 选择距离计算方法。euclidean 表示欧几里得距离,squared 表示平方欧几里得距离,maximum 表示切比雪夫/最大距离,manhattan 表示曼哈顿距离,geodesic 表示测地线距离。 可选:euclidean, squared, maximum, manhattan, geodesic. | 是 | euclidean |
| 最小距离阈值 | 低于此距离的结果将被设为NULL,留空表示不限制 | 否 | 空 |
| 最大距离阈值 | 高于此距离的结果将被设为NULL,留空表示不限制 | 否 | 空 |
| 距离单位输出为米 | 启用后强制距离输出单位为米,对应 GRASS 的 -m 标志 | 否 | 关闭 |
| 计算到最近 NULL 像元 | 启用后计算到最近 NULL 像元的距离,对应 GRASS 的 -n 标志;默认计算到最近非空像元 | 否 | 关闭 |
| 输出距离栅格文件 | 输出距离栅格。 | 是 | 空 |
| 输出属性栅格文件 | 保存最近目标像元的原始值;界面将该输出标为必填。 | 是 | 空 |
输入和输出
输入
目标像元必须是有效值,背景最好是 NoData。r.grow.distance 默认把所有非 NoData 像元当作目标,而不是只把值为 1 的像元当作目标。

输出
| 界面输出 | 可理解为 | 结果含义 |
|---|---|---|
| 输出距离栅格文件 | 最近距离栅格 | 每个像元到最近目标的距离,数值受距离度量和输出单位设置影响。 |
| 输出属性栅格文件 | 最近目标值栅格 | 每个位置最近的河流属于哪一种原始编号,不是距离。 |
例如,若河流栅格中的不同河流分别赋值 1、2、3,且其他位置为 NoData,距离栅格描述到最近河流的距离,目标值栅格则可用于识别最近河流的编号。这里以默认“最近非空像元”方式解释;启用“计算到最近 NULL 像元”后,距离目标变为空值像元。
界面当前将两个输出控件均标为必填,尽管属性输出的提示文字称其可选;使用时请按界面要求填写,并检查生成结果。
使用步骤
- 打开【计算工具箱】→【GRASS GIS】→【栅格工具】→【形态学】→【最近距离计算】。
- 选择已准备好目标与 NoData 背景的输入栅格,设置距离度量、距离阈值和单位。
- 按界面要求设置两个输出位置,运行后检查距离与目标值栅格。
使用示例
示例项目 grass-栅格扩展(GROW距离) 使用平山样区 aoi_15km_worldcover_2021_30m.tif ,该栅格仅有水体属性,值为80,使用默认欧氏距离euclidean,得到 distance_2f446cdf.tif(项目统计 0–157.61)与 属性(80),均为 EPSG:3857、470 × 417。该案例计算到土地覆盖栅格非空像元的距离,不代表到某一种土地类别的距离。

注意事项
- 确认输入栅格的坐标系、有效范围和 NoData;输出分辨率及边界会影响结果。普通距离默认使用地图单位,勾选“距离单位输出为米”时使用米;
squared是距离的平方,不应解释为普通米数。 - 本工具主要输出连续距离和最近目标值;栅格缓冲主要输出离散距离分带,两者结果含义不同。
技术参考
GRASS GIS 原生模块 r.grow.distance。