劉 波,臧愛清,徐繼男
(大連航運職業技術學院,遼寧 大連 116052)
隨著海洋意識的提高,以美國為代表的發達國家非常重視海洋環境信息的收集,這些國家從19世紀就開始著手對海洋環境各種信息進行調查,然后不斷積累完善海洋環境數據信息。采用現代高科技技術,廣泛利用計算機、網絡等技術連續地采集、處理和利用海洋環境數據。但是由于數據存儲格式造成數據使用不便,所以如何搭建一個高效的海洋環境信息數據共享系統,提供數據存儲技術、快速查詢技術、數據修改集成技術、數據信息可視化技術是關鍵技術問題。
歐洲Escience研究計劃的GODIVA研究項目在英國國家環境研究中心建立,對海洋鹽度溫度等數據進行了處理分析和可視化服務[1]。美國的加州大學圣地亞哥分校建立了海洋監測數據整合知識網絡[2]。MIT主持的Poseidon項目集成了建模、可視化和參數計算方法等,通過Web界面方便海洋科學者實現對海洋數據的使用[3]。中國科學院開發的科學數據網基于科學數據庫的海量數據資源,采用先進的數據網絡技術,建立了一個面向大規模分布式異構數據庫的共享平臺,通過連接分散在全國范圍內的40多家研究機構,在海洋數據方面提供了海洋化學數據子系統、波浪波譜數據子系統、ARGO數據子系統、表層流數據子系統等的訪問服務[4]。
總的來說,國內外在海洋環境信息方面做了大量的工作,本文將通過收集國內外的研究數據資料,并進行統一的格式化處理,采用Qt與Oracle相結合的技術建立海洋環境信息數據庫,并采用可視化技術,使用戶可以通過海圖點取相應的海域位置對海洋信息進行查詢,從而能夠高效直觀得到相關信息。為船舶航行預報或其他科學研究提供幫助。
因為有很多種海洋數據信息,數據的來源也不一樣,目前主要的數據來源和可借鑒的網站如下:中國海事服務網,航運在線網,地球系統科學數據共享平臺,中國氣象科學數據共享服務網,中國天氣臺風網,臺風路徑實時發布系統,European Centre for Medium-Range Weather Forecasts(ECMWF)官方網站,International Research Institute for Climate and Society,中國 Argo 實時資料中心。
由于數據來源渠道不一,為了實現數據的高效管理,必須對數據進行整理歸納。其中大多數數據例如平均波方向、波周期等主要來源于ECMWF;洋流等來源于國際氣候與社會研究所與中國Argo實時資料中心;臺風風暴等數據主要來自于中國氣象的相關網站[5 – 6]。收集資料時綜合參考了以上網站公布的可以利用的資料,有的網站資料并不全面,必須經過整理去除不必要數據、分析數據的正確與否。
數據采集過程如圖1和圖2所示。

圖1 ECMWF 的數據Fig. 1 The data from ECMWF

圖2 來自 ECMWF 的數據的表現形式Fig. 2 Format of data from ECMWF
在數據采集過程中,數據是零散或無法直接利用的,如風分為u風和v風,海流分為經向海流與緯向海流,這些數據均是向量形式的,在建立數據庫之前需要對數據進行合成處理得出風的大小與方向以及海流的大小與方向。
與此同時,由于所收集的原始數據來源不同,時間跨度較長,標準不一,而且數據量很大,數據記錄難免有一些錯誤。所以在對數據的處理上,應該排除不合常理的數據,對于重復數據與異常數據也應該給予排除。
數據庫的建立一般包括系統設計、實施和維護過程,以實際應用為導向,對數據進行系統分析以便對數據需求進行了解然后建立數據庫。
本文所建立的海洋環境數據庫系統從開發的角度出發,可將整個系統分為3個部分:根據電子海圖顯示平臺,使其成為基本界面;后臺數據庫用Oracle;以顯示為上層客戶端;從使用的角度出發,數據庫要給用戶提供大量詳實可靠的數據以便用戶進行分析與決策。本文所建立的數據庫主要包括以下模塊:海洋環境信息查詢、氣象環境信息查詢、沿岸地理信息查詢、海洋環境對船舶影響如圖3所示。

圖3 數據庫結構Fig. 3 Database structure
本文運用Oracle[7]數據庫自身所攜帶的Procedural Language/Structured Query Language(簡稱 PL/SQL)進行數據的查詢和程序的設計。使用Qt軟件為數據庫的程序開發工具。具體的數據庫的開發環境與工具如表1所示。
為了充分利用Qt的優勢與功能,達到建立Oracle數據庫的目的,使用Qt與數據庫連接。在Qt中運行代碼使得兩者相連接,并實現在Qt中對數據庫進行一定的操作。

表1 開發環境與工具Tab. 1 Development environment and tools
本文建立數據庫表的原則:為了達到高效的數據庫功能系統,表設計時應該遵照一定的原則對數據信息進行系統分類,與此同時還要確保表設計的合理性。此外為了消除表中存在的冗余現象,還要對表進行規范化設計以確保一個表只能圍繞一個標題,便于對表進行維護[8]。
根據系統需求,詳細設計各數據庫對象,包括數據表和視圖等。海洋環境信息表(OCEAN_EVIR)如表2所示。

表2 海洋環境信息表Tab. 2 Marine environmental information
海洋環境信息主要分為2個部分,一個是點查詢一個是區域查詢。點查詢主要查詢某一經緯度點的相關水深、水表溫度、洋流、波高以及波的流向等信息。可以按照天來查詢也可以按照年來查詢。年查詢的查詢結果為曲線圖。區域查詢是針對某一經緯度區域內的信息查詢。查詢結果可以用2種方式顯示:一種為文本形式,顯示出表格:另一種是可視化的形式,也就是顯示出該地區的海圖,通過等高線等來顯示,以更直觀的形式來展示數據。區域查詢方式的主要程序流程如圖4所示。

圖4 區域查詢Fig. 4 Area query
可視化是人機交互的一種形式,具有人機對話的功能??梢暬δ芸梢詾閿祿斓挠脩籼峁┮粋€直觀、美化與人性化的界面用以數據庫的操作。通過可視化界面,用戶不必面對枯燥的代碼,也不用花費大量時間用以在數據庫中查找數據。用戶只要在可視化界面上進行相應的操作就可以查詢到對應的數據信息,從而獲得所需的數據資料[9]。該模塊的主界面設計如圖5所示。在經緯度的獲取上,有2種方式:一種為手動輸入,直接在輸入框內輸入具體的經緯度;另一種為從地圖上獲取,點擊獲取經緯度按鈕,打開地圖(圖6),在地圖上雙擊所要查詢的點,位置坐標自動保存到輸入框內。

圖5 海洋水文信息查詢Fig. 5 Ocean information query

圖6 海圖Fig. 6 Chart
按天查詢和按年查詢的功能,不同的選擇點擊查詢按鈕出來的結果不一樣。以波高為例,選擇按年查詢并且勾選波高要素選項,可以直接給出一年的波高變化圖,如圖7所示。

圖7 波高曲線圖Fig. 7 Wave height graph
進行區域查詢時,首先選擇查詢區域的經緯度范圍,然后選擇日期。最后選擇海洋水文要素??梢赃x擇可視化方式顯示區域信息,也可以直接將數據以excel的形式進行導出以方便數據的查看和整理。圖8顯示的就是海洋洋流的可視化結果。

圖8 海洋洋流可視化查詢結果Fig. 8 Ocean stream visualization results
本文設計的海洋環境數據庫除了傳統數據庫數據查詢功能外,還注重對數據進行分類處理。建立該數據庫就是依托于現如今高速發展的信息產業技術建立起有關海洋環境的數據集合,通過該數據庫,可以快速準確地查找到所需海域的海洋環境與氣象環境數據,可視化的點查詢是區域查詢相比傳統的數據查詢更加直觀與方便,能夠為船舶航行預報或其他科學研究提供幫助。