?

防洪決策中海量二三維數據聯動可視化問題研究

2016-08-10 08:02梁哲恒
測繪通報 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 框架中通用類視圖的用法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合