高 鵬,劉 洋,付 杰,許竹霞
(甘肅省氣象信息與技術裝備保障中心,甘肅蘭州 730000)
隨著衛星遙感技術的發展及氣象數據的海量增長,對氣象大數據分析平臺提出了新的需求和挑戰,需要提供的功能涵蓋數據采集、檢索到處理、分析、預測等全方位的服務,包括預報員對計算機天氣產品的理解、決策及預報結論的可視化提交等,形成完整的系統工作流程[1]。目前引起了一些學者對氣象大數據分析平臺的關注。
在國內,李濤等利用Hadoop的分布式計算和存儲框架研究了氣象大數據分析GIS平臺[2],但是缺乏對三維雷達數據的分析。曾樂等在基于Spark Streaming 流式計算平臺上研究了氣象業務監視數據處理,實現了實時監控和快速數據觀測的定位[3],并沒有考慮時空分析等功能。雷鳴研究了氣象大數據分布式存儲設計與實現,優化了存儲結果,提升了數據查詢的速度[4],但是對氣象大數據分析方面的內容研究較少。
WebGIS 平臺三維技術也受到了較多學者的關注,如:王星捷等研究了WebGL技術的三維WebGIS平臺研究與應用[5],離線三維數字城市系統的研究與應用[6];劉新平等研究了三維GIS 支持下的實景融合系統設計與實現[7]。對三維技術OpenGL 的研究有田明銀等研究的基于分形算法的三維地形可視化應用[8];宋佳音等基于過程模型的虛擬視景仿真系統研究[9]。
綜上所述,以上三維研究都在各自框架技術和功能上取得了較好的成果,但是模塊相對獨立,沒有綜合應用在氣象大數據分析平臺。該文結合上述氣象GIS平臺研究的功能、三維WebGIS框架和OpenGL的優點,設計研究了基于Meteoinfo氣象大數據分析WebGIS平臺。
目前,在氣象數據分析方面Meteoinfo 平臺非常具有代表性,集成了GIS 平臺功能和大數據分析功能。MeteoInfo 底層采用Java,上層是Jython 技術,這樣MeteoInfo 既有Python 語法的簡單便捷,又有Java的運行速度。該文結合Meteoinfo、Spring Boot 和OpenGL 三維渲染技術,構建了一種集多種氣象GIS時空分析功能于一體且能實現三維雷達氣象數據分析的氣象大數據分析平臺。
對平臺系統進行了分層設計,系統框架共分為五層,包括了資源層、基礎服務層、應用層、接口層和前端用戶界面層。具體的系統框架如圖1 所示。

圖1 系統框架
資源層主要用于數據的存儲,包括空間數據庫、文件數據和關系數據。空間數據庫主要用于存放氣象時空數據和污染時空分析數據等;文件數據庫用來存放地圖文件、時空分析專題圖文件以及管理文件等;關系數據庫主要用來存放用戶管理、日志文件、各種信息錄入和輸出的數據等。
基礎服務層是系統的核心數據處理層。包括Meteoinfo 繪圖核心開發庫、Redis 緩存、ArcGIS for JS API和OpenGL。Meteoinfo繪圖核心開發庫主要用于氣象時空大數據的處理和分析,包括數據時空插值分析處理、氣象數據分析以及多種時空分析專題圖的生成等。Redis 緩存主要用于緩存處理,提高圖形和圖像的顯示效果。ArcGIS for JS API主要用于實現WebGIS平臺的基礎地圖查詢、地圖操作和地圖分析功能。OpenGL 技術用于氣象三維雷達數據的分析處理,通過讀取三維雷達數據,利用OpenGL 進行三維渲染和時空數據處理,完美地展現了氣象三維雷達數據。
應用層主要進行功能業務的應用處理庫和Web結構的設計。包括了多種業務庫,如靜態化、數據緩存、公用庫、邏輯業務以及Spring Boot 框架結構的MVC 模式等。
接口層是用戶前端與應用層的直接橋梁。通過接口可以降低各層之間的耦合度,減少絕對的依賴,利于系統代碼的擴展。主要包括了Nginx 反向代理、Swagger 和Sgin 驗證。
前端用戶界面層是實現用戶與系統交互的界面,主要包括數據采集、數據分析和數據展示模塊。分別用于氣象數據采集、氣象時空數據分析、污染分析、專題分析圖展示以及三維氣象雷達分析展示等。
綜上所述,該文設置的系統框架層次邏輯性強、靈活性好、擴展性強、易于維護、不受運行環境的限制。
系統是采用五層框架結構設計和實現的WebGIS 平臺,實現了氣象時空數據的可視化,三維雷達氣象數據的管理與分析;實現了WebGIS 系統所包含的GIS 基礎操作功能,能夠對氣象時空大數據進行數據采集、分析處理、專題圖生成和時空數據的存儲,可以實現污染分析、空氣質量分析、氣象數據分析、空間數據的多種查詢功能和系統管理設置等功能。具體的系統功能如圖2 所示。

圖2 系統功能
系統的基本功能主要是GIS 的基本功能,是基于ArcGIS for JS API 的二次開發,用于圖層的展示及空間數據的可視化分析,包含了地圖服務加載、圖層管理、地圖操作控制、鷹眼功能、等基本功能。通過這些功能可以方便地操作地圖服務數據,實現空間數據的可視化。
數據查詢功能主要包括屬性篩選、屬性查詢、空間查詢及圖層屬性。
時空分析功能是該文的核心功能,主要用于實現氣象數據、污染數據、空氣質量數據和氣象雷達數據的時空分析。時空分析包括了多種空間和時間的插值分析,例如:克里金插值、IDW 插值、三次樣條時間插值,最近鄰時間插值等。通過時空插值分析可以詳細地分析出氣象、污染和空氣質量的精細化區域變化過程。氣象雷達數據的時空分析主要是實現氣象雷達數據的三維分析展示效果,可以詳細地分析時空和三維的變化過程。
系統設置包括了地圖編輯、用戶管理、日志文件管理、圖表分析和權限管理。地圖編輯包括對地圖數據中屬性信息的修改和查詢。用戶管理是對用戶進行系統管理,用于管理驗證信息、權限信息等。日志文件管理記錄用戶的每一個操作,保證了系統操作的可追溯性。圖表分析可以設置不同的參數來查看圖表記錄,如用戶登錄時間、維護信息等。
雷達數據已經廣泛應用于短時臨近預報、氣象災害預警、人工天氣預報、數值預報模擬等多個領域。在我國,雷達數據運行通常采用VCP21D 的降雨體掃模式。VCP21D 指的是6 min 內完成9 個具體仰角的掃描。通常的雷達數據顯示方式:1)PPI 為平面位置顯示,是雷達在某個仰角上掃描一圈得到的數據;2)CAPPI 為等高平面位置顯示,是在某一相等高度上的雷達數據,采用通過PPI 數據插值得到。雷達數據的三維顯示就是CAPPI 模型的顯示。
雷達數據三維顯示的過程:1)將原始的雷達數據插值成PPI;2)通過PPI 合成為CAPPI 數據;3)采用OpenGL 三維技術進行渲染處理成三維雷達數據。
插值的處理方法主要是線性插值,根據一維數據序列中需要插值的點左右臨近的兩個數據進行數值估計[11-12],具體計算如式(1)所示:

旋轉處理以z軸為中心根據雷達的各個仰角進行旋轉,具體的選擇計算過程如式(2)所示[12]:

其中,旋轉轉角θ為各層的仰角。
具體實現過程:在每一個方位角(azimuth)上進行線性插值。各層仰角的雷達數據都進行0°到360°旋轉處理,在同一個方向角上做一個垂直于地面的切平面,就可以看到若干條射線,這些射線是由不同仰角、相同方向角的雷達掃描獲得的,它們構成了一個二維平面。利用線性插值法,生成一條和這些同原點的射線相切的、平行于地面的直線,再將各個方位角上的線組合成一個CAPP(I每層PPI方位角不超過360°)[13-14]。
系統開發環境為Java 11 和Spring Boot[15-16]、開發平臺為Intellij IDEA、服務器為CentOS 7.6,服務器用于打包并進行系統發布。關系數據庫與空間數據庫相結合,用于存儲天氣數據和相關地理信息數據。具體的系統主界面如圖3 所示。

圖3 系統主界面
根據時空大數據、多種空間數據插值算法,系統實現的污染分析功能包括了霾預報分析、霧預報分析、沙塵預報分析、24 小時空氣污染預報分析、48 小時空氣污染預報分析和72 小時空氣污染預報分析,具體分析效果如圖4 所示。

圖4 空氣污染分析效果
氣象分析實現了多種類型的數據分析,該文主要展示了氣壓分析,氣壓分析能顯示不同高度大氣的狀態,系統中展示了100 hPa、500 hPa、700 hPa、850 hPa 和地面氣壓的分析效果,也展示了能見度的分析效果,具體如圖5 所示。

圖5 氣象分析效果
該文采用多普勒C 段波氣象雷達數據,實現了雷達三維分析功能,提取了雷達氣象數據中的大氣雨滴的反射率因子,進行三維成像分析。具體的顯示效果如圖6 所示。圖中反映出了不同反射因子的三維分布情況,分析結果表明,反射率越大,雨越大,證明了雷達三維分析的正確性。

圖6 雷達氣象數據三維分析顯示效果
該文結合了Meteoinfo 氣象大數據處理、Spring Boot 的MVC 框架、Java 的跨平臺處理,以及ArcGIS API for JS 在WebGIS 易于開發和OpenGL 三維渲染等優點,探討了一種基于Meteoinfo 氣象大數據分析WebGIS 平臺的技術。該系統平臺能實現多種氣象大數據分析以及GIS 數據在Web 中的可視化效果,同時能便捷地實現三維氣象雷達數據的處理。采用實際的氣象數據和氣象雷達數據進行系統分析和實現,達到了較好的效果。系統具有框架模塊的可擴展性、系統功能的易維護性、氣象時空大數據分析多樣性以及可以跨平臺發布等多種優越性,為氣象大數據分析WebGIS 平臺提供了新的實現方案和技術參考。