数字高程模型(DEM)基础:DEM数据源介绍
做微观选址,第一件事就是搞地形。
地形数据不准,后面所有分析都是白搭。我见过太多项目,拿着粗分辨率DEM算出来的结果,到现场一看,山头位置都偏了。嗯,今天咱们就聊聊DEM数据源这件事。
三大主流DEM数据源
目前市面上常用的开源DEM数据,主要有三个来源。我挨个说说它们的脾气秉性。
| 数据源 | 分辨率 | 覆盖范围 | 垂直精度 | 发布年份 |
|---|---|---|---|---|
| SRTM | 30m / 90m | 全球(北纬60°~南纬56°) | ±16m | 2000年 |
| ASTER GDEM | 30m | 全球(北纬83°~南纬83°) | ±20m | 2009年(V3) |
| ALOS World 3D | 30m / 5m | 全球 | ±5m | 2015年 |
SRTM——老牌劲旅
SRTM是航天飞机雷达测图任务的产物。2000年那次任务,11天就扫了全球80%的陆地。说实话,这个数据到现在还是很多项目的首选。
我个人习惯,做平原和丘陵项目时,SRTM 30m完全够用。但要注意,它在陡峭山区会有一些空洞,尤其是峡谷和陡坡区域。我曾经在云南一个项目上,SRTM数据在河谷里直接缺了一块,后来用ALOS补上的。
关键点:SRTM的原始分辨率是1弧秒(约30m),但早期公开版本是3弧秒(约90m)。现在USGS网站可以直接下载30m版本,别下错了。
ASTER GDEM——覆盖最广
ASTER GDEM是日本METI和美国NASA联合发布的。它的覆盖范围比SRTM更广,南北纬83°以内都有数据。说白了,高纬度地区的项目,你只能选它或者ALOS。
但我要吐槽一下,ASTER GDEM的噪声比较大。我在内蒙古一个项目上对比过,ASTER的地形起伏明显比实测数据偏大,做出来的风资源评估偏差了5%以上。所以,如果你用ASTER,建议做一下平滑滤波。
注意:ASTER GDEM V3版本已经修复了很多空洞和异常值,但山区仍然存在条带噪声。下载后务必检查数据质量。
ALOS World 3D——精度之王
ALOS是日本的对地观测卫星,它的World 3D数据是目前开源DEM里精度最高的。垂直精度±5m,比SRTM好了一个量级。
为什么?因为ALOS用的是立体像对匹配技术,不是雷达干涉测量。说白了,它更像用两张不同角度的照片算高程,细节保留得更好。
我现在做复杂山地项目,基本只用ALOS 30m。虽然下载稍微麻烦点,但值得。有一次在贵州做项目,ALOS数据把山脊线上的小垭口都还原出来了,SRTM根本看不到这些细节。
小技巧:ALOS还提供了5m分辨率的版本(AW3D5),但需要付费。如果项目预算充足,强烈建议买。我在四川一个200MW项目上用过,机位点的高程误差控制在2m以内。
分辨率选择原则
分辨率不是越高越好。你想想看,30m的数据一个文件几百兆,5m的数据一个文件几个G。处理起来,电脑风扇呼呼转。
我的经验是:
- 平原地区(坡度<5°):90m分辨率足够。风资源变化平缓,没必要用高分辨率。
- 丘陵地区(坡度5°~15°):30m分辨率是标配。我一般用SRTM 30m或ALOS 30m。
- 复杂山地(坡度>15°):至少30m,最好用ALOS。如果做微观选址,建议用5m数据验证关键机位。
为什么会这样?因为地形对风速的影响,在陡峭区域是非线性的。30m和90m的DEM,算出来的加速比可能差20%。
数据下载与预处理
下载渠道我列一下:
- SRTM:USGS EarthExplorer(earthexplorer.usgs.gov)
- ASTER GDEM:NASA Earthdata(search.earthdata.nasa.gov)
- ALOS World 3D:JAXA官网(www.eorc.jaxa.jp/ALOS/en/aw3d30)
下载后,预处理是必须的。我一般做三步:
- 投影转换:把地理坐标转成投影坐标。微观选址一般用UTM投影,这样距离和面积才准。
- 空洞填充:SRTM和ASTER都有空洞。我用ArcGIS的"Fill"工具,或者用GDAL的插值方法。记住,空洞区域不要直接忽略,否则风场模拟会出错。
- 重采样:如果项目需要统一分辨率,用双线性插值或三次卷积。最近邻法别用,地形会变成马赛克。
预处理代码示例(Python + GDAL):
import gdal
# 打开DEM文件
dem = gdal.Open('input_dem.tif')
# 投影转换
warp_options = gdal.WarpOptions(dstSRS='EPSG:32650')
gdal.Warp('dem_utm.tif', dem, options=warp_options)
# 空洞填充(使用最近邻插值)
gdal.FillNoData(dem, maskBand=None, maxSearchDist=100)
# 重采样到30m
gdal.Warp('dem_30m.tif', dem, xRes=30, yRes=30, resampleAlg='bilinear')
避坑指南:我曾经在甘肃一个项目上,直接用原始DEM做风场模拟,结果发现机位点高程比实际低了8m。后来查出来是DEM的垂直基准不一致。SRTM用的是EGM96大地水准面,而项目要求的是WGS84椭球高。差了一个转换参数,整个项目白干了一周。所以,预处理时一定要确认高程基准。
知识体系总览
下面这张图,把DEM数据源的核心逻辑串起来了。你一看就明白:
嗯,DEM数据源这块,说白了就是根据项目地形条件选合适的源,然后做好预处理。别贪图省事用低分辨率数据,也别盲目追求高分辨率把自己电脑跑死。平衡,才是关键。