郝振榮 王小蘭
摘 要:根據(jù)氣象數(shù)據(jù)空間分布的特點(diǎn),基于B/S架構(gòu),采用Map Server地理信息服務(wù)器、Oracle Spatial空間信息管理組件和Post GIS,Open Scales等開源WEBGIS軟件完成了山西省氣象探測(cè)數(shù)據(jù)顯示系統(tǒng)。該系統(tǒng)實(shí)現(xiàn)了氣象觀測(cè)站、雷達(dá)、閃電和衛(wèi)星云圖等多種氣象數(shù)據(jù)的集成顯示,為天氣預(yù)報(bào)、氣象服務(wù)等業(yè)務(wù)應(yīng)用提供了數(shù)據(jù)支持,全面提高了氣象數(shù)據(jù)的共享應(yīng)用能力。
關(guān)鍵詞:WEBGIS;氣象探測(cè);顯示系統(tǒng);數(shù)據(jù)
中圖分類號(hào):P208 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-6835(2014)06-0144-03
隨著氣象業(yè)務(wù)服務(wù)需求的牽引和技術(shù)發(fā)展的推動(dòng),氣象觀測(cè)業(yè)務(wù)已從低時(shí)空分辨率有限視野的定時(shí)常規(guī)監(jiān)測(cè)向遙感、遙測(cè)、連續(xù)、自動(dòng)的高時(shí)空分辨率綜合觀測(cè)方向發(fā)展。綜合探測(cè)系統(tǒng)所提供的多元化監(jiān)測(cè)信息是進(jìn)行大氣環(huán)境分析、天氣預(yù)報(bào)和氣候預(yù)測(cè)重要的基礎(chǔ)資料。如何將收集到的各種氣象探測(cè)數(shù)據(jù)以準(zhǔn)確、合理、多樣化的方式展現(xiàn)出來,增強(qiáng)對(duì)氣象預(yù)報(bào)、預(yù)測(cè)和公共氣象服務(wù)業(yè)務(wù)的科技支撐,已成為迫切需要解決的問題。
WEBGIS作為地理信息系統(tǒng)基于Web的實(shí)現(xiàn)方式,與傳統(tǒng)的桌面GIS相比,它具有以下特點(diǎn):獨(dú)立于操作系統(tǒng),部署便捷;容易實(shí)現(xiàn)大范圍的共享訪問;客戶端共同采用服務(wù)端數(shù)據(jù),保證了數(shù)據(jù)的一致性,避免產(chǎn)生信息孤島;業(yè)務(wù)用戶不必花費(fèi)大量的經(jīng)費(fèi)采購(gòu)昂貴的GIS軟件。對(duì)訪問空間性和時(shí)間性顯著、數(shù)據(jù)量巨大的數(shù)據(jù),WEBGIS具有很大的優(yōu)勢(shì)。氣象數(shù)據(jù)在空間和時(shí)間上連續(xù)分布的特性使得地理信息系統(tǒng)成為解決上述問題的可行方法之一。
1 系統(tǒng)分析與設(shè)計(jì)
1.1 系統(tǒng)分析
按照GIS劃分的數(shù)據(jù)類型,主要有矢量數(shù)據(jù)和柵格數(shù)據(jù)。它可將氣象探測(cè)數(shù)據(jù)與GIS數(shù)據(jù)相對(duì)應(yīng),即以站點(diǎn)觀測(cè)組織的要素?cái)?shù)據(jù),比如氣溫、氣壓、濕度、降水和雷電等為矢量數(shù)據(jù);以面或多維空間組織的雷達(dá)和衛(wèi)星云圖等資料為柵格數(shù)據(jù)。氣象探測(cè)每天產(chǎn)生大量的數(shù)據(jù),并且需及時(shí)、有效地進(jìn)行數(shù)據(jù)共享,以滿足對(duì)極端天氣監(jiān)測(cè)和預(yù)警的需求。以往比較成功的GIS軟件應(yīng)用主要采用了桌面GIS軟件,而桌面GIS應(yīng)用存在的突出問題是影響數(shù)據(jù)共享,即只能服務(wù)于單個(gè)或部分終端用戶,無法覆蓋整個(gè)局域網(wǎng)內(nèi)的所有用戶。該系統(tǒng)基于WEBGIS,利用最新的RIA技術(shù),在實(shí)現(xiàn)復(fù)雜的桌面GIS功能的同時(shí),憑借Web2.0技術(shù)和FLEX技術(shù)的優(yōu)勢(shì),重點(diǎn)實(shí)現(xiàn)了海量氣象探測(cè)數(shù)據(jù)的瀏覽和檢索。
1.2 系統(tǒng)模型
為了便于快速開發(fā)、部署和功能擴(kuò)展,該系統(tǒng)采用WEBGIS三層模型結(jié)構(gòu)。系統(tǒng)的邏輯結(jié)構(gòu)如圖1所示。
系統(tǒng)從邏輯結(jié)構(gòu)上劃分為瀏覽器、應(yīng)用服務(wù)器和數(shù)據(jù)服務(wù)器三層。各層次相互關(guān)聯(lián),相互依賴,即下一層是上一層的基層,上一層依賴于下一層而實(shí)現(xiàn)。
1.2.1 數(shù)據(jù)服務(wù)器層
該層包含基礎(chǔ)地理信息數(shù)據(jù)庫、氣象要素?cái)?shù)據(jù)庫、衛(wèi)星云圖數(shù)據(jù)庫、雷達(dá)拼圖數(shù)據(jù)庫和閃電資料數(shù)據(jù)庫。其中,基礎(chǔ)地理信息數(shù)據(jù)庫包含系統(tǒng)所需的地圖數(shù)據(jù)和氣象觀測(cè)站點(diǎn)的位置數(shù)據(jù);氣象要素?cái)?shù)據(jù)庫用于存儲(chǔ)各類自動(dòng)氣象站的氣象探測(cè)數(shù)據(jù),系統(tǒng)功能中的數(shù)據(jù)收集、存儲(chǔ)模塊在這層實(shí)現(xiàn)。數(shù)據(jù)服務(wù)器為整個(gè)系統(tǒng)提供數(shù)據(jù)支持。
1.2.2 應(yīng)用服務(wù)器層
這一層既要考慮通過數(shù)據(jù)庫接口實(shí)現(xiàn)數(shù)據(jù)的操作,又要提供標(biāo)準(zhǔn)的服務(wù)結(jié)構(gòu),方便瀏覽器層的調(diào)用。為了便于實(shí)現(xiàn),又將本層劃分為數(shù)據(jù)接口和應(yīng)用發(fā)布兩個(gè)子層。其中,數(shù)據(jù)接口子層是地理信息服務(wù)器和網(wǎng)站服務(wù)器用于調(diào)用數(shù)據(jù)服務(wù)器層中的數(shù)據(jù)。應(yīng)用發(fā)布子層通過全局?jǐn)?shù)據(jù)訪問視圖和統(tǒng)一的數(shù)據(jù)服務(wù)接口對(duì)外發(fā)布WMS,WFS和JSON等數(shù)據(jù)服務(wù),為瀏覽器層提供用于展現(xiàn)的數(shù)據(jù)。
1.2.3 瀏覽器層
該層通過GIS客戶端、網(wǎng)頁表格空間和網(wǎng)頁圖表等工具實(shí)現(xiàn)GIS操作界面和氣象探測(cè)數(shù)據(jù)的可視化。
上述三層都依賴于外部IT資源支撐系統(tǒng)。這一外部層為系統(tǒng)提供網(wǎng)絡(luò)、磁盤陣列、高性能服務(wù)器和終端等硬件支撐。
1.3 功能設(shè)計(jì)
為了便于開發(fā)和部署,將系統(tǒng)功能劃分為地理信息服務(wù)、地圖操作、要素顯示、空間分析、時(shí)間序列顯示、閃電定位數(shù)據(jù)顯示、雷達(dá)拼圖顯示和衛(wèi)星云圖顯示八個(gè)功能模塊。具體如圖2所示。
1.3.1 地理信息服務(wù)發(fā)布模塊
通過在數(shù)據(jù)庫中建立視圖的方式,將基礎(chǔ)地理信息數(shù)據(jù)和氣象數(shù)據(jù)結(jié)合在一起。地理信息服務(wù)器通過數(shù)據(jù)庫接口訪問這些視圖。它將這些視圖通過OGC定義的Web服務(wù)標(biāo)準(zhǔn)WMS和WFS發(fā)布出去,供客戶端訪問。
1.3.2 地圖操作功能模塊
在用戶界面上實(shí)現(xiàn)基本的GIS數(shù)據(jù)瀏覽訪問功能,包括導(dǎo)航、圖層管理、漫游定位、距離測(cè)量、繪制定制圖案、截圖和打印等功能。
1.3.3 氣象要素顯示模塊
氣象要素顯示模塊由定時(shí)數(shù)據(jù)查詢模塊和統(tǒng)計(jì)數(shù)據(jù)查詢模塊兩個(gè)部分組成。
1.3.3.1 定時(shí)數(shù)據(jù)查詢模塊
用戶選擇需要查詢的數(shù)據(jù)類型和數(shù)據(jù)的觀測(cè)時(shí)間提交系統(tǒng),系統(tǒng)接受用戶請(qǐng)求,在客戶端上參照天氣填圖樣式顯示符合查詢條件的數(shù)據(jù)。
1.3.3.2 統(tǒng)計(jì)數(shù)據(jù)查詢模塊
用戶選擇需要查詢的數(shù)據(jù)類型和時(shí)間區(qū)間提交系統(tǒng),系統(tǒng)接受用戶的請(qǐng)求,按照氣象數(shù)據(jù)統(tǒng)計(jì)規(guī)定,在客戶端上參照天氣填圖樣式顯示統(tǒng)計(jì)數(shù)據(jù)。客戶端上顯示符合查詢條件的所有站點(diǎn)觀測(cè)的氣象要素,并可按照要素類別進(jìn)行升序和降序的排序,結(jié)果以表格形式顯示出來。
1.3.4 氣象要素空間分析模塊
采用等值線算法,將查詢結(jié)果按照不同的樣式以等值線的方式繪制在客戶端的地圖上。
1.3.5 氣象要素時(shí)間序列顯示模塊
依據(jù)選擇的查詢站點(diǎn),返回這個(gè)站點(diǎn)多個(gè)氣象要素的時(shí)間序列圖。時(shí)間序列圖的樣式有曲線圖、直方圖等。endprint
1.3.6 閃電定位數(shù)據(jù)顯示模塊
選擇時(shí)間區(qū)間,在地圖上標(biāo)注顯示這個(gè)時(shí)間區(qū)間內(nèi)所有的閃電定位數(shù)據(jù)。
1.3.7 雷達(dá)拼圖顯示模塊
選擇時(shí)間區(qū)間,返回這個(gè)時(shí)間段內(nèi)所有的雷達(dá)拼圖數(shù)據(jù),選擇其中一張符合需求的雷達(dá)拼圖數(shù)據(jù)在客戶端的地圖上顯示。
1.3.8 衛(wèi)星云圖顯示模塊
其功能和雷達(dá)拼圖顯示模塊類似,顯示內(nèi)容為所選擇的衛(wèi)星云圖。
1.4 數(shù)據(jù)流程的設(shè)計(jì)
數(shù)據(jù)流程主要包括數(shù)據(jù)處理、數(shù)據(jù)加工、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)服務(wù)和數(shù)據(jù)展示等五個(gè)子流程,各子流程間采用時(shí)間和事件觸發(fā)等調(diào)度機(jī)制,實(shí)現(xiàn)數(shù)據(jù)在各功能模塊間的處理、加工、管理和服務(wù)。系統(tǒng)數(shù)據(jù)流程如圖3所示。
1.5 數(shù)據(jù)庫設(shè)計(jì)
按照存儲(chǔ)數(shù)據(jù)的類型數(shù)據(jù)庫邏輯上劃分為基礎(chǔ)地理信息數(shù)據(jù)庫、氣象要素?cái)?shù)據(jù)庫、衛(wèi)星云圖數(shù)據(jù)庫、雷達(dá)拼圖數(shù)據(jù)庫和閃電監(jiān)測(cè)數(shù)據(jù)庫。其中,基礎(chǔ)地理信息數(shù)據(jù)庫包含系統(tǒng)所需的地圖數(shù)據(jù)和氣象站點(diǎn)的位置數(shù)據(jù);氣象要素?cái)?shù)據(jù)庫用于存儲(chǔ)自動(dòng)氣象站的觀測(cè)數(shù)據(jù)。圖4為系統(tǒng)數(shù)據(jù)庫邏輯結(jié)構(gòu)。
數(shù)據(jù)庫必須能夠支持地理信息數(shù)據(jù)的存儲(chǔ),大容量數(shù)據(jù)的管理和存儲(chǔ),能夠承擔(dān)高頻次的并發(fā)訪問。結(jié)合目前實(shí)際情況,自動(dòng)氣象站、閃電定位數(shù)據(jù)存儲(chǔ)在Oracle數(shù)據(jù)庫中,站點(diǎn)信息也存儲(chǔ)Oracle數(shù)據(jù)庫中的一個(gè)表里。新建PostgreSQL用于存儲(chǔ)系統(tǒng)地圖用到的基礎(chǔ)地理信息、雷達(dá)拼圖和衛(wèi)星云圖等數(shù)據(jù)。系統(tǒng)數(shù)據(jù)庫的邏輯層和物理層的對(duì)應(yīng)關(guān)系如圖5所示。
2 系統(tǒng)實(shí)現(xiàn)
2.1 氣象數(shù)據(jù)的存儲(chǔ)
按照地理信息特征劃分,將氣象數(shù)據(jù)分為點(diǎn)對(duì)象和面對(duì)象。點(diǎn)對(duì)象包括站點(diǎn)位置,溫度、氣壓、風(fēng)速、降水、濕度和閃電等數(shù)據(jù);面對(duì)象包括雷達(dá)拼圖、衛(wèi)星云圖等數(shù)據(jù)。氣象信息數(shù)據(jù)的空間結(jié)構(gòu)如圖6所示。
利用Oracle 和 PostGIS的空間信息管理模塊共同管理這些空間數(shù)據(jù)和屬性數(shù)據(jù),同時(shí),利用不同的數(shù)據(jù)庫查詢語句,實(shí)現(xiàn)數(shù)據(jù)的檢索和分析。
系統(tǒng)中Oracle Spatial使用SQL數(shù)據(jù)類型SDO_GEOMETRY在Oracle數(shù)據(jù)庫存儲(chǔ)包含矢量信息的氣象數(shù)據(jù)。數(shù)據(jù)庫中空間信息存儲(chǔ)在SDO_GEOMETRY列,利用標(biāo)準(zhǔn)Oracle實(shí)用程序SQL * Loader的導(dǎo)入和導(dǎo)出。
PostGIS在對(duì)象關(guān)系型數(shù)據(jù)庫PostgreSQL上增加了存儲(chǔ)管理空間數(shù)據(jù)的能力,相當(dāng)于Oracle的Spatial部分。PostGIS通過一種新的數(shù)據(jù)類型片,提供對(duì)大的柵格數(shù)據(jù)對(duì)象的存儲(chǔ)。片由以下幾個(gè)部分組成:包裹矩形框、SRID、類型和一個(gè)字節(jié)序列。系統(tǒng)利用raster2pgsql程序?qū)鸥裥蛿?shù)據(jù)轉(zhuǎn)換為SQL語句,通過psql將SQL數(shù)據(jù)導(dǎo)入PostgreSQL數(shù)據(jù)庫。
2.2 站點(diǎn)數(shù)據(jù)顯示模塊的實(shí)現(xiàn)
數(shù)據(jù)庫中的氣象要素表中并沒有包含地理信息數(shù)據(jù)。因此,需要建立視圖,將站點(diǎn)信息表和氣象要素表相結(jié)合。地理信息服務(wù)器MapServer直接訪問這個(gè)視圖就可以完成氣象要素?cái)?shù)據(jù)的獲取,通過PHP的MapServer擴(kuò)展向外發(fā)布WFS和WMS服務(wù)。此外,為了增加數(shù)據(jù)服務(wù)的靈活性,使其可以根據(jù)用戶的查詢實(shí)時(shí)生成所需的服務(wù),這就需要在視圖中添加參數(shù)來完成此功能。氣象要素發(fā)布SQL視圖代碼如下:
SELECT VALUEDATA.IIIII,VALUEDATA.SNAME,VALUEDATA.TEMP,miss.GISDATA.geom from (SELECT
MISS.STATION.IIIII,MISS.AWS_REG.TEMP,MISS.STATI
ON.SNAME FROM MISS.STATION
INNER JOIN MISS.AWS_REG ON MISS.AWS_REG.IIIII = MISS.STATION.IIIII WHERE MISS.STATION.IIIII LIKE 'B%' and MISS.AWS_REG.OBSTIME
= TO_DATE('%OBSTIME%','YYMMDDHH24MI')
AND MISS.AWS_REG.TEMP<>999.9) VALUEDATA
left join miss.GISDATA on valuedata.IIIII=miss.GISDATA.IIIII
2.3 雷達(dá)拼圖顯示模塊的實(shí)現(xiàn)
雷達(dá)拼圖數(shù)據(jù)服務(wù)通過WMS方式在MapServer上發(fā)布。系統(tǒng)通過使用Mapfile文件配置MapServer。Mapfile文件是MapServer的標(biāo)準(zhǔn)文件,它是集成了空間數(shù)據(jù)、屬性數(shù)據(jù)和三維影像數(shù)據(jù)的接口函數(shù),實(shí)現(xiàn)了MapServer核心庫對(duì)這些數(shù)據(jù)文件的訪問。Mapfile定義了MapServer中各個(gè)對(duì)象的相互關(guān)系,指明MapServer的數(shù)據(jù)源和數(shù)據(jù)的繪制樣式。Mapfile中諸多的關(guān)鍵字端構(gòu)成了一個(gè)完整的Map對(duì)象。
DATA關(guān)鍵字是用來描述數(shù)據(jù)源的詳細(xì)信息。雷達(dá)拼圖的數(shù)據(jù)源是PostgreSQL數(shù)據(jù)庫中的raster數(shù)據(jù)類型。根據(jù)PostgreSQL數(shù)據(jù)庫的詳細(xì)信息,DATA關(guān)鍵字代碼如下:
DATA "PG:dbname=rad host=*.*.*.* user=**** password=***** port=5432 table=radnew where='rid=20130418001800' mode=1".
CLASS關(guān)鍵字是用來描述數(shù)據(jù)繪制的樣式。根據(jù)氣象部門對(duì)雷達(dá)拼圖樣式的定義,由多個(gè)CLASS關(guān)鍵字定義雷達(dá)的樣式,代碼如下:
CLASS
EXPRESSION ([pixel] >= 66 AND [pixel] < 76)endprint