徐曉慶,張 智*,崔 巍,陳增境
(1.中國氣象局旱區(qū)特色農業(yè)氣象災害監(jiān)測預警與風險管理重點實驗室,寧夏 銀川 750002;2.寧夏氣象防災及重點實驗室,寧夏 銀川 750002)
近年來,人們對霧、霾等天氣越來越重視,對高空秒級數(shù)據(jù)的需求越來越多。目前,氣象資料應用服務軟件的開發(fā)主要是地面資料,而高空氣象資料的應用分析工作相對較少,如吳興洋等[1]指出高空全月觀測數(shù)據(jù)文件的關鍵是對高空觀測基礎數(shù)據(jù)文件(秒數(shù)據(jù)文件)進行質控;陳中鈺等[2]基于L 波段探空綜合觀測的逐秒數(shù)據(jù)制定了秒數(shù)據(jù)質量控制方法,發(fā)現(xiàn)該方法可以很好地檢查出L 波段探空綜合觀測秒數(shù)據(jù)的錯誤;張明[3]、陸杰[4]、閔昌紅等[5]分別利用高空秒級數(shù)據(jù)、等壓面層數(shù)據(jù)、大氣邊界層數(shù)據(jù)研究了鄂西南、廣西、貴陽等地的高空風、規(guī)定等壓面層溫度和高空逆溫特征;李茂等[6]開展了高空和地面觀測資料交互應用研究,確立了調取高空或地面資料做交互訂正應用的最佳處理方案;高雅潔等[7]設計開發(fā)了高空BUFR 報文與XML 報文傳輸軟件,適合臺站探空數(shù)據(jù)傳輸;張穎梅等[8]對L 波段高空氣象觀測系統(tǒng)軟件的升級技巧進行了總結。這些分析研究多是業(yè)務技術總結,或是利用高空氣象資料開展氣候變化分析,而該設計是通過網頁的形式直接顯示高空氣象數(shù)據(jù)。
高空秒級數(shù)據(jù)是精度最高的高空觀測資料,利用高空秒級數(shù)據(jù)可以準確地找到逆溫層,為霧、霾預報研究提供重要的數(shù)據(jù)支撐。目前高空秒級數(shù)據(jù)只能從CIMISS 數(shù)據(jù)庫中獲取,且獲取過程十分繁瑣,登錄API 接口頁面后不僅需要從各種接口中選擇高空秒級資料接口,而且需要選擇相關的觀測要素,獲取數(shù)據(jù)十分不便。因此,設計開發(fā)高空秒級數(shù)據(jù)應用服務軟件十分必要。
該軟件從CIMISS 數(shù)據(jù)庫中讀取近地層2 km內高空秒級數(shù)據(jù),按照《常規(guī)高空氣象觀測業(yè)務手冊》技術規(guī)定,采用內插法[9]對近地層高空秒級數(shù)據(jù)進行等壓間隔、等高間隔處理,開發(fā)不同觀測要素(氣壓、位勢高度、溫度)的查詢網頁,能夠以表格、剖面圖等形式顯示各氣象觀測要素的高度變化,可為氣象預測預報研究、氣象服務提供數(shù)據(jù)服務。
該系統(tǒng)基于B/S 架構的ASP.NET 設計,數(shù)據(jù)庫為CIMISS 系統(tǒng)的Oracle 數(shù)據(jù)庫,使用CIMISS 系統(tǒng)提供的API 接口直接調取數(shù)據(jù);網頁前臺使用JavaScript 技術,網頁后臺使用C#作為開發(fā)語言,還用到了Ajax、JSON 和動態(tài)鏈接庫等關鍵技術。
1.2.1 功能模塊設計 該功能模塊分為數(shù)據(jù)查詢和繪制剖面圖頁兩部分,見圖1。
圖1 功能模塊圖
(1)數(shù)據(jù)查詢。選擇觀測要素(氣壓、溫度、相對濕度、風速和風向)、查詢方式(等壓、等高和全部)、日期類型(按日期、時間段、同期)進行查詢,并以表格方式顯示,同時可將查詢結果導出,存儲為Excel格式文件。
(2)剖面圖繪制。選擇觀測要素(氣壓、溫度、相對濕度、風速)、查詢方式(等壓、等高和全部)、查詢時間進行查詢,并以剖面圖方式展示,同時可將查詢結果導出為png 格式文件。
1.2.2 后臺設計 按照氣象業(yè)務人員選擇的查詢條件,傳入后臺獲取數(shù)據(jù),對數(shù)據(jù)進行處理后再通過前臺網頁顯示,設計流程見圖2。
圖2 設計流程圖
以下是具體設計過程:
(1)根據(jù)前臺的查詢條件,利用Ajax 方法訪問后臺。查詢內容有時間、觀測要素(氣壓、位勢高度、溫度、相對濕度、風速和風向)、等壓(高)間隔和不同時段(連續(xù)時段、同期時段、跨年時段)。將這些條件組織成Ajax 的形式,傳入后臺。
(2)從CIMISS 數(shù)據(jù)庫中查詢數(shù)據(jù),數(shù)據(jù)預處理。數(shù)據(jù)庫中查詢到的氣壓、溫度、相對濕度、風速、風向會有缺測數(shù)據(jù),需對缺測數(shù)據(jù)進行刪除處理,只保留符合查詢條件的數(shù)據(jù)。預處理后的數(shù)據(jù)是數(shù)據(jù)庫中的隨機數(shù)據(jù),非預期順序。為了便于使用內插法計算數(shù)據(jù),需對獲取的數(shù)據(jù)進行排序。根據(jù)時間、位勢高度進行升序排列,保證同一時刻的數(shù)據(jù)按位勢高度升序排列。將預處理后的數(shù)據(jù),存入數(shù)組。
(3)判斷查詢的是全部數(shù)據(jù),還是等間隔數(shù)據(jù),若是等間隔數(shù)據(jù),則數(shù)據(jù)進行內插處理。數(shù)據(jù)庫查詢到的數(shù)據(jù)是逐秒記錄,位勢高度值和氣壓值并不是等間隔,因此需進行內插法處理。
(4)將整理后的數(shù)據(jù),解析成json 標準格式,傳入前臺。將上一步產生的字符串,組織成json 串,并通過Ajax 方法傳入前臺。
(5)用表格或垂直剖面圖顯示數(shù)據(jù)。
等高和等壓的內插法類似,以等高為例,設計流程見圖3。
圖3 等高內插法流程圖
具體步驟如下:
第1步 存放在數(shù)組中的位勢高度是由低到高排序的,因此,第1 個數(shù)組中存放的位勢高度為起始高度0,把第1 個數(shù)組中的值依次存入字符串a 中。
第2步 根據(jù)前臺傳來的間隔高度k,查找接下來的數(shù)組中的位勢高度是否存在,值為nk(n=1,2,3,...,i)的位勢高度。若存在,將數(shù)組中的值繼續(xù)存入字符串a 中;若不存在,則繼續(xù)下一步的判斷。
第3步 判斷:前一個數(shù)組中的位勢高度 ①若符合這個判斷條件,使用內插法,即(前一個數(shù)組中對應的要素值+后一個數(shù)組中對應的要素值求和)/2,求出相應的氣壓、位勢高度、溫度、相對濕度、風速和風向,將求出的值繼續(xù)存入字符串a中,并且間隔高度nk 的值增加為(n+1)k。接著對下一個數(shù)組繼續(xù)步驟3 的判斷。 ②若不符合這個判斷條件,則判斷下一個數(shù)組的位勢高度是否滿足步驟3 的判斷條件。 第4步 依次循環(huán)判斷所有數(shù)組,直至所有數(shù)組都判斷完畢。 CIMISS 數(shù)據(jù)庫中高空資料存儲了中國高空定時值資料、高空秒級資料、高空分鐘數(shù)據(jù)、閃電定位等資料,軟件只讀取銀川高空觀測站高空秒級資料。 CIMISS 的API 提供了多種檢索高空秒級資料的接口,本文采用按時間段、站號方式getUparEleBy-TimeRangeAndStaID 檢索高空秒級數(shù)據(jù)表UPAR_CHN_MUL_SEC。 氣象業(yè)務一般需要的是近地面2 km 的數(shù)據(jù),而CIMISS 數(shù)據(jù)庫中高空秒級資料一般能達到25 km左右,而銀川海拔高度約1.1 km,因此平臺的位勢高度控制在3.2 km。 前臺網頁查詢條件分為3 部分:觀測要素、查詢方式和日期類型。觀測要素包括氣壓、溫度、相對濕度、風速、風向等全部要素。查詢方式分為等壓、等高和全部。若選擇等壓,根據(jù)業(yè)務需求將等壓間距分為10,20 hPa;若選擇等高,根據(jù)業(yè)務需求將等高間距分為50,100,200 m;若選擇全部,則顯示所有數(shù)據(jù)。日期類型包括按日期查詢、按時間段查詢和按同期查詢。將這些條件組織成Ajax 的形式,傳入后臺。 (1)預處理數(shù)據(jù),剔除溫度、氣壓、濕度、風速和風向中缺測的數(shù)據(jù),并對數(shù)據(jù)排序。 (2)判斷是查詢原始數(shù)據(jù),還是等壓(高)間隔數(shù)據(jù)。若是等壓(高)間隔數(shù)據(jù)則需采用內插法進行內插。 (1)表格的形式。將查詢的數(shù)據(jù)采用bootstrap格式直接顯示出來,并能將查詢的結果導出。如圖4所示,選擇全部氣象要素(溫度、氣壓、濕度、風速、風向和位勢高度),按日期、10 hPa 等壓間隔查詢。 圖4 寧夏高空秒級數(shù)據(jù)表格顯示圖 (2)剖面圖的方式。根據(jù)查詢結果可以采用echarts方式顯示溫度、濕度、風速中的一種垂直變化剖面圖,也可以全部顯示,圖片有導出功能。如圖5 所示,選擇全部氣象要素(溫度、濕度、風速),按日期、100 m等高間隔查詢。 圖5 寧夏高空秒級數(shù)據(jù)(溫度、濕度、風速)垂直剖面圖 對music 接口直接調用和該軟件界面調用的100 個時次數(shù)據(jù)進行統(tǒng)計分析,去除接口異常時次,正常情況下,調用處理前的數(shù)據(jù)平均需要32 s,數(shù)據(jù)量約4 600 條。處理后的數(shù)據(jù)見表1。 表1 服務性能表 經過內插法處理后數(shù)據(jù)按照等高或等壓的方式展示,大大減少了數(shù)據(jù)量;展示方式按照相應規(guī)律展示,便于氣象業(yè)務人員使用,但是查詢時間增加了3 s,查詢速度有所下降。 本文主要研究CIMISS 近地層高空秒級數(shù)據(jù)的處理。利用內插法將高空秒級資料處理成等壓(高)間隔的數(shù)據(jù),并將氣象要素用垂直變化的方法表示。原先只能通過CIMISS 的API 接口頁面手動調用高空資料,氣象業(yè)務人員不僅需要學習頁面接口的使用方式,而且獲得的數(shù)據(jù)是非預期的,且只能以表格的形式全部顯示,氣象業(yè)務人員使用時還需加工處理成預期數(shù)據(jù),使用不便。經過內插法處理后,數(shù)據(jù)按照等高或等壓的方式展示,雖然查詢速度略微變慢,但是大大減少了數(shù)據(jù)量,展示方式可以按照等高或等壓方式展示。氣象業(yè)務人員根據(jù)實際需要在該查詢軟件頁面選擇查詢條件,查詢出來的數(shù)據(jù)不僅能以表格的方式顯示,還能以剖面圖的形式顯示,并且可以下載表格和剖面圖,方便了業(yè)務人員的使用,提高了高空秒級資料的利用效率。3 功能實現(xiàn)
3.1 數(shù)據(jù)來源
3.2 確定位勢高度
3.3 頁面組織
3.4 后臺數(shù)據(jù)處理
3.5 輸出方式
3.6 服務性能
4 結論