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。
二、参数选择:让线性体"迎光"还是"背光"
山体阴影对线性构造的增强效果高度依赖光照方向。经验做法是让太阳方位角与目标线性体走向近似垂直:走向为NE–SW的断层,若光照方位角取315°(NW)或135°(SE),断层崖一侧受光、一侧阴影,形成锐利的明暗界线;若光照方向与断层走向平行,则线性体几乎不可见。太阳高度角一般取30°~45°:过高则阴影短、对比弱,过低则阴影拉长、易与真实线性体混淆。
坡度图对陡坎、断层崖极为敏感——线性构造常表现为一条狭长的坡度高值带;坡向图则把坡面分成若干方位扇区,走向一致的两侧坡面在坡向图上呈现互补色带,是识别线性体走向的强有力辅助。实践中建议至少生成两组山体阴影:一组光照方位角315°、高度角45°,另一组方位角45°、高度角45°,两组交叉观察可避免单一光照方向造成的"伪线性体"误判。
三、实战操作:以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(纬度))进行校正,否则坡度与晕渲均失真。
完成上述派生与叠加后,线性构造在视觉上已具备明暗、坡度、坡向三重线索。下一步即可在此增强影像上开展线性体的人工解译或自动提取,并将解译结果与地质图、航磁等资料交叉验证。