3. 地形属性计算基础

在DEM地形分析中,坡度、坡向和曲率是最基础也最常用的三个一阶/二阶地形属性。它们共同刻画了地表在局部邻域内的倾斜程度、朝向和弯曲形态,是后续径流路径判读、光照分析、土壤侵蚀评估和地貌分类的输入基础。理解它们的数学定义与窗口算法,是正确解读GIS输出结果的前提。

三个属性的物理含义与参照约定

坡度(Slope)表示地表单元的最大倾斜角,通常以度或百分比表示,定义为水平面上最大高程变化率对应的反正切值。坡向(Aspect)表示最大坡降方向在水平面上的投影方位,即水流最陡下坡方向。本文及图示统一采用GIS中常见的约定:坡向以正北为0°,顺时针增加,正东90°、正南180°、正西270°;平地或洼地无明确坡向时通常赋值为-1。曲率(Curvature)描述地表二阶导数特征,常用剖面曲率(沿最大坡降方向的弯曲,影响流速加速或减速)和平面曲率(垂直于坡降方向的弯曲,影响水流汇聚或发散)来区分。

需要特别强调:坡度、坡向都是对“局部平面拟合”的近似,其数值强烈依赖计算窗口大小和算法。同一DEM用不同算法可能得到几度的坡度差异,在缓坡区甚至会造成坡向翻转,因此解读结果时必须知道所用算法与窗口。

Horn算法:3×3窗口的加权差分

Horn算法(也称Sobel型加权差分)是ArcGIS等软件的传统默认方法。它在以目标像元为中心的3×3窗口内,对东西、南北方向分别做加权差分,权重为边缘1、角点2,从而抑制噪声。设窗口内像元高程为z1…z9(左上为z1,按行排列,中心为z5),像元尺寸为cellsize,则:

dz/dx = ((z3 + 2*z6 + z9) - (z1 + 2*z4 + z7)) / (8 * cellsize)
dz/dy = ((z7 + 2*z8 + z9) - (z1 + 2*z2 + z3)) / (8 * cellsize)
slope = atan(sqrt((dz/dx)^2 + (dz/dy)^2)) * 180 / PI
aspect = 180/PI * atan2(dz/dy, -dz/dx)   # 再按北为0°顺时针归一化

Horn算法的优点是平滑性好、对随机噪声不敏感,适合中低分辨率、较平滑的DEM;缺点是会削平陡坎和山脊的尖锐特征,在陡崖附近坡度偏小。

Zevenbergen-Thorne算法:二阶差分与曲率

Zevenbergen-Thorne(Z-T)算法用3×3窗口拟合一个二次曲面 z = ax² + by² + cxy + dx + ey + f,通过最小二乘或差分求得各系数,从而同时得到坡度、坡向和曲率。其核心差分形式为:

D = ((z4 + z6)/2 - z5) / cellsize^2      # 东西二阶差分
E = ((z2 + z8)/2 - z5) / cellsize^2      # 南北二阶差分
F = (-z1 + z3 + z7 - z9) / (4 * cellsize^2)  # 交叉项
G = (-z4 + z6) / (2 * cellsize)          # 东西一阶
H = (z2 - z8) / (2 * cellsize)           # 南北一阶
slope = atan(sqrt(G^2 + H^2))
剖面曲率 ≈ -2*(D*G^2 + E*H^2 + F*G*H) / (G^2 + H^2)
平面曲率 ≈  2*(D*H^2 + E*G^2 - F*G*H) / (G^2 + H^2)

Z-T算法对地形起伏更敏感,能保留山脊、沟谷的弯曲信息,是计算曲率的常用方法;但它对DEM噪声也更敏感,在平坦区容易产生虚假的曲率波动。实际工作中常先用Horn算坡度坡向,再用Z-T算曲率,或对DEM先做轻度平滑。

3×3 移动窗口:从高程到坡度、坡向、曲率 z1z2z3 z4z5z6 z7z8z9 中心像元 z5 为待计算目标 坡度 Slope 最大高程变化率 → atan(√(G²+H²)),单位°或% 坡向 Aspect 最陡下坡方位,正北0°顺时针,平地记-1 曲率 Curvature 剖面曲率(加速/减速)· 平面曲率(汇聚/发散) Horn 加权差分 权重 1/2/1,平滑抗噪 适合坡度坡向,陡坎略被削平 Zevenbergen-Thorne 二次曲面 一阶+二阶差分,保留弯曲特征 适合曲率,对噪声更敏感

在GIS中的实现与结果解读

以QGIS为例,坡度、坡向可通过“栅格 → 地形分析 → 坡度/坡向”工具生成,算法下拉框中可选Horn或Zevenbergen-Thorne;曲率则使用“地形分析 → 曲率”工具,输出剖面曲率与平面曲率。在ArcGIS Pro中对应Spatial Analyst的Slope、Aspect、Curvature工具,Slope工具的参数设置里可指定算法。操作时需注意:DEM的坐标单位与高程单位要一致(如均为米),否则坡度会被错误缩放;投影坐标系下计算比地理坐标系更可靠,因为经纬度网格的像元实际尺寸随纬度变化。

解读结果时,坡度图应结合直方图判断流域整体陡缓:若大部分像元集中在0°~15°,说明以缓坡为主;若出现大量>35°像元,需检查是否为陡崖或DEM噪声。坡向图常用分类色环显示,北向坡(0°/360°附近)与南向坡(180°附近)在光照和植被上差异明显。曲率图中正值表示凸起(山脊、水流发散),负值表示凹陷(沟谷、水流汇聚),接近0为平直坡面。判读时应把曲率与坡度、坡向叠加,避免孤立看单一图层。

案例:某山地流域的坡度分布与坡向格局

假设某山地流域DEM分辨率为10 m,投影为UTM,高程范围约600~2100 m。用Horn算法计算坡度后,统计得到:0°~5°约占8%,5°~15°约占27%,15°~25°约占34%,25°~35°约占21%,>35°约占10%。这一分布说明流域以中坡为主,陡坡集中在山脊与河谷两侧,符合山地流域的典型特征。坡向统计显示南向坡(135°~225°)占比偏高,北向坡偏少,结合区域气候可推断南坡日照强、蒸发大,植被覆盖可能较稀疏。

进一步用Z-T算法计算剖面曲率,发现河谷底部剖面曲率为负(凹形,流速由陡转缓),山脊附近为正(凸形,流速加快),这与野外观察的冲沟发育位置一致。若把坡度>25°且平面曲率为负的区域叠加,可快速圈定汇水集中、侵蚀风险较高的坡面,为后续径流路径判读提供候选区。需要提醒的是,以上数值为教学示例的合理假设,实际项目应以真实DEM统计为准,并检查边缘像元、洼地和NoData对统计的干扰。

实用建议:计算前先填洼或标记洼地,避免坡向在平坦区出现随机跳变;输出坡度时同时保留度与百分比两版,便于与规范阈值对照;对曲率结果做3×3均值滤波可抑制噪声,但会削弱真实微地形,需权衡使用。