地形分析入门:如何使用DEM计算坡度、坡向与山体阴影?
很多人第一次做 DEM计算坡度、坡向与山体阴影,会觉得这只是三个按钮:点一下 Slope、点一下 Aspect、再点一下 Hillshade 就结束了。真正到了项目里,问题往往马上出现:坡度值明显偏大,坡向图一片杂乱,山体阴影很好看却和真实地貌不太对,拿去做滑坡判读或日照分析时更不敢直接用。
这篇文章不讲空泛概念,而是按一个真实 GIS 工作流来拆解:拿到一份 DEM 之后,先检查什么,再分别计算坡度、坡向与山体阴影,最后如何判断结果是不是可信。你如果正在做山区道路选线、滑坡敏感性分析、林地朝向统计,或者只是想把地形底图做得更专业,这套流程都能直接复用。
问题背景:为什么同一份 DEM,算出来的坡度和阴影会差很多
地形分析里最常见的误区,不是不会用工具,而是把 DEM 当成“只要有高程就能直接算”的普通栅格。实际上,DEM 的分辨率、投影坐标系、噪声水平和预处理状态,都会直接影响坡度、坡向与山体阴影结果。输入条件不稳,后面的专题图再漂亮也只是视觉结果,不一定能支撑分析判断。
比如同一个山区,如果你直接在经纬度坐标系下计算坡度,软件用的横纵单位就不是严格一致的米,结果很容易失真;如果 DEM 分辨率过粗,小沟谷会被抹平,坡向会变得过于概括;如果 DEM 含有局部噪声或建筑、树冠高程,山体阴影往往会出现碎斑,坡度统计也会被放大。真正稳妥的做法,是先把 DEM 当作分析模型来校验,再进入工具计算。

核心原理:坡度、坡向与山体阴影到底在算什么
坡度是地表变化有多陡
坡度描述的是地表在某个位置的倾斜程度。GIS 软件通常会读取中心像元周围的 3×3 邻域,估算东西和南北方向的高程变化率,再把这个变化率换算成角度或百分比。角度制更适合地形判读,百分比更常见于工程边坡和道路设计场景。
因此,坡度不是直接读取某个像元的高程值,而是读取“高程变化”。只要 DEM 中有尖峰、坑洞、台阶感,坡度图都会第一时间把这些问题放大出来。
坡向是坡面朝哪个方向倾斜
坡向表示最大下坡方向,通常以正北为 0 或 360 度,顺时针递增,东为 90 度,南为 180 度,西为 270 度。它常用于分析阳坡与阴坡、植被分布、积雪消融、坡面受光和建筑朝向。
要注意的是,平坦区域往往没有明确坡向,所以很多软件会把平地区域赋成空值,或者标成特定编码。你如果看到坡向图里有一大片“无方向”区域,不一定是算错了,也可能是区域本来就足够平。
山体阴影是用虚拟太阳照亮地形
山体阴影不是新的高程数据,而是基于 DEM、太阳高度角和太阳方位角生成的一张明暗渲染图。它本质上是一种可视化增强手段,能把地形起伏快速表现出来,所以在专题制图、底图增强、线划地貌判读里非常常见。
但也正因为它是光照模拟结果,所以太阳参数一改,山体阴影就会跟着变。它非常适合辅助判读,不适合单独作为定量分析依据。
一句话理解:坡度看陡缓,坡向看朝向,山体阴影看地形起伏的视觉表达;三者都依赖 DEM 质量,但用途并不一样。
实操前准备:先把这 4 件事检查清楚
1. 确认 DEM 是裸地高程还是表面高程
如果你手里的是 DSM,也就是包含建筑物和树冠顶部的高程模型,那么算出来的坡度和坡向会混入地物形态,尤其在城市和林区会很明显。做自然地形分析时,优先使用裸地 DEM 或 DTM 更稳妥。
2. 检查投影坐标系是否适合分析
坡度、坡向和山体阴影都依赖像元间的空间距离,所以尽量不要直接在地理坐标系下计算。更稳妥的做法是先把 DEM 投影到米单位的投影坐标系,再执行分析。对于国内项目,常见做法是统一到项目规定的高斯-克吕格或 CGCS2000 投影带。
3. 看分辨率是否匹配分析尺度
如果你要分析一个小流域的沟谷细节,30 米 DEM 往往不够;如果只是做省域地形分区,1 米 DEM 反而过重。分辨率太粗会漏掉地形细节,太细又容易把噪声放大。分辨率的选择,要和研究尺度、数据来源以及计算成本一起看。
4. 先浏览原始 DEM,识别明显异常
在正式计算前,建议先拉伸显示 DEM,看看是否存在孤立高值、条带、边缘缺值、拼接缝或大面积异常平坦区。因为这些问题在坡度图里通常会更明显,在山体阴影里也会非常刺眼,越早发现越省返工。
一步步计算:如何用 DEM 生成坡度、坡向与山体阴影
第一步:统一分析环境
无论你用的是 QGIS 还是 ArcGIS Pro,第一步都建议统一处理环境,包括投影、像元大小、分析范围和 NoData 区域。尤其在多源数据叠加时,先把 DEM 裁剪到研究区,再做坡度和坡向,结果更干净,也更节省算力。
如果研究区边界很复杂,建议先按行政区、流域或工程范围裁剪,再分析。这样可以减少边缘无效像元对可视化的干扰。
第二步:计算坡度
在 ArcGIS Pro 中可直接使用 Slope 工具,在 QGIS 里可以通过地形分析或 GDAL 相关工具完成。这里最关键的选择通常是输出单位。做专题制图、滑坡敏感性分级时,角度制通常更直观;做道路纵坡或工程限制判断时,百分比坡度有时更贴近业务表达。
结果出来后,不要立刻配色出图,先看几个区域是否符合直觉。比如山脊和谷地过渡是否自然,陡坡区是否连续,平地区域是否大体保持低值。如果坡度图充满椒盐噪声,先怀疑 DEM 本身,而不是急着怀疑分级配色。
第三步:计算坡向
坡向工具通常与坡度工具配套。输出后建议先用彩色环形色带渲染,这样更容易识别不同方向的坡面。比如南坡和北坡在山区生态分析里常常差异明显,用灰度色带反而不利于快速判读。
坡向图最常见的问题是读图困难。原因不是结果错,而是用户忘了它是方向角。更实用的做法,是按业务需求把坡向再分成北向坡、东向坡、南向坡、西向坡等几个大类,便于后续统计与叠加分析。
第四步:生成山体阴影
生成 Hillshade 时,最常见的太阳方位角设置是 315 度,太阳高度角常取 45 度左右。这是因为西北光照符合大多数人的地形视觉习惯,能让山脊和沟谷更容易分辨。但这不是绝对标准,若研究重点是特定坡面受光情况,可以按实际分析目标调整太阳参数。
山体阴影更适合与分层设色的 DEM、坡度图或土地利用图叠加使用。单独一张山体阴影图虽然立体感强,但信息维度有限;叠加后往往既保留数值表达,又保留地貌纹理。
结果验证:怎么判断 DEM 地形分析算得靠不靠谱
把坡度图和等高线或影像对照
如果研究区有等高线、正射影像或已有地形图,建议把坡度图叠加对照一下。正常情况下,坡度高值区应与陡坎、山脊两侧或深切沟谷相匹配;如果高值呈随机散点状,通常说明 DEM 有噪声或分辨率不匹配。
检查坡向是否符合主要地貌格局
在一条连续山脊两侧,坡向应该呈现相对稳定的方向分化。如果一段很规整的坡面被算出大量碎片化方向,往往说明表面太粗糙,或者 DEM 中存在异常高程波动。
用山体阴影检查拼接缝和伪影
山体阴影对地形细节非常敏感,所以也特别容易暴露数据问题。DEM 拼接缝、条带噪声、局部凹坑、孤立尖峰,在山体阴影里通常一眼就能看出来。很多时候,山体阴影不仅是出图工具,也是 DEM 质检工具。
| 结果现象 | 常见原因 | 优先处理方向 |
|---|---|---|
| 坡度图噪声很重 | DEM 含尖峰、坑洞或分辨率过细 | 先平滑或更换更稳的 DEM |
| 坡向图碎片化严重 | 表面不连续或小尺度噪声被放大 | 检查 DEM 质量,必要时做适度滤波 |
| 山体阴影出现明显条带 | 源 DEM 拼接缝或采集遗留噪声 | 回到原始数据阶段处理条带 |
| 整体坡度偏大或偏小 | 坐标系不合适或高程单位异常 | 检查投影、像元单位和 Z 值单位 |
| 平地区域也出现大量方向值 | 微小噪声被识别为坡面方向 | 分类前先设置平坦阈值或平滑处理 |
常见坑点:入门阶段最容易踩的 5 个问题
直接在经纬度坐标系下算坡度
这是最常见也最隐蔽的问题。因为地图能正常显示,所以很多人以为直接计算也没问题。实际上,经纬度是角度单位,和高程的米单位并不天然匹配,结果很容易出现系统性偏差。
把山体阴影当成分析结果
山体阴影适合表现地貌,不适合直接代表坡度大小或地形危险性。它更像“视觉放大镜”,帮助你看清地形纹理,而不是替代定量指标。
忽略 Z 因子或高程单位
如果 DEM 的平面单位和高程单位不一致,比如平面是米、高程是英尺,或来自某些历史数据时高程被缩放过,坡度结果会明显失真。做分析前先确认 X、Y、Z 三个方向的单位关系非常重要。
分辨率过细导致伪细节
高分辨率不等于高质量。如果数据本身精度有限,却强行上很细的像元,坡度图和坡向图通常会显得异常“丰富”,但这些细节很多只是噪声被强化出来的结果。
边缘效应没有提前处理
研究区边缘因为邻域不完整,坡度和坡向可能会出现异常值。实际项目里,常见做法是先适当扩边计算,再裁回研究区,或者在解释结果时剔除边缘若干像元。
工具对比:QGIS、ArcGIS Pro 和命令行各适合什么场景
QGIS 适合快速上手和开源工作流
如果你更偏向开源环境,QGIS 足够完成大多数 DEM 地形分析任务。它的优势是轻量、插件多、和 GDAL 生态衔接自然,适合教学、课题练习和中小型项目。
ArcGIS Pro 适合完整专题分析流程
ArcGIS Pro 在地形、水文、三维和制图联动方面更完整。如果后续还要继续做 Fill、Flow Direction、流域划分、地貌分级和版面制图,它的整套工作流衔接会更顺手。
GDAL 命令行适合批量生产
如果你要批量处理多个区县或多个时相的 DEM,命令行会更高效。像 gdaldem slope、gdaldem aspect、gdaldem hillshade 这类命令都很适合自动化脚本集成。
gdaldem slope dem.tif slope_deg.tif
gdaldem aspect dem.tif aspect.tif
gdaldem hillshade dem.tif hillshade.tif -az 315 -alt 45
这类命令的价值在于可重复和可批处理。真正上线前,建议先拿一个小区域试跑,确认投影、分辨率和输出单位都符合预期,再批量执行。
实践检查清单:开始计算前先过一遍
- 确认 DEM 是裸地高程,不是包含建筑和树冠的表面模型。
- 检查 DEM 是否已经转到适合分析的投影坐标系。
- 核对平面单位和高程单位是否一致。
- 根据研究尺度判断分辨率是否合适。
- 先浏览 DEM,排查条带、尖峰、坑洞和拼接缝。
- 裁剪研究区后再计算,减少无效边缘干扰。
- 坡度结果优先检查高值区是否与真实陡坡对应。
- 坡向结果优先检查主坡面方向是否连续。
- 山体阴影优先用于质检和制图增强,不单独代替分析结论。
FAQ:DEM 计算坡度、坡向与山体阴影时常见问题
坡度到底用度还是百分比更好?
看你的业务场景。做自然地形判读、滑坡分级、生态分析时,度数更直观;做道路设计、边坡工程或施工限制判断时,百分比表达更常见。关键不是哪种绝对更好,而是全项目保持一致。
为什么坡向图里有些区域没有值?
通常是因为这些区域过于平坦,没有明确的最大下坡方向。很多软件会把这类像元设成空值或特殊编码,这属于正常现象。
山体阴影参数 315 度和 45 度是固定标准吗?
不是固定标准,只是常用默认值。315 度的西北光更符合多数人的视觉习惯,45 度的太阳高度角也较均衡。若你的任务是分析特定时段受光条件,可以根据需要调整。
DEM 需要先做平滑再算坡度吗?
不一定。只有在 DEM 噪声确实明显、并且已经影响坡度与坡向判读时,才建议做适度平滑。平滑过度会把真实地形细节一起抹掉,所以应谨慎使用。
山体阴影能不能直接拿来判断滑坡风险?
不能直接作为定量依据。它适合辅助识别地形形态和可疑地貌,但真正的滑坡风险判断,通常还需要结合坡度、地层、降雨、土地利用和历史灾害点等多种因子。
结论:把 DEM 地形分析做稳,关键在于先校验再计算
DEM计算坡度、坡向与山体阴影并不复杂,真正拉开结果差距的,往往是前面的准备和后面的验证。只要你先把数据类型、投影坐标系、分辨率和异常值检查清楚,再去运行坡度、坡向与山体阴影工具,结果通常就已经比“直接点按钮”可靠得多。
更实用的工作习惯是这样形成的:先把 DEM 当分析模型校验,再把坡度当定量指标、把坡向当方向属性、把山体阴影当质检与制图辅助。这样你得到的就不只是三张好看的图,而是一套能支撑 GIS 场景分析的地形工作流。