第二章:数字高程模型(DEM)基础
各位同学好,我是老张。今天咱们聊聊DEM——数字高程模型。说实话,我刚开始接触导航系统时,觉得DEM不就是个地形高度图嘛,有啥好学的?直到第一次做地形匹配实验,数据对不上,飞机差点撞山……嗯,从那以后我再也不敢小看DEM了。
核心概念:数字高程模型(Digital Elevation Model,DEM)是用离散的数字形式表达地面高程的模型。说白了,就是把真实地形变成计算机能读懂的“数字地形图”。
2.1 DEM的定义:不只是“高度”那么简单
DEM的核心是“高程”。但你要注意,它和DSM(数字表面模型)有区别。DSM包含建筑物、树木等地面物体的高度,而DEM只反映裸地地形。我在做城市导航项目时,就吃过这个亏——用了DSM数据做地形匹配,结果高楼大厦全成了“山”,导航直接乱套。
DEM的数学本质是什么?它是一个二维函数:
z = f(x, y)
其中(x, y)是平面坐标,z是该点的高程值。实际存储时,我们不可能存下所有点,所以要用离散采样来近似。
我的经验:DEM精度不是越高越好。精度太高,数据量大,处理慢;精度太低,地形细节丢失。我一般根据应用场景选:做飞行器导航用30米分辨率就够了,做自动驾驶用1米甚至更高。
2.2 DEM的数据类型:栅格 vs TIN
DEM主要有两种存储方式:栅格DEM和TIN(不规则三角网)。这两种我都用过,各有千秋。
2.2.1 栅格DEM
栅格DEM就是把地形划分成规则的网格,每个网格存一个高程值。就像一张棋盘,每个格子记录高度。这是最常用的格式,SRTM、ASTER GDEM都是栅格。
栅格DEM的优点是结构简单,处理方便。缺点呢?你想想看,平坦地区用很多网格是浪费,陡峭地区网格又不够密。我曾经用30米栅格做山区导航,结果山谷细节全丢了,匹配误差大得离谱。
栅格DEM的存储格式:
// 一个简单的栅格DEM示例(ASCII格式)
ncols 100
nrows 100
xllcorner 120.0
yllcorner 30.0
cellsize 0.0003
NODATA_value -9999
1200 1205 1210 1215 ...
1203 1208 1213 1218 ...
...
2.2.2 TIN(不规则三角网)
TIN用不规则分布的三角形面片来逼近地形。说白了,就是在地形变化大的地方多用三角形,平坦的地方少用。这比栅格聪明多了。
我记得有一次做LiDAR数据处理,原始点云有上亿个点。如果用栅格存,要么精度不够,要么数据爆炸。用TIN就舒服多了——关键地形特征点保留,平坦区域大幅压缩,数据量只有原来的十分之一。
| 特性 | 栅格DEM | TIN |
|---|---|---|
| 数据结构 | 规则网格 | 不规则三角网 |
| 存储效率 | 低(平坦区浪费) | 高(自适应) |
| 计算效率 | 高(直接索引) | 低(需搜索三角形) |
| 地形表达 | 均匀采样 | 特征敏感 |
| 典型应用 | 区域分析、可视化 | 工程建模、水文分析 |
避坑指南:我曾经用TIN做地形匹配导航,结果发现TIN的三角形搜索太慢了,实时性跟不上。后来改成栅格DEM+插值,速度提升了一个数量级。所以,实时系统慎用TIN。
2.3 常见数据源:SRTM、ASTER GDEM、LiDAR
做地形辅助导航,数据源选择很关键。我这些年用过不下十种DEM数据,最常用的就这三个。
2.3.1 SRTM(航天飞机雷达地形测绘任务)
SRTM是2000年航天飞机用雷达扫出来的全球DEM。覆盖全球80%的陆地,分辨率有30米和90米两种。我最早做导航项目时,用的就是SRTM 90米数据。说实话,精度一般,但胜在免费、覆盖广。
SRTM的精度指标:
- 绝对垂直精度:±16米(90%置信度)
- 绝对水平精度:±20米(90%置信度)
- 数据版本:SRTM1(30米)、SRTM3(90米)
我的习惯:做全球导航系统原型验证时,先用SRTM 90米数据。跑通了再换高精度数据。这样省钱又省时间。
2.3.2 ASTER GDEM(先进星载热发射和反射辐射计全球数字高程模型)
ASTER GDEM是日本METI和美国NASA联合发布的。分辨率30米,覆盖全球99%的陆地。比SRTM覆盖更广,但噪声也更大。
我记得有一次做青藏高原的导航测试,SRTM在雪山区有数据空洞,ASTER GDEM就好很多。但ASTER的局部误差也大,有些地方高程偏差能到20米。所以我的建议是:两个数据源交叉验证,取长补短。
ASTER GDEM的版本演进:
- GDEM1(2009年):原始版本,噪声较多
- GDEM2(2011年):改进算法,精度提升
- GDEM3(2019年):进一步优化,覆盖更全
2.3.3 LiDAR(激光雷达)
LiDAR是精度最高的DEM数据源。用激光扫描地面,点云密度能达到每平方米几十个点,高程精度厘米级。当然,价格也贵得离谱——一次机载LiDAR扫描,费用几十万起步。
LiDAR数据的处理流程:
1. 原始点云获取(激光扫描)
2. 点云滤波(去除噪声、建筑物、植被)
3. 地面点分类
4. 插值生成DEM(栅格或TIN)
5. 精度验证
关键点:LiDAR点云滤波是门手艺活。我见过有人直接用原始点云插值,结果树冠全成了地形,做出来的DEM跟DSM似的。正确的做法是先分类,只保留地面点。
三种数据源的对比:
| 数据源 | 分辨率 | 精度 | 覆盖范围 | 成本 | 适用场景 |
|---|---|---|---|---|---|
| SRTM | 30-90米 | ±16米 | 全球80% | 免费 | 区域导航、初步分析 |
| ASTER GDEM | 30米 | ±20米 | 全球99% | 免费 | 高纬度、山区补充 |
| LiDAR | 0.5-2米 | ±0.15米 | 局部区域 | 高 | 高精度导航、工程应用 |
2.4 本章知识体系
下面这张图是我自己画的,把DEM的核心知识点串起来了。你一看就明白:
这张图把DEM的核心要素都串起来了。你仔细看,从定义到数据类型,再到数据源,最后落到选择原则——这就是我做DEM选型时的思考框架。
最后说一句:DEM是地形辅助导航的基石。数据选对了,后面事半功倍;选错了,后面全是坑。我建议你先把SRTM和ASTER GDEM都下载一份,对比着看看,感受一下不同数据源的差异。等真正做项目时,心里就有数了。
公众号:蓝海资料掘金营,微信deep3321