ArcGIS Pro实战:从零构建中国区高精度DEM全流程指南
当我们需要进行地形分析、水文模拟或三维可视化时,数字高程模型(DEM)是最基础的地理数据。但许多GIS从业者都遇到过这样的困境:公开的中国区DEM要么分辨率不足,要么存在边界缺失问题,而商业数据又价格昂贵。本文将带你使用ArcGIS Pro这一现代化工具,从NASA原始数据开始,完整实现中国区90米分辨率SRTM DEM的获取、处理与精确裁剪全流程。
1. 数据获取与前期准备
1.1 SRTM数据源选择
NASA的SRTM(Shuttle Radar Topography Mission)数据是目前应用最广泛的全球DEM数据之一,其优势在于:
- 免费公开:无需注册即可下载
- 分辨率适中:90米精度满足大多数分析需求
- 全球覆盖:包含陆地区域完整高程数据
推荐通过NASA官方合作的CGIAR-CSI平台获取数据,该版本经过插值处理填补了原始数据中的空缺值:
# 推荐下载地址 https://srtm.csi.cgiar.org1.2 中国区域数据块选择
中国地域辽阔,跨越多个经纬度区块。通过分析可知,只需下载6个30×30度的数据块即可完整覆盖中国全境(含南海诸岛):
| 数据块编号 | 覆盖区域 | 下载文件名示例 |
|---|---|---|
| N40E100 | 东北地区 | srtm_12_04.tif |
| N20E100 | 西南地区 | srtm_13_04.tif |
| N40E120 | 华北、华东地区 | srtm_12_05.tif |
| N20E120 | 华南地区 | srtm_13_05.tif |
| N00E100 | 南海西部 | srtm_14_04.tif |
| N00E120 | 南海东部及台湾地区 | srtm_14_05.tif |
提示:下载时建议选择GeoTIFF格式,这种格式能更好地保留空间参考信息。
2. ArcGIS Pro中的数据处理流程
2.1 数据导入与初步检查
在ArcGIS Pro中创建新项目后,通过以下步骤导入下载的SRTM数据:
- 打开"地图"视图
- 在"目录"面板中右键点击"文件夹连接"
- 导航到存储下载TIFF文件的目录
- 直接将TIFF文件拖拽到地图视图中
导入后应立即检查两个关键属性:
# 通过Python窗口快速检查空间参考 import arcpy desc = arcpy.Describe("srtm_12_04.tif") print(desc.spatialReference.name)2.2 多图幅无缝拼接
ArcGIS Pro提供了更强大的**镶嵌数据集(Mosaic Dataset)**功能来处理多图幅拼接:
- 在"目录"面板中右键点击项目数据库
- 选择"新建"→"镶嵌数据集"
- 设置输出位置和名称(如"China_SRTM")
- 在坐标系选择界面,建议使用WGS_1984_UTM_Zone_49N等适合中国区域的投影
添加栅格数据时,ArcGIS Pro的批量处理能力显著优于传统ArcMap:
- 可一次性选择全部6个TIFF文件
- 自动识别并统一像素类型(16位有符号整型)
- 提供实时预览功能确保拼接效果
3. 空间参考问题解决方案
3.1 常见问题诊断
在DEM处理过程中,最常遇到的两个技术难题是:
- 空间参考丢失:数据显示在错误的地理位置
- 像素值异常:高程值出现非预期的负值或极大值
ArcGIS Pro提供了更直观的问题诊断工具:
- 使用"栅格属性"面板检查坐标系信息
- 通过"直方图"工具查看高程值分布
- "识别"工具可查询任意位置的具体高程值
3.2 坐标系修复与统一
若发现空间参考问题,可按照以下步骤修复:
- 在"地理处理"面板中搜索"定义投影"工具
- 输入有问题的栅格数据集
- 选择正确的坐标系(通常为WGS84地理坐标系)
- 运行工具后立即验证结果
对于需要投影转换的情况,推荐使用投影栅格工具而非传统的定义投影:
# 投影转换示例代码 out_coordinate_system = arcpy.SpatialReference(32649) # WGS84 UTM Zone 49N arcpy.ProjectRaster_management("raw_dem", "projected_dem", out_coordinate_system)4. 精确裁剪与成果输出
4.1 边界矢量数据准备
精确裁剪需要高质量的边界矢量数据,应确保:
- 包含完整的国界线(含南海九段线)
- 坐标系与DEM数据一致
- 拓扑正确无缝隙
重要提示:使用权威来源的边界数据,避免使用网络来源不明的shp文件,这可能导致严重的边界问题。
4.2 ArcGIS Pro裁剪新方法
相比传统ArcMap,ArcGIS Pro提供了更高效的裁剪工作流:
- 在"分析"选项卡中点击"工具"
- 搜索"按掩膜提取"工具
- 输入栅格:处理好的DEM镶嵌数据集
- 输入掩膜数据:中国边界矢量多边形
- 设置输出位置和名称
对于大批量处理,可以使用Python脚本自动化:
# 改进版的裁剪脚本 import arcpy arcpy.env.workspace = "C:/DEM_Processing" arcpy.env.outputCoordinateSystem = arcpy.SpatialReference(4326) # WGS84 # 设置处理范围为中国边界 boundary = "China_Boundary.shp" arcpy.env.extent = boundary # 执行裁剪 output_dem = "China_DEM_90m.tif" arcpy.gp.ExtractByMask_sa("SRTM_Mosaic", boundary, output_dem) # 优化输出 arcpy.management.BuildPyramids(output_dem) arcpy.management.CalculateStatistics(output_dem)4.3 成果质量检查
完成裁剪后,应进行全面的质量验证:
- 检查边界是否完整包含所有领土
- 使用"剖面图"工具查看地形连续性
- 对比原始数据与成果数据的统计值
- 在不同缩放级别下检查显示效果
5. 进阶技巧与性能优化
5.1 处理大型栅格数据
当处理全国范围的DEM时,可能会遇到性能问题。ArcGIS Pro提供了多项优化方案:
- 金字塔构建:加速显示渲染
- 统计值计算:优化分析运算
- 分块处理:大区域可分省处理后再合并
5.2 高程异常值处理
SRTM数据中可能存在的异常值会影响分析结果,常见的处理方法包括:
- 空值填充:使用邻域平均值填补数据空缺
- 异常值修正:限制高程在合理范围内
- 平滑处理:减少数据噪点
ArcGIS Pro中的"栅格计算器"非常适合这类处理:
# 高程值修正示例 Con("China_DEM_90m.tif" < 0, 0, "China_DEM_90m.tif")5.3 多分辨率数据融合
对于需要更高精度的区域,可以考虑融合不同来源的DEM数据:
- 无人机或LiDAR获取的高精度数据
- ALOS World 3D 30米数据
- 本地测量数据
ArcGIS Pro的"栅格融合"工具可以智能处理不同分辨率数据的接边问题。
6. 实际应用案例
6.1 地形可视化
使用ArcGIS Pro的3D场景功能可以创建令人印象深刻的地形可视化:
- 新建"局部场景"项目
- 将处理好的DEM数据拖入场景
- 调整垂直夸大系数增强地形表现
- 应用色彩渐变渲染高程带
6.2 水文分析
基于DEM的水文分析是常见应用场景:
- 使用"填洼"工具处理DEM中的凹陷
- 计算流向和累积流量
- 提取河网和流域边界
- 模拟洪水淹没区域
# 简单水文分析流程 filled_dem = arcpy.sa.Fill("China_DEM_90m.tif") flow_direction = arcpy.sa.FlowDirection(filled_dem) flow_accumulation = arcpy.sa.FlowAccumulation(flow_direction) streams = arcpy.sa.Con(flow_accumulation > 1000, 1, 0)6.3 坡度与阴影分析
地形衍生指标计算:
- 坡度:评估地形陡峭程度
- 坡向:分析向阳面与背阴面
- 山体阴影:增强地形立体感
ArcGIS Pro中这些分析都可以通过"影像分析"面板快速完成。