基于GIS的汉江流域洪水预报系统设计与实现
2009-08-16陈桂亚郭生练马绍忠
张 俊,陈桂亚,2,杨 斌,郭生练,陈 华,马绍忠
(1.武汉大学水资源与水电工程科学国家重点实验室,武汉 430072;2.长江水利委员会水文局,武汉 430010;3.丰元科技开发有限公司,吉林吉林 132001)
基于GIS的汉江流域洪水预报系统设计与实现
张 俊1,陈桂亚1,2,杨 斌3,郭生练1,陈 华1,马绍忠3
(1.武汉大学水资源与水电工程科学国家重点实验室,武汉 430072;2.长江水利委员会水文局,武汉 430010;3.丰元科技开发有限公司,吉林吉林 132001)
利用Microsoft Visual Studio.NET集成开发环境、基于ArcObject的GIS嵌入技术和SQL Server数据库设计,开发了结构合理、功能齐全、具有很强实用性的汉江流域洪水预报系统。在分析系统实现目标的基础上,研究了汉江流域洪水预报系统的总体体系结构和逻辑功能设计,重点讨论了系统实现的分布式水文模型建立、分布式计算实现和组件标准化等关键技术,介绍了系统的主要功能与界面设计。该系统具有良好的可移植性和可扩展性,随着系统的进一步开发和不断完善,该系统可望为汉江流域的防洪调度决策与水资源综合管理提供重要的技术支撑。
洪水预报系统;嵌入式GIS;C#.NET;ArcObject
汉江是长江中游最大的支流,旱涝灾害频繁发生,其洪水直接威胁下游江汉平原和武汉市的安全,上游丹江口水库是南水北调中线工程的水源地。2001年在国家防汛抗旱总指挥办公室的领导和支持下,武汉大学自行研制了丹江口水库洪水预报调度系统[1],经过多年的运行实践,在汉江流域的防洪调度中发挥了重要作用。然而,由于其空间分析和查询等功能的缺乏,不利于汉江全流域防洪形势的统筹分析。为了及时获取流域各区的不同防洪形势,重点防洪工程的运行情况,从宏观角度统筹全流域的防洪决策,需要对流域内信息实现分布式查询与分析。建立基于GIS的汉江流域洪水预报系统,将为实现这一目标提供有力的保障,将有效地改变汉江流域洪水预报现状,可以直接为南水北调中线调水、汉江流域防洪减灾和水资源综合利用等决策服务。
本文利用ERSI公司的GIS开发工具ArcObject组件和Microsoft Visual Studio.NET集成开发环境,结合SQL Server数据库和现代水文信息技术开发了汉江流域洪水预报系统,实现了水文空间信息和属性信息的一体化管理,提供了灵活的信息查询和实用的分布式洪水预报、丰富的结果展示等功能。
1 汉江流域洪水预报系统的总体设计
1.1 系统开发的目标
系统的目标是建立一个集GIS技术、计算机技术、数据库技术和水文水资源等多项技术为一体,融合多源信息的综合预报系统,具有以下功能:
(1)查询流域内基本地理信息功能。对每幅地图,可以放大、缩小、漫游、查看各地物的属性、控制各个图层的显示、查询自己感兴趣的图层。
(2)水雨情信息查询分析功能。对实时和历史水雨情,不仅可以实现单站数据信息查询,还能查询其空间分布状况,并能实现与历史同时期数据对比。
(3)数据管理功能。能对不同类型的数据分别建立存储和查询机制,对实时水雨情数据能实现日、6h时段数据的统计。
(4)预报功能。能实现分布式水文模型与气象模式耦合,对全流域或单个子流域进行洪水过程模拟或实时预报,可选择不同子流域出口站进行预报结果查询,查询结果展示包括流量预报过程图,洪峰、洪量等特征值统计,并能对水文过程变量实现空间分布状态查询。
同时,由于计算机应用技术和开发应用版本升级速度很快,为使建成后的洪水预报系统能在生产实践中进行应用,并能通过系统网络为各级防汛指挥部门提供分类实时信息,需要在系统的功能、可靠性、界面友好程度、编程语言、运行环境等方面提出统一的要求[2,3]。
1.2 系统结构
1.2.1 逻辑功能结构
作为基于开放架构的系统,汉江洪水预报集成系统除了实现流域空间、属性信息的分析查询,同时为水雨情信息统计及防洪形势分析提供了基本和实用的各种功能,良好的可扩展性为继续开发提供了理想的基础,用户可根据需要自由扩展各种新的功能。系统目前的总体功能模块如图1所示。
图1 系统逻辑功能结构设计Fig.1 Structural design of logic function of the system
系统划分为数据采集、传输与存储系统(支撑层)、可视化GIS基础平台(基础层)、专业应用系统(专题层),它们既相对独立,又相辅相成,可以分阶段、有步骤的自下而上逐步实施和完成,在逻辑上是一个整体。数据存储系统以基于元数据的分布式多数据库和共享技术为主,建立数据的存储和管理模式,包括互操作标准和规范等。流域二维GIS系统平台是汉江洪水预报系统的核心模块,具有丰富的图形显示功能和空间数据库引擎。专业应用系统在建立基础平台和综合数据库系统的基础上,利用GIS建模技术,构建具有专业分析和GIS等功能的专业应用系统。
1.2.2 体系结构
传统的二层C/S模式,所有的表示逻辑和应用逻辑等都在客户端,使之非常臃肿且负载太重,从而影响了效率。服务器作为数据库、文件服务器,进行业务数据的处理和维护,功能相对简单[4-5]。在汉江流域洪水预报系统集成中采用三层结构的C/S模型,即客户-应用服务器-数据库服务器,如图2所示。在三层C/S模型中,客户端包括应用程序和开发工具,服务器端分为2部分:应用服务器和数据库服务器。客户端主要完成应用程序的功能,应用服务器管理网络通信、客户端与服务器的数据交换、汉江洪水预报的业务计算工作以及C/S通信管理的工作,数据库服务器提供对数据的管理与存储功能。
1.3 系统数据组织
汉江洪水预报集成系统的数据源包括多种类型的数据,如不同比例尺地理数据(1∶5万,……,1∶100万)、不同专题地理数据、水文数据、工情数据、气象数据等。它们分别以shp格式和关系型数据的形式存储。shp格式文件主要存储空间数据的坐标信息和地物的属性信息,它们之间以国家规定图幅编号进行关联。对于水文、气象和工情数据库按照国家规范建表存储,在其库表和shp文件的dbf表中定义ID字段,通过相同的2个字段实现与对应地物图层shp文件的关联,于是各种水文、气象、工情数据可实现以地物属性信息的方式查询。
图2 系统三层结构示意图Fig.2 Sketch of system three-layer architecture
2 系统实现的关键技术
2.1 分布式流域水文模型的构建
为满足汉江流域洪水预报的需要,根据大量调研,选择以目前世界上得到普遍认可、广泛应用的VIC模型为基础,开展汉江流域基于分布式模拟的洪水预报研究[6]。首先基于DEM提取流域的特征信息(流域边界、水系、子流域分区等),利用GIS工具构建覆盖整个汉江流域的9×9 km2网格;其次,根据汉江流域的水文气象测站分布,建立利用距离平方反比法将站点的水文气象数据插值到网格的机制;分别统计各网格的土地利用、土壤信息,建立汉江流域的网格植被参数库和土壤参数库;以各子流域为单元率定参数,而后在此基础上将参数网格化并利用汉江干流水文控制站资料适当重新率定修正,最终建立汉江流域VIC分布式模型的水文参数网格库。
2.2 分布式计算的实现
系统嵌入的分布式水文模型是基于9×9 km2网格而构建,由于汉江流域面积辽阔,因而计算网格众多,利用分布式模型进行预报计算的工作量巨大,甚至是传统集总式模型的几千倍,如果此工作在客户端完成,势必造成计算灾难,影响工作效率。一般而言,服务器的计算机硬件配置比较高,而且用户的同时操作需求不多,如果将繁重的模型计算工作放在服务器端实施,将大大提高效率。
首先,开启服务器端的监听功能;在客户端设置预报计算的起始时间和所选的预报模式等信息,并发送到服务端请求进行计算;服务端监听到有请求到来,先判断请求的预报模式类型,然后调用不同的方法类来执行相对应的操作,最后将计算结果写入数据库。通过调用.NET中的TCPClient和TCPListener类使用传输控制协议(TCP)和用户数据报文协议(UCP)服务来实现客户端与服务端的通信。
2.3 .NET框架下的标准化技术
Microsoft Visual Studio.NET通过基础类库(Base Class Library)提供了一个统一的、面向对象的、层次化的、可扩展的软件组件开发与系统集成环境[7]。以此为基础开发了数据库操作公用组件、图形组件和预报组件等。
2.3.1 数据库操作组件
不管是信息查询还是专业模型计算,都需要对数据库进行频繁操作,为了简化代码,方便数据库的移植,需要对数据库操作建立标准化的方法类。首先分析了对数据库操作的类别,包括数据库连接、更新插入数据、查询单个数据、查询多行数据、查询多表数据等;调用.NET中System.Data.SqlClient空间里的基本数据库操作类,以及DataSet,DataRow等基础数据类,分别构建了Connect,ExCutesql,Getsingle-Value,GetDataSet和GetDataRow等标准数据库操作方法类。
2.3.2 图形组件
洪水预报系统的数据整编、模型参数查询、模拟结果和预报成果的表现都有可视化的需求。如用曲线图整体上表现水位、流量的变化过程;使用棒图反映一段时间内的雨量、径流深;使用Shape,Grid图表征显示不同子流域分区或网格的降雨、蒸发量、径流深分布信息等。根据不同的要求,分别调用ZedGraph空间里的PointPairList,LineItem等基类以及嵌入的GIS方法类,分别设计了降雨流量变化过程图类、Shape图层显示窗体类、Grid图层显示窗体类。
2.3.3 预报组件
由于洪水预报的相关数据都和测站相联系,可以把洪水预报系统处理的对象概化为测站(雨量站、河道站和水库站),这样就可以把洪水预报系统处理的数据利用测站基类的属性和方法表示。同时建立通用的洪水预报类,通过引用测站类,把不同的预报模型作为类中的方法库调用,当需要添加新模型时,只需要在类中添加相应的属性参数和方法。标准化预报基本类和方法,使得该预报子系统具有更好的可移植性和可扩展性。
3 系统功能实现
汉江洪水预报系统主界面如图3所示,该界面左下角的小视图框称为“鹰眼”,可全局显示当前浏览图层在整个汉江流域的大致位置范围,下方状态栏可获得地图上任意点的经纬度、高程等信息。系统按功能分为以下4个部分:
图3 汉江流域洪水预报系统主界面Fig.3 Main interface of flood forecasting system in Hanjiang River basin
3.1 流域图层管理子系统
该子系统集合多种专题图层,实现对流域基本地理信息的查询。实现的主要功能有:①支持多种比例尺、多种类型的数据混合使用,各种数据既可以单独显示,也可混合显示;②大区域、全要素的实时缩放和漫游,可将大范围的矢量数据动态地拼接在一起,进行大范围的显示、缩放和漫游;③地理信息的双向查询,查询空间位置、长度、面积、编码、名称、等级、性质等方面的信息。
3.2 数据库管理子系统
该子系统部署在服务器端,负责保障服务器端数据库与实时报汛数据库之间的通信,创建并存储洪水预报相关数据。该子系统实现的功能有:①当服务器端程序启动后,自动搜寻报汛库中新进数据,分别按日、6h的时段统计实时降水、流量、气温等数据,并存入服务器端数据库相应库表;②待数据更新完毕,触发插值计算程序,将新的降水、气温等站点数据插值到网格,并存入相应库表;③记录下最新数据对应的时间,每1 h自动更新一次数据;④每次模型预报计算都是服务器端数据库读取输入数据,待计算完成把相关结果写入数据库,以供客户端查询预报结果。
3.3 水雨情信息查询子系统
水雨情查询分实时水雨情查询和历史水雨情查询。查询方式可以有多种:按站码管理查询、按界面的地图位置查询和按报表查询等;结果显示可以是数据报表形式,也可以是图形形式。目前可以实现测站(雨量站、河道站、水库站)基本信息查询,时段、日、旬、月等不同时间尺度的统计数据查询,等雨量线生成与查询,水位、流量过程线查询,降雨、水位、流量的历史对比查询等。图4分别给出了等雨量线查询和流量历史对比查询示意图。
图4 等雨量线和雨量历史对比查询图Fig.4 Isopluvial lines and contrast reference diagram of rainfall history
3.4 洪水预报子系统
考虑到对整个汉江流域的径流过程和水资源量进行动态的、分布式的评估与监测需要,建立并在系统中嵌入了基于9×9 km2网格的VIC分布式预报模型。为了提高预见期,该子系统嵌入了MM5气象预报结果预处理模块及人工预报结果输入界面,并提供了MM5与VIC、人工预报结果与VIC的耦合预报模式,期望为汉江流域的防洪减灾、兴利调度决策赢取先机。该子系统可实现对整个汉江流域网格、网格流向、植被土壤分布及水文参数空间分布的查询,可选择不同时间范围和不同模式对汉江流域各个水文控制站进行过程模拟或实时预报,可根据不同设置而自动生成的方案号查询模拟或预报计算的蒸发量、径流深分布和出口站流量过程等。图5给出了洪水预报子系统部分结果查询示意图。
图5 模拟预报子系统结果查询图Fig.5 Result reference diagram of simulated predication sub-system
4 结 语
本文研究了基于GIS的汉江流域洪水预报系统的总体设计与实现的关键技术。在三层C/S结构的集成系统设计中,分布式水文预报模型的嵌入使得该系统在动态监测、评估流域内径流洪水过程方面具有独特的优势,.NET框架下的组件标准化技术使得系统具备了良好的移植性和可扩充性,应用ArcObject使得系统基于GIS的查询及结果展示等功能更为灵活和可行,而分布式计算架构的实现大大提高了系统的计算效率。所开发的汉江流域洪水预报系统实现了水文空间信息和属性信息的一体化管理,提供了灵活的信息查询和实用的分布式洪水预报、丰富的结果展示等功能。目前该系统已在长江水利委员会水文局水文气象预报处试运行,随着系统的不断完善,该系统可望为汉江流域的防洪调度决策与水资源综合管理提供重要的技术支撑。
[1] 庞 博,郭生练,陈 华,等.丹江口水库调度系统设计和开发[J].湖北水力发电,2003,50(2):55-57.
[2] 郭生练.水库调度综合自动化系统[M].武汉:武汉水利电力大学出版社,2000.
[3] 郭生练,彭 辉,王金星,等.水库洪水调度系统设计与开发[J],水文,2001,21(3):4-7.
[4] 陈 华,郭生练,李超群,等.数字汉江GIS系统集成研究[J].南水北调与水利科技,2007,5(1):54-57.
[5] 施松新,董朝霞,王 乘.基于GIS的数字流域系统集成研究[J].计算机应用研究,2005,(3):43-44.
[6] 张 俊,郭生练,陈 华,等.与MM5气象模式耦合的VIC分布式水文模型构建[J].人民长江,2008,39(8):92-95.
[7] NAGEL C,EVJEN B,GLYNN J,et al.C#高级编程(第4版)[M].李敏波,译.北京:清华大学出版社,2006.
(编辑:赵卫兵)
Design and Implementation of GIS-based Flood Forecasting System for Hanjiang River Basin
ZHANG Jun1,CHEN Gui-ya1,2,YANG Bin3,GUO Sheng-lian1,CHEN Hua1,MA Shao-zhong3
(1.State Key Laboratory ofWater Resources and Hydropower Engineering Science,Wuhan University,Wuhan 430072,China;2.Bureau of Hydrology,ChangjiangWater Resources Commission,Wuhan 430010,China;3.Fengyuan Technology Development Limited Company,Jilin 132001,China)
A GIS-based flood forecasting system for the Hanjiang River basin is successfully designed and developed on the basis of the Microsoft Visual Studio.NET environmentand bymeans of embedded GIS technology and SQL Server.The system has a reasonable structure and preferable practicability.By analyzing the implementation objective,the system’s framework design,function design,relative key technologies and interface design are discussed emphatically.The system has good expansiveness and transplantation features and can provide an important technological support for flood control decision and integrated water resourcesmanagement for the Hanjiang River basin.
Flood forecasting system;embedded GIS;C#.NET;ArcObject
TV877
A
1001-5485(2009)08-0015-05
2008-11-03;
2009-03-18
国家自然科学基金资助项目(50679063);国际科技合作重点资助项目(2005DFA20520);湖北省自然科学基金(2007ABA061)
张 俊(1982-),男,湖南会同人,博士研究生,研究方向为流域水文模拟与洪水预报,(电话)13971594308(电子信箱)tbgzhan@yahoo.com.cn。