4. 地形可视化增强实战

在DEM构造线性体提取流程中,原始高程栅格本身并不"显形"——它只记录每个像元的高程值,线性构造(断层崖、节理带、岩脉、线性沟谷)在灰度晕渲图上往往被地形起伏的整体明暗所掩盖。地形可视化增强的目的,是把高程的二阶或一阶导数信息转换为视觉上可辨识的明暗、色彩与方向纹理,让线性体在影像上"跳出来"。本节围绕山体阴影(Hillshade)、坡度(Slope)、坡向(Aspect)三个派生图层展开,并给出多图层叠加的实战配置。

一、三个派生量的物理含义与计算约定

三者都基于同一个3×3移动窗口对高程求偏导。设中心像元高程为 z₅,周围八邻域按行列排列,像元大小为 cellsize(如30 m),则:

  • 坡度:地表最大倾斜角,单位为度(0°~90°)。常用Horn算法:dz/dx = [(z₃+2z₆+z₉) − (z₁+2z₄+z₇)] / (8·cellsize),dz/dy 同理,slope = arctan(√((dz/dx)²+(dz/dy)²))。
  • 坡向:坡面朝向,即最大下坡方向的方位角,正北为0°,顺时针递增至360°,平坦区通常赋 −1。aspect = 180° + arctan2(dz/dy, −dz/dx),再归一化到0°~360°。
  • 山体阴影:模拟平行光照射地表的明暗,取决于太阳方位角(Azimuth,正北起顺时针)与太阳高度角(Altitude,水平面以上)。常用公式:Hillshade = 255 × [cos(zenith)·cos(slope) + sin(zenith)·sin(slope)·cos(Azimuth − Aspect)],zenith = 90° − Altitude,负值截断为0。
参照约定:全文方位角均以正北为0°、顺时针为正;坡度以水平面为0°。太阳方位角与坡向使用同一参照系,否则 cos(Azimuth − Aspect) 项会整体偏移,晕渲明暗关系错乱。

二、参数选择:让线性体"迎光"还是"背光"

山体阴影对线性构造的增强效果高度依赖光照方向。经验做法是让太阳方位角与目标线性体走向近似垂直:走向为NE–SW的断层,若光照方位角取315°(NW)或135°(SE),断层崖一侧受光、一侧阴影,形成锐利的明暗界线;若光照方向与断层走向平行,则线性体几乎不可见。太阳高度角一般取30°~45°:过高则阴影短、对比弱,过低则阴影拉长、易与真实线性体混淆。

坡度图对陡坎、断层崖极为敏感——线性构造常表现为一条狭长的坡度高值带;坡向图则把坡面分成若干方位扇区,走向一致的两侧坡面在坡向图上呈现互补色带,是识别线性体走向的强有力辅助。实践中建议至少生成两组山体阴影:一组光照方位角315°、高度角45°,另一组方位角45°、高度角45°,两组交叉观察可避免单一光照方向造成的"伪线性体"误判。

DEM 派生图层与线性构造增强关系 DEM 高程栅格 30 m 像元 3×3 移动窗口 求 dz/dx、dz/dy 山体阴影 Hillshade Az=315° / Alt=45° 坡度 Slope 0°~90°,单位:度 坡向 Aspect 0°~360°,正北起 断层崖一侧受光、一侧阴影 → 锐利明暗界线,线性体凸显 陡坎、断层崖呈狭长高值带 → 坡度异常带指示线性构造 两侧坡面呈互补方位色带 → 色带边界即线性体走向 多图层叠加显示策略(示例配置) 坡向(半透明,30%) 坡度(分级设色,50%) 山体阴影(底图,100%) ① 山体阴影作底图,提供地形立体感与明暗骨架; ② 坡度以半透明分级色叠加,突出陡坎高值带; ③ 坡向低透明度叠加,辅助判读线性体走向; ④ 叠加后线性体在明暗、色彩、方向三重线索下显现。 NW 光照315°

三、实战操作:以GDAL/命令行完成派生与叠加

以下示例假设已有投影一致的DEM(UTM,30 m),使用GDAL工具链完成计算。参数为教学示例值,实际应结合研究区纬度与目标线性体走向调整。

# 1. 山体阴影:太阳方位角315°,高度角45°,z因子1.0
gdaldem hillshade dem_utm.tif hs_nw.tif -az 315 -alt 45 -z 1.0 -compute_edges

# 2. 第二组光照(方位角45°),用于交叉判读
gdaldem hillshade dem_utm.tif hs_ne.tif -az 45 -alt 45 -compute_edges

# 3. 坡度(度)与坡向
gdaldem slope dem_utm.tif slope.tif -compute_edges
gdaldem aspect dem_utm.tif aspect.tif -zero_for_flat

# 4. 坡度分级设色(0-5,5-15,15-30,30-90 度)
gdaldem color-relief slope.tif slope_color.txt slope_rgb.tif

# 5. 叠加:以山体阴影为底,坡度半透明覆盖
gdalbuildvrt -separate stack.vrt hs_nw.tif slope_rgb.tif
gdal_translate -of GTiff stack.vrt stacked.tif

其中 slope_color.txt 为色带定义文件,每行"值 R G B",例如:

0   253 246 227
5   250 220 170
15  240 168 96
30  176 58 46
90  120 20 20
nv  200 200 200

叠加显示时,若在QGIS中操作,可将山体阴影置于底层并设为"多波段灰度",坡度图层置于上层、混合模式设为"正片叠底"、透明度30%~50%;坡向图层再以20%~30%透明度叠加。判断叠加是否成功,可观察三个指标:断层崖是否呈现连续的明暗界线;陡坎是否对应坡度色带的高值段;线性体两侧坡向是否呈互补色。若三者指向同一条线,则该线性体可信度高;若仅山体阴影出现而坡度、坡向无响应,则需警惕光照方向造成的伪线性。

四、常见问题与判读要点

  • 伪线性体:单一光照方向下,与光照垂直的微地形起伏会被夸大。解决方法是至少用两组正交光照(315°/45°)交叉验证。
  • 坡度饱和:陡崖区坡度接近90°,分级色带全部落入最高级,失去细节。可对坡度做对数拉伸或分段设色。
  • 坡向平坦区:平地坡向无定义,赋 −1 或 NoData,叠加时需设为透明,避免出现色块噪声。
  • z因子:高程单位与平面单位不一致时(如高程为米、平面为度),必须设置 z 因子(约1/cos(纬度))进行校正,否则坡度与晕渲均失真。
山体阴影、坡度、坡向均为派生图层,其质量完全取决于DEM本身。若DEM存在条带噪声、接边误差或植被冠层偏差,派生图层会放大这些误差并形成假线性体。叠加判读前应先检查DEM的平滑度与接边一致性。

完成上述派生与叠加后,线性构造在视觉上已具备明暗、坡度、坡向三重线索。下一步即可在此增强影像上开展线性体的人工解译或自动提取,并将解译结果与地质图、航磁等资料交叉验证。