李久松, 常曉峰, 田豐林, 紀鵬波
(1. 中國海洋大學 信息科學與工程學院, 山東 青島 266100; 2. 中國海洋大學 體育系, 山東 青島 266100)
海洋和大氣數據多模式動態可視化系統的設計和實現
李久松1, 常曉峰2, 田豐林1, 紀鵬波1
(1. 中國海洋大學 信息科學與工程學院, 山東 青島 266100; 2. 中國海洋大學 體育系, 山東 青島 266100)
為了實現海洋和大氣數據多模式動態可視化, 本系統使用VC++和CG著色語言進行開發, 渲染引擎基于 OpenGL三維圖形標準。提出了一系列面向海洋和大氣數據的模式分析方法, 包括: 探針功能、線模式、面模式、體模式、矢量模式和動態時間序列分析等, 實現了將海量多維海洋大氣數據轉換為三維空間或動態演變的圖像, 同時完成用戶交互處理操作。并將可視化技術應用于長時間序列的海洋大氣數據, 通過實時動態的可視化圖像來體現海洋大氣數據的動態變化過程。結果表明, 該系統可實現常見海洋和大氣數據的多模式動態可視化。
海洋大氣數據; 多模式; 動態; 可視化
海洋大氣環境是一個典型的多維動態變化環境,建立直觀的模式數據可視化分析環境是對其內在規律進行分析和研究的重要方法。目前國內外已有很多海洋大氣數據可視化系統的相關研究, 如NCAR Graphics和GrADS等。但這些可視化系統[1-3]往往局限于二維平面, 無法表達海洋大氣這個三維空間分布的時間動態過程。Vis5D和McIDAS 等雖然支持多維圖形的表達, 也實現了海洋大氣數據的可視化,但這些軟件在數據管理方面存在明顯不足。Google于2009年初推出了Google Ocean, 基于三維地球球體實現了大范圍的海底地形三維可視化, 但缺乏對海洋水體要素的可視化表達。除Google 以外, NASA的World Wind、ESRI 的ArcGlobe、Skyline 公司的Skyline 等平臺提供了基于地球球體模型的海洋數據可視化表達, 但以上平臺均基于整個地球模型,無法良好地展示局部海域的可視化效果。國家海洋信息中心以Skyline公司的TerraSuite系列軟件為基礎平臺開發了“數字海洋”原型系統, 實現了中國海域海底、水體等海洋自然要素、自然現象及其變化過程的數字化重現和預現, 但其側重于虛擬仿真, 對要素的分析功能較少。
本文提出的海洋和大氣多模式動態可視化系統實現了常見海洋大氣數據的三維動態可視化, 可視化數據采用網絡通用的 NetCDF(Network Common Data Format)數據。在可視化方法方面, 提出了探針功能、線模式、面模式、體模式、矢量模式和動態時間序列分析等海洋大氣數據可視化分析概念, 同時運用海量數據管理與調度, 矢量、標量可視化等關鍵技術以展現各研究對象在時間和空間上的變化情況。在此基礎上, 系統實現了在同一可視化環境下,對兩個不同的矢量、標量海洋大氣要素(如海面氣壓、海面濕度與海面風場、海流)同時進行可視化, 最終完成了對常見海洋大氣數據的可視化分析。
相對于以往傳統的可視化相關軟件, 本系統不僅可以實現對可視化圖像任意放大、縮小、旋轉、動畫等一系列功能, 同時, 系統基于內存映射文件解決了大數據量的承載問題, 而且逼真的可視化區域地理底圖, 使系統具有更好的交互性和直觀性。
系統包括數據管理、可視化渲染, 用戶界面控制與可視化環境三大模塊。
數據管理模塊負責多維海洋大氣數據的解讀、存取及管理; 可視化渲染模塊完成多維海洋大氣數據的可視化渲染與分析; 用戶界面控制層響應用戶不同操作, 結合可視化模塊以靈活的方式展示可視化結果。系統采用數據驅動結合消息響應的構架模式, 如圖1所示。

圖1 系統體系結構Fig. 1 System architecture
系統包括NetCDF數據解讀與存取, 可視化區域紋理貼圖, 數據分析與動態可視化等功能。功能模塊之間通過消息和共享內存機制進行通訊和協作[4]。
NetCDF數據解讀、存取功能是將原始的數據讀取保存到系統的多維動態數組中, 以便進行下一步的可視化操作。可視化數據采用 ROMS(Regional Ocean Model System)模式輸出的NetCDF格式數據,輸出數據包括溫度、鹽度、海流和水位場等。 ROMS的計算網格為C網格(圖2), 即流速u、v點的計算網格和水位、溫度、鹽度等標量并不相同, 所有變量均在各自的計算網格輸出。NetCDF數據主要是由Dimensions, Variables, Attributes, Data 四個部分組成(圖3)。Dimensions主要包含每個變量的名稱和長度, Variables是各種變量, 如溫度、鹽度等, Attributes是一些輔助記憶的說明, 如變量的單位等, Data是主要資料部分。針對NetCDF數據的這種特殊結構, 需要在系統中配置用 VC++打開讀取 NetCDF數據的環境, 所使用的NcFile類中包含了NcDim, NcVar, NcAtt, 分別對應了上面的Dimensions, Variables, Attributes部分。系統使用NetCDF的成員函數 num_dims()獲得文件中的Dimensions個數, 用 NcFile類的另一個成員函數get_dim(int id)獲得每個文件的 Dimensions, 用 NcDim類的成員函數 id()、name()、size()依次讀出每個Dimensions的id, name, size。同理用NetCDF的成員函數num_vars()獲得文件中Variables數量, 用NcFile類get_var(int id)讀出每個文件中的Variables, 也可讀出id, name信息。所不同的是Variables還可用num_dims()讀出其所包含的Dimensions個數, 用get_dim(int id)讀出其包含的Dimensions相關信息, 同時文件的Data信息也是通過Variables來操作的。

圖2 C網格Fig. 2 C Grid

圖 3 ROMS輸出NetCDF的數據格式Fig. 3 Data format of NetCDF
以往的可視化軟件只能簡單顯示出某個數據的可視化結果, 而該數據所在的地理區域情況卻無法顯示, 利用OpenGL紋理貼圖技術[5], 本系統可以真實地展現可視化區域的地理底圖, 使系統具有更好的直觀性, 可視化效果更加逼真。紋理貼圖結果如圖4 系統主界面所示。
數據分析與動態可視化功能包含對海洋大氣要素的探針功能、線模式、面模式、體模式、矢量模式和動態時間序列分析與可視化。探針功能, 可以將二維屏幕上的點映射為三維坐標, 用戶可以使用鼠標在屏幕上選取所關注的信息點, 在右側的用戶界面會顯示出該點的經度、緯度、深度以及變量值[6]。等值線分析根據某一數量指標將值相等的各點通過內插值連成的平滑曲線, 使用戶能直觀地觀察海洋要素的值域分布。彩色剖面分析, 就是用不同的顏色來表示面上各點的物理值。矢量模式分析, 運用矢量箭頭對矢量場進行可視化, 用箭頭的長短來表示矢量的大小,用箭頭的方向來表示矢量的方向。體模式分析, 是一種對三維時空演變過程重現的可視化方法, 它可以由三維數據場直接通過計算產生二維圖像。動態時間序列分析, 主要采用基于動態顯示列表的面可視化分析來表達海洋大氣要素的宏觀動態變化過程, 通過內存映射技術將海量海洋大氣數據映射入內存, 按時間分布進行過程可視化, 再現海洋數據要素的演變過程。圖4為海洋大氣數據可視化效果及系統主界面。

圖4 海洋大氣數據可視化效果及系統主界面Fig. 4 Visualization of marine data and the system interface
在多維可視化應用中, 數據量已成為影響系統效率和穩定性的主要因素。海洋時刻處于動態變化之中,海洋現象的表現需要滿足其動態性和時空過程性的要求。海洋數據的可視化需要體現海洋數據的動態變化過程, 這就需要處理海量的數據。為進行大時間跨度的可視化與分析, 可針對海量數據進行內外存交換, 以動態的載入載出代替原本的一次性載入, 使系統能夠承受超過物理內存大小的數據量。
內存映射文件[7]是 Windows的一種內存管理方法,它提供了一個統一的內存管理特征, 使應用程序可以通過內存指針對磁盤上的文件進行訪問, 其過程就如同對加載了文件的內存的訪問。為實現對海量數據的可視化分析, 我們設計了如下的內存映射模型, 如圖5。

圖5 內存映射模型Fig. 5 Memory-mapped Model
海洋大氣數據的多維動態可視化具有訪問的局部性, 動態可視化是以時間點為觀察窗。可視化過程中數據只在該時間點被渲染時才使用, 所以只要計算出系統的最短響應時間, 使用多線程方法, 在渲染前將數據映射入內存, 在進行渲染后再將數據卸載就可以實現大數據量的承載。
為了獲得最優的載入緩沖區大小和最短響應時間, 我們在不同硬件環境下進行了I/O速度測試, 如表1。實驗證明, 每次讀取的數據總量過高時受內存換頁等因素影響, 磁盤I/O速度會有明顯衰減。

表1 I/O速度對比表Tab. 1 Speed comparison of I/O
根據表1獲得的載入速度, 在數據一進入內存就傳輸至顯存進行可視化緩沖的情況下, 只要可視化的時間窗口切換滿足下式, 即可基本保證無延遲感,實現流暢的動態可視化。其中,HS為平均載入速度,CS為顯存至內存帶寬,M為每次可視化的數據量,T為最短響應時間,fps為渲染幀速。

對于常見海洋大氣數據, 本系統主要采用以下可視化方法: 等值線可視化、彩色剖面可視化、動態時間序列分析、體繪制可視化。
(1) 等值線繪制是標量數據可視化的主要技術,是將制圖對象某一數量指標值相等的各點連成的平滑曲線, 由表示制圖對象數量的各點, 采用內插法找出各整數點繪制而成的。等值線圖的繪制步驟一般包括: 離散數據點網格化; 在網格邊上內插等值點并計算其位置; 連結所有等值點以繪制等值線; 等值線的潤色, 如光滑處理、輔以彩色填充的方式顯示數據等。本系統利用三角網格進行等值線追蹤, 包括三角網格生成、等值點確定和等值線遍歷三個步驟。
(2) 彩色剖面即偽彩色圖法, 就是用不同的顏色表示面上各點的物理值。具體表現方式是用不同的顏色以及色彩的飽和度來表示物理值的大小, 每一類剖面可視化都分為彩色剖面生成和彩色剖面繪制兩步。彩色剖面生成, 其特征在于根據剖面參數讀取內存中的海洋要素值并根據剖面設置進行采樣生成幾何面片的過程, 生成的剖面由規則四邊形網格構成, 其中每個四邊形網格的坐標由剖面幾何屬性決定, 而每個四邊形網格的顏色值由對應點上的海洋要素屬性值決定。彩色剖面的繪制通過在幾何節點增加自定義畫法, 在自定義畫法中調用OpenGL函數繪出每個格點,每個小四邊形格點的幾何形狀用4個四邊形表示, 每個四邊形頂點的顏色根據要素值及 color bar(用顏色表示要素的值)進行內插計算。
(3) 動態時間序列分析, 其特征在于采用基于動態顯示列表的面可視化分析來表達海洋要素的宏觀動態變化過程, 海洋數據時間序列表達的過程,需要實時地調取在各個時間點上的海洋要素數據,根據時間序列順序在內存中生成繪制數據, 并按一定的時間間隔傳輸到渲染管線中, 其繪制過程實質上是 OpenGL中復雜的幾何圖形在屏幕上按時間順序動態繪制的過程, 或者說是大量的數據被按時間序列調度并計算著色的過程。
(4) 體繪制可視化, 是一種對三維時空演變過程重現的可視化方法, 它可以由三維數據場直接通過計算產生二維圖像。它的主要過程如下: 首先在一個空間范圍內通過線性插值來獲得一系列格點的物理量值。然后, 將每個點根據其數值大小賦予不同的顏色值及透明度值加以區分。最后通過光線追蹤的方式產生該空間范圍內所有可視點的著色圖像并反映在幾何體中。本系統設計了基于 GPU加速的體繪制算法, 通過體繪制可以直觀地對溫度場等標量數據場進行可視化表達, 使用戶以宏觀的角度分析海洋要素值的整體分布情況。此外本系統采用基于 GPU的高質量體繪制方法——光線投射, 其基本思想是, 對每個像素發出一條光線, 沿光線進行光亮度積分, 在光線積分過程中, 沿光線進行均勻采樣, 當光線跨出數據包圍盒, 或不透明度接近1, 停止追蹤。
本系統采用青島麥島附近海域數據, 數據空間范圍為: 35.944183°~36.089145°, 120.357809°~120.534971°,分辨率為0.0008°×0.000975°, 深度范圍為[-20 m, 0]。原始數據為總量427 MB的NETCDF數據。
實驗用計算機配置為: Core2 2.53GHz, 內存2 GB,顯卡 GeForce GTS 450。分別進行了麥島附近海域的點、線、面、體和動態可視化。結果表明, 各種可視化功能幀速都在25幀以上, 交互操作沒有延遲感。
本文在可視化方法方面, 提出了探針功能、線模式、面模式、矢量模式、體模式和時間序列分析等海洋大氣數據可視化分析概念, 并且運用VC++解讀NetCDF數據、海量數據管理、海洋大氣數據多種可視化方法等關鍵技術, 以展現各研究對象在時間上和空間上的變化情況。
本文的創新點: 運用多種模式分析方法將海量海洋大氣數據轉換為圖形、圖像, 并顯示在真實的地理底圖上; 同時可視化矢量和標量數據, 在同一地理圖層上顯示矢量、標量數據可視化結果, 使科研和業務預報人員能夠同時從不同的要素來觀察海洋大氣要素的時空演變特點; 探針功能可以將二維屏幕上的點映射為三維坐標系統, 并在用戶界面顯示出各點的經度、緯度、深度和相關變量值, 增強系統的交互性; 本文的下一步研究方向是流線可視化以及改進現有可視化算法, 進一步改善可視化效果。
[1] 徐敏, 方朝陽, 朱慶, 等. 海洋大氣環境的多維動態可視化系統的設計與實現[J]. 武漢大學學報(自然科學版), 2009, 34(1): 57-63.
[2] 涂超. 海洋溫度場的可視化[J]. 武漢大學學報(工學版), 2007, 40(6): 126-128.
[3] Ainsworth E, Ainsworth J. Visualization of ocean colour and temperature from multi-spectral imagery captured by the Japanese ADEOS satellite[J].Journal of Visualization, 1999, 2(2): 195-204.
[4] 程培英, 邵斌. 基于共享內存的多處理器系統間通信技術研究[J]. 微計算機信息, 2008, 24(30): 124-126.
[5] Shreiner D, Woo M, Neider J, et al .OpenGL編程指南. 北京: 機械工業出版社, 2010: 236-296.
[6] 李新放, 劉海行, 周林, 等. 基于 OpenSceneGraph的海洋環境三維可視化系統研究[J].海洋科學, 2012, 36(1): 54-58.
[7] 孔倩倩, 韓勇, 李文慶, 等. 海洋標量數據多維多模式動態可視化系統設計實現[J].微計算機信息, 2011, 5(5): 177-179.
(本文編輯: 劉珊珊 李曉燕)
The design and actualization of multimodal dynamic visualization system of marine and atmospheric data
LI Jiu-song1, CHANG Xiao-feng2, TIAN Feng-lin1, JI Peng-bo1
(1. College of Information Science & Engineering, Ocean University of China, Qingdao 266100, China; 2. Department of Physical Education, Ocean University of China, Qingdao 266100, China)
Jun., 13, 2012
marine and atmospheric data ; multimodal; dynamic; visualization
In order to realize the visualization of multimodal and dynamic data, a multimodal dynamic visualization system was developed using VC++ and CG language. The rendering engine was based on OpenGL three-dimensional standard. A series of mode analysis methods for the marine and atmospheric data analysis were proposed, including probe function, line mode, polygon mode, cuboid mode, vector mode analysis and temporal changes analysis. The system was used to transfer massive marine and atmospheric data into three-dimensional spatial or dynamic evolution images, as well as realize the users interaction processing. Through this system, the visualization technology can be used to analyze long temporal changes of marine and atmospheric data. It turned out that this system can represent the dynamic change process of marine and atmospheric data through the real-time dynamic visualization images.
P76
A
1000-3096(2014)01-0010-05
10.11759/hykx20120613001
2012-06-13;
2012-09-05
國家 863計劃(2008AA09A404, 200905030-4, 2010-4-07-XX, 10-1-4-71-hy)
李久松(1987-), 男, 河南商丘人, 碩士, 研究方向為虛擬現實與海洋可視化, 電話: 18766387268, E-mail: lijiusong1987@163.com