从DEM中提取堤坝?


14

我确实有1x1米的DEM和.las组成的.las中的原始LiDAR点云。我需要提取河堤(堤坝的最高点)到矢量特征(点,折线)。

对算法或现有工具有任何想法吗?

堤防在第一个图像上为浅灰色,下面是堤防示例区域的点云图像。在蓝色的河中心线。

堤堤为浅灰色

点云与堤防

从DEM提取线性特征的任何工具吗?

我相信我需要像ENVI的空间特征提取模块(第7页)之类的东西,但是没有ENVI的部分,因为我负担不起:)


1
您正在使用什么gis系统?
Hornbydd 2012年

商业版ArcInfo 10(SA,3D,地统计扩展)。开源-任何。
Tomek 2012年

1
我正在考虑一些想法,假设您有一条河流的矢量中心线,可以对其进行缓冲并用其掩盖DEM并设定值的阈值。假定堤防平行于河道。因此,您所使用的任何逻辑都必须足够聪明,以在堤防从河中“退缩”时捕获它们。
Hornbydd 2012年

不幸的是,堤防并不总是平行于河道,并且常常远离河道。我当时以为会出现一些算法?为了从DEM中提取线性特征,利用这种特征,我可以得出点云中的最高点。
Tomek 2012年

Answers:


8

这完全取决于您在哪里画线。无论如何,使用Spatial Analyst中可用的形态函数,尤其是阈值(执行“ <”和“>”本地操作)和“ RegionGroup”来识别和提取组件,可以轻松解决此问题。

尽管我无权访问DEM进行说明,但第一张图像几乎足以胜任该工作。例如,这是红色带的区域分组版本的序列(值的范围从0.0 =黑色到1.0 =白色),从阈值0开始,从左到右,从上到下,以0.02为增量移动:

堤防

(这些图像在此处进行了缩小以进行复制:所有分析都是在原始图像的分辨率下进行的。)

第二行开始时,堤防围绕黑色区域的边界出现(阈值= 0.08)。在第三行的开始处(阈值= 0.16),堤坝形成自己的分量(深蓝色),并且在这一点上可以很容易地提取为单独的网格或多边形(在边界检测步骤之后,它们的边界可以提取为折线) )。最后一行仅保留最宽的堤坝(阈值= 0.24及更大)。 您将需要选择一个适当的阈值以准确获得所需的内容。

在原始的DEM中,高程起着强度的作用,因此这些程序对DEM本身应同样有效。如果DEM具有较大范围(包括远离河流或堤防的地物),则可以选择相关特征作为与河流特征所在的组件相邻的那些特征。

可以通过应用小的腐蚀(负缓冲)和等效的膨胀(正缓冲)来消除RegionGroup发现的不需要的薄区域。可以根据大小标准(细胞总数或面积)排除不需要的小区域。通过将DEM与区域最大网格(使用堤坝作为区域)进行比较,可以找到每个堤坝上的最高点(如果确实需要)。


顺便说一下,此图像序列是在Mathematica 8 中生成的。以下是为希望采用此选项的用户提供的命令。

original = Import["http://i.stack.imgur.com/gV7Du.jpg"];
{r, g, b} = ColorSeparate[original];
frames = ParallelTable[Colorize[MorphologicalComponents[Binarize[r, t/100]], 
                       ColorFunction -> "ThermometerColors"], {t, 0, 30, 2}];
Rasterize @ TableForm[Partition[frames, 4]]

总时钟时间(导入图像后)为0.94秒,其中一半用于缩小和导出所有16张图像:形态运算趋于快速(这很好,因为LIDAR DEM可能很大)。


整个概念听起来不错,但是我不理解“ ...阈值(执行“ <”和“>”本地操作)”部分。您如何通过通用化(SA)工具集实现这一目标?
Tomek

@Tomek一个没有。请参阅逻辑工具集
ub

9

我阅读了有关该工作的各种算法(即,按照@Hornbydds 链接)。

我尝试了几次尝试,得出的最佳结果是SAGA提供的“标准地形分析”。这是我的工作以及原因:

堤防通常是河道附近的最高特征,因此我通过翻转DEM(MapAlgebra DEM * -1或夸大坡度-10)将其转变为河道。从这一点来看,我可以使用任何一种水文工具集(ArcHydro,HEC-GeoRas或SAGA水文工具)。我选择了SAGA /地形分析-化合物分析/标准地形分析,因为它只需点击几下即可生成河网。河网是我想要实现的目标,因为它会产生折线,这些折线表示水流的最佳路线,在堤防倒转的情况下,可以给出最高点。

生成的形状文件有点混乱(许多较小的折线),但是经过一些调整后,效果令人满意。另一个烦人的事是1个堤坝是由300条短折线组成的,但是我认为我会找到一些解决方法。

这是结果示例:

在此处输入图片说明

当然,这是一个很粗糙的解决方案,我可能会进一步调查该问题,但我认为值得分享。


5

以下内容与原始DEM的某种组合应有助于突出显示所需的栅格信息,而将其余信息丢弃。可以以不同的比例和邻域大小执行这些操作,以改善效果。

  • 重采样,然后邻里->过滤器:高通
  • 表面->曲率
  • 邻里->焦点统计:标准差
  • “相对高度” =(像素)-(邻域->焦点统计:中位数)
  • 反转,重采样,然后邻域->焦点流

完成此操作后,重分类和轮廓线应为堤防本身提供合理的轮廓。如果堤坝是平坡的,并且您想要更大的覆盖范围,则还可以尝试一些曲率和坡度之和,按一定比例缩放,甚至可以单独绘制坡度轮廓并将它们结合在一起。

这是有关使用Spatial Analyst从栅格DEM提取矢量山脊线的教程,该教程应非常适用:


我将看一下工具的组合-可能会得出一些好的结果。谢谢。如我所见,ESRI教程像我一样描述了+/-的过程:)太酷了。谢谢。
Tomek 2012年

0

我认为这可能只是答案的一部分,但也许您可以以给定的时间间隔/基于高程值从图像中绘制轮廓/多边形开始。我以为堤防应该具有更高的高程值,因此,如果将DEM转换为多边形,您可能会发现您感兴趣的区域由百分多边形表示。您还可以从简单地重新分类DEM开始,看看是否会产生您想要的结果。如果您有其他图像数据覆盖您感兴趣的区域,请尝试将其添加到图像分类中,看看是否有帮助。祝好运!!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.