李玉濤,王 凱,周 元
(1.江蘇省氣象信息中心,江蘇 南京 210008; 2.中國氣象局交通氣象重點開放實驗室,江蘇 南京 210008)
氣象預報服務存在較強的空間特性,因此地理信息系統(tǒng)在氣象預報業(yè)務中被廣泛應用。隨著氣象服務不斷格點化、精細化,對氣象數(shù)據(jù)在地理信息系統(tǒng)中的顯示發(fā)布要求進一步提高[1]。當前各系統(tǒng)在建設時往往存在重復處理氣象數(shù)據(jù)及開發(fā)整合地理信息系統(tǒng)的現(xiàn)象,重復開發(fā)基于地理信息的可視化功能會造成資源浪費,延長開發(fā)周期。為更好地進行氣象數(shù)據(jù)服務,該文結(jié)合地理信息系統(tǒng)在氣象領(lǐng)域的應用,在內(nèi)部基礎平臺建設實踐過程中,設計開發(fā)了基于GIS(geographic information system,地理信息系統(tǒng))的氣象信息標準化服務平臺。該平臺可實時處理最新的及歷史的氣象資料并提供基于GIS的可視化顯示接口[2-3],第三方系統(tǒng)經(jīng)過授權(quán)可實時對氣象資料及GIS進行接口調(diào)用,減少了系統(tǒng)建設中的重復環(huán)節(jié),提高了系統(tǒng)的穩(wěn)定性及數(shù)據(jù)資料基于地理信息加載顯示的時效性,目前已在多個平臺進行應用推廣,取得了明顯的效益。
地理信息系統(tǒng)服務器(GeoServer)是一個功能齊全,遵循開放地理空間聯(lián)盟(OGC)標準的WMS和WFS-T服務器[4],以J2EE實現(xiàn)OpenGIS Web規(guī)范,利用GeoServer可方便地以基于地理信息形式發(fā)布氣象數(shù)據(jù)[2],其主要數(shù)據(jù)種類包括:
(1)地圖或影象——應用WMS;
(2)實時數(shù)據(jù)——應用WFS;
(3)用戶編輯、刪除和更新的數(shù)據(jù)——應用WFS-T。
基于GIS的氣象信息標準化服務平臺主要依托CIMISS(全國綜合氣象信息共享平臺)數(shù)據(jù)接口及相關(guān)的文件系統(tǒng)開發(fā),依照地理信息數(shù)據(jù)圖層金字塔分級方式,將氣象數(shù)據(jù)進行重新組織后,提供標準化調(diào)用接口,氣象數(shù)據(jù)(氣象資料的圖像、要素)通過OGC具有時間支持的WMS(WMS-T),WFS(WFS-T)進行提供[5]。
基于GIS的氣象信息標準化服務平臺的設計采用功能分塊、結(jié)構(gòu)分層的設計思想[6],整個系統(tǒng)框架由五個層次組成,由下至上分別為數(shù)據(jù)層、服務層、組件層、應用層和接入層[7-8],如圖1所示。
(1)數(shù)據(jù)層:數(shù)據(jù)庫包括存儲專業(yè)的氣象數(shù)據(jù)的Postgrel數(shù)據(jù)庫,地理空間信息存儲的postGis數(shù)據(jù)庫和各業(yè)務系統(tǒng)的業(yè)務數(shù)據(jù)庫。
(2)服務層:由一系列無狀態(tài)微服務組成的底層服務,為上層業(yè)務提供持續(xù)的服務支持。包括地理信息、實況、預報等內(nèi)容的GIS瓦片圖層服務、GIS等值線服務和GIS氣象要素服務等。
圖1 基于GIS的氣象信息標準化服務平臺總體架構(gòu)
(3)組件層:組成各個系統(tǒng)的模塊化組件。包括日志采集、日志分析、數(shù)據(jù)限流、權(quán)限校驗、用戶管理、資源配置等相關(guān)模塊。
(4)應用層:應用層為氣象信息標準化服務平臺所包含的子系統(tǒng),具體包括但不限于日志分析系統(tǒng)、API服務系統(tǒng)、用戶配置管理系統(tǒng)等。
(5)接入層:接入層為氣象信息標準化服務平臺的使用人員,具體包括API接口服務調(diào)用使用方、日志分析服務維護人員、用戶配置管理服務管理人員等。
如表1所示,基于GIS的氣象信息標準化服務平臺的功能主要包括地理信息服務、實況信息服務和預報信息服務三部分。
表1 基于GIS的氣象信息標準化服務
如圖2所示,基于GIS的氣象信息標準化服務平臺系統(tǒng)在設計實現(xiàn)上分為控制層、視圖層、數(shù)據(jù)層和服務層[9-10],采用了業(yè)界流行的符合接口服務構(gòu)架。
(1)接入層:接入層采用html和Servlet。通過http協(xié)議從控制層獲取對應視圖(html頁面或者json格式數(shù)據(jù))。
(2)系統(tǒng)應用層:用來控制分發(fā)不同的業(yè)務,采用Spring的MVC。在該層設計了系統(tǒng)負載保護功能,使用RateLimiter以限制訪問用戶對物理或邏輯資源的訪問速率。使用Interceptor做攔截驗證。對于異常處理,使用Spring的ExceptionHandler進行統(tǒng)一處理。
圖2 基于GIS的氣象信息標準化服務平臺技術(shù)架構(gòu)
(3)應用支撐層:使用Spring核心框架,日志輸出采用log4j生成到統(tǒng)一的日志庫中進行歸檔,方便后續(xù)分析處理;通過Apache的HttpClient調(diào)用微服務集群(包括GIS Server、氣象要素服務和氣象圖層服務等)為系統(tǒng)應用層提供基礎服務支撐。
(4)數(shù)據(jù)庫層:使用半自動框架MyBaties,和Spring 4.X框架進行整合。底層數(shù)據(jù)庫采用postgreSQL作為業(yè)務數(shù)據(jù)庫,使用PostGis作為專業(yè)的地理信息空間庫,使用Redis作為分布式的高速存儲緩存,提高響應速度。
基于GIS的氣象信息標準化服務平臺通過GIS服務組件,通過設計基于基礎的數(shù)據(jù)信息(如氣象要素、地理信息、矢量數(shù)據(jù)等)發(fā)布標準OGS的GIS氣象服務[11-12],如WMS、WFS和WMTS等,如圖3所示。
圖3 基于GIS的服務架構(gòu)
(1)Web地圖服務(WMS):將帶有地理信息的地圖數(shù)據(jù)進行解析后繪制,并作為底圖來展現(xiàn)。地圖數(shù)據(jù)包括圖像數(shù)據(jù)、坐標點數(shù)據(jù)以及其他功能數(shù)據(jù)。
(2)Web要素服務(WFS):該服務提供要素級地理標記語言(GML)編碼,可增加、修改、刪除提供的要素,目的是提供更加優(yōu)化的Web地圖服務。WFS允許用戶端從多個Web要素服務中獲取地理空間數(shù)據(jù)并使用,并定義了五個操作:
GetFeature:為一個獲取要素實例的請求提供服務;
DescribeFeatureType:用于返回可提供的服務要素結(jié)構(gòu)(以XML形式);
GetCapabilites:用于返回Web要素服務性能的描述;
Transaction:響應事務請求;
LockFeature:處理進程中的要素類型實例上鎖請求。
通過氣象信息標準化服務平臺提供的API接口及授權(quán),外部業(yè)務系統(tǒng)可實時調(diào)用接口將氣象信息標準化服務平臺提供的基于地理信息系統(tǒng)的可視化氣象數(shù)據(jù)加載到自身系統(tǒng)上,而無需自身系統(tǒng)在后臺進行任何數(shù)據(jù)的解析處理及可視化開發(fā),實現(xiàn)了氣象資料的快速疊加和地理信息的可視化顯示,避免了資料處理及可視化方面的重復開發(fā),提高了系統(tǒng)從立項到實現(xiàn)的效率。其外部集成架構(gòu)如圖4所示。
圖4 外部集成架構(gòu)
通過對氣象信息標準化服務平臺進行綜合需求分析,在完成了平臺的系統(tǒng)總體架構(gòu)設計、模塊劃分設計、系統(tǒng)技術(shù)架構(gòu)設計、GIS服務架構(gòu)設計、外部集成架構(gòu)設計的基礎上,該文利用ASP.NET、JavaScript、AJAX技術(shù)進行了系統(tǒng)開發(fā)建設,在數(shù)據(jù)存儲上使用mysql數(shù)據(jù)庫技術(shù)結(jié)合SuperMap SDX+數(shù)據(jù)庫引擎對氣象數(shù)據(jù)進行一體化的存儲和管理,為氣象數(shù)據(jù)的空間查詢和可視化表達提供安全可靠的接口服務[12],實現(xiàn)了異構(gòu)環(huán)境下的氣象數(shù)據(jù)集成、氣象數(shù)據(jù)服務方式多樣化和氣象產(chǎn)品服務地理信息空間可視化。采用了五層B/S體系結(jié)構(gòu)進行系統(tǒng)整體設計,用戶可通過平臺的標準化服務接口實時獲取地理信息服務、氣象實況信息服務、氣象預測信息服務[13]。
如圖5所示,氣象信息標準化服務平臺數(shù)據(jù)來源主要基于文件共享服務器提供的各類氣象資料數(shù)據(jù)文件,MICAPS系統(tǒng)提供的初步處理后的氣象數(shù)據(jù)文件及CIMISS業(yè)務提供的Music數(shù)據(jù)接口。通過對多源的數(shù)據(jù)進行實時獲取后進行數(shù)據(jù)的處理、切割、等值線追蹤、入庫等一系列處理,最終將用戶系統(tǒng)調(diào)用所需的可視化數(shù)據(jù)進行保存。
圖5 氣象信息標準化服務平臺數(shù)據(jù)獲取流程
系統(tǒng)通過JAVA開發(fā),編譯及運行所需的jdk版本為1.8.0_111,Tomcat版本為apache-tomcat-9.0.0.M9,采用CentOS release 6.5 X64(Final)操作系統(tǒng)作為基礎支撐。如圖6所示,部署過程中需使用mvn指令進行編碼,將編譯好的pgws.war包拷貝到服務器,具體位置:
/waethercloud-pgws/target/weathercloud-pgws-0.0.1-pgws.war。
圖6 編碼編譯過程
程序在啟動時,首先進入到war包位置,將編碼的weatherservices.war和services.war安裝包拷貝到tomcat的webapps路徑下,然后切換到bin目錄,執(zhí)行相關(guān)腳本,啟動tomcat服務。
在本機上輸入http://localhost:8080/doc即可訪問首頁,在首頁中包含對該平臺的簡介及用戶使用方法。
平臺能夠提供Restful風格服務接口供調(diào)用,可以被眾多的瀏覽器(Chrome、搜狗、360、火狐等)請求,也可以被第三方應用程序(ArcGIS、Google Earth、World Wind等二三維地理信息系統(tǒng))所調(diào)用。通常用URL代表資源,每個資源都對應唯一URL,用HTTP方法進行操作[14-15]。
(1)請求參數(shù)說明。
st:開始時間;時間格式:yyyyMMMddHHmm,eg:201611131700。
et:結(jié)束時間;時間格式:yyyyMMMddHHmm,eg:201611131800。
(2)返回參數(shù)說明。
host:域名訪問地址;
series:時間+圖層URL的鍵值對;
bbox:圖層區(qū)域范圍。
(3)已實現(xiàn)可視化的數(shù)據(jù)包含地理信息(包括衛(wèi)星圖、地形圖、電子圖(全國范圍到10級,江蘇省內(nèi)最細粒度))、實況資料(國家站、區(qū)域站、高空站溫、壓、濕、風、降水)、預報產(chǎn)品(歐洲細網(wǎng)格中國區(qū)溫、壓、濕、風、降水)。
(4)接口調(diào)用示例。
如用戶根據(jù)輸入時間查看全國范圍溫度場信息,則輸入以下內(nèi)容到瀏覽器,其中輸入?yún)?shù)參見表2,調(diào)取資料效果如圖7所示。
圖7 數(shù)據(jù)接口調(diào)用效果展示
表2 全國溫度場請求輸入?yún)?shù)說明
氣象數(shù)據(jù)以其多源性、多態(tài)性、海量性為特征,如何建立統(tǒng)一的氣象數(shù)據(jù)行業(yè)標準、如何通過更加豐富的可視化手段表達氣象信息、如何通過利用歷史氣象數(shù)據(jù)中的龐大數(shù)據(jù)挖掘更深層次的信息以輔助決策,是當前氣象數(shù)據(jù)精細化服務及應用中面臨的重大課題。地理信息系統(tǒng)(GIS)具有海量數(shù)據(jù)處理及管理能力、空間數(shù)據(jù)分析能力以及豐富的可視化表達方式,正成為氣象科學研究和業(yè)務應用中的熱點,被廣泛地應用到氣象領(lǐng)域中。
該文根據(jù)實際業(yè)務需求,集成了多源異構(gòu)的氣象數(shù)據(jù),設計實現(xiàn)了功能相對全面、集成的基于GIS的標準化氣象信息服務平臺,避免當前氣象業(yè)務系統(tǒng)軟件功能單一、種類繁多、最后導致各系統(tǒng)頻繁切換而導致查看繁瑣的使用問題,實現(xiàn)氣象數(shù)據(jù)空間特性的可視化表達,同時也為各業(yè)務平臺實時調(diào)用基于地理信息的氣象資料提供了接口,有效減少了業(yè)務系統(tǒng)在建設環(huán)節(jié)中的氣象資料可視化重復開發(fā)所造成的資源浪費。基于GIS的氣象信息標準化服務平臺建成后,已在江蘇省氣象局的多個氣象業(yè)務系統(tǒng)中得到應用,并收到了良好的應用效果,這為綜合有效利用各種來源廣泛、信息量大的空間氣象數(shù)據(jù),進一步提高對氣象數(shù)據(jù)的理解水平提供了有益的探索。