破洞多是无效值没被识别,先定位再决定补还是跳过
地形切完、在Cesium里打开,中间冒出一块或几块像被挖掉的空洞,这就是常说的破洞。它和起伏丢失、整体偏移都不同,破洞是局部缺数。多数情况下,破洞并不是切片软件把数据弄丢了,而是源数据里的无效值没有被正确识别,被当成真实高程参与了计算。先定位破洞来自哪一段数据,再决定是补洞还是让它留空,比盲目重切有效。

看破洞出现在哪。出现在数据范围的边缘,通常是裁剪或拼接留下的缺口,属于范围问题;出现在内部,成块或成片,多半是源数据的无效值造成的。还有一种是细线状的裂口,往往和瓦片边界或投影接缝有关。三类的位置特征不同,排查方向也不同,先把当前这一块归到哪一类。
分清类别之后,判断会快很多。边缘缺口回去查数据范围与裁剪边界,内部孔洞回去查无效值标记,细线裂口则去查接缝和坐标。用错方向,会在不相干的环节反复折腾。
归类时还有个细节值得留意,就是破洞边缘是渐变还是硬边。渐变过渡的多半是数值裁剪或插值留下的痕迹,硬边直角的更接近原始数据的边界。破洞的分布密度也有参考价值:零星几块更倾向于数据缺口,成片密集的则更可能是无效值没有被统一处理。看一眼边缘形态和分布密度,能帮你更快锁定方向。
高程栅格里,水域、阴影区、无回波的区域常常是空的,用一个特殊值标记为无效。如果这个标记值没有被识别出来,而是当作真实高程参与切片,就会出现两种情况:标记值是个很大的负数时,地形在该处被压出一个深坑;标记值参与统计时,会把整幅的动态范围拉大,让别处显得平。识别与不识别,结果差得很远。
还有一种情况是源数据本来就没有那一块,比如两幅影像之间没有重叠,或者补测区域尚未更新。这属于数据覆盖的缺口,不是处理环节造成的。区分办法是回看源数据在该位置的取值:若源数据本身为空,就是数据缺口;若源数据有值却被切没了,那才去查处理环节。
数据在采集时就有问题的情形也要考虑到。影像匹配失败的阴影区、雷达没有回波的区域、被云层长期遮挡的地块,源数据在那里本来就没有可靠高程。这类空缺不是处理能填补的,只能靠补测或借用相邻数据。把它和处理漏洞分开,才不会在一个填不满的地方反复投入精力。
还要留意分辨率的匹配问题。如果源数据的格网较粗,而目标展示要求较细,处理时会在粗格网之间做插值;插值方式不当,也可能在细节上留下类似空缺的地带。这类缺口通常不大,多分布在坡面的拐折处,要么换用更细的数据,要么调整插值方式,才能补得自然。
把源数据按位置重新看一遍,重点看破洞所在的那一小块。多数栅格文件会记录无效值的定义,可以在属性或元数据里找到。核对源数据的标记值与切片时的处理设置是否一致,两者对不上,就是它了。关于无效值的定义与读写方式,可以参考 GDAL 关于 NoData 的说明 来对照自己文件的实际取值。
定位时不要只看整幅的统计值,那会把局部问题平均掉。建议把范围缩小到破洞附近,单独看最小值、最大值与取值分布。局部数据里出现一个远离正常范围的极端值,基本就是无效值被漏处理的信号。
还可以借助一份对照数据来提速。如果手上有同区域、来源可靠的另一份高程数据,把它套上来看破洞位置的高程是否合理,能很快判断是数据缺失还是数值异常;没有对照数据时,退一步用邻域的值做参照,看空洞周边是否存在系统性的抬升或下沉。
补洞适合破洞不大、位置又关键的情况,比如正好落在建筑或道路所在的区域。常见做法是用邻域插值把空洞填上,或者用另一份同区域的数据补齐。补洞的前提是补进去的高程可信,若只是机械地拉平,反而会在现场造成错误的地面,宁可留空。
跳过适合破洞集中在水域、无人区、或本来就允许留空的地方。做法是在切片前把无效值明确标记出来,让处理流程把它们排除。需要按用途来定:只用于宏观浏览,跳过通常够了;要做工程计算或对地形连续有要求,就更倾向于补洞。两种都可以,关键是先想清楚这块地形是给谁用的。
无论选哪一种,都建议在做之前把无效值的范围明确下来,形成一条可复用的规则。规则一旦定好,下一次遇到同类数据可以直接套用,不必每次重新判断。团队协作时,把规则和适用边界写进成果说明,也能减少交接时的来回确认。
补洞还有一个常被忽略的收益,就是让后续的坡度、体积这类计算不至于在空洞处中断。不少分析工具遇到无效值会直接跳过整片区域,空洞看着只是视觉上的瑕疵,实际会让一整片统计结果变成空值。若成果还要用于分析、而不只是浏览,补洞的价值会更明显。
改完之后,不要只在出问题的那一块看,还要整体转一圈。先确认原来的破洞是否消失,再看有没有因为补洞而在别处引入新的高差突变。逐块复核成本不高,能避免按下葫芦浮起瓢。已经发布出来的服务,建议清一次缓存再重新加载,防止看到的是旧成果。
复核时建议把改动前后的成果各留一份,便于对照。一旦发现补洞反而让别处变差,可以快速回退到改动前,不至于连原本正常的成果一起弄丢。这份留档在多人协作时尤其有用,谁改的、改了什么,一目了然。
把地形服务从导入到发布走通的流程,可以在 GISBox 地形切片与发布教程 里对照检查,确认无效值处理这一步有没有漏配。想先用免费能力跑通链路的话,可以从 下载 GISBox 基础版 开始,拿一小块带空洞的数据试一遍。
按下面这个顺序走,能覆盖大多数破洞情形:
1)看破洞位置,区分边缘缺口、内部孔洞与细线裂口;
2)回查源数据在该位置的取值,判断是数据缺口还是处理漏洞;
3)核对无效值标记与切片设置是否一致;
4)按用途选择补洞或跳过,避免把不可信高程补进去;
5)整体复核一圈,并清缓存后重新加载确认。
这套顺序的价值在于每一步都能缩小范围。遇到反复排查不好的,可以在 GISBox 社区的问答区 搜同类现象,很多是别人已经踩过的坑。

不一定。要按用途定。只做宏观浏览、破洞又落在水体或无人区,留空通常可以接受。如果破洞在建筑、道路或工程关注区,而且后续要做量算,就倾向于补上,并且要保证补进去的值可信。
处理得当就不会。风险主要来自把不可信的值补进来。只要补洞只在空洞内部进行,不改变周围已有高程,且补值与邻域衔接自然,就不会波及别处。改完整体复看一圈即可确认。
一般不用。先确认这几块是不是集中在固定层级或行列号上,只重切并替换对应部分即可,成本低也便于验证。整块重切留到确实无法定位、或破洞分布已经零散到不成片时再说。
可以。地形切片(GeoTIFF 转 terrain)属于基础版免费功能,用它做破洞排查与重切没有问题。需要留意的是,定价页把“DEM 导入和下载”单列为企业版功能,两者是不同入口,具体以官网定价页当日展示为准。
如果处理完仍有个别区域对不上,多半要回到源数据侧核对覆盖范围与来源,可以先从 查看 GISBox 版本与免费范围 确认自己用的是哪一档能力,再决定下一步。

【内容与技术说明】
本文由GISBox产品团队整理发布,内容由AI工具辅助生成并经团队人工核验。
因产品版本持续迭代,具体功能、参数与免费范围以GISBox官方文档为准。
如有技术疑问或内容勘误,欢迎通过support@gisbox.com反馈。
最后核校:2026-10-16。