摘要:洪水是自然界中給人類帶來災(zāi)難最為嚴(yán)重的一種自然現(xiàn)象,因此人類必須要掌握洪水的運動規(guī)律,學(xué)會如何合理利用洪水資源,降低洪水災(zāi)害給人類帶來的損失。該文利用水力學(xué)模型對洪水?dāng)?shù)據(jù)進行計算,將WebGIS技術(shù)和三維可視化技術(shù)相結(jié)合,借助Skyline開發(fā)平臺,采用C#編程語言開發(fā)了基于Web的洪水模擬仿真系統(tǒng),實時模擬了洪水的淹沒過程,實現(xiàn)洪水淹沒模擬的網(wǎng)絡(luò)三維可視化擬和相關(guān)的洪水淹沒信息的集成、管理、發(fā)布和共享,為洪水的科學(xué)管理和決策提供了科學(xué)依據(jù)和技術(shù)支持。
關(guān)鍵詞:WebGIS;Skyline;洪水;模擬仿真
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2013)01-0128-02
洪水是給人類帶來災(zāi)難最嚴(yán)重的一種無法避免的自然現(xiàn)象,因此人類要研究掌握洪水的運動規(guī)律,學(xué)會科學(xué)、合理地利用洪水資源,降低洪水災(zāi)害所帶來的損失。許多專業(yè)學(xué)者也都在洪水的可視化方面做了大量的研究,但是隨著互聯(lián)網(wǎng)的迅速發(fā)展,對于洪水的模擬仿真也應(yīng)該結(jié)合Web技術(shù),在實現(xiàn)洪水模擬仿真的同時還可以實現(xiàn)信息的實時發(fā)布和共享。而本文正是基于WebGIS技術(shù),依托Skyline開發(fā)平臺,采用C#編程語言對東平湖蓄滯洪區(qū)各個時刻的洪水演進數(shù)值結(jié)果進行了三維可視化模擬,研發(fā)了基于WebGIS的洪水模擬仿真系統(tǒng),實現(xiàn)了洪水的實時淹沒模擬和相關(guān)的淹沒分析,為洪水的科學(xué)管理和決策提供了理論依據(jù)和技術(shù)支持。
1 系統(tǒng)總體設(shè)計
本文采用了目前主流的B/S網(wǎng)絡(luò)體系結(jié)構(gòu),在此基礎(chǔ)上研發(fā)了基于WebGIS的洪水模擬仿真系統(tǒng),實現(xiàn)了對東平湖蓄滯洪區(qū)的三維場景模擬、各個時刻的洪水淹沒模擬和淹沒分析等信息的集成、管理和發(fā)布,同時為遠(yuǎn)程客戶提供了瀏覽、查詢和分析功能。該系統(tǒng)的總體設(shè)計如圖1所示[1]。
該系統(tǒng)主要包括了三維場景漫游、空間量算、三維查詢、淹沒模擬和淹沒分析五大功能。
三維場景漫游:實現(xiàn)了三維場景中的全方位漫游,主要包括三維場景的漫游、 三維場景的縮放和三維場景的定位。
空間量算:實現(xiàn)了三維場景中的垂直距離量算、水平距離量算、空間斜線距離量算以及區(qū)域面積量算。
三維查詢:實現(xiàn)了三維場景中地物的點擊查詢和屬性信息查詢。
淹沒模擬:該功能模擬了各個時刻的洪水淹沒情況。
淹沒分析:實現(xiàn)了不同時刻的洪水淹沒面積、洪水水量的計算和分析。
2 系統(tǒng)功能模塊實現(xiàn)
2.1 三維場景漫游功能
該功能主要包括了:三維場景的漫游、三維場景的縮放和三維場景的定位。三維場景漫游功能的實現(xiàn)原理是通過改變用戶位置的坐標(biāo),來改變用戶的視野范圍。三維場景的漫游功能和縮放功能的實現(xiàn)是利用了TerraExplorer Pro組件中的IPlane接口,這個接口的功能就是控制視角的變化。三維場景的定位功能的實現(xiàn)原理就是在信息樹中通過遍歷查找的方法找到地物在信息樹中的ID號,從而實現(xiàn)定位功能。
2.2 空間量算功能
該功能主要包括了:水平距離量算、垂直距離量算、空間斜距離量算和區(qū)域量算。該功能的實現(xiàn)主要使用了IRender接口中的ScreenToworld方法,首先將屏幕坐標(biāo)轉(zhuǎn)化為三維場景中的坐標(biāo),然后通過空間坐標(biāo)的計算得到量算結(jié)果。
2.3 查詢功能
該功能主要包括對三維場景中任意感興趣的三維地物的點擊查詢和屬性信息查詢。
2.4 淹沒模擬功能
該功能的實現(xiàn)主要是利用TerraExplorer Pro組件中的IObjectManager51接口來進行洪水水面的繪制,利用流模式和Timer類來進行洪水淹沒過程的動態(tài)模擬。另外,為了方便用戶更加有效地了解、模擬和控制任意時刻的洪水淹沒過程,該文還專門設(shè)計了淹沒暫停功能。
2.5 淹沒分析功能
該功能是指對洪水淹沒面積和淹沒體積的計算,保證了用戶在觀看洪水淹沒過程的同時還可以從定量的角度來分析洪水的淹沒情況。
3 網(wǎng)絡(luò)洪水淹沒三維可視化的實現(xiàn)
該文采用WebGIS技術(shù)和VR技術(shù)將二維非恒定流水力模型計算出的結(jié)果包括流速、流向、水深、底高程等,發(fā)布到三維場景中,并在三維場景中實時繪制出洪水淹沒的過程,實現(xiàn)網(wǎng)絡(luò)洪水淹沒的三維可視化模擬。
3.1 洪水淹沒過程繪制
在繪制過程之前,首先需要對二維非恒定流水力模型計算出的結(jié)果進行預(yù)處理。預(yù)處理的步驟如下:第一步,根據(jù)網(wǎng)格結(jié)點的x值、y值以及該結(jié)點的流速值判斷該結(jié)點是否有洪水經(jīng)過,有洪水經(jīng)過的網(wǎng)格點將其保留,反之將其刪除;第二步,判斷網(wǎng)格結(jié)點的所有聯(lián)接關(guān)系,即該網(wǎng)格點的聯(lián)接關(guān)系如果是水面則將其保留,如果是地面則將其刪除;第三步,循環(huán)至所有網(wǎng)格結(jié)點的判斷結(jié)束。經(jīng)過數(shù)據(jù)預(yù)處理所得到的結(jié)果即為繪制洪水淹沒過程所需要用到的數(shù)據(jù)。
本文利用TerraExplorer Pro組件中的IObjectManager51接口來實現(xiàn)洪水水面的繪制。具體繪制過程如下:首先,將洪水?dāng)?shù)據(jù)從數(shù)據(jù)庫中讀出,存放于一個臨時的時間棧數(shù)組中;其次,利用Timer類創(chuàng)建了一個時間定時器,每隔一定時間產(chǎn)生一個消息,程序中的繪圖函數(shù)接到此消息后,將向三維場景繪制一個洪水水面,同時將上一時刻的水面移除,從而形成一個按照一定速度向前推進的洪水淹沒過程。由于本文中的洪水淹沒模擬是基于地形和建筑物三維可視化實現(xiàn)的,因此在水面的繪制時只需要按照給定的時間間隔重新繪制水面即可,不需要重新繪制地形,從而保證了網(wǎng)絡(luò)的瀏覽速度。
3.2 洪水淹沒計算
本文在實現(xiàn)洪水淹沒三維可視化模擬的同時還對洪水淹沒面積、洪水淹沒體積進行了分析和研究,并且借助可視化手段將洪水分析結(jié)果直觀顯示出來。