APP下载

防洪决策中海量二三维数据联动可视化问题研究

2016-08-10梁哲恒

测绘通报 2016年7期
关键词:视图防洪进程

梁哲恒,陈 军

(广东南方数码科技股份有限公司,广东广州510665)

防洪决策中海量二三维数据联动可视化问题研究

梁哲恒,陈军

(广东南方数码科技股份有限公司,广东广州510665)

目前国内二三维联动GIS的研究大多是把二维和三维的展示放在同一进程中实现,且涉及的地域狭小、数据量小,难以发现实际项目应用中的问题。本文以实际的数字武江防洪决策系统项目为例,对基于多进程交互技术的海量二三维数据联动进行了研究,在充分利用多进程交互、GIS、数据库、三维地形可视化等技术的基础上,结合二三维系统的特点,实现了对武江流域防洪决策信息的管理、展示、分析与处理,为武江流域防洪决策提供了技术支撑。

防洪决策;多进程;二三维联动;可视化

一、背 景

作为“数字地球”的重要组成部分,“数字流域”是建立在流域尺度上的以水为纽带的复杂系统,它以空间坐标框架、空间技术为主要手段,是流域信息资源采集整合、管理更新、共享服务和开发利用的支撑平台。在国外,流域数字化管理起步较早,流域相关管理功能被开发成相应的模块集成到商业软件中,如HydroEarth、ArcHydro。在国内,随着“数字长江”“数字黄河”“数字清江”等工程的开展,“数字流域”的建设也开始发展起来。“数字武江”是以北江一级支流武江流域为应用示范流域,旨在通过对广东省第一次全国水利普查成果相关数据的综合管理、分析和研究,形成武江流域的基础地理、自然资源、水利设施,以及社会和经济等多主题流域信息平台,同时建立“数字武江”流域管理和辅助决策系统,为武江流域的防洪指挥调度提供支持,并为政府、相关部门及用户提供现代化的信息支持。

在“数字武江”建设初期,武江防洪决策支持系统采用多线程的二三维联动技术,由于二维模块和三维模块各自显示的数据量比较大,随着系统各个功能模块的操作(详情见表1),当二三维模块所在的进程占用内存超过800 MB时,整个系统会出现内存溢出错误。异常详细信息如下:System.Out-OfMemoryException,引发类型为System.OutOfMemoryException的异常。如何有效利用多进程交互、GIS、数据库、三维地形可视化等技术,将海量的流域数据在二三维模块中进行联动可视化,进而实现流域的水文水动力模拟、抗洪减灾、水资源的可持续利用等,是武江防洪决策支持系统需要重点解决的问题。

表1 系统各功能模块的操作

图1

图2

图3

图5

图6

图4

二、目 标

早期开发版本的武江防洪决策支持系统的二维地图与skyline三维视图集成在同一个进程中,容易引发内存溢出问题。本文通过将系统二维地图与skyline三维视图拆分为两个进程,即将skyline的三维视图及三维内容管理面板作为独立进程运行,且考虑二三维之间的交互,达到在二三维进程包含的数据量都比较大的情况下,不再出现内存溢出问题,且二三维联动交互顺畅。

三、实现方法

1.多进程交互

(1)进程的定义

进程是操作系统中最基本最重要的概念,是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。

进程是20世纪60年代初首先由麻省理工学院的MULTICS系统和IBM公司的CTSS/360系统引入的,是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,是一个活动的实体;它不只是程序的代码,还包括当前的活动,通过程序计数器的值和处理寄存器的内容来表示。

狭义上,进程是正在运行的程序的实例;广义上,进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个执行中的程序。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行),它才能成为一个活动的实体,称其为进程。

(2)进程间通信

常用的进程间通信方式有消息传递、共享内存、管道、socket等。由于管道和socket的使用需要网卡的支持,而目前的应用场景是在一台机器上的两个进程间的通信,因此不能采用管道和socket。

消息传递是进程通信里面实现起来最简单的一种方式,比较适宜小数据的快速传输。但是在数据量较大、交互又频繁的情况下使用发送WM_COPYDATA消息的方法也是不合适的,当数据传输过于频繁时有可能导致数据丢失。共享内存的方式是完全可以满足在进程间进行大数据量数据快速传输任务要求的。

2.二三维联动交互机制

武江防洪决策支持系统的三维模块单独作为一个进程,并在二维程序中按需启动。skyline的三维视图、三维内容管理面板,以及三维模块的工具条和菜单对外提供窗口句柄,使其能够集成到系统中。由于二三维的联动不涉及数据的传递,因此多进程的交互采用消息传递模式,通过Windows的底层API实现二维与三维进程关键的两个面板(三维视图、三维内容管理面板)之间的交互。如图7所示。

图7

3.二三维联动实现思路

skyline的三维视图及三维内容管理面板需对外提供窗口句柄,使其能够集成到主系统(即二维地图所在的系统)中,作为某些面板(如panel、User-Control等)的子元素;然后通过Windows的底层API实现主系统与三维进程关键的两个面板(三维视图、三维内容管理面板)之间的交互。二三维GIS多进程交互实现流程如图8所示。

图8 二三维GIS多进程交互实现流程

4.运行效果

以上解决了二三维模块在同一个进程下内存溢出导致系统崩溃的问题。随着系统各个功能模块的操作(详情见表2),二维和三维模块所在的进程占用内存始终不会超过800 MB,且不会发生内存溢出问题,通过多进程交互技术实现了二三维模块的联动,运行效果如图9—图10所示。

武江防洪决策支持系统以水利普查成果数据为基础,以水利普查数据共享与应用服务平台为桥梁,以专业数据模型为支撑,以整合水利普查和提升专业应用为目标,通过洪水淹没模型和洪水淹没损失分析模型等,实现洪水演进、洪水淹没评估、信息查询、三维展示、防洪决策分析等功能,为防洪减灾提供辅助决策支持,为武江流域的资源利用和环境保护提供科学的决策依据,为流域的可持续发展提供保障。

图9 二维模块运行效果

图10 三维模块运行效果

表2 系统各功能模块的操作

四、试验和结论

通过研究证明,微软的.NET框架在单进程的内存占用率达到800 MB左右时,基于.NET框架开发的系统就会非常不稳定,执行一些简单的操作也会导致系统内存溢出。二三维GIS在同一个进程中通过多线程实现时,二三维的联动虽然能够实现,但是性能不高,从二维切换到三维或从三维切换到二维时,会出现卡顿现象。通过在武江防洪决策支持系统中运用基于多进程交互技术的二三维联动方案,验证了二三维GIS通过多进程进行交互的可行性与实用性。该系统在加载整个项目区武江流域的全部二维和三维数据时,系统仍能稳定运行且二三维的联动非常流畅。

五、结束语

三维进程与二维进程互相独立,即使子进程崩溃也不影响主程序的稳定性,而且通过增加CPU就可以很容易扩充系统性能;另外还可以尽量减少线程加锁/解锁的影响,极大地提高了性能,即使线程运行的模块算法效率很低;二维和三维子进程都有2 GB地址空间和相关资源,总体上能够达到性能上限。

但是操作系统调度切换多个线程要比多个进程在速度上快得多,而且进程间内存难以共享,通信也比较麻烦。线程之间由于共享进程内存空间,交换数据非常方便。另外在创建或撤销进程时,系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤销线程时的开销。在实际应用当中,需要根据线程和进程的优缺点合理选择系统模块的交互模式,使技术服务目标应用达到最大化。

[1] 黄健熙,郭利华,龙毅,等.二维地图与三维虚拟场景的互响应设计与实现[J].测绘信息与工程,2003,28 (1):33-34.

[2] 刘东琴,徐文中,林宗坚.城市空间二维信息系统与三维虚拟场景一体化研究与应用——BDA城市三维信息系统的设计与实现[J].测绘科学,2007,32 (1):53-54.

[3] 董卫红.二维与三维信息互响应技术研究[J].常州轻工职业技术学院学报,2008,3(1):19-21.

[4] 邵明旭,许惠平,覃如府,等.二三维联动的虚拟校园设计与实现[J].地理信息世界,2008,4(2):72-76.

[5] 万幼,边馥苓.二三维联动的GIS系统体系结构构建技术[J].地理信息世界,2008,4(2):48-52.

[6] 高飞,尤磊,阮红利.基于开源项目的二三维联动GIS系统的设计与实现[J].测绘科学,2009,34 (S2):144-145.

[7] 孙英君,丁宁,王倩.基于二三维联动机制的数字校园系统研究[J].山东建筑大学学报,2009,24(4): 377-380.

[8] 李娟娟,施昆,邱飞廷.基于ArcEngine与Skyline的二三维联动GIS系统平台设计与应用——以昆明三维城市规划辅助决策系统为例[J].江西科学,2010,28(5):696-700.

[9] 郑国江,赵园春,李成名.一种无缝集成的二三维联动WebGIS设计及实现[J].遥感信息,2011,28(3): 111-114.

[10] 范娟利.二三维联动应急测绘指挥系统实现[J].全球定位系统,2014,39(4):78-86.

[11] 百度百科.进程[EB/OL].[2014-03-04].http:∥baike. baidu.com/view/19746.htm.

[12] 百度百科.进程间通信[EB/OL].[2014-03-04].http: ∥baike.baidu.com/view/1492468.htm.

Research on the Massive Data Visualization of 2D and 3D Linkage in Flood Control Decision Making

LIANG Zheheng,CHEN Jun

10.13474/j.cnki.11-2246.2016. 0237.

P208

B

0494-0911(2016)07-0114-04

2016-05-09

梁哲恒(1977—),男,硕士,工程师,主要研究方向为GIS软件开发管理。E-mail:zheheng.liang@southgis.com

引文格式:梁哲恒,陈军.防洪决策中海量二三维数据联动可视化问题研究[J].测绘通报,2016(7):114-117.

猜你喜欢

视图防洪进程
快速组装防洪挡水墙装置
夏季防洪防汛
公益宣传(防洪进行时)
2019年河南省防洪除涝保护统计汇总表(本年达到)
债券市场对外开放的进程与展望
改革开放进程中的国际收支统计
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
Django 框架中通用类视图的用法