基于WebGIS的洪泽湖地区动态洪涝管理信息系统
2019-01-21,,,,
,, ,,
(1. 中国电建西北勘测设计研究院有限公司,西安 710065;2. 河海大学 水文水资源学院,南京 210098;3. 杭州西湖城市建设投资集团有限公司,杭州 310012;4.浙江省杭州市西湖区“五水共治”领导小组办公室,杭州 310023)
1 研究背景
现代洪涝管理已由经验型向精细化、数字化转变,建设动态洪涝管理信息系统是及时避免、减少洪涝灾害导致人员伤亡和财产损失的一项重要非工程措施。利用动态洪涝管理信息系统制定防洪方案,统筹考虑雨水情、堤坝安全、蓄滞洪区运用,以及灾情评估和风险管理等,借助网络提供可视化界面与用户进行交互,为决策者提供全方位的辅助决策信息。其中,动态显示洪水演进过程有助于决策者直观地了解整个演进过程中洪水的水深、分布及淹没范围等,而面对洪水模拟模型生成的1 h达几万条洪水风险数据的情况下,如何做到动态显示不到1 s需刷新1次的地图数据就成为了系统开发中的一道关键技术问题。
B/S(浏览器/服务器,Browser/Server)结构系统通常采用页面实时更新来显示动态变化,即浏览器按一定时间间隔自动更新页面,客户端动态请求,由服务器处理后将新的结果传到客户端。但这样无疑增加了服务器的工作,极大地增加了网络传输量,同时客户浏览器还会出现页面闪烁,在大量用户访问时,很容易造成服务器超负荷[1]。一种常用的解决方法是图片或栅格数据动态叠加或刷新,如赵明明等[2]进行了基于ArcGIS的图片动态刷新研究,王文涛[3]基于ArcGIS Engine设计了南海海洋动力环境应用服务系统。这种添加元素的方式在数据量大的情况下同样存在占用网络带宽与服务器空间或闪烁的问题,而且对于不断变化的洪水淹没范围,每个时间步长上的范围在空间上也非叠加关系,单纯的叠加将造成显示的淹没范围与实际不相符。采用动态矢量数据进行显示可避免以上问题,常用的显示方式有Element、Feature和动态图层。Element方便显示但刷新慢,当需要显示大量的图片时,ArcGIS提供的地图装载组件会占据大量的CPU和内存容量,当图片达到一定数据量后,程序甚至会因为内存溢出而崩溃。Feature在显示速度上有很大优势,但是对于一直在变化的数据处理起来就显得力不从心[4]。伴随着动态图层技术的出现,大量数据以及高频率刷新可以在瞬间完成。如李卫东等[5]利用.NET平台和ArcIMS ServletConnector添加了服务器端动态矢量图层;迟文学等[1]通过数据层地图动态数据绑定方法实现了10 min雷电数据图层的更新;王文涛[3]使用ArcGIS Engine封装的动态图层实现了矢量要素跟踪;肖克等[6]基于ArcGIS Server与ArcGIS API for Flex构建了支持动态数据的B/S系统。各种动态显示机制的优缺点见表1。
表1 地图动态显示机制比较Table 1 Comparison of dynamic displaymechanism of map
国内对于动态洪水风险图的研究相对较少,代表性的如谢田[7]提出了一种基于栅格运算与二维水动力学洪水演进相结合的洪灾损失动态评估模型;余丽华等[8]将淹没水深、淹没范围按时间顺序,以等值面的形式在Web上绘制;刘东海等[9]运用种子蔓延算法模拟洪水并基于WebGIS实现了风暴潮洪水演进的动态可视化。区别于以上研究,本研究构建了洪水演进模型并内置于动态洪涝管理信息系统中,进而基于ArcGIS API for JavaScript与动态图层技术实现了洪水风险要素随时间演进过程的显示,解决了矢量要素图层动态显示不连续且服务器易超载的问题。
2 关键技术
2.1 动态图层
传统的地图异步刷新显示和大量数据的渲染对CPU的占用率大,导致了显示延迟等问题,动态显示技术将渲染大量的数据从CPU端移动到了显卡上,利用显卡的性能,可大大提高显示性能。ArcGIS 10.1后新增的动态图层利用了动态显示技术,其提供的同步显示机制使得大量的动态数据以及高频率刷新的操作可以在瞬间完成。动态图层是可以在ArcGIS Server中动态配置其渲染和内容功能的图层,它并不是一种新的服务类型,而是地图服务的一种扩展,其优点是无需在服务器端添加海量图层和发布服务,服务器可以直接读取各类文件(SDE、栅格数据集、FileGDB、shp文件等)后进行显示,并支持动态改变服务中的图层渲染方式以及图层顺序,很好地解决了海量实时信息动态展示的问题。当数据库更新后,无需重新启动GIS服务器以更新地图服务,数据更新便能随时展示于客户端。
采用ArcGIS Server封装的动态图层功能实现了矢量洪水风险要素的时态展示。用于时态展示的核心数据是矢量面要素类型的洪水风险图层,图层属性表按字段顺次存储洪水演进过程中各时段各网格上的风险要素特征值(最大淹没水深、洪水到达时间等),使得风险要素兼具洪水演进的地理位置信息和时间信息。然后将存储有洪水风险要素和底图的地理数据库与GIS服务器进行连接后发布服务,洪水风险图层“模板”便可上传至GIS服务器。对相应的地图服务启用动态图层功能,或将本地数据所在位置注册为动态工作空间即可动态地加载图层。当用户访问地图时,在Web端调用洪水演进模型进行计算,运算所得结果按时间顺序顺次写入地理数据库组织的属性表中,更新后的洪水风险要素无需重新发布,即可按用户自定义参数进行图层符号化和渲染,最终实现二维网格洪水淹没水深变化过程的Web展示。
本系统中洪水演进时态展示的实现依托Web 2.0环境,基于轻量级的REST(Representational State Transfer)架构,通过JavaScript API访问发布的地图数据。关键的动态图层服务的优势体现于以下2个方面:
(1)无需提前发布。动态图层服务区别于动态地图服务,当数据更新时动态地图服务需要重新发布服务并重新进行渲染;动态图层服务只需由GIS服务器自动地动态发布。
(2)功能简便易用。ArcGIS for Server已对开发者封装好了动态图层服务,只需在发布时勾选“允许更改图层和符号”选项或同时注册工作空间,便可访问REST中的动态图层功能。
2.2 防洪调度
蓄滞洪区防洪调度的方式分为分洪调度、圩内调度和退洪调度3部分。洪涝管理信息系统所涉及的分洪调度,包括分洪操作方案及流域蓄滞洪区联合调度等,其目的是寻找最佳时间、最佳分洪流程来分蓄洪水,以最大程度削减洪峰,保证下游地区的安全[10]。分洪调度的关键,一是调度模型的构建,二是调度方案的制定。
对于大型蓄滞洪区,传统的水文学模型或概化水动力学模型难以准确模拟防洪调度下的洪水演进过程。因此,可采用水文学-水动力学相结合的方法,构建河道、湖泊、蓄滞洪区一体化的一、二维水动力耦合模型,并借助水文学方法计算下边界控制点的水位、流量,作为模型的下边界条件。并且,大型蓄滞洪区内圩区众多,闸站密布,合理地概化圩区并生成控泄规则,以充分反映水工建筑物的作用是建模的重点和难点。
蓄滞洪区的调度方案可分为不滞洪方案、一次性滞洪方案和分级滞洪方案。不滞洪方案,即无论洪峰多大、水位多高,滞洪区均绝对不滞洪;一次性滞洪方案,即当防洪控制点的洪水位达控制水位时滞洪区一次性全部破圩(开闸)滞洪;分级滞洪方案,即在遵循原调度运用方案的原则下分级运用调度工程,充分考虑滞洪区地形地貌和人口经济分布情况,针对不同频率的来水将滞洪区域分组,当洪水位达不同特征水位时分次序破圩(开闸)滞洪。结合区域地理与社会现况、防洪工程规划与已有调度方案制定一种或多种调度方案,并选用防洪控制点最高水位、最大下泄流量、滞洪水量、淹没面积、洪灾损失、影响人口等指标对调度方案进行优选。
防洪调度在系统中体现在核心计算模型的构建中。利用水雨情报模型对控制点的水位、流量进行预报,或由决策者输入模型的下边界条件等参数后生成方案,进而驱动一、二维水动力耦合模型,对洪水演进过程进行模拟。在一维水动力模型中,对于对洪水水流影响较大的主要控制性水工建筑物,建立水利工程水力模拟与调度控制模型,模拟闸站控泄规则和调度方案的作用下模型边界及控制点的水位-流量关系。在浏览器端对多种方案进行统一管理和综合比较,并且基于GIS 进行结果的显示、查询与分析[11]。
3 系统设计
3.1 总体设计
系统建设涉及Web端的地图操作,既需要地图服务以实现对模型计算结果的展示,又需要水雨情报模型、洪水演进模型等核心计算模型及数据库的支持。因此,采用结构化软件设计方法对B/S系统进行分层设计,分层的基本原则是系统各个层之间相对独立,任何一层都只依赖于低于自己的层[12]。根据设计思路,将系统自下而上划分为基础支撑层、核心业务层和应用表现层,并采用统一的标准规范和安全保障体系,系统结构如图1所示。
图1 系统结构设计Fig.1 Design of the system structure
在良好的计算机软硬件和网络环境的支撑下,基础支撑层利用数据库平台对水文数据、实时雨情、水情和工情数据、洪水预报数据、防洪调度数据与时间序列数据及空间属性数据进行统一管理与维护。作基础支撑层的核心,模型主要包含水雨情报模型、外洪滞洪、内洪溃堤以及暴雨内涝3类洪水模拟模型,以及淹没分析模型和损失计算模型等。淹没分析模型基于GIS空间分析实现,其他模型主要采用Java语言编程实现,模型之间的交互通过数据库读取实现。
核心业务层包含模型计算数据实时生成接口,开发以Java语言为主,辅以C#语言,实现洪水模拟模型与数据库的连接。系统实时获取雨水情数据、洪水淹没数据及洪灾损失数据等,基于数据交换的松散耦合方式实现GIS服务器与数据库的动态连接,经过插值和数据格式转换,生成洪水风险要素并发布至GIS服务器。
应用表现层系统是与用户交互的界面层,在功能上分为方案生成、静态风险图展示、动态风险图展示几大核心模块以及基础信息查询、系统管理等基础模块。主要选用HTML、JavaScript以及CSS语言进行开发。用户访问浏览器端发出请求信号,信号经由核心业务层远程驱动基础支撑层的一系列模块与组件进行计算,然后以演进时间为索引读取洪水风险数据并对淹没水深进行动态展示。
3.2 系统功能及模块设计
系统的功能目标是:在给定或者实时监测雨水情信息的基础上,对任意组合洪水方案进行快速模拟计算,并依据计算结果,生成指定预报期内动态演变的洪水风险图。对淹没范围、淹没水深、洪水抵达时间、淹没历时等各类洪水致灾要素进行统计,并结合区域经济社会分布与人口状况,对洪泽湖地区洪水风险进行评估。系统功能模块如图2所示。
3.2.1 基础信息
基础信息模块包括研究区人文地理及洪涝概况的文字描述和GIS图。以“天地图”作为底图,叠加研究区的水系、路网、水文站点等矢量要素,直观展示研究区的地形地貌、河流水系、行政区划、交通路网、水文站、水位站、流量站和水利工程设施等基础地理信息。
3.2.2 风险图管理
模块从多个维度实现对规划工况洪水风险图的管理,包括以下子功能模块:①方案查询;②洪水查询;③洪水风险图;④洪水动态;⑤经济损失;⑥避险转移。
在方案查询界面选择洪水类型及方案名,依据所选洪水来源及工况,系统内核模型进行洪水演进数值模拟。然后利用GIS空间分析模型对模拟结果进行统计分析,以洪水风险信息(淹没范围、淹没水深、洪水到达时间、淹没历时等)为基础,综合研究区社会经济、历史灾情、道路及安置条件等进行经济损失与影响分析,并生成避险转移方案。洪水查询子模块展示所选方案下洪水来源特性,主要包括:暴雨洪水特性——降雨历时、降雨总量等,洪水量级,洪峰流量、控制站点和溃口处水位,溃口特性等。洪水风险图子模块以风险图的形式展示淹没范围、淹没水深、淹没历时、洪水到达时间和洪峰流速等洪水风险信息。经济损失子模块以列表形式对比洪水所涉及地区受影响各项指标,包括:淹没耕地面积,淹没居民地面积,受灾人口数量,受影响交通线路及里程,受淹行政机关、企事业单位及水利等重要设施,受影响行政区域,受影响国民生产总值(GDP,含第一、第二、第三产业)等。洪水动态子模块用于展示淹没水深的二维演进动画视频。
3.2.3 动态计算
动态计算模块提供在已有方案的基础上人工设置模型输入条件及参数进行洪水演进模拟与动态展示的功能,包括方案生成、结果查询、动态演进3个子模块。
在方案生成子模块中对方案参数进行设置后调用模型计算,列表显示已添加方案信息和模型运行进度,支持添加、删除或查询方案。结果查询子模块以GIS图的形式展示所选方案的模型计算结果,具备淹没范围内任一点处最大水深、淹没历时和模型边界点、防洪关注点水位、流量的点选查询功能。动态演进子模块动态展示洪水淹没水深的计算结果。GIS服务器从数据库读取所选方案计算结果后,在GIS图上实时绘制洪水动态演进过程,可暂停、快进或快退。
3.2.4 系统管理
系统管理模块对用户访问权限、登录权限、系统参数进行管理。
4 实例应用
4.1 研究区概况
洪泽湖是全国五大淡水湖之一,地处淮河中游,承泄上游15.8万km2的洪水,上、中游的入湖河流主要有淮河干流、怀洪新河、徐洪河、新汴河、新濉河、老濉河,下游出湖河道主要有淮河入江水道、入海水道、分淮入沂、苏北灌溉总渠、废黄河。入湖控制建筑物主要有团结闸、高松河闸、古山河闸、西民便河闸、安东河闸、濉河闸、老汴河闸等,出湖控制建筑物主要是三河闸、二河闸、高良涧闸。区域外防洪工程主要为迎湖挡洪堤和河道堤防,区域内防洪工程主要为河道堤防和排涝涵闸、泵站。国务院批复的《淮河洪水调度方案》中规定,洪泽湖蒋坝水位达14.33 m时,滨湖圩区破圩滞洪。当洪泽湖水位上涨至16.0~17.0 m时,滞洪区最大水深可达4~5 m,滞洪库容可达30~40亿m3。
洪泽湖周边地区地形以平原洼地为主,圩区多达300多个,常受洪涝灾害影响,该区域的洪水风险主要来源于:①洪泽湖洪水、以淮河为主的流域性河道洪水;②区域性骨干河道徐洪河和西民便河的溃堤洪水;③暴雨导致的内涝以及外排河道高水顶托所致洪水。针对洪泽湖周边滞洪区洪水风险管理的需求,开发了洪泽湖地区动态洪涝管理信息系统。
4.2 洪泽湖地区动态洪涝管理信息系统
4.2.1 信息管理模块
系统建设所需数据按属性分类进行管理,基于Oracle 10g数据库平台,建立了洪泽湖地区信息管理模块,对各类数据进行管理。数据内容见表2。
表2 系统建设所需数据Table 2 Data required for system construction
4.2.2 风险图管理模块
针对规划工况下的洪水风险,开发了风险图管理模块。对于3类洪水风险,根据区域洪涝特点、历史洪水以及相关防洪调度预案,分别设计了10个外河洪水方案、5个区域洪水方案和6个暴雨内涝方案。对各方案绘制了静态洪水风险图(淹没水深图、淹没历时图和到达 时间图)及避险转移图;各方案降雨过程、水位-流量过程、不同淹没水深对应的淹没面积、不同淹没历时对应的淹没面积、所涉及乡镇的受影响人口数、房屋数、耕地面积、GDP、三产产值及道路长度等以统计图、表的形式展示。
4.2.3 洪水动态计算模块
在集成洪水预报、二维洪水模拟、灾情评估以及GIS空间分析等各类模型与数据转换接口的基础上,开发了洪水动态计算模块。
(1)建立了洪泽湖地区洪水演进模型,针对不同的洪水来源分别建立模型如下:①对于外河洪水、区域洪水,建立了溃堤模型、一维水动力学模型与二维水动力学模型,及其耦合计算模型;②对于暴雨洪水,建立了一维水动力学模型、二维水动力学模型,及其耦合计算模型;③建立了水利工程水力模拟与调度控制模型。模型概化如下:除了部分较大的圩区概化2~3条圩内河外,其余圩区均概化1条圩内河与骨干河道或者洪泽湖相连,在圩内河上设置1个概化闸门和1个概化泵站,其参数均根据实际闸门及泵站合并概化后的参数取值。闸门的调度规则为当洪泽湖水位>14.33 m时,开闸进洪,当洪泽湖水位<14.33 m且圩内水位高于外界时,开闸自排;泵站的调度规则概化为当洪泽湖水位<14.33 m且圩内水位低于外界水位且满足泵站开启水位时,开泵抽排。调度方案按现行规划方案(实施入海水道二期后)当洪泽湖水位超过14.33 m时一次性开闸滞洪。
(2)开发了洪水模拟方案生成界面,用户输入模型边界条件及模拟时长等参数后生成新方案,进行洪水演进模拟。为了兼顾灵活性和便捷性,外河洪水、区域洪水以及暴雨内涝3类模型的输入项有所区别:①外河洪水模型的上边界输入淮河流量过程、下边界输入洪泽湖出口的三河闸、二河闸及高良涧闸的水位-流量关系,模拟时长为1~60 d;②区域洪水溃堤模型的上边界输入溃堤河道的流量过程,下边界输入临湖水位,模拟时长为1~15 d,溃口参数输入溃口时机、溃口宽度与溃口位置;③暴雨内涝模型的上边界输入由暴雨推得的面净雨过程,下边界输入临湖水位,模拟时长固定为7 d(前3 d降雨)。以区域洪水为例。
(3)开发了动态计算结果可视化界面。基于WebGIS与动态图层技术,对洪水风险要素进行实时静态展示、交互式查询与动态绘制,供用户全面分析洪水时空变化与分布。以区域洪水某模拟方案为例,洪水风险要素的静态结果查询界面和动态结果演进界面如图3所示,以4倍速度动态绘制演进过程最大淹没水深的部分时刻截图(局部)如图4所示。
图3 静态结果查询界面和动态结果演进界面Fig.3 Interfaces of static result query and dynamic evolution
图4 模型运行至不同时刻时(不同已运行时长比下)演进过程 Fig.4 Screenshots of evolution process at different instances(running time ratio)
在虚拟环境下(CPU:Core i7-6700 HQ 2.6 GHz;内存:8 G;操作系统:Windows 7 64位旗舰版;浏览器:Google Chrome)对系统进行测试。共执行测试用例100个,执行率100%,功能覆盖率100%,通过率97%。对比各方案不同量级洪水淹没面积、范围和淹没区的分布均合理。3类模型生成新方案的最长时间如下:暴雨内涝7 d方案约1 h;区域洪水15 d方案约2 h;外河洪水60 d方案约7 h。已生成方案的加载时间为1~5 s。 测试结果符合运行要求,系统现已成功部署于江苏省防汛抗旱指挥部办公室系统中。
5 结 语
构建的洪泽湖地区洪涝动态管理信息系统采用B/S结构,集成了数据库、洪水演进模型、空间分析及地图服务,能够对规划与模拟工况下的雨水情信息、静态与动态洪水风险图与受灾损失信息等进行综合管理。
创新点和难点在于支持定制方案调用模型进行洪涝模拟计算;基于WebGIS与动态图层将模型实时计算结果绘制为动态洪水风险图,实现了洪水演进过程的连续快速动态刷新。
模型直接嵌入系统,提高了工作准确性和效率;动态图层技术的应用,为不断更新与增加的海量图层数据的显示与共享提供了一个可靠的解决方案;丰富的洪涝信息管理功能与图、表、文字、静态GIS图、动态GIS图等多样的展示形式,有助于决策者对灾情进行合理的预估与全方位的分析,从而制定更为可靠的避险转移与防灾减灾策略。测试及运行结果表明,本系统已满足江苏省防汛抗旱指挥部工作要求,设计完善,功能全面,响应速度快,应用于研究区洪涝预报结果准确,洪水风险预测结果合理。
未来可以在模型概化与参数率定的精确度、数据库对模型计算结果读写的效率、三维可视化等方面进行更深入的研究。