宋麗麗, 康林沖, 王 漪, 何 隆, 辛 冰
?
基于B/S的海洋環境數據可視化與服務
宋麗麗, 康林沖, 王 漪, 何 隆, 辛 冰
(國家海洋信息中心數字海洋重點實驗室, 天津 300171)
為了解決BS模式下系統業務化運行中海洋環境數據組織與管理、數據服務發布與可視化表達等問題, 通過消息控制機制, 實現了海洋環境數據的動態處理、服務動態生成和顯示一體化無縫銜接, 從而在保證數據安全情況下為用戶提供海洋環境數據分析, 通過系統的部署試運行, 證明其具有良好的應用前景。
B/S(Browser/Server); 海洋數據; 可視化; 服務發布
海洋環境數據可視化是指通過可視化圖像實時動態展示的數據動態變化過程[1]。目前我國的可視化平臺基本是單機或基于C/S架構的, 比如OSG[2]、EV-Globle, 存在著開發周期長、維護更新難、網絡帶寬受限等諸多問題。World Wind可以將代碼封裝成jar包通過Java Applet在瀏覽器中顯示[3], 但效率比較低, 而且需要降低java的安全訪問權限, 數據的安全性難以得到保障。近年來, WebGL使得在網頁上實現高效率的3D圖像程序成為了可能[4], 目前很多基于WebGL的系統都處于初級研究階段, 且WebGL是基于JavaScript明碼編寫, 因此從穩定性和安全性角度上均不足以達到業務化的要求。可視化系統上, 基于Skyline的“中國近海數字海洋信息基礎框架”[5]和iOcean中國數字海洋公眾版[6], 是采用B/S架構, 但更多是傾向信息發布和業務數據展示等, 在海洋環境數據可視化上均采用靜態圖片或提前將可視化繪制結果準備好, 無法做到實時動態繪制可視化數據。因此, 大多數基于Web的海洋數據管理和可視化平臺不具備多源數據分析和三維可視化能力, 只能對單一數據管理和簡單的靜態二維可視化。
SkylineGlobe是全球領先的三維空間地理信息可視化軟件, 集數據處理、數據展示、數據分析應用及網絡發布于一體。SkylineGlobe提供從“應用-工具-服務”3個不同層面的解決方案, 提供給用戶快速建立逼真的三維數字地球場景和基于自身業務的可視化管理系統。另外, SkylineGlobe提供豐富的API和多樣的產品組合, 可以為每個用戶提供量身定做的軟件和服務[7]。
在908專項“數字海洋”信息基礎框架構建項目建設中, 系統的可視化功能是采用第三方的可視化模塊將可執行程序嵌入到系統中, 是脫離三維球體單獨展示的, 而且沒有做到實時動態繪制分析。本文從海洋環境數據組織處理和海洋環境數據發布兩方面入手, 通過消息控制機制, 將數據的處理、發布、顯示一體化無縫銜接, 在瀏覽器端, 借助SkylineGlobe的接口將數據進行顯示, 保障了海洋環境數據可視化的效率以及數據的安全性, 為用戶使用和分析海洋環境數據提供一定的輔助作用。
1 系統架構設計
基于B/S的海洋環境信息可視化, 旨在為用戶提供海洋環境信息的分析和可視化表達。將海洋環境數據的預處理與數據服務發布自動化, 通過消息控制機制, 動態生成數據服務, 再基于SkylineGlobe球體將數據服務進行可視化, 做到數據的存儲、處理、發布與顯示一體化無縫銜接, 從而在保證數據安全的情況下更加直觀展示數據的特性, 為用戶使用和分析數據提供一定的輔助作用。圖1是系統設計的總體框架。
B/S環境下海洋環境信息可視化與服務主要受制于大數據的存儲與組織、數據傳輸對網絡帶寬的要求、數據服務的發布等條件的制約。通過構建數據處理中間件, 在數據存儲上主要采用歸一化數據文件格式, 建立數據文件索引表對海洋環境數據文件進行管理, 建立界面數據索引表方便瀏覽器端查詢檢索; 可視化數據和服務生成工具實時動態發布可視化服務; 建立數據服務索引表用于緩存用戶常用數據, 提高經常訪問數據的響應速度。
瀏覽器端提供大面圖、單點時間序列曲線和剖面曲線等可視化方式, 所有可視化效果通過Skyline球體的API渲染, 渲染方式包括加載WFS(Web Feature Service)要素服務和直接繪制幾何數據。瀏覽器端和服務器端的交互通過消息服務控制。
2 數據組織與管理
2.1 數據內容
系統主要依賴于基礎環境產品庫, 主要包括學科級產品和要素級產品。產品按照處理手段的不同, 分為常規統計產品、再分析產品、預報分析產品、實況分析產品等。
學科級產品主要包括從基礎數據庫中按學科抽取得到的海洋綜合數據產品, 以及海洋水文學科專題產品、海洋氣象學科專題產品、海洋物理學科專題產品、海洋化學學科專題產品、海洋生物學科專題產品、海洋底質學科專題產品、海洋懸浮體學科專題產品、海洋地球物理學科專題產品、海洋地形地貌學科產品等。系統目前所使用的學科級產品主要包括海洋水文和海洋氣象專題產品。
要素級產品主要指從基礎數據庫中抽取的, 以我國近海資源調查專項(908專項)數據庫為基礎, 囊括海洋水文、海洋氣象學科方向, 包括多種時空分辨率, 根據數據的專題應用保障和服務需求, 按照要素進行組織的產品。主要要素為溫度、鹽度、密度、聲速、海冰、海流、波浪、風、氣溫、氣壓、濕度、潮汐、潮流等。
2.2 數據存儲
2.2.1 產品數據格式
目前, 海洋環境要素數據的存儲與管理還沒有形成統一的標準規范, 一般由數據加工處理部門根據其實際需要, 自行設計數據存儲與管理方法。其中, 常見的存儲方法是采用文本(ASCII碼)或二進制文件方式進行存儲。這種方式使用簡單, 占用磁盤空間小, 但不便于在基于服務器——客戶端模式的大型應用系統中進行使用, 同時也存在數據安全漏洞, 以及共享和交換效率不便等問題。
為了確保可視化模型系統研發及在數字海洋應用服務系統測試版中的集成應用, 統一采用netCDF (簡稱nc)格式的數據文件進行存儲。其他格式的數據在使用前均需要通過預處理工具轉換成nc格式。
在管理以nc數據文件存儲的海洋環境要素數據時, 建立一個索引表(表1), 通過索引表來查找到某區域的海洋環境要素信息, 然后通過文件路徑來檢索具體的數據。

表1 海洋環境產品文件索引表
2.2.2 產品數據服務存儲
海洋環境數據按照區域、要素、時間、層深生成shp分析數據并發布, 為了能夠更加靈活的查找對應的數據服務方便前臺頁面查詢顯示, 提高數據可視化響應速度, 需要額外的一個數據服務索引表JCHJFX_SHP_ZD, 表結構如表2所示。

表2 數據服務索引表
空間區域: 數據服務所屬的海洋區域。
學科名稱: 數據服務所屬學科, 包括海洋水文、海洋氣象等學科。
要素名稱: 數據服務所對應的要素, 可以是溫度、鹽度、海面高、海流、氣溫、氣壓、風速等要素。
數據類型: 數據服務的數據類型, 包括常規統計產品、再分析產品、實況產品和預報產品等。
層深: 對于海水溫度、鹽度等存在多個層深的要素數據, 用于記錄該數據服務所對應的層深值, 對于海面高等單層深的數據, 該字段填充缺省值0。
時間: 數據服務對應的時間。如果數據的粒度是天, 則填充值形如20140204, 如果粒度是月, 則填充值形如201402, 如果粒度是年, 則填充值形如2014。對于常規統計數據, 是多年月平均數據, 則填充值形如000003。
線、面服務路徑: 存儲可視化的線、面數據服務發布的地址。
注記服務路徑: 存儲可視化注記的數據服務發布的地址。
記錄更新時間: 用于記錄該數據服務記錄所生成的時間, 用于替換調度算法。
2.2.3 界面數據管理
由于數據庫里會有不同學科不同類型的產品數據, 所以為了能夠使得瀏覽器端展示更加靈活, 將產品數據按照空間區域、所屬學科、要素種類、數據類型、層深和時間等進行組織, 構建基礎環境分析可視化索引表, 該表由數據文件格式預處理工具創建。表3列出了海洋基礎環境分析界面數據索引表的字段名稱及數據類型等。

表3 海洋基礎環境分析界面數據索引表
空間區域: 產品數據所屬的海洋區域, 包括全球、西北太平洋、中國海等大范圍海域以及沿海省市和黃河三角洲、遼東灣、萊州灣、大連近岸海域、青島近岸海域、蘇北近岸海域、長江三角洲、杭州灣、舟山群島海域、廈門近岸海域、閔江口近岸海域、珠江三角洲、北部灣、海南近岸海域、西沙群島海域等重點海域。
學科名稱: 產品數據所屬學科, 包括海洋水文、海洋氣象、海洋化學等學科。
要素名稱: 產品數據所包含的要素, 比如海洋水文包括溫度、鹽度、海面高、海流等要素; 海洋氣象包括氣溫、氣壓風速等。不同空間區域和學科下的產品數據所包含的要素會有所不同。
數據類型: 不同產品數據的類型, 包括常規統計產品、再分析產品、實況產品和預報產品等。
層深: 對于水文等數據, 是多個層深的數據, 用于記錄該數據產品的多個層深值, 比如0, –10, –200等。
起始時間和終止時間: 產品數據的時間范圍, 與時間粒度有關。
時間粒度: 產品數據的時間按照各學科數據獲取的不同, 可分為日、月、季、年、多年統計等。
當界面初始化時, 會先對應去找某個學科下的記錄, 然后查詢所有的空間區域進行填充, 根據當前的空間區域, 找到該區域下對應的要素、時間和層深等, 一次進行填充。
2.3 海洋環境數據更新
目前系統中的海洋環境數據按業務內容主要分為海洋水文數據和氣象數據。海洋水文數據包括常規統計、再分析、實況和預報數據。氣象數據為常規統計數據。海洋環境數據的更新主要包括數據下載、數據解析、生成可視化數據以及服務發布。海洋環境數據的更新涉及數據下載的更新以及數據解析和生成可視化數據的過程, 需要用的數據處理中間件, 包括數據預處理工具、可視化數據生成工具以及和數據服務工具。
如圖2所示, 海洋環境數據入庫后原始數據文件存放在相關服務器中, 通過數據預處理工具將提交的原始海洋數據下載并轉化成統一的NC格式, 程序將自動按照原始數據文件目錄生解析成對應的可視化數據, 然后將矢量數據轉換為地圖文件, 最終發布成WFS地圖服務。在這個過程中, 涉及數據存儲中的3個表, 數據預處理工具負責填寫界面數據索引表和產品文件索引表, 產品文件索引表供可視化數據生成工具使用, 數據服務發布工具負責將地圖服務地址寫入數據服務索引表。
3 海洋環境數據發布與可視化表達
3.1 海洋環境數據發布技術
由于海洋環境數據實時、海量、多源異構、單個文件數據大等特性, 對服務的發布有更高的要求。常規的地理信息發布平臺, 無論是商業的ArcGIS Server, MapGIS, 還是開源的GeoServer, 面對如此海量的數據, 始終無法解決資源受限的問題, 尤其是內存資源的不足, 以及隨著服務數量增加導致的服務響應速度下降。傳統的地理信息服務架構在發布地圖服務或要素服務時還會面臨用戶請求響應速度過慢等不友好的情況。結合海洋環境數據的特點, 采用并行計算技術, 并利用服務器緩存策略, 實時高效地發布海洋環境信息服務。
3.1.1 數據文件預處理工具
數據文件預處理工具采用并行計算技術, 實時接收并處理各種來源不同結構的海洋環境數據, 處理成統一的nc格式文件, 并在數據文件索引表和界面數據索引表中創建索引。
3.1.2 服務器緩存策略
服務緩存策略的機制如圖3所示。采用可擴展分級緩存, 預處理用戶常用數據, 動態生成其他數據。在客戶端設計快速預取緩存, 提升用戶可視化操作體驗。
當收到客戶端請求, 請求的數據服務如果已經經過預處理, 則直接調用數據服務索引表中的數據服務地址, 如果數據服務不存在, 則請求會被回溯到數據處理中間件中, 調用可視化數據生成和數據服務生成工具對原始數據再做處理, 這時生成的數據一方面返回給客戶端, 另一方面保存在數據服務索引表中, 以備下次請求。
受資源所限, 服務器端的數據服務數量需要控制在一定的范圍內, 就需要定時對數據服務索引表更新, 及時替換掉不常用的數據服務, 從而提升響應速度。
3.2 海洋環境數據可視化表達
根據海洋環境產品數據類型和學科要素的屬性不同, 瀏覽器端的可視化方法主要有大面圖、單點時間序列曲線和剖面曲線等。大面圖指將某個要素的某一層深數據進行等值線抽取, 然后根據屬性值進行顏色填充。單點深度序列曲線是指在某個測點(單一點)上, 繪制某一種或幾種海洋環境要素(如溫度、鹽度)隨深度變化的曲線。剖面曲線是指在某個測點(單一點)上沿著某個剖面繪制某一種或幾種海洋環境要素(如溫度、鹽度)隨深度變化的曲線。圖4為單點深度序列曲線和大面圖可視化示意圖。
根據不同可視化表達方式的邏輯復雜程度和對數據量的要求, 采用兩種方式對海洋環境數據進行可視化渲染。對于單點深度序列曲線和剖面曲線可視化, 邏輯上較為簡單, 且數據量比較小, 根據查詢條件, 在服務器端的海洋環境產品文件索引表中查詢對應的數據文件, 讀取獲得所需數據, 然后在瀏覽器端繪制顯示即可。
對于大面圖可視化, 采用服務器端生成幾何數據并發布服務, 瀏覽器端僅需要加載服務進行顯示。當收到瀏覽器端用戶申請查看某個數據的大面圖可視化時, 服務器程序首先會根據繪制條件到海洋環境產品數據服務索引表中查找是否有對應的記錄, 如果有, 則直接讀取線面服務路徑和注記服務路徑, 返回前臺通過SkylineGlobe接口進行顯示。如果沒有, 則啟動數據分析處理工具到數據文件索引表中查找對應的數據, 然后進行等值線抽取和顏色填充形成矢量數據, 然后將生成的大面圖矢量數據發布, 最后將發布的路徑寫入數據服務索引表中, 以備下次可視化時使用。
4 繪制結果及分析
圖5展示是908專項中數字海洋原型系統中的可視化功能, 是采用ActiveX插件集成到系統中, 并沒有與三維球體相結合, 且數據均為提前發布, 不具備動態分析可視化功能。
本文中研究內容所集成的系統是基于B/S架構的數字海洋應用服務系統, 只需訪問特定網址即可使用, 客戶端唯一需要安裝的是SkylineGlobe插件, 用于球體的顯示。如圖6所示, 界面上的區域、要素、層深以及時間等條件都是通過讀取界面數據索引表實時獲取, 且可視化的結果也都是實時動態生成的。
a. 西北太平洋區域大氣溫度大面圖; b. 表層水溫大面圖; c. 某點深度序列上的溫度曲線圖; d. 某點深度序列上的海流曲線圖; e. 溫度剖面曲線圖; f. 海流剖面曲線圖
a. Pacific Northwest temperature using color section; b. SST using color section; c. Temperature at one point using a single-point sequence depth curve; d. Ocean current using single-point sequence depth curve; e. Temperature using profile curve; f. Ocean current using profile curve
5 結論
本文實現了基于B/S的海洋數據的服務發布與可視化表達, 服務器端基于數據預處理工具、可視化數據生成工具、數據服務發布工將原始數據的處理、可視化數據發布與顯示一體化無縫集成, 瀏覽器端基于SkylineGlobe插件在三維球體上實現數據的可視化。目前本文研究內容已經集成到數字海洋應用服務系統上, 通過數字海洋專網供39個數字海洋節點的終端用戶訪問, 并已在國家海洋信息中心和海洋一所、二所、三所進行部署試運行。基本滿足了數字海洋中對海洋數據的可視化需求, 對分析海洋數據提供一定的借鑒。
[1] 孔倩倩, 韓勇, 李文慶, 等. 海洋標量數據多維多模式動態可視化系統設計實現[J]. 微型計算機信息, 2011, 5(5): 177-179. Kong Qianqian, Han Yong, Li Wenqing et al. A multi-dimension and animated visualization system for marine scalar field data with multi-mode[J]. Microcomputer Information, 2011, 5(5): 177-179.
[2] 王銳, 錢學雷. OpenSceneGraph三維渲染引擎設計與實踐[M]. 北京: 清華大學出版社, 2009: 1-15. Wang Rui, QianXuelei. Design and practice of 3D rendering engine on OpenSceneGraph[M]. Beijing: Tsinghua University press, 2009: 1-15.
[3] 周玲, 高延銘. World Wind Java三維地理信息系統開發技術指南[M]. 北京: 機械工業出版社, 2013: 8-11. Zhou Ling, Gao Yanming. Development of technical guidelines for 3D geographic information system on World Wind Java[M]. Beijing: China Machine Press, 2013: 8-11.
[4] WebGL detail. Design of WebGL.[EB/OL].[2016-3-21]. https: //en.wikipedia.org/wiki/WebGL.
[5] 張新, 劉健, 石綏祥. 中國“數字海洋”原型系統構建和運行的基礎研究[J]. 海洋學報, 2010, 32(1): 153-160. Zhang Xin, Liu Jian, Shi Suixiang. The basic research on the construction and implementation of china’s “digital ocean” prototype system[J]. Acta Oceanologica Sinica, 2010, 32(1): 153-160.
[6] 石綏祥, 雷波. 中國數字海洋—理論與實踐[M]. 北京: 海洋出版社, 2011: 326-377. Shi Suixiang, Lei Bo. Theory and practice on china digital ocean[M]. Beijing: Ocean Press, 2011: 326-377.
[7] SkylineWebsite. The product description of Skyline Globe[EB/OL].[2015].http: //www.skylineglobe.cn/.
Visualization and service of marine environmental data based on B/S
SONG Li-li, KANG Lin-chong, WANG Yi, HE Long, XIN Bing
(National Marine Data and Information Service, Key Laboratory of Digital Ocean, Tianjin 300171, China)Received:Jun. 24, 2015
B/S; marine data; visualization; service release
Aiming at B/S system operations, we study marine environmental data organization, management, services publishing, and visualization. This paper introduces a dynamic seamless integrated method for data processing, service producing, and publishing, displayed by a messaging mechanism. Application proves that the system has a good future in the fields of marine environmental data visualization and information security.
P76
A
1000-3096(2016)07-0124-08
10.11759/hykx20150624001
2015-06-24;
2015-10-19
國家自然科學基金項目(41271391); 海洋公益性行業科研專項(201305029)
[Foundation: National Natural Science Foundation of China, No.41271391; Public science and technology research funds projects of ocean, No.201305029]
宋麗麗(1987-), 女, 河北唐山人, 工程師, 主要從事數字海洋可視化研究, 電話022-24013367, E-mail: lilysong_ouc@163.com
(本文編輯: 劉珊珊)