唐維堯,白鐵男,譚海波,金石聲
(貴州省氣象信息中心,貴州 貴陽 550002)
水汽是一種溫室氣體,在大氣中的含量較少,但卻是變化最為劇烈的一種成分,極強(qiáng)的活躍性與天氣變化甚至災(zāi)害性天氣的產(chǎn)生、發(fā)展、演變直接相關(guān)。許劍勇等[1]提到水汽條件是影響黃山霧凇形成的關(guān)鍵氣象因子,冉仙果等[2]發(fā)現(xiàn)貴州銅仁2018年12月29日的暴雪過程與水汽輸送關(guān)系緊密。因此,準(zhǔn)確測(cè)量大氣中的水汽分布并掌握其時(shí)空演變規(guī)律,對(duì)于研究天氣變化具有重要意義[3]。全球?qū)Ш叫l(wèi)星系統(tǒng)GNSS(Global Navigation Satellite System)包括全球4大導(dǎo)航系統(tǒng):美國(guó)GPS、俄羅斯GLONASS、中國(guó)北斗和歐盟Galileo。1992年,Bevis等[4]提出可利用GNSS信號(hào)穿過大氣層時(shí)所發(fā)生的折射現(xiàn)象而造成的時(shí)間延遲反演大氣水汽含量,從此GNSS和氣象學(xué)(METeorology)建立了聯(lián)系。20多年來,GNSS反演水汽逐漸業(yè)務(wù)化,中國(guó)氣象局綜合觀測(cè)司在2020年3月發(fā)布的《氣象觀測(cè)技術(shù)試驗(yàn)指南(2020—2025)》中指出:GNSS/MET資料不僅要求觀測(cè)精度要高,數(shù)據(jù)服務(wù)保障也相當(dāng)重要。
Zabbix是一個(gè)企業(yè)級(jí)分布式開源監(jiān)控平臺(tái)。該平臺(tái)能夠監(jiān)控眾多網(wǎng)絡(luò)參數(shù)和服務(wù)器的健康度、完整性,使用靈活的告警機(jī)制,允許用戶為任何事件配置告警,這樣用戶可以快速響應(yīng)服務(wù)器問題。白鐵男等[5]利用Zabbix對(duì)貴州省的某些氣象業(yè)務(wù)進(jìn)行了有效監(jiān)控,并得到推廣應(yīng)用。國(guó)內(nèi)也有一些相關(guān)的研究[6-8]。
2012年貴州省氣象信息中心做出了C#開發(fā)的搭載在Windows系統(tǒng)上的水汽中心站系統(tǒng)。
系統(tǒng)需要先通過報(bào)文同步程序同步到省級(jí)的另一臺(tái)存儲(chǔ)機(jī)上,然后再布置2臺(tái)報(bào)文處理系統(tǒng)服務(wù)器,分別讀取CIMISS-MUISC(China Integrated Meteorological Information Service System-Meteorological Unified Service Interface Community)接口氣象數(shù)據(jù)和不讀取接口氣象數(shù)據(jù)。能讀取氣象數(shù)據(jù)的情況下直接發(fā)送帶氣象數(shù)據(jù)的報(bào)文,因?yàn)镃TS(Communication Transmission Systems)核心數(shù)據(jù)收集與分發(fā)系統(tǒng)中會(huì)過濾重復(fù)報(bào)文,所以會(huì)優(yōu)先發(fā)送帶氣象數(shù)據(jù)的報(bào)文。該系統(tǒng)長(zhǎng)時(shí)間使用中有以下缺點(diǎn):①常會(huì)因?yàn)榕_(tái)站發(fā)送的錯(cuò)誤報(bào)文而崩潰;②該系統(tǒng)由于搭建在Windows系統(tǒng)中,維護(hù)較為困難;③補(bǔ)發(fā)過程需要手動(dòng)復(fù)制報(bào)文,過程較為繁瑣;④使用的物理機(jī)較多,造成資源浪費(fèi)。
為解決上述問題,本研究擬采用Python語言和Shell腳本語言來開發(fā)水汽報(bào)文中心站系統(tǒng),以此來處理GNSS/MET報(bào)文,并基于Zabbix-HA(high availability,高可用)搭建報(bào)文的監(jiān)控與告警系統(tǒng),實(shí)現(xiàn)GNSS/MET報(bào)文自動(dòng)化處理與保障。
《GPS/MET數(shù)據(jù)傳輸規(guī)范(試行)》中提到:需要對(duì)不自帶氣象要素觀測(cè)的國(guó)家氣象臺(tái)站的GPS文件進(jìn)行氣象數(shù)據(jù)匹配工作,并按規(guī)定的格式和文件命名要求打包后向國(guó)家氣象信息中心傳輸。即省級(jí)需要在臺(tái)站傳上來的原始報(bào)文中添加氣象數(shù)據(jù)報(bào)文,才可作為完整的GNSS/MET水汽報(bào)文向中國(guó)氣象局發(fā)送。GNSS/MET報(bào)文的詳細(xì)介紹見下圖:
圖1中可以看出,GNSS/MET報(bào)文中有包括實(shí)時(shí)氣象數(shù)據(jù)的m文件、N文件(導(dǎo)航文件)、O文件(觀測(cè)文件)、G文件(GLONASS衛(wèi)星觀測(cè)文件,部分站點(diǎn)有),后三者都是由臺(tái)站上傳到省級(jí),不做處理。

圖1 GNSS/MET 水汽報(bào)文構(gòu)成
目前,貴州省有1個(gè)GNSS/MET水汽資料國(guó)家級(jí)考核站:畢節(jié)威寧(站號(hào)56691),2個(gè)省級(jí)考核站:貴陽站(站號(hào)57816),安順站(站號(hào)57806),3個(gè)不考核的站點(diǎn):晴隆(站號(hào)57900)、紫云(站號(hào)57910)、赤水(站號(hào)57609)。根據(jù)最新發(fā)布的《GPS/MET數(shù)據(jù)傳輸規(guī)范(試行)》,每個(gè)時(shí)次都有GNSS/MET資料的觀測(cè)和收發(fā),且國(guó)家氣象局對(duì)該類資料的及時(shí)率考核時(shí)間為前20 min。GNSS/MET水汽報(bào)文處理系統(tǒng)必須滿足上述要求。
GNSS/MET水汽報(bào)文自動(dòng)化處理系統(tǒng)是在Linux系統(tǒng)中基于Zabbix-HA(high availability)開發(fā)的,臺(tái)站上傳后數(shù)據(jù)共享不通過程序同步,而是直接在Linux系統(tǒng)上掛載Windows系統(tǒng)的共享盤實(shí)現(xiàn)同步功能,這種方式不需要登陸和認(rèn)證臺(tái)站共享服務(wù)器,就可以讀取和復(fù)制GNSS/MET原始報(bào)文。GNSS/MET自動(dòng)化處理系統(tǒng)處理的GNSS/MET報(bào)文將發(fā)送到核心數(shù)據(jù)收集與分發(fā)系統(tǒng)CTS中,之后再發(fā)送到國(guó)家氣象信息中心并進(jìn)行本地入庫(kù)和分發(fā)。此外,該系統(tǒng)還包括了基于Zabbix-HA搭建的GNSS/MET報(bào)文監(jiān)控與補(bǔ)發(fā)系統(tǒng),對(duì)報(bào)文的缺收及時(shí)告警,并實(shí)現(xiàn)報(bào)文的自動(dòng)補(bǔ)發(fā)。可以看出在處理流程中,最關(guān)鍵部分是GNSS/MET報(bào)文處理和報(bào)文監(jiān)控與補(bǔ)發(fā)系統(tǒng)的建立,下面將分別介紹。
GNSS/MET水汽中心站全都布置在Linux系統(tǒng)中,這樣便于與國(guó)省氣象信息中心的核心數(shù)據(jù)收集與分發(fā)系統(tǒng)CTS進(jìn)行交互。中心站系統(tǒng)的架構(gòu)如圖2所示:

圖2 GNSS/MET報(bào)文處理流程圖
從圖2可以看出,中心站收發(fā)報(bào)文的過程如下:
①在中心站系統(tǒng)中,在配置文件中寫入需要處理的臺(tái)站簡(jiǎn)稱和站號(hào),系統(tǒng)將根據(jù)配置文件對(duì)臺(tái)站報(bào)文進(jìn)行逐個(gè)處理;
②通過讀取貴州省氣象大數(shù)據(jù)云平臺(tái)“天擎”MUISC接口數(shù)據(jù),申請(qǐng)中國(guó)地面分鐘數(shù)據(jù)集,在匹配站點(diǎn)后獲取每隔10 min的氣壓、溫度、相對(duì)濕度數(shù)據(jù),然后將氣象數(shù)據(jù)插入只有文件頭的文件中合成m文件,之后將m文件插入原始報(bào)文中。
③正常情況下,將處理后的報(bào)文按要求改名后再通過自動(dòng)ftp傳到核心數(shù)據(jù)收集與分發(fā)系統(tǒng)CTS,CTS再進(jìn)行正常分發(fā)工作;異常情況下,若沒有取到相應(yīng)的原始報(bào)文或者取到的是空?qǐng)?bào),那么將對(duì)該臺(tái)站不做處理,直接跳到下一個(gè)臺(tái)站處理;若沒有獲取到氣象數(shù)據(jù)即沒有生成m文件,那么將對(duì)原始報(bào)文直接重新打包改名,發(fā)到CTS中進(jìn)行分發(fā);
④上述的每一個(gè)操作都將記錄在結(jié)果日志中,便于日后查詢。
根據(jù)《GPS/MET數(shù)據(jù)傳輸規(guī)范(試行)》中對(duì)傳輸時(shí)效的要求,為了能及時(shí)發(fā)現(xiàn)臺(tái)站未上傳報(bào)文或上傳空?qǐng)?bào)文的情況,對(duì)GNSS/MET報(bào)文做出監(jiān)控很有必要。因此本研究基于Zabbix-HA搭建了GNSS/MET報(bào)文監(jiān)控與告警系統(tǒng),并通過Zabbix的動(dòng)作功能,實(shí)現(xiàn)報(bào)文的自動(dòng)補(bǔ)傳,大大減輕了值班人員的業(yè)務(wù)壓力,實(shí)現(xiàn)了資料監(jiān)控到自動(dòng)處理的全流程(圖3)。

圖3 報(bào)文監(jiān)控與告警系統(tǒng)邏輯示意圖
首先需要對(duì)原始報(bào)文目錄和報(bào)文發(fā)送目錄進(jìn)行監(jiān)控,如果在報(bào)文發(fā)送目錄里發(fā)現(xiàn)有考核站的報(bào)文缺失,將產(chǎn)生報(bào)文缺失的告警;如果在上述情況下,同時(shí)在原始報(bào)文目錄里發(fā)現(xiàn)補(bǔ)傳的原始報(bào)文,則產(chǎn)生水汽需要補(bǔ)發(fā)的告警,此告警連接了動(dòng)作—重啟水汽處理程序,這樣就實(shí)現(xiàn)了報(bào)文的自動(dòng)補(bǔ)傳工作。上述操作和結(jié)果都將記錄在歷史記錄中。
整個(gè)GNSS/MET報(bào)文自動(dòng)化處理系統(tǒng)都搭建在Linux系統(tǒng)中,全是源碼方式呈現(xiàn),無圖形化界面。通過crontab定時(shí)任務(wù)實(shí)現(xiàn)每個(gè)時(shí)次的第6 min對(duì)報(bào)文進(jìn)行處理,從臺(tái)站發(fā)送到處理過程結(jié)束一般在15 s以內(nèi)。水汽報(bào)文缺失的告警分別配置在相應(yīng)的主機(jī)群中,告警直接分配到臺(tái)站;水汽需要補(bǔ)發(fā)的告警配置在報(bào)文處理系統(tǒng)中,不分臺(tái)站,觸發(fā)動(dòng)作后直接重啟水汽處理程序,重復(fù)的報(bào)文核心數(shù)據(jù)收集與分發(fā)系統(tǒng)CTS會(huì)直接過濾,不做處理。

表1 GNSS/MET報(bào)文及時(shí)率對(duì)比
測(cè)試1個(gè)月以來,與之前1個(gè)月對(duì)比,報(bào)文及時(shí)率有著明顯提升,5月15日—6月11日全省的GNSS/MET報(bào)文及時(shí)率大概在95%左右,測(cè)試的這1個(gè)月,6月12日—7月16日全省及時(shí)率均在99.5%以上。3個(gè)考核站點(diǎn)中威寧站是國(guó)家級(jí)考核站,可以看出新中心站系統(tǒng)對(duì)該站點(diǎn)的及時(shí)率提高更加明顯,之前有2周只有約92%,中心站系統(tǒng)測(cè)試期間,威寧站GNSS/MET報(bào)文及時(shí)率已達(dá)到100%。
本研究在Linux系統(tǒng)中基于Zabbix-HA開發(fā)了1套全新GNSS/MET水汽報(bào)文自動(dòng)化處理系統(tǒng),與舊版系統(tǒng)相比,有效提高了報(bào)文傳輸及時(shí)率,并節(jié)約了計(jì)算資源。此外,該系統(tǒng)還包括了報(bào)文的實(shí)時(shí)監(jiān)控和自動(dòng)補(bǔ)發(fā),實(shí)現(xiàn)了水汽資料的全流程保障,有效減輕了工作人員的值班壓力。