news 2026/5/13 13:37:12

【Arcgis实战技巧】巧用DOM目视解译,从DSM中精准“挖”出地面高程点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Arcgis实战技巧】巧用DOM目视解译,从DSM中精准“挖”出地面高程点

1. 为什么需要从DSM中提取地面高程点?

在测绘和地理信息领域,数字表面模型(DSM)记录了地表所有物体的顶部高程信息,包括建筑物、树木、电线杆等。但很多时候我们需要的是数字高程模型(DEM),也就是纯粹的地面高程数据。比如在做洪水模拟时,需要知道河水会淹没到哪个高度,这时候如果使用包含建筑物的DSM数据,就会导致模拟结果严重失真。

我去年参与过一个城市内涝分析项目,当时客户提供的无人机航测数据只有DSM。直接使用这些数据做分析,结果发现整个城市都会被"淹没",因为DSM里的高楼大厦都被当成了地面高程。这就是为什么我们需要从DSM中"挖"出真实地面高程点的原因。

2. DOM和DSM的黄金组合

2.1 理解DOM和DSM的关系

DOM(数字正射影像图)和DSM就像是一对孪生兄弟。DOM提供了高分辨率的二维影像,而DSM则记录了每个像素对应的高度值。在实际操作中,我发现将两者叠加使用效果最好:

  1. 先在ArcGIS中加载DOM作为底图
  2. 然后将DSM以半透明方式叠加在上面
  3. 最后调整透明度,一般在30%-50%之间视觉效果最佳

这样操作后,你就能同时看到地物影像和它们的高度信息。我习惯用这种组合方式来识别哪些是建筑物,哪些是树木,哪些才是真实的地面。

2.2 目视解译的关键技巧

目视解译听起来简单,但要做到精准需要掌握几个技巧:

  • 阴影观察法:建筑物在DOM上通常会有明显的阴影,特别是在上午或下午拍摄的影像中。通过阴影方向可以判断建筑物的轮廓。
  • 纹理分析法:植被在DOM上呈现不规则的纹理,而人工建筑则会有规则的几何形状。
  • 高度突变检测:在DSM上,地面到建筑物的高度会突然变化,这种突变点往往就是建筑物的边缘。

我常用的一个技巧是先在DOM上画一个多边形把建筑物圈出来,然后到DSM上检查这个区域的高度值。如果发现内部高度基本一致,而边缘有突变,就基本可以确认这是建筑物。

3. ArcGIS中的实操步骤

3.1 数据准备和预处理

在开始提取高程点前,有几个准备工作要做:

  1. 坐标系统一:确保DOM和DSM使用相同的坐标系统。我遇到过因为坐标系不匹配导致两者偏移几十米的情况。
  2. 范围裁剪:如果数据量很大,建议先裁剪出工作区域。可以使用"Extract by Mask"工具,用研究区的边界shp文件来裁剪。
  3. 金字塔构建:为了提高显示效率,建议为DOM和DSM都构建金字塔。在图层属性→常规选项卡里可以找到这个选项。
# 示例:使用ArcPy裁剪DSM import arcpy from arcpy.sa import * # 设置工作空间 arcpy.env.workspace = "C:/data" # 使用掩膜提取 outExtractByMask = ExtractByMask("dsm.tif", "study_area.shp") outExtractByMask.save("dsm_clip.tif")

3.2 交互式选点技巧

在ArcGIS中提取地面点,我推荐使用"Create Features"工具条中的"Point"工具。这里有几个实用技巧:

  • 采样策略:不要在建筑物阴影区域选点,这些地方DSM值可能不准确。
  • 密度控制:平坦区域可以少取点,地形变化大的区域要多取点。
  • 验证方法:选点后立即查看属性表中的高程值,与周边点比较是否合理。

我习惯每100米至少取一个点,在地形转折处增加到每20-30米一个点。对于面积约1平方公里的区域,通常需要采集200-300个地面点才能保证精度。

4. 精度验证与质量控制

4.1 交叉验证方法

提取完地面点后,必须进行精度验证。我常用的方法有:

  1. 实地对照法:选择部分点位,用RTK测量实际高程进行比对。
  2. 影像反查法:在Google Earth等平台上查找对应位置的高程数据进行比对。
  3. 统计分析:计算提取点的高程与周边DSM值的标准差,异常大的标准差可能意味着选点错误。
# 示例:计算高程点与周边DSM的差异 import numpy as np # 假设points是提取的高程点数组 # dsm_values是对应位置的DSM值 differences = points - dsm_values mean_diff = np.mean(differences) std_diff = np.std(differences) print(f"平均差异:{mean_diff:.2f}米") print(f"标准差:{std_diff:.2f}米")

4.2 常见错误及修正

在实际工作中,我遇到过几个典型问题:

  • 建筑物边缘误判:有时候建筑物阴影会误导选点。解决办法是在DSM上查看剖面图,确认高度变化是否突然。
  • 植被误认为地面:低矮灌木在DOM上不易识别。可以通过检查NDVI指数或使用多季节影像对比来识别。
  • 高程异常值:有时候DSM数据本身会有噪点。建议设置合理的高程范围阈值,超出范围的直接剔除。

有一次项目中发现提取的高程点整体偏高,后来发现是因为DSM数据没有去除植被影响。最后我们改用冬季拍摄的DOM影像重新选点,问题才得到解决。这个教训告诉我,选择合适季节的影像非常重要。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 13:35:13

SAP IM投资管理:从后台配置到前台应用的实战指南

1. SAP IM投资管理模块入门指南 第一次接触SAP IM模块时,我被这个看似复杂但功能强大的系统深深吸引。IM(Investment Management)投资管理模块是SAP系统中专门用于管理企业资本性支出的核心组件,它能够帮助企业实现从预算分配到最…

作者头像 李华
网站建设 2026/5/13 13:34:06

嵌入式系统演进:从资源受限到异构计算与开源生态的工程实践

1. 嵌入式系统演进脉络与核心挑战从微控制器诞生那一刻起,嵌入式系统这个行业就宣告了自己的存在。最初,它的任务简单直接:控制机器。但就像任何有生命力的技术一样,它拒绝被局限在单一领域。通信技术的融合,像一股强大…

作者头像 李华
网站建设 2026/5/13 13:33:24

lsusb命令实战:从设备排查到驱动调试的完整指南

1. 认识lsusb:你的USB设备诊断利器 第一次接触Linux系统下的USB设备管理时,我对着插上去没反应的U盘发呆了半小时。直到老同事轻飘飘地扔来一句"试试lsusb",才打开了新世界的大门。这个看似简单的命令,实际上是排查USB…

作者头像 李华
网站建设 2026/5/13 13:33:23

通过模型广场快速选型并测试不同大模型的实际效果

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过模型广场快速选型并测试不同大模型的实际效果 对于开发者而言,选择合适的大模型进行应用开发或技术验证&#xff0…

作者头像 李华
网站建设 2026/5/13 13:32:10

CMake实战:一个项目如何同时生成Debug和Release两个可执行文件?

CMake实战:单次构建同时生成Debug与Release双版本可执行文件 在持续集成和自动化构建场景中,频繁切换CMAKE_BUILD_TYPE重新配置项目不仅低效,还会增加维护成本。本文将介绍如何通过CMake的多目标配置技术,实现单次构建同时生成my…

作者头像 李华
网站建设 2026/5/13 13:27:21

Eclipse框架:插件化架构与开发工具深度解析

1. Eclipse框架的起源与演进Eclipse最初由IBM及其子公司Object Technology International(OTI)在1999年启动开发,初衷是为WebSphere产品线提供更好的应用开发支持。这个完全用Java编写的平台,最初投入了40名开发人员和超过4000万美…

作者头像 李华