呂亞霓
(西北大學(xué)城市與環(huán)境學(xué)院,陜西 西安710127)
建設(shè)我國的“數(shù)字水利”是實現(xiàn)水利信息化的必有之路[1]。由于GIS對空間信息處理能力優(yōu)異,將其結(jié)合到水利上有非常現(xiàn)實的作用和意義。水沙運動模型是一種具有水利行業(yè)特色的數(shù)學(xué)模型,根據(jù)水流模型和泥沙模型的定義,采用離散求解的方法,對水沙運動有關(guān)問題進行模型計算,模型的計算條件和結(jié)果對實際工作、驗證理論等方面有著重要的作用[2]。但是,這些模型信息在數(shù)量上比較多、在相互關(guān)系上表示不明顯,因此,需要把這些信息進行更加直觀的表現(xiàn)。水利工作者通常希望根據(jù)直觀、快捷的符號和顏色來判斷對象的各種情況,綜合信息做出自己的判斷和決策。而傳統(tǒng) GIS的字段標注、符號表現(xiàn)和靜態(tài)的展示效果,都不能滿足水利工作者和相關(guān)的開發(fā)者對數(shù)學(xué)模型信息表達越來越高的要求。
因此,本文研究如何將模型信息根據(jù)水利工作的需要,在GIS平臺上進行快速、直觀的可視化,重點在于根據(jù)水利工程對信息表達的要求,對水沙運動模型信息的符號化、計算結(jié)果和相關(guān)內(nèi)容的分布和變化趨勢表達、以及時態(tài)計算結(jié)果的動態(tài)表達相結(jié)合的三維可視化等方面進行研究和工作。
“水沙運動模型系統(tǒng)”的目的是提供一個統(tǒng)一高效的水利數(shù)學(xué)模型計算平臺環(huán)境,并在這個環(huán)境的基礎(chǔ)上實現(xiàn)可視化。其建設(shè)內(nèi)容包括以下部分:(1)基礎(chǔ)地理信息數(shù)據(jù)庫和水文、泥沙數(shù)據(jù)庫;(2)各類數(shù)據(jù)格式文件的轉(zhuǎn)換;(3)可視化網(wǎng)格生成模塊;(4)數(shù)據(jù)庫管理模塊;(5)模型可視化模塊;(6)數(shù)據(jù)輸入輸出模塊;(7)用戶界面。
GIS引入了空間數(shù)據(jù)庫的概念,它將地理要素的空間和非空間信息綁定在一起,空間信息反映了要素的定位信息或幾何形態(tài),非空間信息以屬性表的形式存儲數(shù)據(jù),從而解決了基于空間數(shù)據(jù)的分析查詢和基于屬性數(shù)據(jù)的管理問題,同時,空間數(shù)據(jù)庫可以方便地完成某一類數(shù)據(jù)的空間拓撲關(guān)系定義,實現(xiàn)各類復(fù)雜邊界的處理功能,為水沙數(shù)學(xué)模型前后處理和可視化技術(shù)提供技術(shù)手段?!八硵?shù)學(xué)模型”的數(shù)據(jù)建模是在 ArcGIS 9.2平臺上的 Personal Geodatabase中完成的,通過空間數(shù)據(jù)引擎可實現(xiàn)與 Oracle數(shù)據(jù)庫無縫連接,采用 XML語言完成邏輯數(shù)據(jù)模型,在ArcGIS 9.2中完成物理數(shù)據(jù)模型,主要包括網(wǎng)格(Mesh)、模型(Modeling)和地形(Terrain)三種主要模型類型。
水沙運動模型的計算關(guān)鍵在于處理以數(shù)學(xué)表達式反應(yīng)的模擬物理對象的內(nèi)在規(guī)律。對非均勻沙沉速、懸移質(zhì)水流挾沙力、床沙級配調(diào)整、動床阻力變化、紊動粘滯性系數(shù)、泥沙擴散系數(shù)、橫向沖刷坍塌變形等關(guān)鍵技術(shù)問題的處理決定了數(shù)學(xué)模型之計算精度。其中每個計算步驟都涉及相關(guān)的若干計算模塊。
水力學(xué)中常著眼于空間點來描述水流運動,通過某一空間點處的液體質(zhì)點的速度即點流速u,一般為空間點位置r及時間t的矢量函數(shù),即u=u(r,t),各空間點流速的集合構(gòu)成流速場[3]。流速場是描述水流流動的重要方法之一。在水沙運動模型中,涉及到水流和泥沙兩個方面。水流是連續(xù)的流體,泥沙則是離散的對象,前者的運動規(guī)律比較容易通過測量進行驗證,后者則相對較難。水流和泥沙相互作用,泥沙的含量、級配改變了水流的粘滯系數(shù)等特性,從而影響水流的流速與方向;水流的變化又同時改變了水流的挾沙力,反過來影響泥沙的分布和沉積速度。在這個相互關(guān)系中,水流流動的規(guī)律是關(guān)鍵信息,這也是水沙運動模型計算結(jié)果的重要組成部分。
流速場計算的初始條件有以下三個方面:(1)水溫、水深、泥沙含量、級配等基礎(chǔ)水文數(shù)據(jù);(2)前處理生成的計算網(wǎng)格;(3)邊界條件。
其中數(shù)據(jù)量最大的、與流速場計算結(jié)果關(guān)系最為復(fù)雜的是基礎(chǔ)水文數(shù)據(jù)。模型通過將基礎(chǔ)水文數(shù)據(jù)、邊界條件與網(wǎng)格進行結(jié)合,輸入到非恒定流計算模塊和恒定流計算模塊,得出的結(jié)果再經(jīng)過輸沙計算模塊處理,衡量泥沙對水流的影響。最后,對計算結(jié)果進行修正,輸出流速場計算結(jié)果。
在水沙運動模型的流速場計算中,模型通過計算網(wǎng)格定義的頂點進行離散的數(shù)學(xué)運算,計算的結(jié)果是一些離散的點數(shù)據(jù),其對應(yīng)的屬性表包含流速信息等字段??梢暬到y(tǒng)需要在 GIS平臺上,根據(jù)點圖層,利用屬性表中 U、V兩個字段的值繪制出矢量箭頭符號來表現(xiàn)流速場信息。箭頭的大小和方向取決于 U、V的大小和數(shù)值。如圖1,U、V分別代表水流在水平和垂直兩個方向上絕對值的大小,“+”表示沿坐標軸的正方向,“-”為反方向。箭頭的起始位置位于當前水流觀測點,長度為 ,其中 K為縮放系數(shù),系統(tǒng)通過調(diào)節(jié)這個系數(shù)來控制箭頭符號的大小。
圖1 流速場箭頭符號定義
ArcGIS Engine中,每一個要素圖層中只有一類符號,比如點,線,面等。每一層要素的樣式都保存在這個圖層的渲染器中圖層通過調(diào)用渲染接口來使用渲染器的符號化功能。ArcGIS Engine中的單一值渲染是根據(jù)要素的某一個字段的數(shù)據(jù)或某幾個字段的組合結(jié)果來確定符號。具有相同值或相同組合值的要素使用一樣的符號。在使用多個字段的使用,每個字段的取值之間使用分割符來連接。
使用字符實現(xiàn)渲染流速場箭頭是采用字符“^”和“|”的組合作為箭頭符號的標準形式,其大小通過自身的 size屬性控制,方向通過設(shè)置旋轉(zhuǎn)角實現(xiàn),偏移符號的坐標軸又可把箭頭符號的起始點置于合適的位置。在計算符號的具體參數(shù)時,通過對要素的 U、V字段的值進行運算,獲得箭頭所指的大小和方向的正切值,再根據(jù) U、V的正負去定箭頭在平面坐標系中所處的象限,一次通過方向的正切值來得到符號旋轉(zhuǎn)的角度,最后返回一個渲染符號,用于在 MapControl控件中對要素進行渲染。
圖2 字符箭頭的組成
前兩幅圖代表“箭柄”和“箭頭”的原始狀態(tài),只有通過符號的偏移和旋轉(zhuǎn)才能實現(xiàn)第三幅圖的效果,作為箭頭整體使用。在ArcGIS Engine中,每個符號均擁有一套自身的坐標系統(tǒng),符號的旋轉(zhuǎn)和偏移的量都是在自身的坐標系下度量的,并且兩個坐標軸將跟隨符號的旋轉(zhuǎn)而旋轉(zhuǎn)、平移而平移,也就是說符號與自身的坐標系統(tǒng)是固定不變的。最后,通過ArcGIS Engine的IUniqueValueRenderer接口和字符符號相結(jié)合,實現(xiàn)流速場符號化。
在 GIS的概念中,分類渲染是指將空間數(shù)據(jù),按照某個屬性值的分布區(qū)間進行歸類,然后對每個類的要素進行分別的渲染,也有稱作“分級渲染”。在水沙運動模型中,除了流速場這一直觀的矢量信息,還有許多標量信息需要進行可視化表達,比如含沙梯度、水流挾沙力、河床變形等模型計算結(jié)果和水溫、水深、泥沙含量、級配等模型計算條件,在本文中,將這些信息統(tǒng)稱為模型信息。
對于水利工作者來說,這些模型信息在某個點上的數(shù)值并沒有很大的意義,但是對于某個區(qū)域,值的分布和變化趨勢就非常重要。因此,模型信息的表達是水沙運動模型進行可視化的一個重要方面。對于這些模型信息,對每一個值進行處理并且用符號表示是沒有必要的,而且反而不能描述清楚現(xiàn)實情況。因此,一般需要將所有的值進行分段,在一個值區(qū)間內(nèi),采用同一種方式進行描述,也就是 GIS概念中的分類渲染。在水利工作中,這種可視化表達方法稱作等值面法。等值面指在地圖上表示數(shù)量指標的一些等值點構(gòu)成的曲面,如等水深面、等水溫面等。等值面法非常適合用于表示黃河水沙連續(xù)分布而逐漸變化的現(xiàn)象,并說明這種現(xiàn)象在地圖上任一點的數(shù)值或強度。通過等值面法可以提高地圖的表現(xiàn)力,直觀地表達水沙運動模型中很多有用的信息,給水利工作者綜合、分析模型帶來便利。
參考ArcGIS Desktop中的圖層管理器功能。通過圖層管理器,ArcGIS可以定義各個圖層的各種屬性、渲染方式、數(shù)據(jù)關(guān)系等等,其中也包括多邊形的分類渲染。但是在ArcGIS Engine中并未集成類似的對話框組件,若實現(xiàn)類似功能,均需在自繪制的窗體界面中添加代碼調(diào)用 ArcGIS Engine中相應(yīng)的接口以實現(xiàn)[4]。因此,開發(fā)對符號樣式要求多變的GIS系統(tǒng)時變得非常困難。
在水沙運動模型系統(tǒng)中,由于水沙運動模型的復(fù)雜性,數(shù)據(jù)的可視化方式、渲染色彩、符號選擇、差異體現(xiàn)等需要各不相同,所以在系統(tǒng)中需要實現(xiàn)動態(tài)的基于圖形界面的符號渲染樣式設(shè)定方式,這個目的必須要通過實現(xiàn)類似ArcGIS Desktop的選項卡功能來達到。最終,可以通過簡單的 GUI操作實現(xiàn)水沙數(shù)據(jù)的分級渲染參數(shù)改變及其可視化。
首先,系統(tǒng)需要在代碼層面實現(xiàn)分類渲染的功能;然后,在此基礎(chǔ)上,實現(xiàn)圖形界面界面,通過常規(guī)的圖形界面操作,實現(xiàn)對分類渲染功能的控制,實例效果以ArcGIS Desktop的圖層管理器為標準。最后形成一個完全自定義的、基于圖形界面的分類渲染定義工具,并給出渲染應(yīng)用的結(jié)果。
在水沙運動模型中,流速場是根據(jù)某些條件進行計算得出的結(jié)果之一,時間也是這些條件之一[5]。在不同的時刻點,模型計算的條件是不一樣的。因此,如果要獲得不同時刻流速場的信息,并且探尋它的變化、發(fā)展規(guī)律就需要對各個不同時刻的流速場進行計算并連續(xù)地表達出來。系統(tǒng)實現(xiàn)的動畫需要在網(wǎng)格節(jié)點時間序列數(shù)據(jù)基礎(chǔ)上,實現(xiàn)時態(tài)流速場的動態(tài)可視化,重點在于動畫顯示的連續(xù)性和可控性。動畫的連續(xù)性在于動態(tài)圖形的渲染盡量減少閃爍和延遲,而可控性在于動畫和普通的圖形瀏覽操作之間應(yīng)該盡量無縫整合,隨時可以開始觀看動畫,也可以隨時停止動畫繼續(xù)圖形瀏覽。水沙運動模型有著整體數(shù)據(jù)量大、細節(jié)數(shù)據(jù)差異大、動態(tài)需求較高等特點,這需要在進行動畫處理過程中加以考慮。
對時態(tài)數(shù)據(jù)的表達可以參考ArcGIS Tracking Analyst的表達效果。ArcGISTracking Analyst是ArcGIS Desktop的一個擴展模塊,主要功能是提供了時間序列支持及其變化的實時可視化。它可以幫助顯示復(fù)雜的時間序列和空間模型,并在ArcGIS Desktop中與其他類型的 GIS數(shù)據(jù)集成的時候相互作用。
了解當前ArcGIS桌面產(chǎn)品的Tracking Analyst擴展模塊對時態(tài)GIS的實現(xiàn)??疾焖目梢暬Ч驮?,實現(xiàn)系統(tǒng)平臺上的動畫效果。首先,在符號渲染方面采用GDI方法繪制。在實現(xiàn)靜態(tài)符號標注的基礎(chǔ)上,通過關(guān)系類在帶有坐標的要素信息和帶有水文信息的歷史水文數(shù)據(jù)之間建立了聯(lián)系,將水文信息賦予了 GIS的特征,成為水文時態(tài) GIS數(shù)據(jù)。
接著,從得到的水文時態(tài) GIS數(shù)據(jù)中,通過直方圖的方式提取歷史時間信息和時間分布的統(tǒng)計。最后,通過時間軸上時間的控制實現(xiàn)動畫的效果。
本文將 GIS綜合知識和“水沙運動”工程相結(jié)合,研究了水沙運動數(shù)學(xué)模型及其可視化工程的數(shù)據(jù)和功能需求以及與GIS關(guān)系,通過對 GIS及計算機可視化技術(shù)的探討與試驗,實現(xiàn)了具有水業(yè)特色的水沙運動模型的多種可視化功能:
(1)本文研究了ArcGIS Engine符號渲染接口實現(xiàn)了使用字符進行單一值渲染。流速場這一重要矢量水沙運動模型計算結(jié)果在。Net+ArcGIS平臺的可表現(xiàn)給出了實例與比較。
(2)本文研究了ArcGIS的分類渲染功能,重點研究對其渲染方法控制的方法。通過Net平臺上的開發(fā),不依賴第三方組件地實現(xiàn)了分染這種在水利工程上運用最為廣泛的功能及基于圖形界面的控制,實果與專業(yè)的 Desktop相關(guān)功能類似,為ArcGIS Engine的開發(fā)提供了方法和案例。
(3)本文深入了解了動畫的原理和實現(xiàn)方法,以及Arc-GIS的TraAnalyst擴展模塊在時態(tài)GIS上的功能和表現(xiàn),通過對數(shù)據(jù)關(guān)系的處理和時間的控制,實現(xiàn)了GIS平臺控、高效的流速場動畫效果,為基于GIS開發(fā)動畫效果,便于為決策提供直觀的信息提供了重要的實現(xiàn)方法和案例。
在實現(xiàn)以上水沙運動模型可視化模塊的基礎(chǔ)上,本文通過集成系統(tǒng)對實例數(shù)據(jù)進行分析和測試,驗證了上述模塊對可視化的良好作用和效果,并展示了模型可視化對水利工作者和決策者獲取信息、綜合信作用。
[1]黃文彬.數(shù)字水利與地理信息系統(tǒng).浙江水利水電??茖W(xué)校學(xué)報,2003,15(4):33 -35.
[2]鐘登華,朱慧蓉,劉東等.GIS在水利水電工程建設(shè)中的應(yīng)用與展望.中國水利,2003,(3):62 -64.
[3]廖通逵,姚靜,王平等.基于GIS的水流信息可視化表達.遙感信息,2004,(4):62 -65.
[4]龔健雅.地理信息系統(tǒng)基礎(chǔ).京科學(xué)出版社2001.
[5]謝丹俊,費奇.可視化技術(shù)在水利工程決策支持系統(tǒng)中的應(yīng)用研究.水電能源科學(xué),1996(02):134-139.