徐 娟,劉 洋,許竹霞,鐘斌斌
(甘肅省氣象信息與技術(shù)裝備保障中心,蘭州 730020)
氣象數(shù)據(jù)種類豐富,包含地面、高空、數(shù)值預(yù)報(bào)、雷達(dá)、衛(wèi)星等14大類共300余種,除應(yīng)用于天氣預(yù)報(bào)、氣候預(yù)測(cè)、氣象科研領(lǐng)域外,氣象數(shù)據(jù)在農(nóng)業(yè)、能源、交通、環(huán)境、地質(zhì)、醫(yī)療、建筑、防災(zāi)減災(zāi)等領(lǐng)域也有著十分重要的指導(dǎo)意義[1-5]。中國地面氣象站包括地面國家級(jí)自動(dòng)氣象站和各省的區(qū)域級(jí)自動(dòng)氣象站,站點(diǎn)密集,觀測(cè)頻次高,中國地面氣象資料在天氣監(jiān)測(cè)、氣象預(yù)報(bào)和服務(wù)中發(fā)揮著重要作用。探空站相較于地面站分布稀疏,探空數(shù)據(jù)在氣旋、鋒面、颮線等天氣系統(tǒng)位置和強(qiáng)度的分析判斷、天氣預(yù)報(bào)、人工影響天氣、防災(zāi)減災(zāi)中應(yīng)用廣泛[6]。FY-4A衛(wèi)星具有對(duì)天氣氣候和空間環(huán)境的探測(cè)能力且能夠在靜止軌道上同時(shí)實(shí)現(xiàn)紅外高光譜垂直探測(cè)和閃電探測(cè),在臺(tái)風(fēng)颮線天氣監(jiān)測(cè)、沙塵監(jiān)測(cè)、航空服務(wù)的應(yīng)用中作用突出[7-9]。天氣雷達(dá)在對(duì)突發(fā)性、災(zāi)害性的中小尺度天氣系統(tǒng)監(jiān)測(cè)和預(yù)警、降水定量估計(jì)等天氣分析中被廣泛應(yīng)用[10,11]。歐洲中期數(shù)值預(yù)報(bào)中心ECMWF資料和美國NCEP再分析資料普遍應(yīng)用于大氣環(huán)境預(yù)測(cè)、強(qiáng)對(duì)流天氣發(fā)展演變分析中[12,13]。同城用戶是氣象數(shù)據(jù)共享服務(wù)的重要對(duì)象,考慮網(wǎng)絡(luò)帶寬、用戶數(shù)據(jù)環(huán)境和服務(wù)的特殊性,氣象數(shù)據(jù)服務(wù)采用定制化方案,按需提供,必要時(shí)將氣象數(shù)據(jù)進(jìn)行二次加工后對(duì)接用戶業(yè)務(wù)系統(tǒng)。Shell是一種簡(jiǎn)單、可移植性強(qiáng)的腳本編程語言,Linux系統(tǒng)由于其具有較高的開放性、安全性和穩(wěn)定性在計(jì)算機(jī)服務(wù)領(lǐng)域普遍應(yīng)用,將shell腳本部署在Linux服務(wù)器,可實(shí)現(xiàn)腳本的定時(shí)高效執(zhí)行,顯著提高服務(wù)效率,簡(jiǎn)化運(yùn)維工作量,在各領(lǐng)域已有成熟的應(yīng)用[14-17]。
在用戶服務(wù)器或PC機(jī)部署MICAPS4客戶端作為氣象數(shù)據(jù)展示和分析的基礎(chǔ)平臺(tái),將MICAPS4處理后的氣象數(shù)據(jù)通過分布式高速緩存提供調(diào)閱服務(wù),通過MICAPS4提供服務(wù)的產(chǎn)品包括中國地面觀測(cè)和高空探測(cè)的實(shí)況資料、地面高空的分析產(chǎn)品、西北區(qū)域多普勒雷達(dá)標(biāo)準(zhǔn)格式基數(shù)據(jù)、歐洲中心ECMWF數(shù)值預(yù)報(bào)產(chǎn)品和美國NCEP再分析產(chǎn)品等。另有用戶對(duì)中國地面國家氣象站小時(shí)Z文件數(shù)據(jù)、中國地面區(qū)域站(包括單雨量站)質(zhì)控前數(shù)據(jù)有所需求,但由于氣象數(shù)據(jù)格式化標(biāo)準(zhǔn)化建設(shè)的推進(jìn),中國國家站地面氣象數(shù)據(jù)已經(jīng)實(shí)現(xiàn)了從新Z文件向bufr標(biāo)準(zhǔn)格式的切換,中國地面區(qū)域站的數(shù)據(jù)也接收不到質(zhì)控前格式數(shù)據(jù)的廣播分發(fā)。為滿足用戶需求,文章對(duì)中國地面國家站標(biāo)準(zhǔn)格式氣象數(shù)據(jù)(bufr格式)和中國地面區(qū)域站質(zhì)控后氣象數(shù)據(jù)進(jìn)行了二次加工處理,并將最終處理產(chǎn)品定時(shí)推送至用戶端服務(wù)器。
遵循氣象信息業(yè)務(wù)現(xiàn)代化、集約化、標(biāo)準(zhǔn)化建設(shè)的要求和原則,在甘肅省氣象局Vmware虛擬化資源池中搭建虛擬服務(wù)器,安裝SUSE Linux Enterprise Server 11 SP3(x86_64)操作系統(tǒng),服務(wù)器配置16個(gè)CPU,16 G內(nèi)存和600 G硬盤。采用軟連接方式鏈接數(shù)據(jù)源目錄和程序處理后的數(shù)據(jù)歸檔目錄,歸檔目錄要求開放寫入權(quán)限。配置網(wǎng)絡(luò)和YUM源,打開程序運(yùn)行所需的相關(guān)服務(wù),此外,軟件安裝在本地盤,服務(wù)器時(shí)區(qū)設(shè)置為世界時(shí)(UTC)。
數(shù)據(jù)處理流程為程序從掛載的NAS存儲(chǔ)緩存氣象數(shù)據(jù)至本地目錄,格轉(zhuǎn)子程序進(jìn)行數(shù)據(jù)自動(dòng)批量格式轉(zhuǎn)換,并將格轉(zhuǎn)后的中國地面國家站數(shù)據(jù)新Z文件回寫至NAS進(jìn)行存儲(chǔ),中國地面區(qū)域站轉(zhuǎn)換后數(shù)據(jù)則落盤本地目錄,最后調(diào)用數(shù)據(jù)傳輸程序?qū)⑸傻臍庀笪募l(fā)送至目標(biāo)服務(wù)器,程序運(yùn)行的全流程信息詳細(xì)記錄在程序日志文件中。
中國地面國家級(jí)自動(dòng)氣象站標(biāo)準(zhǔn)格式氣象數(shù)據(jù)向新Z文件的批量轉(zhuǎn)換,通過將緩存文件和全路徑批量傳入格式轉(zhuǎn)換程序?qū)崿F(xiàn),關(guān)鍵代碼如下:
do
cd/tool/format_change/Bufr2NewzTest/
./bufr_format_change_test ${path}/temp_aws_burf_hour/${file##*/}
/tool/format_change/Bufr2NewzTest/Z_SURF*.txt/bclz/zdz/aws_txt_h/${file_time}/
mv./Z_SURF_C*.txt/bclz/zdz/aws_txt_h/${time}/
done
中國地面區(qū)域站資料的二次加工以單個(gè)打包文件為單位進(jìn)行,單雨量站打包文件的文件名為“Z_SURF_C_CCCC-REG_YYYYMMDDHHmmss_O_AWS-PRF_FTM_PQC.txt”,多要素區(qū)域站打包文件的文件名為“Z_SURF_C_CCCC-REG_YYYYMMDDHHmmss_O_AWS_FTM_PQC.txt”,其中CCCC為各省的代碼,比如甘肅省的CCCC碼為BCLZ;YYYYMMDDHHmmss表示文件生成的時(shí)間,例如20210723120000表示該文件生成于世界時(shí)2021-07-23T12:00:00。單雨量站和多要素區(qū)域站打包文件除文件名有差異,數(shù)據(jù)包要素內(nèi)容均以站號(hào)開頭以“=”結(jié)束,每一個(gè)數(shù)據(jù)包有1個(gè)或多個(gè)站點(diǎn)數(shù)據(jù),整個(gè)數(shù)據(jù)包文件以“NNNN”結(jié)尾,可以看出質(zhì)控后的數(shù)據(jù)在文件名和文件內(nèi)容都有明顯的“QC”質(zhì)控碼標(biāo)識(shí)。
實(shí)現(xiàn)質(zhì)控后數(shù)據(jù)向質(zhì)控前數(shù)據(jù)的格式轉(zhuǎn)換,需去除每一站的質(zhì)控碼所在行并添加站點(diǎn)結(jié)束標(biāo)識(shí)。關(guān)鍵代碼如下:
do
file_name=${file##*/}
grep-n ′=′ ${local_process_path}/${file_name}|awk ′{print $1}′|cut-d ′:′-f1 > temp_prf.tmp
while read line
do
sed-i ″$((${line}-1))s/$/=/″ ${local_process_path}/${file_name}
done < temp_prf.tmp
sed-i ″/${reg_qc_code}/d″ ${local_process_path}/${file_name}
sed-i ′/^U/s/000$//g′ ${local_process_path}/${file_name}
sed-i ′/^Y/s/000$//g′ ${local_process_path}/${file_name}
done
經(jīng)格式轉(zhuǎn)換得到的區(qū)域站質(zhì)控前數(shù)據(jù)文件名相較處理前少了“_PQC”字段,文件內(nèi)容沒有了從“QC”至“=”前的部分。
經(jīng)格轉(zhuǎn)后的氣象數(shù)據(jù)采用主動(dòng)推送的方式向用戶端分發(fā)。需要目標(biāo)服務(wù)器開通ftp服務(wù)和相應(yīng)的端口,用戶提供IP地址、端口號(hào)和ftp賬戶信息以及開放寫權(quán)限的數(shù)據(jù)存儲(chǔ)目錄。為同城用戶提供服務(wù)的分布式MICAPS4部分文件數(shù)據(jù)也來自Shell程序的主動(dòng)分發(fā)。
不同氣象數(shù)據(jù)的采集、生成和上傳具有各自的時(shí)間規(guī)律,結(jié)合Linux定時(shí)任務(wù)計(jì)劃和數(shù)據(jù)加鎖機(jī)制配置Shell程序執(zhí)行規(guī)則,有效提高了系統(tǒng)性能和程序執(zhí)行效率,保障了數(shù)據(jù)傳輸?shù)耐暾浴?/p>
Shell程序執(zhí)行的全流程信息均在程序日志中進(jìn)行了記錄,為系統(tǒng)運(yùn)維人員進(jìn)行問題排查和應(yīng)急處理提供了依據(jù),程序依據(jù)日志記錄判斷文件是否經(jīng)過處理,避免了因程序的重復(fù)執(zhí)行造成資源占用和浪費(fèi)。
Shell程序功能強(qiáng)大,部署在可靠、安全、穩(wěn)定的Linux平臺(tái),結(jié)合定時(shí)任務(wù)計(jì)劃,在氣象數(shù)據(jù)分發(fā)、氣象數(shù)據(jù)二次加工處理中發(fā)揮著重要作用。氣象數(shù)據(jù)種類眾多,支撐的業(yè)務(wù)系統(tǒng)和服務(wù)用戶廣泛,通過Shell程序和虛擬化服務(wù)器進(jìn)行整合和統(tǒng)一管理,節(jié)約了程序開發(fā)成本,更減輕了系統(tǒng)運(yùn)維人員的工作負(fù)擔(dān),提高了氣象數(shù)據(jù)的服務(wù)時(shí)效和數(shù)據(jù)服務(wù)質(zhì)量。