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