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