ArcGIS下,DEM 数据空缺值处理

文章介绍了两种处理DEM数据空缺值的方法:一是使用其他高分辨率DEM数据进行镶嵌,优点是填充值可靠但可能导致分辨率不匹配;二是利用高程空填充函数进行插值,小区域效果好但大范围不适用。作者强调了根据具体需求选择合适的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于各种各样的原因,使用的项目区 DEM 数据存在空缺值,比如当我们使用 HMA 的高程数据时(8米空间分辨率),如下图所示,其中空白的图斑就是值缺失的部分,这里分享两种将空白区域填充起来的方法,以及各自的效果。

第一种方法:使用其他的 DEM 做栅格镶嵌。

第二种方式:使用栅格函数中的高程空填充函数

第一种方法 DEM 数据镶嵌

当 DEM 数据出现空值的时候,比如当我们使用 HMA 的高程数据时(8米空间分辨率),该数据的质量不是太高,空缺区域很多,所以我们可以使用30米的全球 DEM 数据与之镶嵌,最后填充空白区域的 DEM。

这种方法的优点是填充区域的值时较为可信,毕竟也是使用了现成的 DEM 数据,可以处理较大范围的空缺;缺点是是空间分辨率不匹配,一些小区域的空缺区域在填充完后会非常突兀。

1.1步骤

打开 ArcMap 或者 ArcGIS Pro,在工具箱中点击数据管理工具,找到栅格,然后在栅格数据集中使用镶嵌至新栅格工具。

然后就先添加有空缺值的栅格数据,然后再添加完整的其他 DEM 栅格数据。由于栅格数据重叠的部分会前后覆盖,同时覆盖关系由镶嵌运算符(下图橙色框选)确定,所以你的添加顺序不必和我一致,只要最后成功了就行。

最后点击确认运行工具即可。

1.2效果

效果如下:

左边是原始的 HMA 数据一景的截图,右边是镶嵌后的效果。

左:原始 DEM;右:镶嵌填充后

填充的效果在灰度图的状况下是难以肉眼区分的,将其转换为 Hillshade 就能看出端倪。

左:原始 DEM 的 Hillshade;右:镶嵌填充后 Hilshade

在转换为 Hillshade 可以明显看出区别了,就像给衣服的补丁,大区域的”补丁“还不错。

但是就像上面说的一样,小范围的空缺区域填充效果就不行了,道理很简单,使用较低的空间分辨率的数据(30米空间分辨率)去补全较高空间分辨率(8米),一个大的补丁贴在一个比自己还小的区域上面,就直接是平的且突兀。

我们放大看看细节就明白了:

  • 下面左图是原始数据转 Hillshade,在栅格图像的左上部分和下半部有整块的、或细碎的空缺区域;

  • 中间是使用30米 DEM 镶嵌后的结果,效果不太好,真的就像是一个补丁黏上去一样;

  • 右边使用的是下面会介绍的第二种方法,观感就好上了一些;

左:原始 DEM 的 Hillshade;中:镶嵌填充后 Hilshade;右:使用高程空填充函数修复的 Hillshade

第二种方法 使用高程空填充函数

这种方式是根据栅格现有的数据,以插值的方式将空缺区域填补上。

使用这种方法,小区域的填充效果看上去较为自然,但是填充的值完全没有依据,是算法填上去的,和真实的自然地理地物没有关系,也正是这个原因,所以大范围的空缺值就根本不能使用。

2.1步骤

打开 ArcMap 或者 ArcGIS Pro。

  1. ArcMap 点击最上方菜单栏的窗口,然后点击打开影像分析窗口;

  2. 点击添加函数(橙色框选部分)打开函数模板编辑器;

  3. 在编辑器中使用高程空填充函数(橙色框选部分),最后确认即可。

 

2.2效果

效果就像前面演示的一样,小区域的填补效果较为光滑,优于第一种镶嵌的方法。

左:原始 DEM 的 Hillshade;中:镶嵌填充后 Hilshade;右:使用高程空填充函数修复的 Hillshade

大范围的就非常不推荐了,因为效果如下,非常丑陋,可以明显看出是使用的插值方法来填充空缺区域。

最后

两种方法各有千秋,但是都不是万能的,看情况使用吧。

同时以上的优缺点是站在直观的看上去好不好来判断的,以及我使用这些 DEM 来建模效果和个人经验,至于其他方面,比如各类空间计算、栅格代数,那种效果更好就需要大家自己斟酌了。

关于 HMA 数据,整个的质量其实是比较低的,但是小范围使用还是非常不错的,因为空间分辨率确实很高。

### ArcGIS 中栅格数据空洞填补的方法 在ArcGIS中对栅格数据进行空洞填补是一项常见的操作,尤其是在处理像SRTM这样的高分辨率DEM数据时。由于这些数据可能存在NoData区域或空洞,因此需要采取适当的技术手段对其进行修复。 #### 方法一:邻域统计法 通过使用`Focal Statistics`工具可以实现基于局部窗口的统计数据计算,从而完成空洞区域的填充。此方法适用于较小范围内的空洞修补[^1]。 具体的步骤如下: ```python import arcpy from arcpy.sa import * arcpy.CheckOutExtension("Spatial") inRaster = r"C:\path\to\raster.tif" outFill = FocalStatistics(inRaster, NbrCircle(3, "CELL"), "MEAN", "DATA") result = Con(IsNull(inRaster), outFill, inRaster) result.save(r"C:\path\to\output_filled_raster.tif") ``` 上述脚本利用了Python中的`arcpy`模块调用了两个核心功能——`FocalStatistics`用于生成邻域均,而`Con`则负责条件判断并替换原图中的NoData像素。 --- #### 方法二:基于已知 如果空洞面积较大,则单纯依靠邻近像素可能无法获得理想效果。此时可采用更复杂的插算法,比如IDW (Inverse Distance Weighted)[^2] 或 Kriging 插技术。这种方法能够更好地估计大范围缺失的数据分布特性。 执行插前需先提取所有有效数作为输入样本点集,并将其转换成矢量格式再导入到Geostatistical Analyst扩展下的相应模型里运行预测过程。 --- #### 方法三:多源影像融合补充 当单一来源的数据难以满足精度需求时,考虑引入其他辅助层共同参与运算不失为一种策略。例如将ASTER GDEM V3与SRTM组合起来互相校正彼此间的缺陷部位[^3]。不过需要注意的是不同传感器间可能会存在一定偏差,在实际应用过程中应充分评估两者的匹配程度后再决定是否采纳此类方案。 另外还有一种简便快捷的方式就是直接运用现成表达式一次性解决多个要素的同时赋问题: ```sql Con(IsNull([raster]), FocalMean([raster], Rectangle, 3, 3), [raster]) ``` 这里采用了SQL语句形式表述逻辑关系以便于理解[^4]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MR.Sun961

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值