王家樂 于溥天
(內(nèi)蒙古自治區(qū)氣象信息中心 內(nèi)蒙古自治區(qū)呼和浩特市 010010)
IT 信息技術(shù)迅猛發(fā)展、氣象數(shù)據(jù)日益豐富,如何將先進的技術(shù)運用在氣象數(shù)據(jù)展示是我國氣象事業(yè)發(fā)展過程中亟需解決和研究的方向之一。目前我區(qū)地面觀測站點數(shù)已增長至2400 多個,傳統(tǒng)的數(shù)據(jù)表格展示不能滿足業(yè)務(wù)需求,采用GIS 地圖展示和數(shù)據(jù)表格協(xié)同作業(yè)是一種必然的趨勢。本文選用的GIS 服務(wù)是Openlayers,是一個專為Web GIS 客戶端開發(fā)提供的JavaScript 類庫包,用于實現(xiàn)底圖發(fā)布、站點疊加和降水數(shù)據(jù)顯示。
近年來,全國綜合氣象信息共享平臺(CIMISS)逐步建成并且業(yè)務(wù)運行,形成了國省統(tǒng)一的數(shù)據(jù)環(huán)境。以此為基礎(chǔ),國家氣象信息中心組織國省技術(shù)團隊,自主研發(fā)了氣象數(shù)據(jù)統(tǒng)一服務(wù)接口(MUSIC),并在內(nèi)蒙得到了廣泛的應(yīng)用。基于CIMISS 數(shù)據(jù)環(huán)境,利用MUSIC 統(tǒng)一服務(wù)接口構(gòu)建了內(nèi)蒙區(qū)域的降水實況展示系統(tǒng),本文將對該系統(tǒng)設(shè)計與應(yīng)用進行介紹。
內(nèi)蒙區(qū)域的降水實況系統(tǒng)采用的是B/S 的架構(gòu)。系統(tǒng)瀏覽器端程序采用JavaScript 語言開發(fā),服務(wù)器端程序采用Java 進行開發(fā);開發(fā)工具使Eclipse 4.8.0;Web 服務(wù)器使用Apache-tomcat-8.0.33;技術(shù)路線如表1 所示。
系統(tǒng)由用戶操作模塊、前后臺交互模塊、數(shù)據(jù)調(diào)用模塊、數(shù)據(jù)展示模塊四部分組成,系統(tǒng)組成如圖1 所示。
系統(tǒng)適用于全區(qū)所有的業(yè)務(wù)人員,可按照自治區(qū)、盟市、旗縣三級聯(lián)動獲取降水實況信息,查詢站點包括國家站、自治區(qū)自動站、水利行業(yè)站和周邊站,其中周邊站是當前區(qū)域50 公里范圍內(nèi)的周邊省站點;降水信息可以監(jiān)測當前時次小時和分鐘雨量,也可查看24 小時累計降水和臨近2h、3h、4h、5h、6h、12h、24h 降水過程。
利用GIS 地理信息技術(shù),系統(tǒng)將觀測站點繪制成不同的圖層,將降水量與辨識度很高的色彩進行融合并填充到站點圖層中,在空間范圍內(nèi)生動的展示不同區(qū)域內(nèi)、不同類型觀測站點的降水分布與強弱并可對單站時間序列多要素圖標展示。
系統(tǒng)主要調(diào)用CIMISS 數(shù)據(jù)環(huán)境的中國地面逐小時資料和中國地面分鐘降水資料,通過Ajax 異步傳輸方式將用戶請求數(shù)據(jù)提交到服務(wù)端,由服務(wù)端調(diào)用MUSIC 統(tǒng)一接口完成數(shù)據(jù)采集并返回客戶端交由Openlayers 渲染并顯示,系統(tǒng)工作流程如圖2 所示。
(1)用戶操作模塊:可按照業(yè)務(wù)場景,設(shè)置查詢區(qū)域、監(jiān)測站點、降水時間尺度信息,將其作為查詢條件提交至前后臺交互模塊,用戶操作如圖3 所示。
表1:技術(shù)路線
圖1:系統(tǒng)組成
圖2:系統(tǒng)工作流程
(2)前后臺交互模塊:是系統(tǒng)非常重要的一個模塊,上游接用戶操作模塊,下游接數(shù)據(jù)調(diào)用模塊,通過Ajax 異步交互的方式將查詢條件提交到數(shù)據(jù)調(diào)用模塊,并將返回的數(shù)據(jù)推送至數(shù)據(jù)展示模塊,發(fā)揮著串聯(lián)整個系統(tǒng)流程的作用。
(3)數(shù)據(jù)調(diào)用模塊:為了便于數(shù)據(jù)的加工與處理,本文選用的是MUSIC 提供的客戶端調(diào)用方式實現(xiàn)數(shù)據(jù)檢索,運用了MUSIC提 供 的getSurfEleInRectByTime、getSurfEleInRegionByTime、statSurfEleInRect 和statSurfEleInRegion 接口,按照MUSIC 接口調(diào)用規(guī)范,將用戶查詢條件(站號、區(qū)域、要素、時間等參數(shù))轉(zhuǎn)譯為接口要求的參數(shù)格式,并對接口調(diào)用方法進行了封裝,返回至前臺的數(shù)據(jù)格式為JSON。
(4)數(shù)據(jù)展示模塊:按照查詢區(qū)域條件可動態(tài)切換當前GIS底圖,按照降水量疊加站點信息,更加直觀的在空間尺度展示降水實況信息,系統(tǒng)可展示當前時次降水、24 小時累積降水、臨近時次累積降水及分鐘累積降水。
3.2.1 降水監(jiān)測區(qū)域加載
系統(tǒng)GIS 底圖加載選用的是openlayers 地理信息JavaScript 開源庫,運用其內(nèi)部封裝的WMS layer 類,將地圖疊加顯示到瀏覽器上。為了更直觀的顯示監(jiān)測區(qū)域,制作了全區(qū)、12 個盟市和103個旗縣矢量多邊形邊界信息KML 文件,其屬性包括經(jīng)度和緯度信息,調(diào)用OpenLayers.Layer.Vector 方法將其轉(zhuǎn)換為矢量圖層并疊加到GIS 底圖,核心代碼如下:
圖3:用戶操作頁面
圖4:內(nèi)蒙古自治區(qū)、盟市和旗縣GIS 底圖
圖5:站點圖例
圖6:分鐘降水、1h、2h、3h、4h、5h、6h 降水等級圖例
圖7:12h、24h 降水等級圖例
使用Openlayers 疊加的底圖信息如圖4 所示。
3.2.2 降水監(jiān)測信息加載
圖8:監(jiān)測站點圖層
為了直觀的辨識降水站點類型,將國家站、自治區(qū)國家站、無人站和水利站選用不同的形狀繪制并顯示,圖例如圖5 所示。
分鐘降水、1h、2h、3h、4h、5h、6h 降水量級劃分:
小雨: 0~2.5mm;中雨:2.5~8.0mm;大雨:8.0~15mm;暴雨:>15mm,降水等級圖例如圖6 所示。
12h、24h 降水等級劃分:
小雨: 0~10.0mm;中雨:10.0~25mm;大雨:25~50mm;暴雨:50~100mm;大暴雨:100~200mm;特大暴雨:>200mm,降水等級圖例如圖7 所示。
對比數(shù)字而言,人眼對于色彩的辨識度很高,因此將站點疊加到地圖上的同時,將其顏色與降水量進行融合,按照降水量級為站點填充顏色,在空間范圍內(nèi)生動的展示不同區(qū)域內(nèi)降水分布與強弱,核心代碼如下:
圖9:內(nèi)蒙區(qū)域降水實況系統(tǒng)
圖10:內(nèi)蒙區(qū)域降水實況系統(tǒng)
上述代碼實現(xiàn)了降水監(jiān)測信息顯示,效果如圖8 所示。
基于GIS 的內(nèi)蒙區(qū)域降水實況系統(tǒng)展示如圖9 所示。
單站多要素時間序列展示如圖10 所示。
內(nèi)蒙區(qū)域的降水實況系統(tǒng)采用的是B/S 架構(gòu),基于CIMISS 數(shù)據(jù)環(huán)境和MUSIC 數(shù)據(jù)統(tǒng)一服務(wù)接口完成開發(fā),一級部署三級應(yīng)用,實現(xiàn)了系統(tǒng)的集約化發(fā)布和管理;系統(tǒng)操作簡單,無需手動輸入繁雜的查詢條件,即可獲取業(yè)務(wù)人員所關(guān)注的降水實況信息,在汛期和自治區(qū)重大活動保障工作中,發(fā)揮了很好的數(shù)據(jù)支撐作用,為氣象服務(wù)提供了更加有力的保障。