� � 文章编号: 0494-0911( 2009) 05-0066-03 中图分类号: P208� � � � � � 文献标识码: B
基于 ArcGIS的洪水淹没
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
模拟及可视化
祝红英 1,顾华奇2,桂 � 新 2,朱朝烜2
( 1. 江西省基础地理信息中心,江西 南昌 330046; 2. 江西省第三测绘院, 江西 南昌 330046)
Analysis, Simulation and V isualization of Flood Inundation Based on ArcG IS
ZHU H ongy ing, GU H uaq,i GU I X in, ZHU Chaoxuan
摘要: 基于数字高程模型 ( DEM )格网模型,通过改进迭代种子蔓延算法,实现给定水深情况下洪水淹没区的计算模型, 讨论洪水
淹没演进过程可视化实现的关键技术,并使用 A rcEngin e开发包进行二次开发,以二维和三维两种可视化方式,动态而形象地模拟
在指定洪水水位下的洪水淹没演进过程。试验证明,所提出的实现方法切实有效,便于推广应用,为快速、准确及科学地进行洪灾
评估洪水风险图的制作提供良好的基础,对洪涝灾害进行评估和预测分析具有重要意义。
关键词: 洪水淹没;可视化; DEM; A rcEngin e
� � 收稿日期: 2009-03-20作者简介: 祝红英 ( 1966-) ,女,江西广丰人,工程师,研究方向为 G IS及地理信息服务。
� � 一、引 � 言
计算机及信息技术应用于洪涝灾害的评估、洪
水预测的相关研究已经进行了多年, 然而, 国内外
大部分文献都从水利行业的视角出发, 分析洪水淹
没机理 [ 1] ;虽然也有不少学者基于 GIS技术, 对洪
水淹没范围的计算 [ 2 ]、场景的三维表达 [ 3-5]等作了
相关研究,但对洪水的动态蔓延演进算法及其可视
化具体实现的探讨不多。本文基于数字高程模型
的 Grid结构, 对种子蔓延算法进行了相应改进, 并
使用 A rcEng ine开发包进行二次开发, 以二维和三
维两种可视化方式, 计算和动态模拟在指定洪水水
位下的洪水淹没演进过程。
� � 二、基于格网的洪水蔓延算法
洪水淹没的机理是由于洪水源区和被淹没区
有通道 (如溃口、开闸放水等 )和存在水位差, 从而
产生淹没过程。洪水淹没最终的结果应该是水位达
到平衡状态,此时的淹没区应为最终的淹没区 [ 6]。按
给定水位进行洪水演进模拟的方法正是基于上面的
思想来进行的,严格来说按给定水位进行洪水模拟只
是一种近似的模拟方法,要获得更精确的洪水演进模
拟,需要引入水动力学来进行数值模拟。
1. 数字高程模型数据结构的选择
地形表面建模主要有四种方法: 基于点的表面
建模, 基于三角形的表面建模 ( T IN ) ,基于格网的建
模 ( G rid) ,混合表面建模。表面建模的四种主要方
法分别对应于某一特定的数据结构。在实际应用
中,基于点的建模并不实用, 而混合表面建模需转
换为三角形网格方式,因此基于 T IN和 G rid的建模
方法使用较多,被认为是两种基本的数字表达连续
表面的数据结构。由于用 Gr id建立的三维地面模
型运行速度明显大于用 TIN建立的地面模型,因此,
在研究较大区域时,不要求十分精确或不必准确表
现地物要素时, 选用 G rid结构较为适宜 [ 5 ]。而且,
G rid数据结构相对简单, 因此, 本文在洪水淹没区
计算的实际应用中选择了 Grid结构的 DEM数据。
2. 洪水淹没的两种类型
按照洪水淹没的成因, 可以将洪水淹没分为两
大类:无源淹没和有源淹没。所谓无源淹没, 就是
只考虑因降水而造成的水位抬升,不考虑地表径流
水的汇入;有源淹没则是在无源淹没的基础上, 考
虑到地表径流水造成的淹没情况。无源淹没实现
过程比较简单,凡是高程低于给定水位的点都记入
淹没区,算作被淹没的点, 即相当于整个区域大面
积均匀降水, 所有低洼处都可能积水成灾; 而对于
有源淹没情况, 水流受到地表起伏特征的影响, 某
些地方即使处于低洼处, 也可能由于地形的阻挡而
不会被淹没 [ 7]。另外, 要进行淹没过程的模拟, 还
要考虑到水流方向:即自然地表水流总是由高处向
低处流动,而且是沿着坡度最陡的方向流动。
鉴于无源分析在算法及可视化方法上的过于
简单,没有太多研究价值, 本文只对有源淹没进行
讨论。
66 测 � 绘 � 通 � 报 � � � � � � � � � � � � 2009年 � 第 5期
3. 有源淹没分析算法
有源淹没分析算法应用得最多的是种子填充
算法, 而采用递归的方式实现起来最为直观: 即在
区域内一点已知的条件下通过一定规律搜索像素
点来填充整个区域。具体是:在区域内选取一点作
为种子点压入堆栈, 在堆栈非空的条件下对出栈像
素填色,之后按顺序判断该点周围是否有需要填充
而未被填充的点, 若有, 则将其压入堆栈。种子填
充算法可以填充的区域分为 4向连通区域和 8向连
通区域两种。
但递归种子填充算法堆栈和判断操作重复较
多,而且还需要很大的存储空间来维护算法堆栈,
从而造成其效率低下。有学者对其效率进行了改
进研究,发现采用迭代算法进行淹没分析的运算,
由于不需要无限地占用堆栈,不会再有堆栈溢出的
危险。但是如果仅以递归深度的控制来进行逐次
递归, 无法反映出流速条件所造成的淹没范围在时
间上的分布。因此, 对于淹没面积分析类似的问
题,用迭代算法来解决会更具有优势, 但是如果为
了结合流速实时地演示洪水淹没过程, 范围和步长
还是不可缺少的精确控制参数, 在这种情况下, 采
用优化后的递归算法效率会更高 [ 8]。
为了兼顾分析功能和实现的复杂性, 本文采用
迭代算法进行淹没分析。整个算法的基本思想是:
输入初始值种子点 seedPo int和淹没的水位 thresh-
old, 建立两个队列 queueFilled和 queueUn filled,
queueFilled用来存放填充好了的点, queueU nfilled
用来存放即将填充的点。刚开始时让种子像素进
队列, 重复以下步骤, 直到 queueUnfilled为空。
1. queueUn filled队列中的队首像素出队列, 设
置为当前点变量 CurPo int。
2. 找出 CurPo int的八领域各像素, 按照其所在
位置的高程由低到高顺序进行处理: 如果该点不在
边界内或者已经包含在 queueF illed队里面了,则直
接什么也不做; 否则, 判断该像素点的高程是否小
于淹没水位 threshold, 如果是则将其放置到队列
queueUnfilled队尾, 否则将其放置到队列 queue-
F illed队尾。
3. 将 CurPo in t放置到队列 queueFilled队尾。发
出 CurPo int填充的消息, 以便后续的可视化函数
响应。
算法分两大部分:
1. 处理种子像素, 如果种子像素不在边界以
内,或者种子像素的高程大于淹没水位, 则不作任
何处理,退出程序;否则将其作为当前点 CurPo in t处
理,进队列。
2. � 分析 CurPo int的八领域各点,如果它已经
包含在 queueFilled或 queueUnfilled中,或者在边界
以外,则不进行处理; 否则, 看其高程是否小于淹没
水位,是则进 queueU nfilled队列, 否则进 queueFilled
队列。所有领域各点处理完后, 将 queueUn filled队
列中各点由队首到队尾, 按照高程从小到大进行排
序,保证队首的高程最小。这样, 才能控制水流方
向。 � 获取 queueUnfilled队首点,将其设置为 Cur-
Poin,t并对其进行填充, 发送当前点淹没的消息。
通过实验证明,使用以上算法实现的有源淹没
分析,功能、实现的复杂性和效率都能到达预计目
标,而且能方便地随时统计淹没范围, 驱动后续的
淹没进程可视化。
� � 三、基于 A rcEngine的洪水淹没进程
可视化实现
� � 关于洪水淹没进程的动态模拟可视化关键技
术的讨论,已有文献论述得较少。有学者利用 Arc-
Scene本身自带的动画功能实现了无源淹没分析的
动画模拟 [ 3, 9 ] ;也有学者采用 OpenGL实现了淹没区
的虚拟现实表达 [ 4-5 ]。然而, 这些研究一方面对有
源分析的动画模拟实现过程没有作具体论述; 另一
方面,不是基于主流 GIS平台进行开发,成果不便于
迅速推广和应用。本节将从二维和三维可视化两
种方法入手, 详细论述基于 A rcEng ine开发包的水
淹分析动画模拟实现方法。
1. ArcEngine开发平台介绍
ArcGIS是美国 ESR I( Env ironmenta l Systems Re-
search Institute, Inc. 美国环境系统研究所公司 )推
出的,能为不同需求层次用户提供全面的、可伸缩
的 G IS产品线和解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
。ESR I作为 G IS业界的
拓荒者和领导者, 其产品 ArcGIS也代表了当前 G IS
行业最高的技术水平。A rcEngine是其中的一套二
次开发组件库,方便 A rcG IS开发者开发出符合各种
需求的产品。A rcEng ine开发包中包含了若干重要
粗粒度的控件来帮助开发者实现开发需求, 其中最
核心的控件有 M apContro,l SceneContro l和 G lobe-
Contro l等。M apContro l主要用于二维地图的可视化
和分析, 而 SceneControl和 G lobeControl则提供了三
维数据可视化和分析的强大功能。
2. 二维可视化方法
洪水淹没动画的二维可视化, 基于 ArcEng ine
中的 MapContro l控件实现,其实现过程相对简单, 主
要步骤如下:
672009年 � 第 5期 � � � � � � � � � � � � 测 � 绘 � 通 � 报
1. 按照 DEM的属性,重新生成一幅空白栅格影
像 RasterW ater,以显示淹没范围。
2. 初始化一个像素缓存池, 用来暂时存放将要
处理的像素点。接收到当前像素点 ( x, y )淹没的消
息后,判断缓冲池是否已满, 如果是, 则将缓存池中
的各像素点都绘制到 RasterW ater上; 否则, 将像素
点 ( x, y )添加进缓冲池中。
3. 三维可视化方法
洪水淹没动画的三维可视化实现起来相对复
杂,主要思路为:
1. 基于 ArcEng ine中的 G lobeControl控件结合
OpenGL来实现,这样既能充分利用 G lobeCon tro l对
DEM、影像良好的支持,又能利用 OpenGL绘图的灵
活性和高效率。安装 OpenGL w rapper for. NET后,
就能在 V isua l Studio 2005环境下使用 OpenGL。通
过响应 G lobe的 A fterDraw 消息, 来实现与 G lobe-
Contro l的结合。
2. 对每一个像素渲染的方式是将其表示为两个
三角形,模拟无缝的水面。
3. 随着水面的抬升,设置所有三角形的高程,模
拟出水面抬升的效果。
� � 四、结束语
根据本文提出的基于 DEM的 G rid结构的迭代
种子蔓延算法,能有效地实现洪水淹没动态分析和
计算; 同时, 使用 A rcEng ine开发包实现的二维和三
维两种方式的洪水淹没进程模拟可视化, 能准确、
生动、形象地模拟洪水淹没进程, 而且方法切实有
效,便于推广应用, 为快速、准确及科学地进行洪灾
评估洪水风险图的制作提供良好的基础, 对洪涝灾
害进行评估和预测分析具有重要意义。
� � 参考文献:
[ 1] � TSUCH IYA A, ISH IZAK IK, KSASAK IK. F lood simu-
la tion m ode l[ J]. H ydro log ica l Sciences-Bu lletin-des Sc-i
ences H ydro log iques, 1979, 24: 361-374.
[ 2] � 葛小平, 许有鹏, 张琪. G IS支持下的洪水淹没范围
模拟 [ J]. 水科学进展, 2002, 13( 4): 456-60.
[ 3] � 张成才, 刘丹丹, 余欣, 等. 基于 ArcG IS的东平湖洪
水淹没场景三维可视化 [ J]. 郑州大学学报:工程科学
版, 2008, 29( 1): 88-90.
[ 4] � 韩敏, 陈明. 洪水演进模拟的三维可视化研究 [ J].
计算机应用, 2005, 25( 8): 1906-1907.
[ 5] � 刘仁义, 刘南. 基于 GIS技术的淹没区确定方法及虚
拟现实表达 [ J]. 浙江大学学报:自然科学版, 2002, 29
( 5): 573-578.
[ 6] � 丁志雄, 李纪人, 李琳. 基于 GIS格网模型的洪水淹
没分析方法 [ J]. 水利学报, 2004( 6): 56-60.
[ 7] � 郭利华, 龙毅. 基于 DEM 的洪水淹没分析 [ J]. 测绘
通报, 2002( 11): 25-30.
[ 8] � 周品, 李勇, 谭建军 , 等. 基于 DEM 的洪水淹没计算
机算法优化研究 [ J]. 微计算机信息, 2007, 23 ( 3 ):
196-198.
[ 9] � 苏红军, 闫志刚, 栗敏光, 等. 基于 A rcScene的洪水
淹没分析系统 [ J]. 中国水运: 学术版, 2006 ( 4 ):
96-97.
(上接第 51页 )
表荷载等因素的影响, 若建立顾及多因素的基坑动
态变形分析模型,其预测精度会更加理想。
� � 参考文献:
[ 1] � 王平卫, 等.基于灰色理论的基坑变形预测 [ J]. 地质
与勘探, 2006, 42( 6) : 94-97.
[ 2] � 盖玲. 时间序列建模、预报的原理与应用实例 [ D ]. 辽
宁: 辽宁师范大学, 2004.
[ 3] � BOX G E P, JENKIN G M. T imes Series Ana lysis, Fore-
casting and Contro l[M ]. SanF rancisco: H o lden-Day, 1970.
[ 4] � 陶津, 等. 神经网络在深基坑工程变形预测中的应用
研究 [ J] .青岛理工大学学报, 2005( 6): 39-42.
[ 5] � 王利,等. 卡尔曼滤波在大坝动态变形监测数据处理
中的应用 [ J]. 西安科技大学学报, 2006, 26 ( 3 ):
353-357.
[ 6] � 陆付民.顾及多个因子的卡尔曼滤波法在大坝变形分
析中的应用 [ J]. 水电自动化与大坝监测, 2003 ( 3 ):
71-73.
[ 7] � 陆付民.顾及时间和水位因子的卡尔曼滤波法在大坝
变形分析中的应用 [ J]. 三峡大学学报: 自然科学版,
2004, 26( 5): 392-394.
[ 8] � 郑加柱, 郭斐. 变形数据的时间序列分析 [ J]. 森林工
程, 2008, 24( 4): 50-53.
[ 9] � 岳建平, 方露. 城市地面沉降监控技术研究进展 [ J].
测绘通报, 2008( 3): 1-4 .
68 测 � 绘 � 通 � 报 � � � � � � � � � � � � 2009年 � 第 5期