呂亞霓
(西北大學城市與環境學院,陜西 西安710127)
建設我國的“數字水利”是實現水利信息化的必有之路[1]。由于GIS對空間信息處理能力優異,將其結合到水利上有非常現實的作用和意義。水沙運動模型是一種具有水利行業特色的數學模型,根據水流模型和泥沙模型的定義,采用離散求解的方法,對水沙運動有關問題進行模型計算,模型的計算條件和結果對實際工作、驗證理論等方面有著重要的作用[2]。但是,這些模型信息在數量上比較多、在相互關系上表示不明顯,因此,需要把這些信息進行更加直觀的表現。水利工作者通常希望根據直觀、快捷的符號和顏色來判斷對象的各種情況,綜合信息做出自己的判斷和決策。而傳統 GIS的字段標注、符號表現和靜態的展示效果,都不能滿足水利工作者和相關的開發者對數學模型信息表達越來越高的要求。
因此,本文研究如何將模型信息根據水利工作的需要,在GIS平臺上進行快速、直觀的可視化,重點在于根據水利工程對信息表達的要求,對水沙運動模型信息的符號化、計算結果和相關內容的分布和變化趨勢表達、以及時態計算結果的動態表達相結合的三維可視化等方面進行研究和工作。
“水沙運動模型系統”的目的是提供一個統一高效的水利數學模型計算平臺環境,并在這個環境的基礎上實現可視化。其建設內容包括以下部分:(1)基礎地理信息數據庫和水文、泥沙數據庫;(2)各類數據格式文件的轉換;(3)可視化網格生成模塊;(4)數據庫管理模塊;(5)模型可視化模塊;(6)數據輸入輸出模塊;(7)用戶界面。
GIS引入了空間數據庫的概念,它將地理要素的空間和非空間信息綁定在一起,空間信息反映了要素的定位信息或幾何形態,非空間信息以屬性表的形式存儲數據,從而解決了基于空間數據的分析查詢和基于屬性數據的管理問題,同時,空間數據庫可以方便地完成某一類數據的空間拓撲關系定義,實現各類復雜邊界的處理功能,為水沙數學模型前后處理和可視化技術提供技術手段。“水沙數學模型”的數據建模是在 ArcGIS 9.2平臺上的 Personal Geodatabase中完成的,通過空間數據引擎可實現與 Oracle數據庫無縫連接,采用 XML語言完成邏輯數據模型,在ArcGIS 9.2中完成物理數據模型,主要包括網格(Mesh)、模型(Modeling)和地形(Terrain)三種主要模型類型。
水沙運動模型的計算關鍵在于處理以數學表達式反應的模擬物理對象的內在規律。對非均勻沙沉速、懸移質水流挾沙力、床沙級配調整、動床阻力變化、紊動粘滯性系數、泥沙擴散系數、橫向沖刷坍塌變形等關鍵技術問題的處理決定了數學模型之計算精度。其中每個計算步驟都涉及相關的若干計算模塊。
水力學中常著眼于空間點來描述水流運動,通過某一空間點處的液體質點的速度即點流速u,一般為空間點位置r及時間t的矢量函數,即u=u(r,t),各空間點流速的集合構成流速場[3]。流速場是描述水流流動的重要方法之一。在水沙運動模型中,涉及到水流和泥沙兩個方面。水流是連續的流體,泥沙則是離散的對象,前者的運動規律比較容易通過測量進行驗證,后者則相對較難。水流和泥沙相互作用,泥沙的含量、級配改變了水流的粘滯系數等特性,從而影響水流的流速與方向;水流的變化又同時改變了水流的挾沙力,反過來影響泥沙的分布和沉積速度。在這個相互關系中,水流流動的規律是關鍵信息,這也是水沙運動模型計算結果的重要組成部分。
流速場計算的初始條件有以下三個方面:(1)水溫、水深、泥沙含量、級配等基礎水文數據;(2)前處理生成的計算網格;(3)邊界條件。
其中數據量最大的、與流速場計算結果關系最為復雜的是基礎水文數據。模型通過將基礎水文數據、邊界條件與網格進行結合,輸入到非恒定流計算模塊和恒定流計算模塊,得出的結果再經過輸沙計算模塊處理,衡量泥沙對水流的影響。最后,對計算結果進行修正,輸出流速場計算結果。
在水沙運動模型的流速場計算中,模型通過計算網格定義的頂點進行離散的數學運算,計算的結果是一些離散的點數據,其對應的屬性表包含流速信息等字段。可視化系統需要在 GIS平臺上,根據點圖層,利用屬性表中 U、V兩個字段的值繪制出矢量箭頭符號來表現流速場信息。箭頭的大小和方向取決于 U、V的大小和數值。如圖1,U、V分別代表水流在水平和垂直兩個方向上絕對值的大小,“+”表示沿坐標軸的正方向,“-”為反方向。箭頭的起始位置位于當前水流觀測點,長度為 ,其中 K為縮放系數,系統通過調節這個系數來控制箭頭符號的大小。

圖1 流速場箭頭符號定義
ArcGIS Engine中,每一個要素圖層中只有一類符號,比如點,線,面等。每一層要素的樣式都保存在這個圖層的渲染器中圖層通過調用渲染接口來使用渲染器的符號化功能。ArcGIS Engine中的單一值渲染是根據要素的某一個字段的數據或某幾個字段的組合結果來確定符號。具有相同值或相同組合值的要素使用一樣的符號。在使用多個字段的使用,每個字段的取值之間使用分割符來連接。
使用字符實現渲染流速場箭頭是采用字符“^”和“|”的組合作為箭頭符號的標準形式,其大小通過自身的 size屬性控制,方向通過設置旋轉角實現,偏移符號的坐標軸又可把箭頭符號的起始點置于合適的位置。在計算符號的具體參數時,通過對要素的 U、V字段的值進行運算,獲得箭頭所指的大小和方向的正切值,再根據 U、V的正負去定箭頭在平面坐標系中所處的象限,一次通過方向的正切值來得到符號旋轉的角度,最后返回一個渲染符號,用于在 MapControl控件中對要素進行渲染。

圖2 字符箭頭的組成
前兩幅圖代表“箭柄”和“箭頭”的原始狀態,只有通過符號的偏移和旋轉才能實現第三幅圖的效果,作為箭頭整體使用。在ArcGIS Engine中,每個符號均擁有一套自身的坐標系統,符號的旋轉和偏移的量都是在自身的坐標系下度量的,并且兩個坐標軸將跟隨符號的旋轉而旋轉、平移而平移,也就是說符號與自身的坐標系統是固定不變的。最后,通過ArcGIS Engine的IUniqueValueRenderer接口和字符符號相結合,實現流速場符號化。
在 GIS的概念中,分類渲染是指將空間數據,按照某個屬性值的分布區間進行歸類,然后對每個類的要素進行分別的渲染,也有稱作“分級渲染”。在水沙運動模型中,除了流速場這一直觀的矢量信息,還有許多標量信息需要進行可視化表達,比如含沙梯度、水流挾沙力、河床變形等模型計算結果和水溫、水深、泥沙含量、級配等模型計算條件,在本文中,將這些信息統稱為模型信息。
對于水利工作者來說,這些模型信息在某個點上的數值并沒有很大的意義,但是對于某個區域,值的分布和變化趨勢就非常重要。因此,模型信息的表達是水沙運動模型進行可視化的一個重要方面。對于這些模型信息,對每一個值進行處理并且用符號表示是沒有必要的,而且反而不能描述清楚現實情況。因此,一般需要將所有的值進行分段,在一個值區間內,采用同一種方式進行描述,也就是 GIS概念中的分類渲染。在水利工作中,這種可視化表達方法稱作等值面法。等值面指在地圖上表示數量指標的一些等值點構成的曲面,如等水深面、等水溫面等。等值面法非常適合用于表示黃河水沙連續分布而逐漸變化的現象,并說明這種現象在地圖上任一點的數值或強度。通過等值面法可以提高地圖的表現力,直觀地表達水沙運動模型中很多有用的信息,給水利工作者綜合、分析模型帶來便利。
參考ArcGIS Desktop中的圖層管理器功能。通過圖層管理器,ArcGIS可以定義各個圖層的各種屬性、渲染方式、數據關系等等,其中也包括多邊形的分類渲染。但是在ArcGIS Engine中并未集成類似的對話框組件,若實現類似功能,均需在自繪制的窗體界面中添加代碼調用 ArcGIS Engine中相應的接口以實現[4]。因此,開發對符號樣式要求多變的GIS系統時變得非常困難。
在水沙運動模型系統中,由于水沙運動模型的復雜性,數據的可視化方式、渲染色彩、符號選擇、差異體現等需要各不相同,所以在系統中需要實現動態的基于圖形界面的符號渲染樣式設定方式,這個目的必須要通過實現類似ArcGIS Desktop的選項卡功能來達到。最終,可以通過簡單的 GUI操作實現水沙數據的分級渲染參數改變及其可視化。
首先,系統需要在代碼層面實現分類渲染的功能;然后,在此基礎上,實現圖形界面界面,通過常規的圖形界面操作,實現對分類渲染功能的控制,實例效果以ArcGIS Desktop的圖層管理器為標準。最后形成一個完全自定義的、基于圖形界面的分類渲染定義工具,并給出渲染應用的結果。
在水沙運動模型中,流速場是根據某些條件進行計算得出的結果之一,時間也是這些條件之一[5]。在不同的時刻點,模型計算的條件是不一樣的。因此,如果要獲得不同時刻流速場的信息,并且探尋它的變化、發展規律就需要對各個不同時刻的流速場進行計算并連續地表達出來。系統實現的動畫需要在網格節點時間序列數據基礎上,實現時態流速場的動態可視化,重點在于動畫顯示的連續性和可控性。動畫的連續性在于動態圖形的渲染盡量減少閃爍和延遲,而可控性在于動畫和普通的圖形瀏覽操作之間應該盡量無縫整合,隨時可以開始觀看動畫,也可以隨時停止動畫繼續圖形瀏覽。水沙運動模型有著整體數據量大、細節數據差異大、動態需求較高等特點,這需要在進行動畫處理過程中加以考慮。
對時態數據的表達可以參考ArcGIS Tracking Analyst的表達效果。ArcGISTracking Analyst是ArcGIS Desktop的一個擴展模塊,主要功能是提供了時間序列支持及其變化的實時可視化。它可以幫助顯示復雜的時間序列和空間模型,并在ArcGIS Desktop中與其他類型的 GIS數據集成的時候相互作用。
了解當前ArcGIS桌面產品的Tracking Analyst擴展模塊對時態GIS的實現。考察它的可視化效果和原理,實現系統平臺上的動畫效果。首先,在符號渲染方面采用GDI方法繪制。在實現靜態符號標注的基礎上,通過關系類在帶有坐標的要素信息和帶有水文信息的歷史水文數據之間建立了聯系,將水文信息賦予了 GIS的特征,成為水文時態 GIS數據。
接著,從得到的水文時態 GIS數據中,通過直方圖的方式提取歷史時間信息和時間分布的統計。最后,通過時間軸上時間的控制實現動畫的效果。
本文將 GIS綜合知識和“水沙運動”工程相結合,研究了水沙運動數學模型及其可視化工程的數據和功能需求以及與GIS關系,通過對 GIS及計算機可視化技術的探討與試驗,實現了具有水業特色的水沙運動模型的多種可視化功能:
(1)本文研究了ArcGIS Engine符號渲染接口實現了使用字符進行單一值渲染。流速場這一重要矢量水沙運動模型計算結果在。Net+ArcGIS平臺的可表現給出了實例與比較。
(2)本文研究了ArcGIS的分類渲染功能,重點研究對其渲染方法控制的方法。通過Net平臺上的開發,不依賴第三方組件地實現了分染這種在水利工程上運用最為廣泛的功能及基于圖形界面的控制,實果與專業的 Desktop相關功能類似,為ArcGIS Engine的開發提供了方法和案例。
(3)本文深入了解了動畫的原理和實現方法,以及Arc-GIS的TraAnalyst擴展模塊在時態GIS上的功能和表現,通過對數據關系的處理和時間的控制,實現了GIS平臺控、高效的流速場動畫效果,為基于GIS開發動畫效果,便于為決策提供直觀的信息提供了重要的實現方法和案例。
在實現以上水沙運動模型可視化模塊的基礎上,本文通過集成系統對實例數據進行分析和測試,驗證了上述模塊對可視化的良好作用和效果,并展示了模型可視化對水利工作者和決策者獲取信息、綜合信作用。
[1]黃文彬.數字水利與地理信息系統.浙江水利水電專科學校學報,2003,15(4):33 -35.
[2]鐘登華,朱慧蓉,劉東等.GIS在水利水電工程建設中的應用與展望.中國水利,2003,(3):62 -64.
[3]廖通逵,姚靜,王平等.基于GIS的水流信息可視化表達.遙感信息,2004,(4):62 -65.
[4]龔健雅.地理信息系統基礎.京科學出版社2001.
[5]謝丹俊,費奇.可視化技術在水利工程決策支持系統中的應用研究.水電能源科學,1996(02):134-139.