视域分析
根据高程栅格和观察点计算地形可视域,识别从观察位置可见的区域。
功能说明
工具利用地形高程判断观察点与目标位置之间的视线是否被地形遮挡。可设置观察高度、目标高度和视距,用于地形可视性分析。

参数说明
| 参数 | 说明 | 必填 | 默认值 |
|---|---|---|---|
| 输入高程栅格 | 表示地形高程的栅格。 | 是 | 空 |
| 观察点矢量 | 提供观察位置的单点矢量。 | 是 | 空 |
| 方向范围 | 可选水平角范围,格式为 最小角,最大角;从东为 0° 逆时针计量。 | 否 | 空 |
| 观察点高度 | 观察位置高出地面的高度。 | 是 | 1.75 |
| 目标点高度偏移 | 目标位置高出地面的高度。 | 是 | 0.0 |
| 最大距离 | 可视半径,-1 表示不限制;单位与栅格水平坐标单位一致。 | 是 | -1.0 |
| 折射系数 | 考虑大气折射时使用的系数。 | 是 | 0.14286 |
| 内存缓存(MB) | 计算可使用的内存大小,单位 MB。 | 是 | 500 |
| 考虑地球曲率 | 在计算中考虑地球曲率。 | 否 | 关闭 |
| 考虑大气折射 | 在计算中考虑大气折射。 | 否 | 关闭 |
| 二值输出 | 选择可见性二值输出。 | 否 | 关闭 |
| 输出高差 | 选择观察点与可见位置的高差输出。 | 否 | 关闭 |
| 输出可视域栅格 | 保存计算结果的位置和名称。 | 是 | 空 |
输出结果
工具每次运行输出一张可视域栅格,结果含义取决于选择的模式:
| 模式 | 设置 | 结果含义 |
|---|---|---|
| 角度输出 | “二值输出”和“输出高差”均关闭 | 根据 GRASS 官方说明,可见像元为相对观察点的垂直角(度),不可见位置为 NULL;90° 表示水平方向。 |
| 二值输出 | 开启“二值输出”,关闭“输出高差” | 可见为 1,不可见为 0;本示例结果统计范围为 0–1。 |
| 高差输出 | 关闭“二值输出”,开启“输出高差” | 可见位置表示目标位置与观察点之间的高程差;其数值可为正或负,使用高程单位。 |
应分别选择一种输出模式,不要同时启用二值输出和高差输出。空值和不可见位置应结合实际输出及图例检查,不应将空值误认为可见或零高差。
使用步骤
- 在【计算工具箱】的【GRASS GIS】>【栅格工具】>【地形分析】中打开【视域分析】。
- 选择高程栅格及包含一个有效点的观察点矢量,设置观察高度和最大距离。
- 指定输出栅格并运行,查看可视域结果。
使用示例
在线示例项目:grass-栅格计算(VIEWSHED)。
- 输入高程栅格:平山县
pingshan_dem_30m.tif(EPSG:3857)。 - 观察点矢量:
pingshan-point.pgv(1 个点,EPSG:4326)。 - 最大距离:
100000米;观察点高度:1.75;目标点高度偏移:0;内存缓存:2000MB;其余共同参数保持默认。
同一组输入分别运行三次:
| 模式 | 二值输出 | 输出高差 | 实际输出 |
|---|---|---|---|
| 角度 | 关闭 | 关闭 | pingshan_dem_30m_grass_r_viewshed_6.tif |
| 二值 | 开启 | 关闭 | pingshan_dem_30m_grass_r_viewshed_9.tif |
| 高差 | 关闭 | 开启 | pingshan_dem_30m_grass_r_viewshed_7.tif |
三个结果均为 EPSG:3857 单波段栅格。高差结果的统计最小值约为 -1097.05、最大值约为 330.85;这些统计值是本示例结果,不代表其他输入的取值范围。
以下截图用于展示不同输出模式;截图中的文件名以界面实际显示为准。
角度输出结果:

二值输出结果:

高差输出结果:

注意事项
- 观察点应位于高程栅格有效范围内;输入点图层应仅包含一个有效点。
- 观察高度和目标高度使用高程单位,最大距离使用栅格水平坐标单位。
- 默认计算反映输入 DEM 的地形遮挡;建筑物或植被等未包含在高程表面中的障碍物不会自动参与计算。
- 不同输出模式的像元含义不同,不应将默认角度结果直接当作二值结果。
技术参考
计算引擎:GRASS GIS;底层模块:r.viewshed。