中文

Priority-Flood:一种用于数字高程模型的最优洼地填充与分水岭标记算法

数据结构与算法 2015-11-17 v1

摘要

洼地(或坑)是数字高程模型中被较高地形包围、无出口通向更低区域的低洼区。在 DEM 预处理中,常需将其填平至水平,如同地形不可渗透时流体将其填满一般。本文提出的洼地填充算法——称为 Priority-Flood——统一并改进了多位先前发表类似算法的作者的工作。该算法通过使用优先队列确定下一个要填充的单元,从 DEM 边缘向内淹没。所得 DEM 无洼地或数字堤坝:每个单元都保证能排出。该算法对整数和浮点数据均为最优,分别以 O(n) 和 O(n lg n) 时间运行。研究表明,一旦找到洼地后使用普通队列进行填充,可达到 O(m lg m) 时间复杂度,其中 m 不超过单元数 n。这是任何已知浮点洼地填充算法的最低时间复杂度。在测试中,该算法的改进变体比原始版本快至多 37%。此外,一个较旧但广泛使用的洼地填充算法的并行版本需要六个并行处理器,才能达到新算法改进变体在单个处理器上的运行时间。Priority-Flood 算法易于理解和实现:所附伪代码仅 20 行,所附 C++ 参考实现不足百行。该算法可处理不规则网格以及 4-、6-、8- 和 n-连通网格。它也可经调整用于标记分水岭,并通过渐进高程变化或洼地刻蚀来确定流向。在渐进高程变化情况下,该算法包含了先前工作未有的安全检查。

关键词

引用

@article{arxiv.1511.04463,
  title  = {Priority-Flood: An Optimal Depression-Filling and Watershed-Labeling Algorithm for Digital Elevation Models},
  author = {Richard Barnes and Clarence Lehman and David Mulla},
  journal= {arXiv preprint arXiv:1511.04463},
  year   = {2015}
}

备注

17 pages, 4 figures, 5 algorithms