首页 > 范文大全 > 正文

基于WebGIS的洪水模拟仿真系统的设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于WebGIS的洪水模拟仿真系统的设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:洪水是自然界中给人类带来灾难最为严重的一种自然现象,因此人类必须要掌握洪水的运动规律,学会如何合理利用洪水资源,降低洪水灾害给人类带来的损失。该文利用水力学模型对洪水数据进行计算,将WebGIS技术和三维可视化技术相结合,借助Skyline开发平台,采用C#编程语言开发了基于Web的洪水模拟仿真系统,实时模拟了洪水的淹没过程,实现洪水淹没模拟的网络三维可视化拟和相关的洪水淹没信息的集成、管理、和共享,为洪水的科学管理和决策提供了科学依据和技术支持。

关键词:webgis;Skyline;洪水模拟仿真

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2013)01-0128-02

洪水是给人类带来灾难最严重的一种无法避免的自然现象,因此人类要研究掌握洪水的运动规律,学会科学、合理地利用洪水资源,降低洪水灾害所带来的损失。许多专业学者也都在洪水的可视化方面做了大量的研究,但是随着互联网的迅速发展,对于洪水的模拟仿真也应该结合Web技术,在实现洪水模拟仿真的同时还可以实现信息的实时和共享。而本文正是基于WebGIS技术,依托Skyline开发平台,采用C#编程语言对东平湖蓄滞洪区各个时刻的洪水演进数值结果进行了三维可视化模拟,研发了基于WebGIS的洪水模拟仿真系统,实现了洪水的实时淹没模拟和相关的淹没分析,为洪水的科学管理和决策提供了理论依据和技术支持。

1 系统总体设计

本文采用了目前主流的B/S网络体系结构,在此基础上研发了基于WebGIS的洪水模拟仿真系统,实现了对东平湖蓄滞洪区的三维场景模拟、各个时刻的洪水淹没模拟和淹没分析等信息的集成、管理和,同时为远程客户提供了浏览、查询和分析功能。该系统的总体设计如图1所示[1]。

该系统主要包括了三维场景漫游、空间量算、三维查询、淹没模拟和淹没分析五大功能。

三维场景漫游:实现了三维场景中的全方位漫游,主要包括三维场景的漫游、 三维场景的缩放和三维场景的定位。

空间量算:实现了三维场景中的垂直距离量算、水平距离量算、空间斜线距离量算以及区域面积量算。

三维查询:实现了三维场景中地物的点击查询和属性信息查询。

淹没模拟:该功能模拟了各个时刻的洪水淹没情况。

淹没分析:实现了不同时刻的洪水淹没面积、洪水水量的计算和分析。

2 系统功能模块实现

2.1 三维场景漫游功能

该功能主要包括了:三维场景的漫游、三维场景的缩放和三维场景的定位。三维场景漫游功能的实现原理是通过改变用户位置的坐标,来改变用户的视野范围。三维场景的漫游功能和缩放功能的实现是利用了TerraExplorer Pro组件中的IPlane接口,这个接口的功能就是控制视角的变化。三维场景的定位功能的实现原理就是在信息树中通过遍历查找的方法找到地物在信息树中的ID号,从而实现定位功能。

2.2 空间量算功能

该功能主要包括了:水平距离量算、垂直距离量算、空间斜距离量算和区域量算。该功能的实现主要使用了IRender接口中的ScreenToworld方法,首先将屏幕坐标转化为三维场景中的坐标,然后通过空间坐标的计算得到量算结果。

2.3 查询功能

该功能主要包括对三维场景中任意感兴趣的三维地物的点击查询和属性信息查询。

2.4 淹没模拟功能

该功能的实现主要是利用TerraExplorer Pro组件中的IObjectManager51接口来进行洪水水面的绘制,利用流模式和Timer类来进行洪水淹没过程的动态模拟。另外,为了方便用户更加有效地了解、模拟和控制任意时刻的洪水淹没过程,该文还专门设计了淹没暂停功能。

2.5 淹没分析功能

该功能是指对洪水淹没面积和淹没体积的计算,保证了用户在观看洪水淹没过程的同时还可以从定量的角度来分析洪水的淹没情况。

3 网络洪水淹没三维可视化的实现

该文采用WebGIS技术和VR技术将二维非恒定流水力模型计算出的结果包括流速、流向、水深、底高程等,到三维场景中,并在三维场景中实时绘制出洪水淹没的过程,实现网络洪水淹没的三维可视化模拟。

3.1 洪水淹没过程绘制

在绘制过程之前,首先需要对二维非恒定流水力模型计算出的结果进行预处理。预处理的步骤如下:第一步,根据网格结点的x值、y值以及该结点的流速值判断该结点是否有洪水经过,有洪水经过的网格点将其保留,反之将其删除;第二步,判断网格结点的所有联接关系,即该网格点的联接关系如果是水面则将其保留,如果是地面则将其删除;第三步,循环至所有网格结点的判断结束。经过数据预处理所得到的结果即为绘制洪水淹没过程所需要用到的数据。

本文利用TerraExplorer Pro组件中的IObjectManager51接口来实现洪水水面的绘制。具体绘制过程如下:首先,将洪水数据从数据库中读出,存放于一个临时的时间栈数组中;其次,利用Timer类创建了一个时间定时器,每隔一定时间产生一个消息,程序中的绘图函数接到此消息后,将向三维场景绘制一个洪水水面,同时将上一时刻的水面移除,从而形成一个按照一定速度向前推进的洪水淹没过程。由于本文中的洪水淹没模拟是基于地形和建筑物三维可视化实现的,因此在水面的绘制时只需要按照给定的时间间隔重新绘制水面即可,不需要重新绘制地形,从而保证了网络的浏览速度。

3.2 洪水淹没计算

本文在实现洪水淹没三维可视化模拟的同时还对洪水淹没面积、洪水淹没体积进行了分析和研究,并且借助可视化手段将洪水分析结果直观显示出来。