李嘉盛,陳龍贊,李 進,江雨田,薛曉鵬
(1.廣東省水利電力勘測設計研究院信息化院,廣東 廣州 510635;2.寧波市水利水電規劃設計研究院有限公司,浙江 寧波 315000;3.廣東省粵東三江連通建設有限公司,廣東 廣州 510635)
三江連通工程(圖1)是優化韓江、榕江、練江水資源配置,改善榕江(楓江)、練江流域水環境污染、水生態破壞等問題的引調水項目。在三江水系連通調水工程上,充分運用現代計算機技術,將水利數據處理技術與計算機網頁繪圖技術[1]相結合,研究水流要素的可視化展示技術和展示模式,做到調水過程中水流要素的變化與演進全局可視化,對整體把握三江連通工程調水情況有重要意義[2],值得深入研究。

圖1 韓江-榕江-練江三江水系連通工程
自20世紀90年代,計算機信息技術與水利行業結合得愈發緊密。國內大量學者對水流可視化技術及可視化系統[3]構建開展了廣泛的研究。茅麗華等[4]以珠江水位線為研究對象,以數字化的手段進行了河道中斷面水沙特性的研究,簡化了河網水沙數學模型的計算結果分析步驟;楊旭等[5]利用GIS的空間分析功能及其可視化表達能力,在研究地區承壓水流的數學模型的基礎上,實現了地下水流模擬過程的可視化,地下水資源的科學管理提供了空間輔助決策支持;常靜[6]構建了基于WebGIS的洪水淹沒三維可視化系統,為洪水模擬、洪水管理和決策提供了科學依據和技術支持。
國內對于水流可視化的研究大都借助于GIS、MIKE等專業工具或建模軟件[7]。專業工具和建模軟件在提供便利的同時也帶來了構建過程復雜、數據冗余、展示效果與內容不夠生動美觀等問題[8],無法滿足三江水系連通工程對水流可視化的定制化需求。本文以計算機前端繪圖技術為基礎,通過對數據結構化組織、水流展示技術以及水流展示模式研究,為三江連通工程構建簡便、易用、美觀的水流可視化系統。
水流數據一般來自于實測與預報2種途徑[9],由于實測系統可能存在的一系列軟硬件問題,實測水流數據可能存在數據缺失、數值異常的情況;預報數據雖然在結構上較實測數據更為完整,但是現有的數據組織方式不能很好地支撐水流可視化展示,故需要對水流數據做出預先處理。在本次研究中數據處理分為3個步驟。①數據清洗。針對原始數據中可能存在的數據缺失、數值異常等問題,通過刪除、替換、插補等方法進行處理,最終得到完整、可用的數據序列[10]。②標準入庫。水位、流量、水質等水文數據同時具有結構性、時序性、稀疏性[11]。將經過清洗的數據存入標準數據庫。在標準數據庫中,水流要素信息可用二維表結構來表達實現的數據。表結構的每一行是一條數據記錄,每一列是一種屬性。同一屬性的一列數據具有相同的數據類型。③結構化組織。本研究中使用計算機網頁繪圖技術(canvas)來繪制水流動態效果,所以選擇使用與計算機前端技術較為匹配的JSON格式來組織水流數據(圖2)。
各水流要素的數據在同化為JSON格式時有2種方法:時間主序與要素主序。對于某一要素在一段時間內的數據應采用時間主序,對應的JSON內容,要素為主屬性,時間為次屬性,要素值為屬性值;對于某一時刻的所有要素的數據應采用要素主序,對應的JSON內容,時間為主屬性,要素為次屬性,要素值為屬性值。時間主序對應的JSON內容與要素隨時間變化的動態展示相適應,要素主序對應的JSON內容與三江水系某時刻全要素的數據展示相適應。

圖2 數據處理流程
水流可視化展示技術的主要研究對象為各水流相關要素,按水流相關要素的類型不同可以將其劃分為標量要素與矢量要素[12]。標量要素僅具有值這一種屬性,如水位、水質等,矢量要素同時具有值和方向2種屬性,如流速、流量等。從要素屬性的角度考慮,含有值屬性的要素適用于場域展示[13],含有方向屬性的要素更適用于軌跡展示。
a)場域展示。場域展示的重點在于同時展現某點的位置以及該位置的要素值。在空間中,位置可以表現為一個點,該點的要素值可以使用顏色來表現,將水流要素數值W映射到預定色階[14]區間CI當中,構成要素數值與色彩數值對應關系,其中f一般為線性映射關系,INT為取整操作,色階取得越密集,場域變化效果越細膩。所得結果示意見圖3。圖3中,A、B、C3個圓及其顏色分別代表了要素的位置及要素值。在整個場域渲染完成后,水流要素會表現為一個完整的以色彩的空間變化來展示要素數值變化的空間分布,在場域展示中加入時間維度,空間的色彩會隨時間發生變化,圖3a、3b最后會形成較為完整的水流要素演進展示模式。

圖3 場域展示示意
b)軌跡展示。軌跡展示的重點在于同時展現某點的位置以及該位置的要素矢量[15]。在空間中,位置可以表現為一個點,但是要素矢量直接繪制很難有視覺上的直觀感受,所以采用點的位移來展示[16]。對于固定時刻,可以確定該時刻的任意位置的矢量要素V。使用矢量要素V來描述點的空間位移,公式如下:
(1)
式中,Pi+1表示i處水流在矢量要素V的作用下,下一個時刻應該出現的位置。
圖4中A、B位置的水流在當前位置的矢量要素的作用下最終形成的由空心A、B到實心A、B變化的軌跡展示。在時間不變的情況下,矢量要素場也不會變化,水流位置的變化幅度與方向則可以表示矢量要素的性質。在軌跡展示中加入時間維度的本質是在隨時間改變矢量要素場的內容,從而影響到水流在要素場內的變化情況,最終形成對水流矢量要素的可視化表達。

圖4 軌跡展示示意
選用三江連通工程的某次模擬調水過程作為本研究的應用實例。模擬河段自榕江塭嘴水閘處開始,包含榕江北河支流在內,全長約35.5 km。原始數據包括模型以0.5 h為間隔模擬的1 440時段,5 358個節點的水位、流速和水深數據。在經過數據處理后,對水位數據與流速數據分別進行場域展示和軌跡展示。
a)數據處理。由于本次使用的是模型模擬的調水過程數據,原始數據序列中不存在缺失值或異常值的情況,原始數據可以直接標準化入庫,再經由結構化組織形成JSON格式的數據。限于文章篇幅,本次僅展示節點水位數據,具體內容見表1。對比表1、2中的數據內容可以發現,JSON格式的數據層級明確,格式自由,易于存儲和組織更多的信息,更為重要的是JSON格式數據與JavaScript語言天生兼容,訪問某一節點信息和數據時通過鍵值對的映射進行數據查找,較數據庫循環訪問效率更高,耗時更短。

表1 標準化入庫數據示例

表2 JSON格式數據示例
b)場域展示。將模擬調水過程中的水位數據通過場域展示技術逐節點逐時段繪制到canvas中并通過前端控件做到時段控制,結果見圖5。在空間維度上,圖片中清晰地展示出了某時刻模擬調水水位的空間分布情況,從河道中心到岸邊,從上游到下游的水位變化一目了然;在時間維度上,不同時段的水位空間分布也可以被場域展示技術很好地展示出來,在播放控件的控制下可以對比不同時段的水位分布情況,也方便做出逐時段播放效果。

圖5 三江某河段模擬調水水位場域展示
c)軌跡展示。將模擬調水過程中的流速數據通過軌跡展示技術逐節點逐時段繪制到canvas中,結果見圖6。在空間中以水流粒子的形式代表水流單元,圖6a展示了單個水流粒子在某時刻的流速矢量場作用下的運動過程,圖6b展示了多個水流粒子在某時刻的流速矢量場作用下的運動過程。在實際的展示中,流速矢量場內,區域的流速數值越大則粒子運動速度越快,區域的流速方向決定了粒子的運動方向。通過水流粒子運動的速度和方向可以較為準確、直觀地反映出模擬調水過程中當前時刻的空間內流速分布情況。如果隨時間調整流速矢量場的數據,則可以較為完整地演示模擬調水過程中流速隨時間的變化情況。圖6b多粒子軌跡使用粒子個數為 5 000±500,基本粒子數為5 000,為防止粒子假死,每幀會有部分粒子消亡和新生。在本次研究中,對水利要素數據開始加載到渲染出第一幀內容的時間進行多次試驗(100次)并記錄,內容見圖7。100次渲染耗時的平均值495.53 ms,整體渲染速度較快。在第一幀渲染完成之后,由圖6b右上角渲染幀率展示圖框可知,在多粒子軌跡展示模式情況下,可視化的繪制幀率達到每秒60幀(平臺限制最高為每秒60幀,實時渲染時可以達到每秒100幀),可以滿足高速流暢展示的需求,其他展示模式的資源(計算和存儲資源)消耗均明顯低于多粒子展示模式,渲染速度更快,質量更高,限于篇幅,不再詳細討論。

a) 單粒子軌跡

b) 多粒子軌跡圖6 三江某河段模擬調水流速軌跡

圖7 渲染耗時測試
本文通過對水流數據處理、水流演進展示技術以及應用實例的研究可以得出如下結論。
a)以數據清洗、標準入庫以及結構化組織為主要內容的數據處理過程為水流數據可視化展示提供了高質量的數據產品,對后續的水流演進技術及展示模式的研究與實踐具有重要作用。
b)以水流要素的標量和矢量類型的不同分別確定的場域展示方式和軌跡展示方式以簡潔、直觀的形式展現了標量和矢量水流要素的變化過程,適用于多要素的水流演進展示。
c)實例應用以模擬調水數據為基礎,通過計算機繪圖技術實現了場域展示和軌跡展示在實際案例中的應用,完成了水流展示從靜態到動態的演變,渲染速度快,整體觀感更為真實,為三江水系連通工程管理人員和技術人員開展調水效果評估和決策分析提供可視化支撐。