网站首页  词典首页

请输入您要查询的论文:

 

标题 基于DEM的有源洪水淹没分析算法
范文

    成静

    

    

    摘 要:近年以来,基于数字高程模型(Digital Elevation Model,DEM),将水动力模型与地理信息系统技术相结合,来计算、显示洪水淹没范围是水利应用领域的研究热点之一。洪水淹没模拟分为有源淹没和无源淹没两种情形,针对有源淹没递归算法计算效率低和稳定性不高的缺点,本文基于“栈”数据结构的特点,提出了一种基于淹没区缓冲堆栈的有源洪水淹没分析种子蔓延算法,实现了更为高效的有源洪水淹没分析,最后在江西省遂川县洪水淹没分析系统中进行了实践与验证。

    关键词:DEM;洪水淹没分析;GIS;算法

    我国是一个洪水灾害频繁发生的国家,近年来,随着中国社会经济的发展,洪水灾害造成的损失也日益严重,而准确的洪水预报与分析可以为防洪救灾方案的制定和指挥调度提供重要的科学依据。因此,在地理信息系统等新技术的支持下,研究、计算与模拟洪水淹没范围,已成为当前极有意义的研究课题。

    近年以来,基于数字高程模型(Digital Elevation Model,DEM),将水动力模型与地理信息系统技术相结合,来计算、显示洪水淹没范围是水利应用领域的研究热点之一。如刘仁义等人提出了“有源淹没”和“无源淹没”两种淹没区计算方法[1];许多学者采用递归的方法来计算洪水有源淹没范围[2],但是递归方法却具有计算效率低和稳定性不高的缺点;对此,本文基于“栈”数据结构的特点,提出了一种基于淹没区缓冲堆栈的有源洪水淹没分析种子蔓延算法,实现了更为高效的有源洪水淹没分析,最后在江西省遂川县洪水淹没分析与显示系统中进行了实践与验证。

    1 基于DEM的洪水淹没分析算法

    (1)数字高程模型(DEM)

    数字高程模型(Digital Elevation Model,DEM)描述了地表形态的时空分布,是地学分析和过程模拟的基础数据,已广泛应用于全球变化、环境保护、自然灾害等科学领域。随着对地观测技术的发展,各种全球尺度DEM 数据(如SRTM DEM、ASTER DEM 等)已向公众开放,为全球范围和区域规模的地学分析模拟提供了可靠的数据来源。DEM是由一系列的地面坐标点(x,y)以及对应的高程值z,对地表进行连续的描述表达,其数学函数式表达如下式所示:

    z=(x,y), (x,y)∈DEM 所在的区域

    (2)基于DEM的洪水淹没分析计算模型

    近年以来,基于数字高程模型(Digital Elevation Model,DEM),将水动力模型与地理信息系统技术相结合,来计算、显示洪水淹没范围是水利应用领域的研究热点之一。针对DEM进行的淹没分析可以分为“无源淹没”与“有源淹没”两种。

    无源淹没适用于大面积的地形平坦区域均匀降水的情况下计算洪水淹没区,无源淹没仅仅将区域降水量的大小作为影响因素,并没有考虑地形连通性的影响,处理过程相对简单。它的原理是遍历数字高程模型上每个点的高程值,只要该点的高程值小于给定洪水水位,即将其加入至淹没区域,从而计算出最终洪水淹没区域。

    有源淹没不仅仅考虑区域降水量的大小,还考虑到了地域连通性与水动力模型的影响,在洪水流动过程中,由于地形的阻挡,即使数字高程模型上某点的高程小于给定洪水水位,该点也不一定会淹没,例如环形山地形,对于无源淹没,环形山内外可能都会被淹没,而对于有源淹没,如果山外的洪水并没有淹没山顶,那么在环形山内部不能形成淹没区。因此,有源淹没更加符合实际的情况,但也更加复杂,考虑的因素要多于无源淹没。

    本文研究的种子蔓延算法属于有源淹没算法,它的基本原理是:从指定的种子点开始,向其相邻的各个方向的网格进行搜索,逐个网格进行处理,直到遇到边界。向不同方向进行搜索的方法包括“4-联通算法”和“8-联通算法”。从区域内任意一点出发,如果只是通过上、下、左、右四个方向搜索到达区域内的任意像素,则用这种方法填充的区域就称为四连通域,这种填充方法就称为“4-联通算法”。如果从区域内任意一点出发,通过上、下、左、右、左上、左下、右上和右下全部八个方向到达区域内的任意像素,则这种方法填充的区域就称为八连通域,这种填充方法就称为“8-联通算法”。在扫描过程中,如果网格属性值为1,则做标记不再向外扩散,如果在扫描过程中,网格属性值为0,则把该点作为新的种子点,并继续向其相邻的各个方向的网格进行遍历、处理。

    2 种子点蔓延算法的改进与实现

    (1)数据结构“栈”的定义

    栈(stack)又名堆栈,是在程序设计中一类非常重要的数据结构。栈是一种只能在一端进行插入或删除操作的线性表,其中,允许进行插入或删除操作的一端称为栈顶,它是动态变化的,相应的,表头端称为栈底,栈底是固定不变的。

    由栈的定义可以看出栈的特点,即“后进先出”,因此,栈也被称为“后进先出”的线性表。假设栈S=(a1,a2,a3,…,an),则称a1为栈底元素,an为栈顶元素。栈中元素按a1,a2,a3,…,an的次序进栈,则其退栈顺序应该为:an,…,a3,a2,a1。

    (2)种子蔓延模型算法——基于“栈”的种子遍历算法的设计与实现

    假设给定洪水水位为FloodLevel,洪水的淹没原点为RasterPoint(x,y),其周围的八个邻域点为RasterPoint(i,j),其中,x-1≤i≤x+1;y-1≤j≤y+1。

    基于“栈”的种子遍历的种子蔓延模型算法原理是:首先,初始化淹没区缓冲堆栈,从淹没原点开始,判断淹没原点RasterPoint(x,y)是否小于给定洪水水位FloodLevel,若RasterPoint(x,y) ≤FloodLevel,则将其标记为可淹没的栅格,并将其加入到淹没区缓冲堆栈中,然后搜索其周围的八个邻域栅格点,将小于给定洪水水位为FloodLevel,即满足条件RasterPoint(i,j) ≤FloodLevel的栅格加入到淹没区缓冲堆栈中,同时标记为可淹没的栅格,此时,弹出缓冲堆栈中的第一个元素,即RasterPoint(x,y),这时候,缓冲堆栈中的第一个元素应该为RasterPoint(x,y)邻域栅格中的一个,假设为RasterPoint(x+1,y+1),这样,第二次循环计算时候的淹没原点就是RasterPoint(x+1,y+1),这样重复第一次的计算即可。循环遍历淹没区缓冲堆栈中的所有栅格点,直至淹没区缓冲堆栈为空,运算结束,从而可以得到淹没区域的范围。图1为算法流程图。

    (3)实例应用——江西省遂川县洪水淹没模拟系统

    “江西省遂川县洪水淹没模拟系统”是利用C#语言,借助于ESRI的ArcGIS Engine平台,基于“栈”的种子遍历算法而开发出来的用于抗洪分析的决策系统。通过输入种子点坐标与淹没水位,获得淹没栅格单元并将其转化为矢量面从而计算出洪水淹没范围。并且借助ArcEngine中axGlobeControl控件以30米分辨率DEM作为高程数据源,以高分辨率卫星影像图作为叠加影像,生成全景三维地形场景,最终将淹没结果与三维场景叠加,生成三维场景下的山洪淹没结果。使得淹没模拟更加的逼真,可视性更强,为山洪决策提供更加良好的支持。图2为假设淹没原点在遂川县烟头村,预测洪水水位高程为20m时的淹没范围分析结果图。

    3 结语

    本文研究的基于“栈”的种子遍历算法,可以较为准确地计算出给定洪水水位条件下洪水淹没范围,相比以往研究中的递归算法,本文提出的改进算法可以极大提高程序的计算效率,节约系统资源,从而实现了更为高效的有源洪水淹没分析。但是,在实际的洪水淹没分析中,仍然需要考虑地形因素、气候因素、水动力模型的影响等等,因此,在未来的研究中,算法仍有很多条件需要考虑并改进,为科学的防灾救灾提供更加科学的决策依据。

    参考文献:

    [1]刘仁义,刘南.基于GIS的复杂地形洪水淹没区计算方法[J]. 地理学报,2001,01:1-6.

    [2]周品,李勇,谭建军,孙芹芹.基于DEM的洪水淹没计算机算法优化研究[J]. 微计算机信息,2007,03:196-198.

    [3]汤国安. 数字高程模型教程[M].科学出版社, 2010.

    [4]严蔚敏, 李冬梅, 吴伟民. 数据结构(C语言版)[J]. 计算机教育, 2012.

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/21 17:40:00