第二章:数字高程模型(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 定义:z = f(x,y) 数据类型 常见数据源 裸地地形,不含植被建筑 离散采样近似连续地形 栅格DEM TIN 规则网格,结构简单 平坦区浪费,陡峭区不足 不规则三角网,自适应 存储高效,搜索较慢 SRTM ASTER GDEM LiDAR 30-90米,免费全球 30米,覆盖更广 厘米级,局部高精度 选择原则:精度 vs 覆盖 vs 成本 根据应用场景权衡取舍

这张图把DEM的核心要素都串起来了。你仔细看,从定义到数据类型,再到数据源,最后落到选择原则——这就是我做DEM选型时的思考框架。

最后说一句:DEM是地形辅助导航的基石。数据选对了,后面事半功倍;选错了,后面全是坑。我建议你先把SRTM和ASTER GDEM都下载一份,对比着看看,感受一下不同数据源的差异。等真正做项目时,心里就有数了。


公众号:蓝海资料掘金营,微信deep3321