李雪松
(四川省氣象探測(cè)數(shù)據(jù)中心,四川 成都 610072)
氣象數(shù)據(jù)傳輸系統(tǒng)為氣象以及氣候預(yù)報(bào)業(yè)務(wù)提供了十分強(qiáng)大的數(shù)據(jù)傳輸基礎(chǔ)條件,Z 文件則作為自動(dòng)氣象站氣象數(shù)據(jù)存儲(chǔ)以及傳輸?shù)囊活惓S梦募袷?,使用非常廣泛。保證自動(dòng)氣象站數(shù)據(jù)正常、完整高效并且高密度地傳輸則是保障氣象預(yù)報(bào)業(yè)務(wù)中預(yù)報(bào)員能及時(shí)、準(zhǔn)確、高效地掌握本地實(shí)時(shí)氣象信息以及準(zhǔn)確預(yù)報(bào)的不可或缺的前提。因此,該類別文件格式數(shù)據(jù)自動(dòng)讀取顯得尤為重要,本次探討用以實(shí)現(xiàn)Z 文件的讀取和顯示,助力預(yù)報(bào)員以及觀測(cè)員對(duì)天氣的分析預(yù)報(bào)和對(duì)數(shù)據(jù)及數(shù)據(jù)傳輸?shù)谋O(jiān)控與觀測(cè),實(shí)用價(jià)值很高[1]。
自動(dòng)氣象站的運(yùn)行原理為多類傳感器采集數(shù)據(jù),傳輸?shù)教幚砥?,處理器按照協(xié)議將數(shù)據(jù)匯總編輯成報(bào)文,各個(gè)地區(qū)按照上一級(jí)管理規(guī)定,通過(guò)數(shù)據(jù)傳輸系統(tǒng)將報(bào)文上傳匯總,那么氣象站則可以實(shí)現(xiàn)自動(dòng)采集數(shù)據(jù)并傳輸使用。氣象站將所采數(shù)據(jù)經(jīng)由處理器處理后存儲(chǔ)為數(shù)據(jù),數(shù)據(jù)以文件的方式存儲(chǔ),各文件存于硬盤當(dāng)中,直接與測(cè)報(bào)業(yè)務(wù)軟件接口互通。采集數(shù)據(jù)文件種類較多,分別由Z 文件、P 文件、T 文件、U 文件、W 文件、R 文件、ZZ 文件、FJ 文件、H 文件、HH 文件組成[2]。氣象數(shù)據(jù)傳輸系統(tǒng)以及監(jiān)控系統(tǒng)目前所傳輸和監(jiān)控抓取的整點(diǎn)時(shí)次的文件大部分為Z 文件,其包含全月逐日逐時(shí)次正點(diǎn)需傳輸?shù)牡孛鏀?shù)據(jù)[3]。
Z 文件的文件名格式是ZIIiiiMM.YYY。在文件名格式當(dāng)中Z 表示指示符,也就是說(shuō),Z 就代表此文件即為Z 文件;IIiii 表示區(qū)站號(hào),各站點(diǎn)處理器編輯報(bào)文后上傳更高一級(jí)站點(diǎn)匯總,每個(gè)站點(diǎn)均有一個(gè)不重復(fù)的區(qū)站號(hào),各個(gè)區(qū)站的區(qū)站號(hào)按照地區(qū)、級(jí)別、建站時(shí)間以及所采集數(shù)據(jù)的種類分別命名;MM 表示月份,月份值不足兩位時(shí)前置補(bǔ)“0”,如“01”;YYY表示當(dāng)時(shí)次所在年份后3 位,如2022 年則為“022”[4]。
Z 文件當(dāng)中自第1 條之后每一條記錄均存儲(chǔ)1 個(gè)要素的正點(diǎn)值,共計(jì)為54 個(gè)正點(diǎn)值[5],分別按照ASCII編碼協(xié)議進(jìn)行編碼后,以字符形式寫(xiě)入,除能見(jiàn)度與最小能見(jiàn)度所占存儲(chǔ)長(zhǎng)度為5 個(gè)字節(jié)以外,其余各要素所占存儲(chǔ)長(zhǎng)度均為4 個(gè)字節(jié),末位兩位為回車換行符字符。所存儲(chǔ)信息分別為時(shí)間(北京時(shí)間的日和時(shí))、2 min 風(fēng)向、2 min 平均風(fēng)速、10 min 平均風(fēng)向、10 min平均風(fēng)速、最大風(fēng)速的風(fēng)向、最大風(fēng)速、最大風(fēng)速時(shí)間、瞬時(shí)風(fēng)向、瞬時(shí)風(fēng)速、極大風(fēng)向、極大風(fēng)速、極大風(fēng)速出現(xiàn)時(shí)間、小時(shí)累計(jì)降水量、氣溫、最高氣溫、最高氣溫出現(xiàn)時(shí)間、最低氣溫、最低氣溫出現(xiàn)時(shí)間、濕球溫度、濕敏電容濕度值、相對(duì)濕度、最小相對(duì)濕度、最小相對(duì)濕度出現(xiàn)時(shí)間、水汽壓、露點(diǎn)溫度、本站氣壓、最高本站氣壓、最高本站氣壓出現(xiàn)時(shí)間、最低本站氣壓、最低本站氣壓出現(xiàn)時(shí)間、草面(雪面)溫度、草面(雪面)最高溫度、草面(雪面)最高溫度出現(xiàn)時(shí)間、草面(雪面)最低溫度、草面(雪面)最低溫度出現(xiàn)時(shí)間、地面溫度、地面最高溫度、地面最高溫度出現(xiàn)時(shí)間、地面最低溫度、地面最低溫度出現(xiàn)時(shí)間、5 cm 地溫、10 cm 地溫、15 cm 地溫、20 cm地溫、40 cm 地溫、80 cm 地溫、160 cm 地溫、320 cm地溫、小時(shí)累計(jì)蒸發(fā)量、小時(shí)累計(jì)日照、能見(jiàn)度(5 個(gè)字節(jié))、最小能見(jiàn)度(5 個(gè)字節(jié))、最小能見(jiàn)度出現(xiàn)時(shí)間、回車換行(2 個(gè)字節(jié))[6]。
在使用Z 文件存儲(chǔ)、傳輸、讀取以及后期處理時(shí),則使用Z 文件步驟如下:①按照協(xié)議分別讀取各字段數(shù)據(jù)信息;②按規(guī)定對(duì)所讀信息進(jìn)行加工處理;③按文件存儲(chǔ)逆向還原單位、還原數(shù)值倍數(shù)以及詳情解析等;④重新整理即顯示與處理之后,新文件存儲(chǔ)時(shí)按照一定的規(guī)則入存[7]。
各要素在編碼和逆編碼中有如下規(guī)則,此以順向編碼為例。時(shí)間(日和時(shí))作為記錄識(shí)別標(biāo)志用,日、時(shí)各兩位,高位不足補(bǔ)“0”;在數(shù)據(jù)當(dāng)中“日”為北京時(shí)間日期,“時(shí)”為正點(diǎn)小時(shí),正點(diǎn)值的含義是指北京時(shí)間正點(diǎn)采集的數(shù)據(jù);日照數(shù)據(jù)采用的時(shí)間制度略有不同,是地方平均太陽(yáng)時(shí),也就是以太陽(yáng)落下為一天的結(jié)束;日照、各極值和小時(shí)累計(jì)降水為地方平均太陽(yáng)時(shí)上一正點(diǎn)時(shí)次觀測(cè)至本正點(diǎn)時(shí)次觀測(cè)內(nèi)日照總量、極值和小時(shí)累計(jì)降水量[8];日照的單位是1 min,降水和蒸發(fā)量的單位是0.1 mm,則降水和蒸發(fā)還原時(shí)必須進(jìn)行逆編碼處理,即為縮小10 倍;若氣壓值超過(guò)1 000.0 hPa(含1 000.0 hPa),將氣壓值減去1 000.0再乘以10 后存入,氣壓及水氣壓的單位是0.1 hPa[9],同樣的,還原氣壓和水氣壓數(shù)據(jù)時(shí)仍需逆編碼,在除以10 過(guò)后判斷是否需要加上1 000.0;若濕敏電容測(cè)定濕度除在濕敏電容數(shù)據(jù)位寫(xiě)入數(shù)據(jù)值外,所求得的相對(duì)濕度值存入相對(duì)濕度數(shù)據(jù)位,濕球溫度位存入“****”;濕度單位為1%,溫度、露點(diǎn)溫度單位為0.1 ℃,還原時(shí)仍需縮小10 倍;如無(wú)降水,降水量則存入4 位空格,微量降水存入“0000”,雨量缺測(cè)或雨量傳感器停止使用期(如故障等)存入“----”,其余數(shù)據(jù)如有缺測(cè),每字節(jié)存入字符“/”[10];風(fēng)向數(shù)據(jù)的單位是1°,風(fēng)速數(shù)據(jù)的單位是0.1 m/s,能見(jiàn)度數(shù)據(jù)的單位是1 m,則風(fēng)向數(shù)據(jù)和能見(jiàn)度數(shù)據(jù)取用時(shí),數(shù)值保持不變,直接添加單位即可,風(fēng)速數(shù)據(jù)使用時(shí)則需縮小10 倍。
本應(yīng)用旨在讀取Z 文件數(shù)據(jù)并加以顯示,其主要功能為:①逐時(shí)次全氣象要素顯示;②實(shí)現(xiàn)歷月極值、最值、平均值的自動(dòng)計(jì)算與顯示;③實(shí)現(xiàn)部分氣象要素轉(zhuǎn)換,以方便查視各要素。讀取Z 文件采取下述顯示方式:①單要素查詢,以及固定月、日、時(shí)的單一要素查詢;②正點(diǎn)資料查詢,以及逐月各要素查詢;③實(shí)時(shí)數(shù)據(jù)與狀態(tài)查詢,以及基本要素實(shí)時(shí)圖像化顯示,并繪制要素在24 h 內(nèi)數(shù)據(jù)的變化曲線。
在文件的第一行當(dāng)中,數(shù)據(jù)為站點(diǎn)參數(shù)信息,所占存儲(chǔ)長(zhǎng)度一共是220 個(gè)字節(jié),第1 個(gè)數(shù)據(jù)到第51 個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)所占存儲(chǔ)長(zhǎng)度為4 個(gè)字節(jié),則共計(jì)為204 個(gè)字節(jié),第52 個(gè)數(shù)據(jù)資料和第53 個(gè)數(shù)據(jù)資料為能見(jiàn)度,分別各占5 個(gè)字節(jié),則共計(jì)為10 個(gè)字節(jié),第54 個(gè)數(shù)據(jù)所占存儲(chǔ)長(zhǎng)度為4 個(gè)字節(jié),最后,回車換行符號(hào)共占存儲(chǔ)長(zhǎng)度為2 個(gè)字節(jié),按照其協(xié)議規(guī)則分別在程序當(dāng)中定義各變量后將數(shù)據(jù)讀取即可[11]。
在Z 文件當(dāng)中,除基本信息與格式信息以外,共計(jì)有53 個(gè)有效可用數(shù)據(jù),這53 個(gè)數(shù)據(jù)可分為9 種不同的類型,如風(fēng)相關(guān)資料有2 min 風(fēng)向、2 min 平均風(fēng)速、10 min 平均風(fēng)向、10 min 平均風(fēng)速、最大風(fēng)速的風(fēng)向、最大風(fēng)速、最大風(fēng)速時(shí)間、瞬時(shí)風(fēng)向、瞬時(shí)風(fēng)速、極大風(fēng)向、極大風(fēng)速、極大風(fēng)速出現(xiàn)時(shí)間,這些均可歸為一種類型的數(shù)據(jù),便于處理。溫度包含有氣溫、最高氣溫、最高氣溫出現(xiàn)時(shí)間、最低氣溫、最低氣溫出現(xiàn)時(shí)間、濕球溫度。濕度包含有濕敏電容濕度值、相對(duì)濕度、最小相對(duì)濕度、最小相對(duì)濕度出現(xiàn)時(shí)間。氣壓包含有水汽壓、露點(diǎn)溫度、本站氣壓、最高本站氣壓、最高本站氣壓出現(xiàn)時(shí)間、最低本站氣壓、最低本站氣壓出現(xiàn)時(shí)間。草溫包含有草面(雪面)溫度、草面(雪面)最高溫度、草面(雪面)最高溫度出現(xiàn)時(shí)間、草面(雪面)最低溫度、草面(雪面)最低溫度出現(xiàn)時(shí)間。地溫包含有地面溫度、地面最高溫度、地面最高溫度出現(xiàn)時(shí)間、地面最低溫度、地面最低溫度出現(xiàn)時(shí)間、5 cm 地溫、10 cm 地溫、15 cm 地溫、20 cm 地溫、40 cm 地溫、80 cm 地溫、160 cm 地溫、320 cm 地溫。能見(jiàn)度包含有能見(jiàn)度(5 個(gè)字節(jié))、最小能見(jiàn)度(5 個(gè)字節(jié))、最小能見(jiàn)度出現(xiàn)時(shí)間。蒸發(fā)和日照可歸為一類,包含有小時(shí)累計(jì)蒸發(fā)量、小時(shí)累計(jì)日照。降水單獨(dú)一類包含小時(shí)累計(jì)降水量。
照此推演9 類數(shù)據(jù)分別是風(fēng)、降水、溫度、濕度、氣壓、草溫、地溫、蒸發(fā)與日照、能見(jiàn)度,均可集成化處理。在程序當(dāng)中定義9 個(gè)不同的類,分別將需查詢的9 個(gè)不同要素的數(shù)據(jù)封裝于所定義的9 個(gè)不同的類當(dāng)中。操作時(shí),在查詢中選擇時(shí)間(即年、月、日)查詢,查詢時(shí)編寫(xiě)搜索函數(shù),依次讀取所查要素?cái)?shù)據(jù),并顯示存儲(chǔ)[12]。
若正點(diǎn)資料查詢時(shí),首先選擇所需查詢要素種類,其次選擇查詢類別,最后選擇查詢年月,以表格方式查出整月數(shù)據(jù)。該方法可以對(duì)每月各要素?cái)?shù)據(jù)進(jìn)行查詢,查詢之后則按照當(dāng)前查詢的單要素或當(dāng)前的主查詢要素導(dǎo)出文件并存儲(chǔ)。
該應(yīng)用當(dāng)中,實(shí)現(xiàn)實(shí)時(shí)正點(diǎn)Z 文件常規(guī)氣象要素變化波形可視化顯示的要素包括風(fēng)速、風(fēng)向、溫度、濕度、氣壓、降水量、蒸發(fā)量等。首先在程序里面添加并繪制窗體,然后在新窗體上添加并繪制各類控件,用以實(shí)現(xiàn)各類氣象要素逐時(shí)次曲線圖的自動(dòng)化繪制。例如1 m i n 內(nèi)風(fēng)向變化、1 m i n 內(nèi)風(fēng)速變化、24 h 內(nèi)空氣濕度變化、24 h 內(nèi)降水量變化以及24 h 內(nèi)本站氣壓的變化曲線的自動(dòng)化繪制。
頁(yè)面為窗口設(shè)計(jì),窗口上方為下拉菜單,下拉菜單中分為風(fēng)要素、小時(shí)累計(jì)降水量要素、溫度要素、濕度要素、氣壓要素、草面溫度要素、地面溫度要素、蒸發(fā)量與日照要素和能見(jiàn)度各氣象要素。
查詢單個(gè)要素步驟,以風(fēng)要素為例展示,首先在彈出對(duì)話框中輸入月、日、時(shí)(如11 月9 日7 時(shí)),然后點(diǎn)擊“查詢”按鈕,則會(huì)在對(duì)話框當(dāng)中顯示出如下信息,則看到2 min 平均風(fēng)向?yàn)?12°、2 min 平均風(fēng)速為0.3 m/s、10 min 平均風(fēng)向?yàn)?12°、10 min 平均風(fēng)速為0.3 m/s、最大風(fēng)速為0.7 m/s、最大風(fēng)速的風(fēng)向?yàn)?12°、最大風(fēng)速出現(xiàn)時(shí)間為06:01、分鐘內(nèi)最大瞬時(shí)風(fēng)速為0.3 m/s、分鐘內(nèi)最大瞬時(shí)風(fēng)速的風(fēng)向?yàn)?12°、極大風(fēng)速為0.6 m/s、極大風(fēng)向?yàn)?12°、極大風(fēng)速出現(xiàn)時(shí)間為06:01。
可查詢各要素整月正點(diǎn)數(shù)據(jù),包括風(fēng)、降水、溫度、濕度、氣壓、草地溫度、地面溫度以及其他要素,首先選擇查詢要素后,然后選擇查詢?cè)滦畔⒘?,最后可存?chǔ)為TXT 文件,也可以在彈窗上按照表格的形式顯示。所顯示的表格橫軸為時(shí),縱軸為日,每月有約30 d,每日有24 h,所以表格橫軸有24 列,縱軸有約30 行,從而出現(xiàn)24×30 的表格,通過(guò)表格便可一目了然查詢出所需數(shù)據(jù)。
上述查詢方式及結(jié)果均采取多次、反復(fù)人工隨機(jī)校對(duì),依據(jù)與其他平臺(tái)的驗(yàn)證和對(duì)比,讀取結(jié)果正確率100%,無(wú)錯(cuò)誤讀取情況。
根據(jù)自動(dòng)氣象站數(shù)據(jù)存儲(chǔ)格式及傳輸協(xié)議,實(shí)現(xiàn)Z文件的多種讀取方式。本應(yīng)用可移植性強(qiáng)、方便使用、圖標(biāo)顯示直觀、查詢便捷、易于維護(hù)、使用頻率高、業(yè)務(wù)效率強(qiáng),可為參與預(yù)報(bào)業(yè)務(wù)的預(yù)報(bào)員以及資料分析和氣候研究的工作人員提供精準(zhǔn)、及時(shí)并且高效的數(shù)據(jù)自動(dòng)化讀取、處理與顯示,為預(yù)報(bào)、分析和研究提供了實(shí)況及歷史資料的參考,為測(cè)報(bào)以及監(jiān)控人員提供數(shù)據(jù)監(jiān)控的查詢平臺(tái),為負(fù)責(zé)數(shù)據(jù)質(zhì)量控制及優(yōu)化的工作人員提供了修改的基礎(chǔ)。有助于在預(yù)報(bào)業(yè)務(wù)、數(shù)據(jù)分析以及氣候研究上,根據(jù)天氣過(guò)程中本地氣象要素的演變,總結(jié)預(yù)報(bào)、分析和研究的方法,也能為觀測(cè)儀器的運(yùn)行現(xiàn)狀即狀態(tài)數(shù)據(jù)提供信息依據(jù),同時(shí),對(duì)其他氣象類靜態(tài)文件的讀取、處理以及顯示有較大的促進(jìn)作用[13]。