面向海量DEM数据的高精度河道洪水淹没区生成方法技术

技术编号:8131291 阅读:422 留言:0更新日期:2012-12-27 03:44
一种面向海量DEM数据的高精度河道洪水淹没区生成方法,其针对海量DEM数据进行条带划分,并将条带中栅格行上连续多个淹没单元进行游程压缩存储,以降低数据量,最后采用压缩单元边界追踪方法提取淹没范围,从而实现了复杂地形条件下的淹没区生成。本发明专利技术将传统淹没源种子点填充方法改为栅格压缩存储和栅格边界追踪计算,使得较小的内存配置处理了较大的栅格数据量,同时避免了种子点填充法中的大量递归判断,提升了计算速度。本发明专利技术充分运用了数字地形分析和数据压缩存储技术,避免了种子填充法进行海量DEM数据淹没分析产生的问题,较好的解决了河湖复杂地形环境下的连通域分析,实现大范围、高精度河湖洪水淹没区的生成。

【技术实现步骤摘要】

本专利技术涉及水利信息
,具体是一种面向海量DEM数据的高精度河道洪水淹没区生成方法
技术介绍
我国是一个洪水灾害发生十分频繁的国家,每年因洪水导致的损失难以估计。产生洪水灾害有多种原因,平坦区域大面积降雨或河道上游来水下泄都可以导致洪水发生,其中以河道洪水淹没最为常见,这类淹没分析通常称为有源淹没分析。河道洪水淹没分析要解决的一个核心问题是要确定出错综复杂的连通区,尤其是河网水系发育繁茂的流域,这通常也是洪水发生频率较高的地区。随着空间信息技术的发展,基于数字化地形的洪水淹没预警与灾害评估已成趋势。数字化的洪水淹没分析是以数字高程模型(Digital Elevation Model, DEM)为基础,通过判断DEM中某网格高程值高于或低于设定的水位来确定当前网格是否被淹。若要精确地计算出流域内洪水淹没区,必须针对高分辨率DEM进行分析。实现DEM数据洪水淹没区生成的一种有效方法是直接扫描整个地形区域,设置或预处理获取与淹没有关的连通域,进而形成淹没区,但该方法操作繁琐,难以实现淹没范围自动提取,对于拓扑结构复杂的河流地形,人工处理工作量较大。另一种方法来源于图像处理中的种子填充法,通过给定的淹没源种子点按照四邻域或八领域进行扩散,较好的模拟了实际的地表径流淹没过程,可以自动提取相关的淹没连通区,较为成熟可靠,这也是目前使用的主流方法。DEM是以栅格形式存储的地形数据,其数据量与所存储的栅格场网格行列数相关,网格行列数越大则所要存储的数据量越大。当所存储的地形范围越大,或者其地形范围内数据精度越高,则DEM数据越大。以三峡库区淹没处理的规划方案为例,涉及面积约7. 9万平方公里,假如以I米分辨率地形进行计算,则DEM数据大小为79GB,这在当前主流个人计算机内存配置条件下难以一次性载人内存。当前大多数的洪水淹没分析方法都是基于种子点填充方法或其变形,该类方法的主要缺点是(I)必须将地形数据一次性载入内存,这将消耗大量内存资源由于无法预先自动判断洪水淹没范围,传统的基于种子点填充算法的淹没分析必须将DEM地形数据全部载入内存,而以栅格形式存储的地形数据极耗内存资源,以目前个人计算机内存配置条件,难以一次全部读入,严重限制了种子点填充淹没分析方法的实用性;(2)难以处理海量DEM数据由于受内存限制较明显,淹没源种子点填充的淹没分析方法难以处理海量DEM数据,因此无法处理大范围的淹没分析,或者无法处理高精度的地形数据,降低了淹没分析方法的适用范围;(3)即使对DEM数据进行分块处理,也需要多次重复读写数据块,效率低下受问题I和问题2的约束,一些改进的淹没源种子点填充方法是对海量DEM数据进行分块处理,即将海量DEM数据分块读取,在块内完成淹没源种子点扩散算法,将淹没源种子点扩散结果写入淹没分析结果文件,最后对块间各自淹没区进行连通性判断,其主要缺点为必须逐块遍历或额外建立块索引表,由于无法知道淹没区范围大小,每个数据块都会遍历到;必须进行繁琐的块间淹没区连通性判断;由于淹没分析结果数据没有保存在内存,多次重复文件读写难以避免,导致计算效率较低。因此,在进行海量DEM数据下的河道淹没分析时该方法仍然不是一个较优的选择。内陆河道洪水淹没分析必须同时满足高效、大范围、高精度和自动化,而当前的各种淹没分析方法是难以达到这一要求的。考虑到处理海量DEM数据的关键是既要避免大量耗时的文件读写操作,又要能在内存中有效的处理大数据量DEM,因此,本专利技术提供一种面向海量DEM数据的高精度河道洪水淹没区生成方法,以满足水利行业科研和产业的需求。
技术实现思路
本专利技术提供一种面向海量DEM数据的高精度河道洪水淹没区生成方法,可以解决上述技术问题,满足内陆河道洪水淹没分析的高效、大范围、高精度和自动化的要求。一种面向海量DEM数据的高精度河道洪水淹没区生成方法,包括如下步骤第一步、设定淹没源种子点、淹没水位和DEM条带划分行数,计算DEM条带总数和每个条带在DEM中的具体位置,构建一个空的栅格场结构;第二步、读取淹没源种子点所在条带的DEM数据,对条带中可能被淹没的网格进行压缩存储进栅格场;查找淹没源种子点所在的压缩单元,进行淹没区边界追踪,同时对追踪过的压缩单元进行标记;第三步、依条带向上和向下扩展,完成新条带压缩存储和边界追踪;第四步、若栅格场当前最上条带顶栅格行和最下条带底栅格行中都没有压缩单元被追踪过,或都已到达原DEM数据边界栅格行,则停止追踪,否则返回执行第三步;第五步、依条带逐栅格行扫描,查找只有一侧被追踪过的压缩单元,以该压缩单元另一侧为追踪起点进行追踪,实现洪水淹没区中孤岛的提取;第六步、将栅格场上被追踪的压缩单元生成一副淹没范围栅格图。如上所述的面向海量DEM数据的高精度河道洪水淹没区生成方法,所述第一步中设定淹没源种子点和淹没水位时,淹没源种子点坐标位于原DEM数据范围内,且淹没源种子点位置所对应的原DEM数据中的网格单元高程值小于设定的淹没水位。如上所述的面向海量DEM数据的高精度河道洪水淹没区生成方法,所述第一步中DEM条带划分行数远小于原DEM数据的总栅格行数,当划分到最后一个条带时,若原DEM上剩余栅格行数小于设定的条带行数,则将条带上不足的栅格行以空值补齐。如上所述的面向海量DEM数据的高精度河道洪水淹没区生成方法,所述第二步中读取淹没源种子点所在条带DEM数据具体方法为根据淹没源种子点所在的空间坐标X,y值,以及原DEM的最小最大坐标和网格行列数,计算淹没源种子点位于原DEM所在网格的行列号,然后通过条带参数计算得到该网格所属条带以及位于条带中的实际行列位置,最后读取DHM数据文件中位于此条带上的网格高程值数据。如上所述的面向海量DEM数据的高精度河道洪水淹没区生成方法,所述第二步中对条带中可能被淹没的网格进行压缩存储进栅格场的步骤具体为(I)在第一步构建的栅格场上,为每个栅格行构建一个空的压缩单兀链表,该链表的结点为压缩单元结构;(2)在淹没源种子点所在的条带上,按行进行遍历,依次将每个网格的高程值与给定淹没水位进行对比,若网格高程值小于给定淹没水位则表示该网格可能属于淹没区,称之为可能淹没网格;同时,对连续的几个可能淹没网格采用游程压缩编码技术进行压缩,生成一个压缩单元,该压缩单元结构标记了可能淹没网格在此栅格行上跨越的起始列和终止列;(3)在执行步骤(2)时,每生成一个新的压缩单元,则将该压缩单元插入到栅格场 中对应行的压缩单元链表尾部,完成条带数据的栅格压缩存储。如上所述的面向海量DEM数据的高精度河道洪水淹没区生成方法,第二步中查找淹没源种子点所在的压缩单元,进行淹没区边界追踪,同时对追踪过的压缩单元进行标记的步骤具体为首先,为当前条带每个栅格行设置一个标记数组,数组元素的个数是栅格行上压缩单元的两倍,每个压缩单元有左侧和右侧两个追踪参数,默认将所有的标记数组元素设置为false,即表示压缩单元左侧和右侧都未被追踪过;其次,计算出淹没源种子点位于DEM数据中的网格单元,根据该网格单元的行列号判定其所属的压缩单元,分别以该压缩单元左侧和右侧作为起始追踪边,按照四方向追踪法进行边界追踪,每追踪到某压缩单元的左侧或右侧,就将追踪到的压缩单元的左侧或右侧标记由false设置为t本文档来自技高网
...

【技术保护点】
一种面向海量DEM数据的高精度河道洪水淹没区生成方法,其特征在于包括如下步骤:第一步、设定淹没源种子点、淹没水位和DEM条带划分行数,计算DEM条带总数和每个条带在DEM中的具体位置,构建一个空的栅格场结构;第二步、读取淹没源种子点所在条带的DEM数据,对条带中可能被淹没的网格进行压缩存储进栅格场;查找淹没源种子点所在的压缩单元,进行淹没区边界追踪,同时对追踪过的压缩单元进行标记;第三步、依条带向上和向下扩展,完成新条带压缩存储和边界追踪;第四步、若栅格场当前最上条带顶栅格行和最下条带底栅格行中都没有压缩单元被追踪过,或都已到达原DEM数据边界栅格行,则停止追踪,否则返回执行第三步;第五步、依条带逐栅格行扫描,查找只有一侧被追踪过的压缩单元,以该压缩单元另一侧为追踪起点进行追踪,实现洪水淹没区中孤岛的提取;第六步、将栅格场上被追踪的压缩单元生成一幅淹没范围栅格图。

【技术特征摘要】
1.一种面向海量DEM数据的高精度河道洪水淹没区生成方法,其特征在于包括如下步骤 第一步、设定淹没源种子点、淹没水位和DEM条带划分行数,计算DEM条带总数和每个条带在DEM中的具体位置,构建一个空的栅格场结构; 第二步、读取淹没源种子点所在条带的DEM数据,对条带中可能被淹没的网格进行压缩存储进栅格场;查找淹没源种子点所在的压缩单元,进行淹没区边界追踪,同时对追踪过的压缩单元进行标记; 第三步、依条带向上和向下扩展,完成新条带压缩存储和边界追踪; 第四步、若栅格场当前最上条带顶栅格行和最下条带底栅格行中都没有压缩单元被追踪过,或都已到达原DEM数据边界栅格行,则停止追踪,否则返回执行第三步; 第五步、依条带逐栅格行扫描,查找只有一侧被追踪过的压缩单元,以该压缩单元另一侧为追踪起点进行追踪,实现洪水淹没区中孤岛的提取; 第六步、将栅格场上被追踪的压缩单元生成一幅淹没范围栅格图。2.如权利要求I所述的面向海量DEM数据的高精度河道洪水淹没区生成方法,其特征在于所述第一步中设定淹没源种子点和淹没水位时,淹没源种子点坐标位于原DEM数据坐标范围内,且淹没源种子点位置所对应的原DEM数据中的网格单元高程值小于设定的淹没水位。3.如权利要求I所述的面向海量DEM数据的高精度河道洪水淹没区生成方法,其特征在于所述第一步中DEM条带划分行数远小于原DEM数据总栅格行数,当划分到最后一个条带时,若原DEM上剩余栅格行数小于设定的条带行数,则将条带上不足的栅格行以空值补齐。4.如权利要求I所述的面向海量DEM数据的高精度河道洪水淹没区生成方法,其特征在于所述第二步中读取淹没源种子点所在条带DEM数据具体方法为根据淹没源种子点所在的空间坐标X,y值,以及原DEM的最小最大坐标和网格行列数,计算淹没源种子点位于原DEM所在网格的行列号,然后通过条带参数计算得到该网格所属条带以及位于条带中的实际行列位置,最后读取DEM数据文件中位于此条带上的网格高程值数据。5.如权利要求I所述的面向海量DEM数据的高精度河道洪水淹没区生成方法,其特征在于所述第二步中对条带中可能被淹没的网格进行压缩存储进栅格场的步骤具体为 (1)在第一步构建的栅格场上,为每个栅格行构建一个空的压缩单兀链表,该链表的结点为压缩单元结构; (2)在淹没源种子点所在的条带上,按行进行遍历,依次将每个网格的高程值与给定淹没水位进行对比,若网格高程值小于给定淹没水位则表示该网格可能属于淹没区,称之为可能淹没网格;同时,对连续的几个可能淹没网格采用游程压缩编码技术进行压缩,生成一个压缩单元,该压缩单元结构标记了可能淹没网格在此栅格行上跨越的起始列和终止列; (3)在执行步骤(2)时,每生成一个新的压缩单元,则将该压缩单元插入到栅格场中对应栅格行压缩单元链表尾部,完成条带数据的栅格压缩存储。6.如权利要求I所述的面向海量DEM数据的高精度河道洪水淹没区生成方法,其特征在于第二步中查...

【专利技术属性】
技术研发人员:沈定涛张煜谭德宝张治中叶松黄俊芦云峰
申请(专利权)人:长江水利委员会长江科学院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1