he_young
路人甲
路人甲
  • 注册日期2003-09-13
  • 发帖数221
  • QQ
  • 铜币4枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2228回复:0

荆江分洪区洪水风险图制作中VB与MapInfo集成开发

楼主#
更多 发布于:2003-09-18 22:45
荆江分洪区洪水风险图制作中VB与MapInfo集成开发

李 翀陆吉康 李小佩

(中国水利水电科学研究院水力学所、减灾中心,北京复兴路甲一号,100038)

 
荆江分洪工程概况
荆江分洪区工程是长江防洪体系的重要组成部分,担负着削减洪峰,分、蓄洪水的作用,该工程由位于荆江河段沙市段南岸的荆江分洪区、涴市扩大区、虎西备蓄区及长江北岸的人民大垸(上、下)组成,总蓄滞面积1358 km2,有效容积71.6亿m3。
荆江分洪区由太平口至藕池口长江干堤以西、安乡河藕池至黄山头以北及虎渡河以东208km围堤包围,是长江发生洪水时调蓄洪水的主要蓄洪区。其面积为920km2,其蓄洪量54亿 m3,设计蓄洪水位42.0m; 1952年在分洪区内长江与虎渡河交界处建有北闸:长1054m,54孔,每孔宽18 m,分洪流量7700—8000,由南闸向湖南泄洪。

分洪区内有21个安全区,安全区围堤长52.78 km,面积 19.58km2;有87处安全台,安全台面积1.78 km2,躲水楼240栋13.5万m2,安置房908栋36.4万m2。1998年实际人口54.5万。耕地面积:50万亩,95年工农业产值为 40.39亿元。

荆江分洪区1952年兴建,1954年长江大水,荆江分洪区被运用,先后三次开闸分洪,最大降低沙市水位0.96m,蓄洪54亿立米,分洪总量122.6亿立米,确保了江汉平原和武汉市的安全,为国家的全局利益牺牲了局部利益。三次分洪,第一次7月22日,沙市水位达44.38m,分洪总量23.5亿立米,分洪5.5天,降低水位0.47m;第二次是7月29日,沙市水位达44.24m,分洪总量17.2亿立米,分洪3.5天,降低水位0.64m;第三次为8月1日,沙市水位达44.14m,北闸最大分洪流量7700秒立米,8月8日腊林洲扒口分洪250m,分洪流量1800秒立米,分洪21天,降低水位0.96m。1954年荆江分洪区分洪对削减1954年长江洪水的洪峰流量,降低沙市水位起到了关键性的作用。

为抗御枝城8万洪峰流量,1963年设置涴市扩大区,面积96 km2,设计蓄洪水位42.0 m,蓄洪量2亿 m3。建有2个安全区, 面积7.3 km2 ,用于转移备蓄区内东部居民。

虎西备蓄区是1952年建成的,位于荆江分洪区的西部一狭长地带,面积93.38 km2,蓄洪面积86 km2,设计蓄洪水位42.0 m,蓄洪量3.8亿 m3,以备荆江分洪区泄量不足。

长江北岸的人民大垸分上、下两个大垸,总面积255 km2,设计蓄洪水位38.5 m,蓄洪量11.8亿 m3,分洪流量2.0万。荆江分洪区不能容纳更加多余的洪水时,最后启用人民大垸。

荆江分洪区的风险主要取决于长江总体防洪规划和防洪调度原则。调度原则是:充分发挥河道的泄洪能力;遇超过河道泄洪能力的洪水时,首先扒开洲滩民垸扩大行洪能力,然后适时运用蓄滞洪区分蓄超额洪水,确保重点堤防和地区的防洪安全;遇特殊情况,采取非常措施,最大限度地减轻洪灾损失。

荆江洪水风险图介绍
洪水风险图是融合洪水特征信息、地理信息、社会经济信息,通过资料调查、洪水计算和风险判别,以图表的空间表现形式直观反映洪水威胁区域发生某一频率洪水后,可能淹没的范围、水深、流速等洪水特征要素以及进行不同量级洪水灾害风险和洪灾经济的损害评估的图形工具。目前,美国MapInfo 公司的MapInfo 是国内应用较多的桌面地理信息系统(Desktop GIS),这种32位的应用程序包,是一种较理想的客户/服务器环境下的桌面地理信息系统,但从洪水风险图研究的角度,还缺乏专业领域的表现形式。为此,本文基于将MapInfo地理信息系统、水动力学数学模型模拟洪水演进、洪水风险分析相结合,以VB作为开发平台,通过OLE方式进行MapInfo二次集成开发,用以制作长江荆江段的重要分洪工程——荆江分洪区等五个分洪区的风险图及信息管理,并针对典型分蓄洪方案,综合考虑分洪时洪水到达时间、水深、流速分布、淹没历时等洪水要素以及淹没损失、人员撤退方案,它可为长江干流洪水调度与控制需要而决定是否使用荆江分洪区提供基础数据和决策依据。为此,集成二次开发的应用系统就不仅要具有MapInfo的地图功能,还需要将洪水风险图的各要素充分展现出来并赋予一定的分析和表现功能。下图1即为应用集成二次技术开发出的“荆江分洪区洪水风险图”的主界面。

图1 荆江分洪区洪水风险图主界面

1、风险图构成示意图

2、风险图主要功能


、MapInfo的地图功能


、行政区示意图

利用MapInfo的地图功能,将荆江分洪工程的五个区域(即荆江分洪区、涴市扩大区、虎西备蓄区及上、下人民大垸)的行政区划在该系统中表现出来,并作成可放大、缩小、漫游、添加、修改的矢量图,其中各乡镇区分以不同的颜色。长江河道、分洪区内的安全区、堤防、河道、公路、桥梁等均可在图中方便迅速地查到。当整个区域图形显示在图上时,图中仅可见到较少重要信息,使图形比较清晰、干净。逐渐放大,图形的信息逐步增多,将鼠标放置在图中的某些部位片刻,还会自动出现更详细的信息,譬如安全区的名称、所属乡镇、人口、面积等等。


、分洪区的水利工程信息

在分洪区内的堤防高程、桩号、溃口、险工、分洪闸、分洪位置、扒口、退水闸、船闸等以图层的方式叠加到基础地理信息层上。分洪区内的公路、桥梁、安全台、躲水楼、渡口等安全转移信息也在图上予以表示。


、风险图控制显示及动态显示功能

可通过菜单操作或鼠标选项的方式显示发生某一频率洪水,如1954年型洪水时,分洪区内各处的最大水深、最高水位,不同时间内分洪区被淹没的范围,必要时可同时显示整个洪水的动态演进过程。


、风险信息附加功能

图表中包含有大量的分洪转移信息,如防汛指挥系统的组成,发布分洪转移命令、开闸分洪命令的程序,堤防防守人员的调配等;又如分洪人口数,各种不同转移方式的人口数;各条重要道路、桥梁能容纳的转移人口、牲畜、车辆等的流量;安全区、安全台、大堤可安置灾民的人数。


、GIS挂接水动力模型的功能

水动力学模型直接挂接在GIS地理信息系统上是本系统的一个重要的特点,由此可直观地、动态地显示洪水的演进过程,为决策者提供很直观的信息工具。此外,GIS也可以进行计算网格的单元剖分,为水动力学模型提供详实的初始条件和边界条件。

VB与MapInfo的集成开发
一般来说,应用GIS开发有三种实现方式:独立开发、单纯二次开发和集成二次开发。独立开发指不依据任何GIS工具软件,在一定平台上实现GIS的全部或部分功能,以适应专业系统的需要,但开发难度较大且商品化程度不高。单纯二次开发指完全借助于GIS工具软件提供的开发语言进行系统开发,但此种开发语言(如MapInfo的MapBasic)多为3GL语言,其开发编程工作量大,调试不易,开发效率较低。集成二次开发指利用工具软件实现GIS的基本功能,以4GL语言(如VB、DELPHI等)为开发平台,进行二者的集成。这样,既保留GIS的地图方面的处理功能,又能利用4GL在快速开发应用方面的长处,不仅大大提高应用系统的开发效率,而且使用4GL语言开发出来的应用程序具有更好的外观效果及用户界面,更强大的数据库功能,更专业的表现形式和数据处理功能,且可靠性好、易于移植、便于维护。

本系统中,采用OLE AUTOMATION(对象连接嵌入自动化)技术,用VB 5.0开发前台可执行应用程序,以OLE自动方式启动GIS工具软件MapInfo在后台运行。应用程序通过构造象征MapBasic语句的字符串,利用OLE AUTOMATION技术传递这些字符串到MapInfo中,使得MapInfo执行这些语句就象你在MapBasic窗口中敲入这些命令一样。

进行VB与MapInfo的集成二次开发时,可以将VB作为OLE自动化的控制方。VB创建客户自动化程序是通过建立一个OLE对象来实现的。要创建OLE对象,需调用CreateObject函数,并且把返回结果赋给一个Object类型变量,以后程序就是通过这个变量来访问OLE对象的。下面给出如何通过VB5.0应用程序创建MapInfo对象,显示地图并对其进行放大、缩小和漫游的操作,其步骤简述如下:

 
在Project的General Declarations Procedure 中声明一个OLE对象变量,如Public My_MapInfo As Object
 
在Form_Load Procedure中输入以下代码:
Set My_MapInfo = CreateObject("MapInfo.Application")
在应用程序工具条Toolbar1_ButtonClick Procedure中编写地图放大、缩小和漫游等功能的脚本,例如:
My_MapInfo.runmenucommand 1702

My_MapInfo.runmenucommand 1705

My_MapInfo.runmenucommand 1706

上述三条Mapbasic命令分别触发MapInfo的地图漫游、放大、缩小三重功能。

由于集成二次开发应用技术集中了VB与MapInfo的优点,可以很方便地实现本应用系统的各种功能,绘制出洪水风险图,并充分展现其各要素。但在实际制作中还是会遇到一些麻烦,下面就集成二次开发中几个主要问题作一点说明。

 
水动力学模型与MapInfo挂接
依赖于洪水演进模拟的水动力或水文模型,可以对某一区域一定初始及边界条件下的洪水演进过程进行推演模拟。应用系统将模型模拟的结果图形化,在GIS系统中表现出来,并与该区域地理信息复合估算淹没损失,考虑人员撤退方案等。由于数值模拟的结果多为数据文本,而MapInfo 地图表现为对象,就需要在数据文本与地图对象之间建立一种关联,使计算数据图形化,数据转化有两种方式:一种是直接依赖MapInfo提供的*.MIF、*.MID格式文件可在MapInfo工具软件的“转入”菜单项中自动生成MapInfo图形对象这一特性,将模拟结果数据先转化成*.MIF、*.MID格式,利用MapInfo工具软件自动转化为图形对象。另一种是在应用系统中,通过OLE自动化方式,直接应用模拟数据在设定图层中绘制图形对象并进行数据转换。反过来,MapInfo地图对象也可数据化,该法是利用MapInfo提供的辅助程序,直接生成数值计算所需的规则计算网格,每个网格上所需填写的数据,如底高程可通过地图提供的等值线插值得到,边界条件可与该区域地理信息叠加确定。生成的数据可由OLE方式转出以*.dat文件形式供数值模型调用。这样,就可利用MapInfo表现图形的直观形式,为数值模拟提供计算基础数据,也可以节省大量的人工填写数据时间。
分洪区人员转移方案的实现
分洪区人员转移方案在应用系统中以图形化的方式并结合文字的形式表现出来,使方案能直观、一目了然地展现,有利于方案的修改与完善。人员的撤退皆是在一定的道路、桥梁、渡口上,设计上可先将转移道路、桥梁、渡口制作为一图层并建立相应的数据库,对于某一转移方案 ,根据转移方案的内容,直接从图形对象上读取相应的节点坐标,使表征转移对象的动画小人按节点坐标顺序移动,同时从相应的数据库中读取数据,以文本形式显示出来。
洪水演进的动态显示
应用系统中对于洪水的水位分布图、水深分布图等皆可用MapInfo的专题图形式表现。在系统中,通过OLE方式先将数值模型计算数据转换成MapInfo图形对象对应的属性数据,而后直接应用设定好参数的“Shade Window”命令即可自动生成所需的专题图。如图2所示即为“荆江分洪区洪水演进方案一最大水深分布” 专题图。洪水演进水深分布、水位分布的动态显示就基于MapInfo的专题图技术,在洪水数值模拟的基础上,以时钟控制器控制显示时间间隔,不断将数值模型计算数据转换成MapInfo图形对象对应的属性数据以刷新专题图,达到动态显示的目的。这样,可以达到两个目的,一是在数值模型计算中可以进行实时调控,提高模型模拟的效率;二是在数值模型成功模拟的基础上,可为实际操作提供直观、形象的预测预报,从而为决策提供依据。
喜欢0 评分0
QQ:11716903 email:he_young@163.net ************************************** 不要去想我是谁,因为我在那个你看不到的黑暗角落 我来了,我也会走 就像你来了,你也会走...
游客

返回顶部