張 進, 李 超, 劉孫俊
(成都信息工程學院計算機學院,四川成都610025)
隨著中國氣象事業(yè)的發(fā)展和氣象科學知識的普及,氣象信息在政府決策層起著越來越重要的作用,并且產(chǎn)生了顯著的社會和經(jīng)濟效益。近些年,因氣象信息尤其是災害氣象信息的作用而在氣象災害中減少的經(jīng)濟損失越來越多,充分體現(xiàn)出氣象信息尤其是災害性氣象信息的重要價值。
地理信息系統(tǒng)(GIS)是近年來迅速發(fā)展起來的,介于地球科學與信息科學之間的交叉學科,也是一門地學空間數(shù)據(jù)與計算機技術相結合的新型空間信息技術。由于氣象領域涉及到大量的數(shù)據(jù)和圖形信息,GIS以其獨特的空間分析功能展現(xiàn)出巨大的潛能。隨著計算機技術、網(wǎng)絡技術、數(shù)據(jù)庫技術的發(fā)展以及不斷深入,在GIS基礎上出現(xiàn)的WebGIS呈現(xiàn)出新的特點和趨勢,對GIS的不足之處提供了很好的解決方案。ArcGIS Server是一個基于Web服務技術的企業(yè)級GIS解決方案,提供創(chuàng)建和配置GIS應用程序和服務的基本框架,可以滿足各種客戶端的需求,其最大的優(yōu)勢在于提供基于網(wǎng)絡的GIS服務而不僅僅是信息的共享[1]。ArcGIS Server和其他的ArcGIS系列軟件一樣后臺都是基于Arcobjects組件搭建而成,集中管理并以網(wǎng)絡為核心支持多用戶的GIS應用,提供了地圖查看,地圖編輯,查詢信息等服務[2-3]。
氣象是一個信息密集型的行業(yè),氣象資料包括地面、高空、農(nóng)業(yè)、海洋、衛(wèi)星、雷達等各種氣象觀(探)測記錄,以及由這些記錄加工處理而成的各類氣象數(shù)據(jù)集,各種氣候統(tǒng)計值和數(shù)值分析資料,氣象服務產(chǎn)品等。近年來,由于中國各省市綜合觀測系統(tǒng)的建立和完善,大量的氣象資料匯集到了信息管理部門,氣象部門初步實現(xiàn)了由手工抄錄,原始資料服務向信息化資料服務的轉(zhuǎn)變。但隨著氣象業(yè)務服務領域的不斷拓展,氣象資料種類多,結構復雜,數(shù)據(jù)量龐大,中國氣象系統(tǒng)內(nèi)、外對氣象信息的需求也越來越大,信息的數(shù)據(jù)量也越來越大,傳統(tǒng)的氣象信息服務方式已經(jīng)不能滿足業(yè)務需求。在此大背景下,從2006年陸續(xù)有氣象部門結合自己的需求和已經(jīng)成熟的WebGIS技術推出了更能滿足本部門需求的基于ArcGIS Server的氣象信息檢索平臺。
該氣象信息檢索平臺與以往的氣象信息檢索平臺相比有很大的不同,首先它是基于簡單靈活的REST服務架構風格,具有很好的擴展性和易用性。地圖服務可以配置為動態(tài)地圖服務,也可以配置為切片服務,具有良好的兼容性。同時系統(tǒng)采用靈活的配置開發(fā)模式,全部功能均采用widget模式開發(fā),然后采用config.xml進行集中配置,使系統(tǒng)具有良好的易用性和可擴展性。
基于ArcGIS Server構建的氣象信息檢索平臺在層次上可以分為3個層次:用戶層,應用層和數(shù)據(jù)層。氣象信息檢索平臺架構圖如圖1所示。
用戶層:包括了基于B/S架構的web瀏覽器,該層可以調(diào)用應用層開發(fā)的功能和提供的服務,供用戶使用相應的功能。
應用層:又可分為GIS服務器和Web服務器,GIS服務器層主要負責處理Web瀏覽器發(fā)送的請求,并根據(jù)用戶的請求通過jsp向數(shù)據(jù)層請求數(shù)據(jù)。管理員主要是通過Web服務器對數(shù)據(jù)庫中的氣象信息數(shù)據(jù)進行管理。
圖1 氣象信息檢索平臺系統(tǒng)架構圖
GIS服務器宿主了所有的GIS資源,并且把這些GIS資源當做服務發(fā)布到客戶端。GIS服務器由一個SOM(服務器對象管理器)和多個SOC(服務器對象容器)組成,其中SOM會在機器里面啟動一個管理服務進程,而這個服務負責管理分布在服務器容器上的服務器對象;SOC則是SOM啟動的一個進程,負責宿主服務器對象[4]。
Web服務器層是運行Web應用程序的機器,負責響應客戶端瀏覽器的請求并且向數(shù)據(jù)層發(fā)出請求,對氣象信息數(shù)據(jù)進行編輯。
數(shù)據(jù)層:主要負責存儲氣象信息等數(shù)據(jù),其中空間數(shù)據(jù)存儲在Geodatabase,而實時的氣象信息數(shù)據(jù)則存儲在關系數(shù)據(jù)庫中,管理人員可以通過ArcGIS Server管理頁面對Geodatabase空間數(shù)據(jù)庫進行管理,通過用戶層對氣象信息數(shù)據(jù)進行編輯,從而通過如此配置可以實現(xiàn)數(shù)據(jù)的有效管理[5]。
數(shù)據(jù)標準化處理是構建穩(wěn)定,高效數(shù)據(jù)庫的基礎。氣象信息涉及到很多學科數(shù)據(jù),這些數(shù)據(jù)存在多源等特點,沒有統(tǒng)一的格式標準,而這其中最重要的就是地圖坐標系的統(tǒng)一和建立統(tǒng)一的存儲格式。目前存在多種坐標系統(tǒng)和投影方式,為了統(tǒng)一坐標系統(tǒng),所以所有坐標系統(tǒng)均采用WGS-84大地坐標系。
為了提高數(shù)據(jù)的質(zhì)量,提高數(shù)據(jù)庫的高效性,系統(tǒng)制定了一系列的質(zhì)量控制標準,主要包括:數(shù)據(jù)屬性的精度,數(shù)據(jù)的完整性,數(shù)據(jù)的更新等。
GIS氣象信息檢索平臺是根據(jù)業(yè)務發(fā)展而開發(fā)的應用平臺,主要功能涉及氣象信息檢索平臺應用范圍的基礎地理信息數(shù)據(jù)組織入庫、地圖制作、平臺界面布局設計、自動站信息檢索、觀測資料詳細信息查詢、氣象要素插值生成等值線和等值面等[6]。
基本操作包括最基本的瀏覽地圖的操作功能、漫游、放大、縮小、鷹眼等,可以讓用戶隨意的瀏覽地圖。
數(shù)據(jù)管理包括了對空間數(shù)據(jù)的管理和氣象信息數(shù)據(jù)的管理。其中空間數(shù)據(jù)主要是地理信息數(shù)據(jù),氣象數(shù)據(jù)則包括站點的基本信息,實時的氣象信息數(shù)據(jù)和歷史的氣象信息數(shù)據(jù)。
根據(jù)行政區(qū)劃、日期、時刻、顯示類型、站點類型將所選擇的要素的統(tǒng)計信息和圖表信息在彈出框上予以顯示,這里指的是根據(jù)范圍檢索。其中行政區(qū)劃包括省、市、村;時刻精確到小時;顯示類型包括:氣壓、氣溫、風場、相對濕度、小時降雨量;站點類型包括:基準站、基本站、一般站、區(qū)域站。
根據(jù)用戶點擊的站點顯示站點的詳細信息、包括站點的基本信息,人員信息和描述信息,并且根據(jù)站點的觀測類型顯示其詳細信息,其中觀測類型包括:地面觀測、高空觀測、雷達觀測、衛(wèi)星觀測、農(nóng)氣觀測、環(huán)境觀測、裝備觀測、通訊觀測。
根據(jù)用戶選擇的差值字段、等間距、生成等值線或者等值面,當需要生成新的結果時首要要清楚上次結果,以免產(chǎn)生圖形的疊加。
氣象信息檢索平臺主要功能涉及到了基礎地理信息數(shù)據(jù)組織入庫、地圖制作、站點信息檢索、觀測資料詳細信息查詢、氣象要素差值生成等值線和等值面等。
針對系統(tǒng)的目的和以上設計思路,氣象信息檢索平臺客戶端代碼是基于ArcGIS Server API for Flex(ArcGIS Server API for Flex可以說是ArcGIS Server的擴展開發(fā)組件,可以在使用ArcGIS Server服務的基礎上開發(fā)web應用,可以使ArcGIS Server提供的各種服務和flex提供的各種組件很好的結合,構建較好的web GIS應用)由ActionScript完成了氣象信息檢索的功能,并且通過JSP完成對數(shù)據(jù)庫的訪問并以XML格式返回給Flex客戶端。Web服務器端是基于J2EE架構由flex和java語言開發(fā)。
氣象信息檢索平臺的開發(fā)環(huán)境:Myeclipse;FB3-WWEJ-Plugin;ArcGIS API for Flex;jdk-6u1-windows-i586-p;agslib-1.3-2009-10-31。
而在系統(tǒng)中通過對ArcGIS REST API提供的簡單、開放的接口來訪問和使用ArcGIS Server發(fā)布的服務,使用URL可以獲取和使用服務中的每一個資源和操作。FlexViewer是ESRI公司利用Flex技術,基于本身已開發(fā)好的Flex API包開發(fā)的一個成熟的WebGIS實例框架。其完全是開放的,可以從官方網(wǎng)站上的Code Gallery直接下到源碼,下載完成后解壓直接導入Adobe Flex 3 Builder項目即可使用。FlexViewer從2009年在社會上出現(xiàn)以來,引發(fā)了一場熱烈的WebGIS開發(fā)熱潮。其完美的將Server Flex API的優(yōu)點展現(xiàn)出來,使很多第一次見到這種體驗效果的人心潮澎湃。Flex API最大優(yōu)勢也許就在此,就是依靠了一個具有很好用戶體驗效果的平臺FLEX。在氣象信息檢索平臺的實現(xiàn)中就使用了FlexViewer這個開源框架,降低了開發(fā)的復雜度和開發(fā)時間,并且由于FlexViewer框架是得到長時間驗證的WebGis解決方案,所以具有一定的穩(wěn)定性。
FlexViewer的整體結構如圖2所示。
ViewverContainer:繼承自Group,應用了單例模式,是FlexViewer中各個模塊的容器。
ConfigManager:FlexViewer通過配置文件來組織數(shù)據(jù),功能和UI。ConfigManager的職責就是解析配置文件,并且進行分發(fā),由需要模塊進行接收。
UIManager:UIManager通過配置文件對UI進行統(tǒng)一的配置。
MapManager:map是Gis的基礎,MapManager并不是對map的簡單封裝,而是提供了與map相關的操作。
WidgetManager:WidgetManager是對Widget進行管理的組件,其中根據(jù)配置文件創(chuàng)建Widget信息列表,加載Widget,布局Widget,銷毀Widget等。
圖2 FlexViewer的整體結構
圖3 FlexViewer的初始化過程
FlexViewer初始化過程如圖3所示。ConfigManager,UIManager,WidgetManager,MapManager在各自的初始化過程中對相應的事件進行監(jiān)聽,一旦ViewverContainer初始化完成,派發(fā)除CONTAINERINITIALIZED事件,其他的準備工作將順其自然。
氣象信息檢索平臺是由系統(tǒng)的生命周期對整個流程進行控制,其生命周期如下:
(1)用戶通過客戶端瀏覽器訪問氣象信息檢索平臺,則系統(tǒng)初始化flex應用容器 ;
(2)flex應用容器加載config.xml文件,并且初始化界面風格 ;
(3)根據(jù) config.xml文件中配置的地圖服務的地址,系統(tǒng)加載ArcGIS Server服務 ;
(4)系統(tǒng)根據(jù)用戶的請求加載相應的config.xml文件中的widget,并且通過widget和系統(tǒng)業(yè)務邏輯進行交互,返回數(shù)據(jù),解析并且顯示。
圖4 氣象信息檢索平臺的流程圖
圖5 氣象信息檢索平臺界面圖
系統(tǒng)利用GIS和數(shù)據(jù)庫技術,提出利用J2EE架構來實現(xiàn)集GIS功能和氣象數(shù)據(jù)檢索功能于一體的氣象信息檢索平臺,并且在此基礎上實現(xiàn)了西藏氣象信息檢索平臺,提供西藏氣象信息的可視化管理,增強了西藏氣象信息數(shù)據(jù)的安全性,共享性,使西藏各級氣象部門可以輕松的通過管理平臺對基礎數(shù)據(jù)和氣象數(shù)據(jù)進行管理并且通過氣象信息檢索平臺的可視化頁面根據(jù)條件對數(shù)據(jù)進行檢索。研究只在ArcGIS Server的應用方面做了初步的嘗試,相信隨著時間的推移,將會有越來越多的新技術應用WebGIS,而ArcGIS Server將會有更好的發(fā)展前景和趨勢。
[1]郭婧,張立朝,王科偉.基于ArcGIS Server構建地理信息服務[J].測繪科學,2007,32(3):91-93.
[2]劉俊,譚建軍.基于ArcGIS Server的網(wǎng)絡農(nóng)田地理信息系統(tǒng)設計與實現(xiàn)[J].廣東農(nóng)業(yè)科學,2009(9):224-227.
[3]韓立森,王翠茹,袁和金.Web服務在GIS中的研究與應用[J].華北電力大學學報,2004,31(2):69-72.
[4]毛峰,沈小華.ArcGis8開發(fā)與實踐[M].北京:科學出版社,2002.
[5]沈百玲.ArcGIS Server體系結構和開發(fā)簡介[R].北京:ESRI中國(北京)有限公司,2004.
[6]陸守一.地理信息系統(tǒng)實用教程[M].北京:中國林業(yè)出版社,1998.
[7]胡潔.Flex完全自學手冊[M].北京:機械工業(yè)出版社,2009.