薛勝軍,王 鑫,鄭衛(wèi)江,鄭金偉
(1.武漢理工大學(xué)計算機科學(xué)與技術(shù)學(xué)院,湖北武漢430063;2.南京信息工程大學(xué)計算機與軟件學(xué)院,江蘇南京210044;3.國家氣象中心系統(tǒng)開放實驗室,北京100081)
隨著信息技術(shù)與氣象行業(yè)的融合日新月異,利用先進的技術(shù)手段來獲取、分析、處理和展現(xiàn)氣象信息是我國氣象事業(yè)發(fā)展的必由之路。GIS技術(shù),即地理信息系統(tǒng)也正逐漸應(yīng)用在氣象領(lǐng)域,給氣象業(yè)務(wù)帶來了極大的便利[1]。隨著國際互聯(lián)網(wǎng)技術(shù)飛速發(fā)展,以Web的方式來獲取氣象信息也是一種必然趨勢。
在中央氣象臺的業(yè)務(wù)需求中,對全國自動站降水量進行實況監(jiān)測的需求一直存在。該項業(yè)務(wù)可以使相關(guān)業(yè)務(wù)人員對全國的降水信息進行實時監(jiān)測,直觀了解當(dāng)前及歷史的氣象自動站降水信息,但是目前還沒有一個完好的系統(tǒng)或平臺來完成這項任務(wù)。針對中央氣象臺實際的業(yè)務(wù)需求,闡述了如何依托先進的WebGIS技術(shù),建立全國降水實況監(jiān)測系統(tǒng)的過程,可為氣象監(jiān)測和預(yù)測工作提供輔助與參考。
WebGIS(網(wǎng)絡(luò)地理信息系統(tǒng))是基于Internet平臺,客戶端應(yīng)用軟件采用網(wǎng)絡(luò)協(xié)議,運用在Internet上的地理信息系統(tǒng)[2]。它是為適應(yīng)當(dāng)前計算機網(wǎng)絡(luò)技術(shù)演進而來的一種新興GIS應(yīng)用方式[3-4]。
由于Internet帶寬的增加、速度的大幅提升,使得Web表現(xiàn)層技術(shù)由傳統(tǒng)的HTML頁面方式正逐漸發(fā)展為更注重用戶體驗,更具有互動性的富互聯(lián)網(wǎng)應(yīng) 用(rich internet applications,RIA) 方 式[5]。RIA客戶端開發(fā)技術(shù)包括Adobe公司的Flash/Flex、微軟公司的SilverLight和SUN公司的JavaFX等。在GIS領(lǐng)域,美國環(huán)境系統(tǒng)研究公司(environmental systems research institute,inc.簡稱 ESRI公司)所發(fā)布的ArcGISAPI for Flex就是將RIA技術(shù)運用在WebGIS系統(tǒng)中的一門新興技術(shù)[6]。
使用ArcGIS API for Flex能夠開發(fā)出具有ArcGISServer服務(wù)的WebGIS應(yīng)用程序。該項技術(shù)運用在氣象軟件領(lǐng)域中,可以使用戶獲得的氣象信息更加直觀,更具有互動性。全國降水實況監(jiān)測系統(tǒng)是根據(jù)中央氣象臺業(yè)務(wù)相關(guān)人員的需求,以ArcGISAPI for Flex開發(fā)出的具有實時監(jiān)測全國自動站實況降水功能的氣象業(yè)務(wù)系統(tǒng)。
全國降水實況監(jiān)測系統(tǒng),采用B/S(瀏覽器/服務(wù)器)的架構(gòu)方式。系統(tǒng)開發(fā)所用語言是Java和Flex,瀏覽器端程序采用Flex語言進行開發(fā),服務(wù)器端程序采用Java進行開發(fā)。開發(fā)工具使用Eclipse 3.6,F(xiàn)lash Builder 4插件。Web服務(wù)器使用Tomcat 5.5與Blaze DS,地理信息GIS服務(wù)器使用ArcGISServer 9.3,數(shù)據(jù)庫服務(wù)器使用My SQL 5.1。系統(tǒng)技術(shù)路線如表1所示。
表1 系統(tǒng)技術(shù)路線
系統(tǒng)采用B/S系統(tǒng)的架構(gòu)模式,可有效地將客戶瀏覽器端、Web服務(wù)器端、數(shù)據(jù)庫服務(wù)器端和GIS服務(wù)器端整合在一起,系統(tǒng)總體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)
(1)瀏覽器端。瀏覽器端程序的開發(fā)主要使用了 ArcGIS Server API for Flex技術(shù)。通過該API可創(chuàng)建用戶界面直觀、視覺效果豐富且易響應(yīng)的富互聯(lián)網(wǎng) GIS 應(yīng)用程序[7-8]。
ArcGISServer是一個基于Web的企業(yè)級GIS解決方案,ArcGISServer為創(chuàng)建和管理基于服務(wù)器的GIS應(yīng)用提供了一個高效的框架平臺。它充分利用了ArcGIS的核心組件庫ArcObjects,并且基于工業(yè)標(biāo)準(zhǔn)提供 WebGIS 服務(wù)[9]。ArcGIS Server為開發(fā)WebGIS應(yīng)用提供了不同開發(fā)平臺使用的WebAPI,其中包括:ArcGIS API for JavaScript、Arc-GIS API for Flex、ArcGIS API for Microsoft Silverlight/WPF、.NETWeb ADF、JavaWeb ADF[10]。
(2)服務(wù)器端。該系統(tǒng)的主要數(shù)據(jù)來源于國家氣象中心Micaps服務(wù)器中的實況降水?dāng)?shù)據(jù)。該服務(wù)器中存放了來自于全國自動站的每個小時的降水信息,均以文件形式進行保存,文件名以時間進行命名。
后臺服務(wù)器Java程序包括兩個基本模塊:數(shù)據(jù)定時導(dǎo)入模塊,數(shù)據(jù)庫查詢模塊。
數(shù)據(jù)定時導(dǎo)入模塊是按一定的時間間隔定時訪問Micaps服務(wù)器,遍歷每小時自動站降水文件,將最新的降水信息導(dǎo)入到My SQL數(shù)據(jù)庫中。
數(shù)據(jù)庫查詢模塊部署在JavaEE服務(wù)器Tomcat中,用來處理瀏覽器端Flex應(yīng)用程序的數(shù)據(jù)查詢請求。在技術(shù)上使用了Blaze DS,它是一個基于服務(wù)器的Java遠(yuǎn)程調(diào)用和Web消息傳遞技術(shù),能夠讓后臺的Java應(yīng)用程序和運行在瀏覽器上的Flex應(yīng)用程序相互通信。
全國降水實況監(jiān)測系統(tǒng)的數(shù)據(jù)來源是Micaps文件服務(wù)器中的實況降水文件。文件是以每小時降水的時間來命名的,例如(10120513)。某一時次的文件內(nèi)容為:氣象自動站站號、經(jīng)度、緯度、降水值。例如(724611 131.13 45.34 3.2)。
數(shù)據(jù)庫采用輕量級的My SQL。根據(jù)Micaps文件信息,建立兩個基本表(降水值表和站點表)如表2和表3所示。
表2 降水值表
表3 站點表
在站點表中存儲全國氣象自動站信息,包括143個基準(zhǔn)站,1 591個一般站,29 341個區(qū)域站的基本信息。
在表2中,數(shù)據(jù)包括記錄id、降水時間、站點id、緯度、經(jīng)度和降水值等,該表提供了查詢自動站降水的基本信息。
在表3中,數(shù)據(jù)包括全國自動站的站號、站名、緯度、經(jīng)度、站類及所屬省、市、縣等信息,可以結(jié)合表2提供完整的全國某一時次的降水信息。
數(shù)據(jù)定時導(dǎo)入模塊中的降水值表數(shù)據(jù)維護程序是指在Tomcat中,部署有定時讀取MICAPS文件,并導(dǎo)入到數(shù)據(jù)庫降水值表的Java程序。該程序使用Java Web開發(fā)中的listener監(jiān)聽器,該監(jiān)聽器在服務(wù)啟動之前初始化一個Timer定時器實例,即每隔一段時間(該時間可由服務(wù)器管理員自己設(shè)定)執(zhí)行數(shù)據(jù)導(dǎo)入程序??紤]到數(shù)據(jù)庫查詢效率問題,在數(shù)據(jù)庫中只存放48小時以內(nèi)的全國氣象自動站降水?dāng)?shù)據(jù),超出時間范圍的數(shù)據(jù)由程序自動刪除。
全國降水實況監(jiān)測系統(tǒng)的主要功能是對全國氣象自動站的降水信息進行直觀的監(jiān)測。
用戶可以自己設(shè)定查詢條件,來查詢截至當(dāng)前時間全國1 h、3 h、6 h、12 h、24 h 氣象自動站的降水值,并且可以按照降水值的范圍對站點進行不同顏色的區(qū)分。系統(tǒng)總體界面圖如圖2所示。
圖2 系統(tǒng)總體界面圖
1 h、3 h、6 h、12 h降水區(qū)分范圍為0 ~4 mm,4~13 mm,13~25 mm,25~60 mm,>60 mm,其圖例如圖3所示。
圖 3 1 h、3 h、6 h、12 h 降水值圖例
24 h降水區(qū)分范圍為0~10 mm,10~25 mm,25 ~50 mm,50 ~100 mm,100 ~250 mm,>250 mm,其圖例如圖4所示。
圖4 24 h降水值圖例
在降水控制查詢面板中(圖5),用戶可以在下拉列表中選擇 1 h、3 h、6 h、12 h、24 h,相對應(yīng)在地圖中顯示自動站的降水信息,例如“截至2010年12月27日21時全國24 h降水實況”。
圖5 降水控制查詢面板界面
用戶也可以使用勾選框,根據(jù)降水值范圍0~4 mm,4 ~13 mm,13 ~25 mm,25 ~60 mm,>60 mm,來控制某個降水范圍的自動站信息是否在地圖中顯示。
(1)面板單站播放(圖6)時,正在播放的站點會出現(xiàn)紅色提示符,并在屏幕底部顯示當(dāng)前播放站點信息,例如“站號:864410站名:降水:1.0”。
圖6 單站播放面板界面
(2)按降水值面板(圖7)播放時,在某一個時間段內(nèi),會將站點按照降水值范圍進行區(qū)分,播放時依次顯示當(dāng)前播放中降水范圍內(nèi)的站點降水信息。
(3)面板循環(huán)播放(圖8)時,會按照1 h、3 h、6 h、12 h、24 h的順序循環(huán)播放,在某個時間段內(nèi),首先會進行單站播放,然后進行降水值播放。進而再進行下個時間段內(nèi)的單站播放與降水值播放。
(4)面板逐小時播放(圖9)時,是從當(dāng)前時間,往前推24 h,然后從過去的24 h內(nèi),依次播放各個小時時間段內(nèi)自動站的降水信息。該功能可直觀地反映過去24 h內(nèi)全國降水變化情況。
圖7 降水值播放面板
圖8 循環(huán)播放面板
圖9 逐小時播放面板
基于WebGIS的全國降水實況監(jiān)測系統(tǒng),采用了WebGIS領(lǐng)域較新的開發(fā)技術(shù),體現(xiàn)了富互聯(lián)網(wǎng)應(yīng)用的界面美觀,用戶操作友好等新特性。系統(tǒng)結(jié)合國家氣象中心的實際業(yè)務(wù)需求,對全國自動站的降水信息進行匯總、分類,并實現(xiàn)了多種自動播放方式,有利于業(yè)務(wù)人員更直觀地監(jiān)測當(dāng)前降水信息。系統(tǒng)自完成以來,能夠無間斷定時更新數(shù)據(jù),并在無人值守的情況下,依據(jù)播放規(guī)則自動播放更新降水信息,成功地實現(xiàn)了全國降水實況監(jiān)測的功能。
[1]孫利華,吳煥萍,鄭金偉,等.Flex的氣象信息網(wǎng)絡(luò)發(fā)布平臺設(shè)計與實現(xiàn)[J].應(yīng)用氣象學(xué)報,2010,21(6):754-761.
[2]吳煥萍,羅兵,王維國,等.GIS技術(shù)在決策氣象服務(wù)系統(tǒng)建設(shè)中的應(yīng)用[J].應(yīng)用氣象學(xué)報,2008,19(3):380-383.
[3]吳濤,戚銘堯,黎勇,等.WebGIS開發(fā)中的RIA技術(shù)應(yīng)用研究[J].測繪通報,2006(6):34-37.
[4]汪林林,胡德華,王佐成,等.基于Flex的RIA Web-GIS研究與實現(xiàn)[J].計算機應(yīng)用,2008(12):3257-3260.
[5]劉旭林,趙文芳,劉國宏.基于WebGIS的氣象信息顯示和查詢系統(tǒng)[J].應(yīng)用氣象學(xué)報,2008,19(2):116-112.
[6]鄭衛(wèi)江.氣象要素可視化與臺風(fēng)災(zāi)害評估關(guān)鍵技術(shù)研究[D].北京:首都師范大學(xué)圖書館,2007.
[7]劉南,劉仁義.WebGIS原理及其應(yīng)用:主要WebGIS平臺開發(fā)實例[M].北京:科學(xué)出版社,2002:253-257.
[8]高梅,張文華,接連淑.WebGIS技術(shù)在氣象科研數(shù)據(jù)共享系統(tǒng)中的應(yīng)用嘗試[J].應(yīng)用氣象學(xué)報,2004,15(增刊):168-170.
[9]百度百科.WEBGIS[EB/OL].[2011-03-28].http://baike .baidu.com/view/41463.htm.
[10]ESRI.GIS服務(wù)平臺企業(yè)版[EB/OL].[2011 -03-28].http://resources.arcgis.com/zh - cn/content/arcgisserver/web -apis.