6.6 KiB
6.6 KiB
DEM 数据下载指南
本文档介绍如何使用 makedem.py 下载和处理不同来源的 DEM 数据。
支持的 DEM 数据源
1. Copernicus DEM (默认推荐)
特点:
- 分辨率: 30米
- 覆盖: 全球 (60°S - 80°N)
- 数据质量: 高精度,全球一致性
- 下载方式: 自动从 AWS/OpenTopography 下载
- 费用: 免费
使用方法:
# 基本使用
python makedem.py -r 116/117/39/40 --dem-source copernicus
# 指定并行下载数量(加速下载)
python makedem.py -r 116/117/39/40 --dem-source copernicus --num-workers 8
# 指定输出目录
python makedem.py -r 116/117/39/40 --dem-source copernicus --dir /path/to/output
优点:
- ✓ 全自动下载
- ✓ 高精度数据
- ✓ 全球覆盖
- ✓ 支持并行下载加速
缺点:
- ✗ 需要网络连接
- ✗ 下载时间取决于网络速度
2. NASADEM
特点:
- 分辨率: 30米
- 覆盖: 全球 (60°S - 60°N)
- 数据质量: SRTM + ICESat 数据融合
- 下载方式: 通过 NASADEM Python 库自动下载
- 费用: 免费
依赖安装:
pip install nasadem rasters
使用方法:
# 基本使用
python makedem.py -r 116/117/39/40 --dem-source nasadem
# 指定输出目录
python makedem.py -r 116/117/39/40 --dem-source nasadem --dir /path/to/output
优点:
- ✓ 全自动下载
- ✓ NASA官方数据
- ✓ 融合多源数据,精度提升
缺点:
- ✗ 需要网络连接
- ✗ 首次下载可能较慢
- ✗ 需要额外安装库
- ✗ 覆盖范围小于 Copernicus (南北纬60°限制)
3. SRTM (需要预下载数据)
特点:
- 分辨率: 30米 (SRTM 1 arc-second) 或 90米 (SRTM 3 arc-second)
- 覆盖: 全球 (60°S - 60°N)
- 数据质量: 良好
- 下载方式: 需要手动预下载 .hgt 文件
- 费用: 免费
依赖安装:
# 注意: srtm库需要 Python >= 3.12
pip install srtm
# 检查Python版本
python --version # 应该显示 3.12 或更高版本
Python版本要求:
- srtm 库要求 Python >= 3.12
- 如果您的Python版本 < 3.12,建议使用 Copernicus 或 NASADEM
数据准备步骤:
-
下载 SRTM .hgt 文件
从以下网站之一下载所需区域的 .hgt 或 .hgt.zip 文件:
- CSI-CGIAR SRTM: https://srtm.csi.cgiar.org/ (推荐,无需注册)
- USGS EarthExplorer: https://earthexplorer.usgs.gov/ (需要注册)
- NASA EarthData: https://urs.earthdata.nasa.gov/ (需要注册)
-
文件命名规则
SRTM 文件按 1°×1° 分块命名:
N39E116.hgt→ 北纬39-40°, 东经116-117°N39W110.hgt→ 北纬39-40°, 西经110-109°S10E120.hgt→ 南纬10-9°, 东经120-121°
-
数据组织
将所有 .hgt 文件放在同一目录下,例如:
/path/to/srtm_data/ ├── N39E116.hgt ├── N39E117.hgt ├── N40E116.hgt └── N40E117.hgt
使用方法:
# 指定SRTM数据目录
python makedem.py -r 116/117/39/40 --dem-source srtm --srtm-data-dir /path/to/srtm_data
# 注意:如果不指定 --srtm-data-dir,程序会报错并提示
python makedem.py -r 116/117/39/40 --dem-source srtm
# 错误: 使用 SRTM 数据源需要指定 --srtm-data-dir 参数
优点:
- ✓ 离线使用(数据预下载后)
- ✓ 不依赖实时网络下载
- ✓ 数据源多样化
缺点:
- ✗ 需要手动下载数据文件
- ✗ 需要自行管理数据文件
- ✗ 需要确保覆盖目标区域的所有分块
- ✗ srtm 库对 .hgt.zip 压缩文件支持不稳定,建议解压后使用
使用建议
推荐使用顺序:
-
首选: Copernicus DEM
- 全自动,高精度,全球覆盖
- 使用
--num-workers 8加速下载
-
备选: NASADEM
- 全自动,NASA官方数据
- 适合北纬60°以南,南纬60°以北区域
-
离线环境: SRTM
- 仅在无网络环境或已有SRTM数据时使用
- 需要提前准备数据文件
性能对比:
| DEM源 | 下载速度 | 数据精度 | 全球覆盖 | 离线使用 | 推荐指数 |
|---|---|---|---|---|---|
| Copernicus | ★★★★☆ | ★★★★★ | ★★★★★ | ✗ | ★★★★★ |
| NASADEM | ★★★☆☆ | ★★★★☆ | ★★★☆☆ | ✗ | ★★★★☆ |
| SRTM | N/A (离线) | ★★★★☆ | ★★★☆☆ | ✓ | ★★★☆☆ |
常见问题:
Q: 如何确定需要下载哪些 SRTM 文件?
A: 根据目标区域范围计算所需文件:
# 示例: 区域 116/117/39/40 (东经116-117°, 北纬39-40°)
west, east, south, north = 116, 117, 39, 40
# 需要下载的文件:
# N39E116.hgt (39-40°N, 116-117°E)
# 如果区域更大,需要下载多个文件
Q: SRTM .hgt.zip 文件可以直接使用吗?
A: srtm 库对压缩文件支持不稳定,建议先解压:
cd /path/to/srtm_data/
unzip "*.hgt.zip"
Q: 如何加速 Copernicus DEM 下载?
A: 增加并行下载数量:
# 默认使用 4 个线程
python makedem.py -r 116/117/39/40 --dem-source copernicus --num-workers 4
# 加速到 8-16 个线程(根据网络情况调整)
python makedem.py -r 116/117/39/40 --dem-source copernicus --num-workers 16
Q: 下载的数据格式是什么?
A: 所有DEM源最终都会转换为 GAMMA/ROI_PAC 格式:
.dem文件: 二进制高程数据 (big-endian for GAMMA).dem.par文件: 参数文件
示例工作流程
场景1: 处理Sentinel-1数据(推荐Copernicus)
# 1. 确定研究区域范围
# 使用 SLC 参数文件自动确定
python makedem.py -s /path/to/slc.par --dem-source copernicus --num-workers 8
# 或手动指定区域
python makedem.py -r 116/117/39/40 --dem-source copernicus --num-workers 8
场景2: 离线处理(使用SRTM)
# 1. 提前下载SRTM数据
# 从 https://srtm.csi.cgiar.org/ 下载 N39E116.hgt, N39E117.hgt 等
# 2. 组织数据
mkdir -p ~/data/SRTM
mv N*.hgt ~/data/SRTM/
# 3. 使用预下载数据生成DEM
python makedem.py -r 116/117/39/40 --dem-source srtm --srtm-data-dir ~/data/SRTM
场景3: NASADEM对比测试
# 下载Copernicus DEM
python makedem.py -r 116/117/39/40 --dem-source copernicus --dir ./copernicus
# 下载NASADEM
python makedem.py -r 116/117/39/40 --dem-source nasadem --dir ./nasadem
# 对比两个DEM文件
# 使用 GMT 或其他工具进行可视化和分析
参考资料
- Copernicus DEM: https://copernicus-dem-90m.s3.amazonaws.com/readme.html
- NASADEM: https://github.com/DFS-iData/NASADEM
- SRTM CSI-CGIAR: https://srtm.csi.cgiar.org/
- GAMMA Software: https://gamma-rs.ch/
最后更新: 2026-03-13 作者: iFlow CLI