趙 平,楊健新
(珠江水利科學研究院,廣東 廣州 510611)
數據可視化技術從計算機圖形學發展起來,最初用于制作圖形圖表[1]。隨著計算機、互聯網、物聯感知等技術的迅猛發展,數據變得量級更大、維度更廣,結構更復雜。人們想要更加清晰,快速地認知和理解一份數據,傳統的二維平面圖表已經不能滿足需求,數據三維可視化技術通過構建基于現實的三維數字場景,讓數據展現更為直觀易用,迅速成為信息數字化管理的重要組成部分,被廣泛應用到各行各業中。
我國幅員遼闊,山地眾多,山洪災害時常發生,威脅著人民的生命財產安全。在水利信息化的建設中,尤其是近年來在“智慧水利”項目中,山洪災害防治系統已經成為水利信息化產業的重要組成部分,在防汛抗旱防臺業務中發揮著非常重要的作用。海南省山洪災害三維可視化系統將物聯感知層、網絡層收集的數據進行處理、分析,以圖表、二維GIS等生動豐富的形式提供信息和分析結果,同時將復雜的水文模型、水動力模型、數學模型利用數據三維可視化技術進行模擬呈現,可快速并直觀地為決策提供數據支持,從而實現科學評估。
海南省山洪災害三維可視化系統主要依據地形地貌、植被水系等基礎地理數據,并綜合考慮當地交通通信以及社會經濟狀況等因素,在已劃分的小流域基礎上,選擇山洪災害易發區進行山洪災害監測站點布設,建立水雨情監測站網,實現對暴雨洪水的實時監測、在線查詢、預警發布等功能;同時依托計算機、網絡等信息技術,基于建模軟件以及面向對象的編程語言實現數據三維可視化系統的場景仿真、路徑漫游、查詢分析、快速渲染、服務發布等功能。
山洪災害三維可視化系統建設流程主要包括數據匯集、分析處理、編程實現。首先從衛星遙感影像中提取數字線化圖,通過航片制作正射影像圖,還可以利用傾斜攝影測量技術獲取精度更高的坐標、高度、地物紋理等數據,之后通過三維軟件建立虛擬現實的可視化模型,三維可視化平臺加載該模型后,即可在應用程序中存取或查詢空間基礎數據以及實時監測數據。山洪災害三維可視化系統可將不同位置的三維模型、水雨情實時監測數據、氣象預報服務、監測設備工作狀態、社會經濟資料等信息直觀、形象地在三維可視化平臺展示。
三維可視化系統主要實現的功能如下:
(1)地圖操作:地圖放大、縮小、平移、全幅顯示、區域選擇、區域切換、路徑漫游等。
(2)圖層控制:對三維場景模型、地理基礎數據、業務監測對象等按不同類別分層管理。
(3)導航定位:以樹形目錄結構組織各類管理對象,用戶可通過選擇根目錄下的各級子目錄快速進入所關注的對象列表,并通過對象定位功能將地圖視窗的顯示范圍自動導航到其所關注的目標區域。
(4)數據處理:包括地圖編輯、地圖配準、三維模型加載、數據導入導出等。
(5)三維仿真:系統可實現二維地圖模式和三維仿真模式的一鍵切換,并在三維仿真模式下實現洪水演進模擬功能。
洪水演進三維模擬仿真主要工作內容包括:①水動力模型集成研究,完成洪水模擬與三維仿真模擬平臺在線計算集成、數據高效存儲讀取、成果轉換等一系列服務功能。②建立洪水演進模擬三維場景,在洪水淹沒仿真時,能比較真實地還原客觀三維世界環境。③完成洪水淹沒三維仿真,將影像數據、傾斜攝影三維模型數據、洪水模型結果數據、地形數據進行融合表達,比較逼真地模擬洪水淹沒情況。
3.1.1 HTML5
HTML5是互聯網的下一代標準,是W3C推出的面向WEB應用程序的網頁語言。從1990年HTML產生到1997年HTML4 成為互聯網標準,再到2014年,升級改造后完整的HTML5 規范公開發布,該技術已廣泛應用于互聯網應用的開發[2]。HTML5 主要特點如下。
(1)跨平臺
HTML5 強大的跨平臺運行特性,可使利用該技術開發的WEB應用程序在PC瀏覽器和各類移動終端之間實現輕松移植。
(2)強化的展示性能
HTML5支持三維圖形及特效,基于WebGL、SVG、CSS3及Canvas開發的3D功能,在WEB頁面上強化了展示性能,從而在瀏覽器中展現驚艷的視覺效果。
(3)離線應用支持
HTML5通過本地內嵌SQL數據庫,支持離線應用。離線時,數據在本地存儲,在線時,同步到服務器上。該技術可改善交互式搜索、索引以及緩存功能,在離線狀態下仍可獲得滿意的動畫效果。
(4)本地數據庫功能
HTML5增加了web storage本地存儲功能,該數據庫是一個瀏覽器端的數據庫,雖然是一個小型數據庫,但它擴展了傳統HTML的特性,具有可存儲數據量更大,不與服務器交互通信,節省流量等優點。
HTML5的這些特點給WEB開發帶來了一次技術革新。利用該技術開發的WEB應用,網頁啟動時間更短,聯網速度更快,并可實現跨平臺運行。這些特點推動了三維可視化技術在網絡上的廣泛應用,客戶端運行變得更加簡單高效,這為海南省山洪災害三維可視化系統中進行Web端洪水演進仿真奠定了基礎。
3.1.2 WebGL
WebGL是Web3D圖形標準,有別于傳統WebGIS前端三維顯示技術,它是通過標準的、統一的、跨平臺的OpenGL接口,對底層的圖形硬件進行加速,無需插件即可完成圖形這染,提供更高效的大規模三維場景這染解決方案[3]。
WebGL API通過Canvas元素提供繪制三維圖形的環境,開發人員在瀏覽器端調用Canvas的getContext( )方法獲得WebGLRenderingContext對象,通過該對象提供的接口即可調用WebGL API。WebGL進行三維圖形渲染的主要操作是:①在CPU端利用Javascript代碼調用WebGL API,鏈接或編譯著色器,設置或計算頂點數據、紋理數據,建立緩沖并進行矩陣變換等處理。②使用著色語言OpenGL控制GPU完成幾何圖形頂點和像素的處理,編寫頂點著色器和片段著色器。
3.1.3 Cesium
Cesium是一款基于WebGL(瀏覽器三維繪圖協議),面向三維地球和地圖的世界級JavaScript開源產品,它只需開啟 WebGL 功能,無需安裝任何瀏覽器插件,就可以方便快速搭建虛擬地球Web應用,進行地理空間數據的三維可視化。
Cesium的圖形渲染引擎采用WebGL,在實時動態數據可視化的性能、精度、渲染質量、跨平臺以及易用性等方面都有很高質量的保證。其特點包括:①Cesium 對公開和私有的數據資源均能提供有效支持,并以符合 GIS 行業規范的方式訪問空間數據。②Cesium 的開發語言采用JavaScript ,有效的將KnockoutJS 和 WhenJS等框架進行了集成。③在瀏覽器中,Cesium通過遠程服務加載服務器端的地圖數據實現可視化表達,支持WMS、WMTS、WFS、WCS 等服務規范。④Cesium 通過AJAX加載并渲染Json文件,實現了服務器端地理空間海量數據的異步請求功能。
在國內,基于Web的開源輕量級三維可視化引擎Cesium更是得到了廣泛應用與研究。鑒于基于GIS系統的三維可視化應用仍然存在很多問題,高云成、朱栩逸等人在GIS中引入Cesium可視化引擎,探討了GIS基礎功能與三維Web可視化系統相結合的設計方案[4-5]。在分析了傳統三維建模技術的優勢和其在WEB應用上存在的困難的基礎上,李俊金基于Cesium實現了數字城市建模[6]。孫曉鵬等研究了Cesium技術渲染三維場景的方法,構建了基于WebGIS端的三維模型[7]。樂世華研發的流域可視化平臺,其三維場景基于Cesium搭建,并結合了BIM、傾斜攝影等多種前沿技術[8]。在水利水電工程的三維可視化研究領域,徐銳等基于Cesium引擎構建的平臺實現了樹形空間數據結構組織的瓦片集合3D TILES模型的加載[9]。
由于目前Cesium三維可視化引擎已得到廣泛的成功應用,因此海南省山洪災害三維可視化系統選擇開源平臺Cesium作為基礎可視化平臺,并在此基礎上進一步研發洪水演進模擬,如淹沒水深等值面、淹沒真實性渲染、避洪轉移等。主要工作內容包括:①水動力模型集成研究,完成洪水模擬與三維仿真模擬平臺進行在線計算集成、成果高效存儲讀取、成果轉換等一系列服務功能。②建立洪水演進模擬三維場景,在洪水淹沒仿真時,能比較真實地還原客觀三維世界環境。③完成洪水淹沒三維仿真,將影像數據、傾斜攝影三維模型數據、洪水模擬模型結果數據、地形數據如何進行融合表達,以比較逼真地模擬洪水淹沒模擬情況。
海南省山洪災害洪水演進模型采用珠江水利科學研究院自主研發的洪水分析模型HydroMPM_FloodRisk[10]。HydroMPM_FloodRisk是一套一維-二維耦合的水動力模型體系,其中,一維水動力模型用于河道(河網)內洪水預報、風暴潮影響下河網水動力過程模擬、水閘調度條件下河網水動力過程模擬;二維水動力模型用于各種洪澇風險區暴雨、洪水、潮水演進模擬;通過河道-堤防-防洪保護區耦合、河網-河口-外海耦合、河道-水庫(湖泊)耦合實現一維-二維模型耦合。該軟件于2014年經國家防總批準進入《重點地區洪水風險圖編制項目軟件名錄》。近年來,通過算法改進、GPU高性能并行計算實現了洪水演進高速計算,可滿足洪水實時分析需求。
該模型通過以下三方面實現了復雜地表洪水演進高速計算,具有較高的計算效率:
(1)采用低階精度有限體積格式,降低算法時空復雜度。將底高程定義于單元節點,地形概化具有二階精度;在提高地形表達精度的基礎上,運用淺水方程高效求解的一階精度格式,降低算法時空復雜度。
(2)采用有效計算單元自適應動態調整方法,避免大量無效計算,顯著減小計算規模。根據洪水淹沒前沿邊界,動態調整有效計算單元。以潰漫堤洪水及城市暴雨內澇為例,受地形影響,淹沒區占整個計算范圍的比例較小;此外,受淹面積亦是隨著洪水演進過程逐漸增大。HydroMPM_FloodRisk模型僅針對有效計算單元進行循環計算,從而極大減少計算量。
(3)采用GPU并行計算,實現臺式機或小型工作站上洪水演進高速計算。傳統方法多為CPU并行計算,包括單CPU的多核并行,以及多CPU的分布式并行。受單一CPU的核心數量限制,單CPU多核并行的加速效果有限。而多CPU的分布式并行往往需要大型計算服務器,存在建設投資大、運行及維護成本高、使用不便等問題。近年來,隨著GPU硬件快速發展,單塊GPU卡即可提供強大運算能力,使臺式機或小型工作站上高性能計算成為可能。針對GPU硬件架構特性,HydroMPM_FloodRisk模型對數據管理和循環并行化進行了改進,使模型可以利用GPU卡中數以千計的核心進行多線程并行計算,從而顯著提高計算速度。
洪水演進三維仿真相對于傳統的洪水風險圖的最大優勢在于與現實世界更加貼近,表達更加直觀,從而可從多角度對洪水淹沒進行分析。在以影像圖、地形還原真實世界的基礎上,輔以實景三維模型,對洪水動態模擬進行淹沒分析,通過加載后臺計算分析的最大淹沒范圍、淹沒歷時數據可以分析出所研究區域場次洪水的大致淹沒范圍,動態加載水動力模型計算的時刻結果可分析得出場次洪水的漲退水動態過程,水深與實景三維模型的疊加分析以及淹沒區任意位置的水深查詢顯示也為更細致分析洪水對局部的淹沒影響分析提供了支持。
3.3.1 水深查詢
二維水動力進行洪水演進計算其計算結果為二維網格點數據(如水深、水位、流向、流速),在進行洪水演進仿真時,如能查詢到洪水區域任意位置處的淹沒水深情況將為洪水淹沒分析提供極大的決策支撐,見圖1。

圖1 任意位置水深查詢
采取運用重心坐標的方式計算任意位置水深,三角形重心坐標如圖2所示,(P0,P1,P2)為三角形頂點坐標,(u,v,w)為三角形相應重心坐標,對于三角形所在平面的任意點V ,均可用公式(1)表示。

圖2 三角形重心坐標

其中,重心坐標性質如下:
(1) u + v + w =1.0 , u, v, w ∈ [0,1] ,所以只有兩個自由度。
(2) 對于三角形的三條邊界,重心坐標(u, v, w)必有相應分量為0 。
因此對于洪水區域的任意點的水深,均可通過三頂點的水深數據與重心坐標計算得到。
3.3.2 避洪轉移分析
結合洪水淹沒研究區域避洪轉移基礎數據,建立危險點、危險村莊與一二維水動力模型二維格網的一一映射關系,然后與水動力模型計算結果數據進行動態疊加分析,可對洪水淹沒研究區域進行場次洪水模擬時,危險村莊、轉移點、安置點、轉移路線、轉移人口、轉移戶數等的動態展示,見圖3。

圖3 避洪轉移分析效果圖
3.3.3 洪水動態模擬
洪水動態模擬是將洪水演進模型結果數據、三維場景數據、地形數據進行融合表達,直觀逼真地模擬洪水淹沒情況,具體方法為:
洪水模擬模型產生的淹沒結果數據包括二維網格數據、各網格的結果數據(水深、水位、流速、流向等),其從數據形式到屏幕上的渲染結果圖需要在GPU上進行一系列流水線操作,見圖4。

圖4 GPU流水線操作
Cesium對WebGL進行了封裝,提供方便快捷的API接口,使得在不接觸到WebGL底層API情況下就可進行三維對象的渲染,但洪水演進仿真,涉及的數據量較大,此外,數據結構并不適合用Cesium已有的API進行封裝渲染。通過對Cesium提供的WebGL底層的Primitive繪制對象進行適應性擴展完成洪水的動態模擬。Primitive對象提供了update函數,Cesium渲染框架會每幀循環調用update函數完成繪制對象渲染前的準備工作。洪水動態模擬提供兩種表達方式:淹沒水深渲染和逼真紋理渲染。
(1)淹沒水深三維等值面效果渲染
將二維網格頂點坐標數據、網格淹沒水深數據、水深圖例紋理數據(不同水深對應不同顏色的圖片)輸送至GPU,然后通過在片元著色器中根據水深圖例為淹沒網格進行不同水深渲染著色,實現效果見圖5。

圖5 淹沒水深等值面
(2)逼真紋理淹沒效果渲染
輸入淹沒結果數據至GPU的同時,還需將洪水樣例圖片紋理、法線擾動圖紋理同步輸入,然后在GPU端執行設計的洪水效果著色器代碼,該著色器代碼利用法線擾動圖紋理在著色器中動態生成洪水波動效果圖、利用淹沒網格流向數據生成洪水流動效果圖、通過光照計算生成光線效果圖,然后將生成的三種效果圖與洪水樣例圖片進行混合渲染,生成逼真淹沒效果見圖6。

圖6 逼真淹沒效果渲染圖
三維可視化技術從計算機學科出發,已滲透到地理學、資源環境學、海洋學、建筑學、生物醫學、游戲影視、工業制造等各個領域中。三維可視化的發展,縮短了現實世界和計算機虛擬世界的差距,拓寬了人們的視野,不僅使我們更加清楚地認識這個世界,還為改造世界提供了科學的指導。
三維可視化技術從數據來源特點、模型優勢、應用場景等方面也為物理世界的數字孿生體建設提供了重要基礎保障。時空大數據包括時序化的基礎時空數據、公共專題數據、物聯網實時感知數據、互聯網在線抓取數據和根據本地特色擴展數據。數字孿生體建設依托這些大數據,在深度應用上,基于真實有效、高精度和對象化的地理空間三維實景環境,對無人機航測、激光雷達、傾斜攝影等測繪信息技術方法快速采集制作的精細化城市三維模型和大比例尺地形圖,進行精準定位、深度挖掘,搭建三維地理信息基礎服務框架,提高數據信息表現力和價值,為數字孿生體建設提供高精度可視化的三維空間信息和位置服務。在廣度應用上,隨著物聯網等技術的發展,無數智能終端設備每分每秒都在產生并傳播海量的數據,這給傳統的地理學模型提供了更多高精度、實時、豐富的數據來源,同時也對原有的模型提出了新的需求和挑戰。數字孿生建設關注大數據融合分析和應用,基于多源、多維、海量數據分析,全面、準確地掌握事物特征和發展態勢、關鍵影響因素、發展規律,提高政府科學決策水平,提供個性化、差異化服務,提升解決復雜問題的綜合能力。
可見,數據三維可視化是未來信息化建設和智能制造的必經之路,三維可視化技術的應用前景,在于進行高效、高精度的渲染建模,不但實現在一個數字場景中還原物理世界的全要素,同時結合對實時數據的處理、計算,實現數字世界與物理世界的通聯,構建物理世界的數字孿生體。因此,數據三維可視化技術,可將時空海量數據信息通過三維立體化的方式進行展示和有效的管理控制,必將成為今后數字化建設的主流技術。