趙曄暉,廖彬武,梁希豪
(民航寧夏空管分局,寧夏 銀川 750009)
目前,民航氣象人員判斷天氣演變趨勢使用的氣象系統為氣象MⅠCAPS系統[1-3],該系統存在如下缺陷:資料更新時間間隔過長,MⅠCAPS 資料3 h 更新一次,而民航氣象人員需要未來0.5~2 h 區間的資料。中國氣象科研工作者結合信息地理系統[4-6]和計算機技術優勢,設計和開發了許多實用的氣象數據顯示系統。周欽強等[7]通過分析研究實時監控技術,建立自動氣象站實時監控模型,開發了自動氣象站實時監控系統;李雁等[8]研究了區域自動站特點,設計實現了區域自動站監控系統。這些系統雖然在日常工作中發揮了比較重要的作用,但總體來講,無法提供機場周邊實時的氣象資料,如何給預報員提供實時完善的氣象資料,尤其是機場周邊的氣象資料是整個民航氣象亟待解決的問題。
為解決以上問題,本文設計開發了氣象信息監控系統,能直觀地關注機場周邊天氣實時變化,為預報員決策提供手段和工具。系統采用B/S 架構[9-10]進行設計,結合JavaScript 腳本語言和HTML 編碼,使用C#語言開發編碼。
程序使用Windows 系統自帶的Ⅰnternet 信息服務器作為Web 服務器,結合最新的開發技術相如ODBC、ASP.NET、B/S 模式等進行設計和開發。系統框架結構如圖1 所示,分為3 層,分別為展示層、邏輯層和數據訪問層,3 層之間相互關聯,缺一不可,同時在功能上相互獨立,提高了系統的可擴展性。

圖1 氣象信息監控系統功能結構圖
展示層包括站點設置、目錄設置、告警閾值設置、顯示設置4 部分內容,主要對系統各項參數進行設置。用戶在系統通過站點設置,確定系統顯示的站點位置和數量,目錄設置主要功能是通過設置默認輸出目錄,將數據自動保存到本地磁盤中。系統采用瀏覽器/服務器模式(B/S)進行設計,在網頁上對氣象信息進行監控顯示,告警閾值主要功能是當站點某個要素超過所設閾值時,系統顯示告警,同時將告警信息記錄在后臺,用戶可對近期一段時間內的告警信息進行查詢分析。
邏輯層由自動站資料、自動觀測資料、數據庫資料、遙測資料、讀取解析、加載顯示6 部分組成。系統要處理的資料包括4 部分:氣象局自動氣象站資料、機場自動觀測系統資料、民航氣象數據庫資料和機場遙測系資料,設置一進程,對上述4 種資料進行解析,提取各個站點的氣象數據和經緯度坐標,根據坐標將氣象數據顯示在百度地圖上。系統默認每5 min 更新一次數據,為避免加載整個地圖,采用JQuery AJAX異步刷新技術,更新站點數據而不加載整個地圖。
數據訪問層包括數據訪問模塊、氣象數據、ODBC數據庫訪問、SQL SERVER 數據庫、.XML 圖表、移動終端6 部分,訪問層主要功能:使用SQL SERVER 2010 數據庫存儲數據,采用ODBC 數據庫訪問技術讀取氣象數據,設置一進程,將數據下入XML 文件中,Fusionchat 插件通過讀取XML 數據,在地圖上以圖表形式顯示近期特殊天氣。
氣象信息監控系統讀取寧夏地區各縣市自動氣象站數據和機場實況天氣報告,并提取、解析,根據經緯度坐標,將數據顯示標注在百度地圖中,用戶鼠標經過該地區會自動顯示重要數據,當用戶點擊該圖標時,系統會彈出窗口,顯示該地區詳細天氣信息。用戶還可以通過訪問民航氣象數據庫系統,統計本場近1年來天氣變化趨勢,使用Fusionchart 插件以圖表形式將天氣變化趨勢直觀顯示出來。同時,由于寧夏地區站點較多,設計一個搜索對話框,用戶輸入要查詢的地點點擊搜索,直接定位到該站點。
氣象信息監控系統分3 部分進行設計,分別為本地氣象自動站數據模塊、河東機場氣象要素監控模塊、系統設置模塊,系統采集寧夏地區自動站數據和河東機場自動觀測系統數據,對數據進行分析處理,根據用戶需求將數據以合理的方式顯示在百度地圖上,系統功能結構如圖2 所示。

圖2 氣象信息監控系統功能結構圖
本地氣象自動站數據。對寧夏地區各縣市的氣象自動站數據進行讀取,數據在網頁上進行顯示,設置一定時期數據,每10 min 自動更新一次。為有效監控自動站數據,地圖上有數據的氣象站添加紅色覆蓋物,無數據的則不添加,通過紅色覆蓋物判斷站點資料是否完整。設置一導航按鈕,查看完其他地方的數據后,點擊導航按鈕,返回默認地點。地圖精細化等級為7級,可精細化至縣一級,用戶雙擊鼠標可對地圖進行縮放,鼠標單擊各站點,會顯示溫度、濕度、風向、風速、氣壓、云高、雨量等詳細氣象要素。為方便查找站點,設置一檢索按鈕,用戶輸入地點,點擊檢索,地圖會自動定位到該地點,并顯示相關氣象數據。
河東機場氣象要素監控。主要功能讀取機場氣象自動站資料和機場觀測員發報的實況報文,顯示在百度地圖上。為方便用戶使用,網頁上顯示最近3 h 內的氣象數據。若本場出現復雜天氣如大風、揚沙時,告警信息會顯示Web 網頁上,提醒預報員。系統自動統計每天的告警次數,以文檔的方式記錄在后臺。
系統設置。主要功能是管理本地氣象自動站數據,設置系統相關參數,實現對氣象自動站站點的增加、刪除和修改功能。對報表默認輸出目錄進行設置,以便用戶進行天氣復盤。對復雜天氣進行報警閾值設置,如風速大于10 m/s,能見度小于800 m 等,達到告警閾值時,頁面出現告警信息。數據顯示設置,設置頁面顯示哪種氣象要素,如顯示風向風速、能見度等。
當復雜天氣發生時,氣象預報員短時間內工作量急劇上升,需要分析的資料比較多,涉及到多個不同的氣象系統如氣象自動站系統、氣象數據庫系統、本場遙測系統等,容易造成預報員工作的失誤。為進一步提升預報工作質量,使預報員能夠及時掌握最近一段時間內天氣變化情況,氣象信息監控系統通過訪問氣象數據庫系統、氣象自動觀測系統、氣象遙測系統數據,使用圖表Fusionchart 插件,結合XML 語言、JavaScript 腳本語言,將最近一段時間內發生的復雜天氣(低能見度、強沙塵暴等)以圖形界面的方式直觀顯示在界面上。函數TransDataToXml 訪問氣象數據系統表rpt01_cac,讀取表中的氣象信息,轉化成XML數據形式。函數TransAwosToXml 讀取氣象自動觀測系統六要素數據壓、溫、濕、風向、風速、雨量,轉化成XML 數據形式。函數TransYaoceToXml 讀取氣象遙測系統六要素數據壓、溫、濕、風向、風速、雨量,轉化成XML 數據形式。XML 轉換完畢后,將數據傳遞給后臺,利用JavaScript 腳本語言讀取處理后臺數據,處理完畢后通過Fusionchart 插件進行繪圖,以圖表的方式顯示在百度地圖上,動態顯示數據變化。
以銀川河東機場為例,若本場出現復雜天氣如大風、揚沙時,告警信息會自動顯示在Web 網頁上,提醒預報員。系統自動統計每天的告警次數,以文檔的方式記錄在后臺。設置一函數GetⅠnfoFromDataBase 檢索氣象數據庫系統,GetinfoFromAwos 讀取自動站氣象數據六要素,將取到的數據返回Web 前端,前端通過JavaScript 腳本語言處理數據,通過數據解析分解提取各個要素,結合經緯度坐標將數據準確地顯示在百度地圖對應的各級站點。使用AJAX 局部頁面刷新技術,用戶鼠標移動至該站點時,自動刷新該站點部分常規數據,若用戶想進一步了解詳細信息,雙擊該站點,會看到該站點的詳細信息。機場周邊若突然發生復雜天氣(大風、強沙塵暴、低能見度等),系統會有告警提醒,并以醒目的顏色標注在地圖上。
JQuery AJAX 頁面局部刷新技術。在氣象信息監控系統中,鼠標經過相關站點時,顯示該站點的最新數據,只刷新一個站點,其他站點數據不刷新,采用傳統技術時,刷新一個站點,整個網頁頁面所有的站點必須刷新,地圖所有資源重新加載,導致資源浪費,系統響應速度慢。為解決這一問題,采用AJAX 頁面局部刷新技術。AJAX(Asynchronous JavaScript And XML)即異步JavaScript 和XML,是一種用于創建快速動態網頁的技術,通過在后臺與服務器進行少量的數據交換,實現網頁異步更新,在不加載整個網頁的情況下加載部分網頁。主要優點:實現客戶端的異步請求操作,在不需要刷新頁面的情況下與服務器進行通信,減少用戶的等待時間,減輕服務器和帶寬的負擔,提供更好的服務響應。本系統中,鼠標移動到站點時,觸發函數在Web 前端調用后臺進程讀取數據,讀取的數據直接返回給前端進行顯示,不需要加載整個系統就能刷新站點資料。
覆蓋物MARKER 標志嵌入技術。系統通過加載百度MARKER 覆蓋物技術,實現各氣象站點的氣象信息顯示。標志物MARKER 根據經緯度坐標,在系統地圖初始化時加載到各個站點,每個站點的覆蓋物設置為靜止的橢圓形,MARKER 覆蓋物響應鼠標移動,當鼠標移動至覆蓋物時,觸發鼠標移動函數讀取氣象數據,并顯示氣象信息。若想要進一步了解詳細氣象信息,點擊覆蓋物,觸發鼠標點擊函數,通過彈出的對話框,顯示該站點的詳細數據。具體實現過程通過調用百度地圖JS 離線包或者在線包:①根據各個站點提供的經緯度坐標,加載覆蓋物MARKER 到地圖上,由于站點較多,采用數組存放經緯度坐標;②在各個覆蓋物上添加鼠標移動和點擊的響應函數StrMouseMove 和MouseMoveAndClick;③響應函數,讀取數據并顯示。
本系統運行環境為Windows7 操作系統,采用面向對象思想進行設計,前臺開發語言為C#,結合JavaScirpt 腳本語言、JQuery AJAX、Fusionchart 插件開發完成該系統,實現氣象信息的實時顯示、局部刷新、統計分析等功能。
本文提出一種以直觀方式顯示銀川河東機場周邊站點天氣變化的系統,系統通過服務器端訪問氣象自動站和機場氣象數據庫,數據通過JSON 格式采用AJAX 異步傳輸技術傳遞到瀏覽器端,瀏覽器端利用經緯度和百度地圖APⅠ將各個站點氣象數據在地圖上顯示出來。在百度地圖應用方面,主要采用百度地圖的加載、MARKER 覆蓋物添加、函數響應、地理信息獲、Fusionchart 繪圖等技術,并給出了相關代碼。在氣象要素的顯示方面,主要實現了區域內各自動站氣象要素的提取、訪問、解析以及快速展示,機場氣象數據庫氣象要素的訪問、展示、統計,分析最近一段時間的復雜天氣等功能。同時為加快數據響應,實現鼠標移動時局部站點氣象信息刷新,本系統采用AJAX異步傳輸技術,在不重新加載百度地圖的情況下,實現單個站點更新氣象數據,克服了全部站點一起更新系統響應慢的問題,使得頁面加載速度非常迅速,在日常業務應用中效果明顯。