地形地平线角计算
地形地平线角计算(r.horizon)根据高程栅格计算各像元在指定方向上的地形地平线仰角(Horizon Angle)。
功能说明
工具沿指定方向搜索地形,计算视线与地平面之间的地平线高度角。可用于研究地形遮挡及太阳辐射分析所需的地平线条件。
参数说明
| 参数 | 说明 | 必填 | 默认值 |
|---|---|---|---|
| 输入高程栅格 | 提供地形高程的栅格。 | 是 | 空 |
| 方向角 | 指定单方向计算的方向,单位为度;单方向使用时角度步长留空。 | 否 | 空 |
| 角度步长 | 多方向计算时相邻方向之间的角度间隔,单位为度。 | 否 | 空 |
| 起始角度 | 多方向计算的起始方向,与角度步长配合,单位为度。 | 否 | 0.0 |
| 结束角度 | 多方向计算的结束边界,单位为度;结束角本身不包含在内。 | 否 | 360.0 |
| 统一缓冲区 | 四周统一扩展读取高程的缓冲距离。 | 否 | 空 |
| 东侧缓冲 | 向东扩展读取高程的距离。 | 否 | 空 |
| 西侧缓冲 | 向西扩展读取高程的距离。 | 否 | 空 |
| 北侧缓冲 | 向北扩展读取高程的距离。 | 否 | 空 |
| 南侧缓冲 | 向南扩展读取高程的距离。 | 否 | 空 |
| 最大搜索距离 | 搜索地形地平线的最大距离,单位为米。 | 否 | 空 |
| 采样距离步长系数 | 控制沿视线搜索时的采样步长。 | 否 | 1.0 |
| 角度以度输出 | 启用后以度输出角度;未启用时以弧度输出。 | 否 | 关闭 |
| 使用罗盘方位 | 采用罗盘方向约定。 | 否 | 关闭 |
| 输出栅格文件夹 | 保存地平线结果的文件夹。 | 是 | 空 |
单方向与多方向
根据分析需求选择一种设置方式:
- 单方向:填写“方向角”,将“角度步长”留空。例如方向角填
0,仅计算 0° 方向,输出一张地平线角度栅格。 - 多方向:将“方向角”留空,填写“角度步长”,并按需调整“起始角度”和“结束角度”。例如起始角度
30、结束角度70、步长10,方向依次为 30°、40°、50°、60°,每个方向各输出一张栅格;70° 是结束边界,不包含在内。保持默认的 0°–360° 并将步长设为 30°,则对应 0°、30°……330° 共 12 个方向。
上面的多方向数列用于说明角度设置;实际输出文件及其方向后缀以运行结果为准。若同时填写“方向角”和“角度步长”,GRASS 原生模块将方向角用于方向偏移;为避免组合含义造成误解,常规多方向计算建议按上述方式将方向角留空。
方向角、起始角度、结束角度和角度步长均以度设置;“角度以度输出”控制的是结果栅格中地平线高度角的单位,不改变这些输入参数的单位。默认方向约定为东 0°、北 90°、西 180°、南 270°,逆时针递增;“使用罗盘方位”选项采用北 0°、东 90°的罗盘表示。
输出结果
输出地平线角度栅格;多方向计算可产生多张结果。默认角度单位为弧度,启用“角度以度输出”后使用度。
使用步骤
- 在【计算工具箱】的【GRASS GIS】>【栅格工具】>【地形分析】中打开【地形地平线角计算】。
- 选择高程栅格;单方向填写方向角,多方向则填写角度步长并设置起始、结束角度。
- 根据需要设置最大搜索距离及角度输出单位。
- 指定输出文件夹并运行,检查输出栅格。
使用示例
在线项目 grass-地形地平线角计算 使用 pingshan_dem_30m.tif(EPSG:3857),方向角为 0,最大搜索距离为 1000 米,除角度输出单位外其他选项保持默认。
关闭“角度以度输出”时,结果 pingshan_dem_30m_grass_r_horizon_1(1)..tif 的角度单位为弧度;开启该选项时,结果 pingshan_dem_30m_grass_r_horizon_2(1)..tif 的角度单位为度。两者均为 EPSG:3857 单波段栅格。

注意事项
- GRASS 默认方向从东为 0° 逆时针计量;启用罗盘方位时方向约定不同。
- 高程及最大搜索距离应以米为单位;缓冲区使用栅格坐标单位。
- 过小的最大搜索距离可能遗漏远处遮挡地形;边界附近也可能受输入范围限制。
- 多方向计算的结束角不包含在内;较小的角度步长会产生更多结果。
技术参考
计算引擎:GRASS GIS;底层模块:r.horizon。