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