梁 慧
(梧州市氣象局,廣西 梧州 543002)
隨著氣象業(yè)務(wù)發(fā)展的需要,對雷達資料的整理、存儲和歸檔的工作量也不斷增加。新一代天氣雷達采用VCP21 降水模式,每6min 一次體掃,生成1 個基數(shù)據(jù)文件及20 多個種類的產(chǎn)品,汛期一天就會產(chǎn)生240 個基數(shù)據(jù)文件和7000 多個數(shù)據(jù)產(chǎn)品。數(shù)據(jù)浩繁,信息量大。對數(shù)據(jù)備份及后期整編挑戰(zhàn)頗大。針對該問題,很多雷達臺站及相關(guān)部門針對雷達資料的管理做了大量的工作[1-8]。基于目前現(xiàn)狀,梧州市氣象站開發(fā)實現(xiàn)了自動雷達數(shù)據(jù)整理存儲及自動化、批量化、流程化和標準化個例整編軟件,解決大量的人力物力,減少人為出錯,提高雷達數(shù)據(jù)備份效率及整編的準確性。
整個系統(tǒng)具體任務(wù)流程:第一步,在新一代天氣雷達RDA(雷達數(shù)據(jù)采集單元)中生成基數(shù)據(jù),然后選擇CINRAD,文件名選擇CMA (SB),壓縮選擇(BZ2),文件夾結(jié)構(gòu)選擇按天分目錄。第二步,新一代天氣雷達在RDA(雷達數(shù)據(jù)采集單元)中生成狀態(tài)信息,然后在RPG(雷達產(chǎn)品生產(chǎn)單元)中將狀態(tài)信息文件歸檔保存在該系統(tǒng)的RadarMonitorbak 目錄中,新生成的狀態(tài)信息不按天分目錄,無壓縮。第三步,新一代天氣雷達在RPG(雷達產(chǎn)品生產(chǎn)單元)中生產(chǎn)產(chǎn)品,將產(chǎn)品文件歸檔保存在該系統(tǒng)的productbak 目錄中,格式選擇CINRAD,文件名選擇CMA(SB),壓縮選擇None,文件夾結(jié)構(gòu)選擇按天分目錄。本文通過另外一臺電腦映射網(wǎng)絡(luò)驅(qū)動器的方式 把 Archive 目 錄、RadarMonitorbak 目錄和productbak 目錄映射到一個網(wǎng)絡(luò)磁盤中,使在RPG和PUP 中不增加任何開銷。并通過定時處理程序把Archive 目錄中的基數(shù)據(jù)、RadarMonitorbak 目錄中的狀態(tài)信息和productbak 目錄中的雷達產(chǎn)品按月按天整理存儲到網(wǎng)絡(luò)磁盤,基數(shù)據(jù)目錄為archive,雷達產(chǎn)品目錄為products,狀態(tài)信息目錄為rscts。數(shù)據(jù)備份出來后,對新一代天氣雷達災(zāi)害性天氣過程個例資料進行整編。在基數(shù)據(jù)、狀態(tài)信息和雷達產(chǎn)品按年月日整理存儲的基礎(chǔ)上,按照中國氣象局相關(guān)業(yè)務(wù)規(guī)范,對災(zāi)害性天氣過程個例資料整編。系統(tǒng)總體框圖詳見圖1。
圖1 系統(tǒng)總體框圖
根據(jù)目前中國氣象局相關(guān)業(yè)務(wù)規(guī)定,在雷達個例資料整編工作任務(wù)中,首先收集災(zāi)害性天氣過程發(fā)生情況,收集、匯總和整理災(zāi)害性天氣發(fā)生時間、地點、災(zāi)情損失,以及常規(guī)氣象資料收集等基礎(chǔ)工作。其次,根據(jù)雷達個例資料整編的規(guī)定,在雷達數(shù)據(jù)整理存儲的基礎(chǔ)上,按照一定步驟自動完成雷達個例資料整編任務(wù)。
基數(shù)據(jù)、雷達產(chǎn)品和狀態(tài)信息的文件名格式整編前后對比分析見表1。
表1 雷達個例文件名整編前后對比分析
雷達個例整編前的目錄結(jié)構(gòu),一級目錄下有“archive”、“rscts” 和 “products” 三個目錄;目錄“archive” 下二級目錄是 “YYYY”,三級目錄是“YYYYMM”,四級目錄是 “YYYYMMDD”;目錄“rscts” 下二級目錄是“YYYY”,三級目錄是“YYYYMM”,四級目錄是 “YYYYMMDD”;目錄“products” 下二級目錄是 “YYYY”,三級目錄是“YYYYMM”,四級目錄是“IIiii -YYYYMMDD”,五級目錄和六級目錄詳見表2。
表2 雷達個例整編前五級和六級目錄結(jié)構(gòu)
雷達個例整編后目錄結(jié)構(gòu):一級目錄名為“雷達個例_ 市名_YYYYMMDDhhmmss-YYYYMMDDhhmmss”,其中“YYYYMMDDhhmmss-YYYYMMDDhhmmss”為該個例起止時間;一級目錄下有“資料數(shù)據(jù)”和“備注”兩個二級目錄;二級目錄“資料數(shù)據(jù)”下有“(1)時間說明文件”、“(2)過程的基數(shù)據(jù)”、“(3)產(chǎn)品數(shù)據(jù)”和“(4)雷達狀態(tài)信息”四個三級目錄,分別存放“time.txt”文件、改名壓縮后的基數(shù)據(jù)文件、改名壓縮后的產(chǎn)品數(shù)據(jù)文件和改名后的雷達狀態(tài)信息文件;二級目錄“備注”下有“(5)天氣過程描述”、“(6)災(zāi)情實況”和“(7)雷達運行情況及說明”三個三級目錄,分別存放 “description.doc” 文件、“disaster.doc”文件和“explain.doc”文件。三級目錄下不能有子目錄。
運行主程序,出現(xiàn)界面,根據(jù)提示“請輸入連續(xù)天數(shù)(日)”、循環(huán)“請輸入連續(xù)日期格式(YYYYMMDD)”、“請輸入開始時次(格式:hh):”和“請輸入結(jié)束時次(格式:hh):”輸入相關(guān)信息,回車,主程序調(diào)用子程序,子程序分別調(diào)用“基數(shù)據(jù)文件重命名函數(shù)”、“雷達狀態(tài)信息重命名函數(shù)”和“雷達產(chǎn)品重命名和壓縮函數(shù)”,運行結(jié)束后,備份的目錄和文件自動形成整編要求的目錄和文件。以下函數(shù)以具體日期為例子。
調(diào)用基數(shù)據(jù)重命名函數(shù)“rename_archive(argv_1,argv_2)”,argv_2 為參數(shù) “d:\rad\ 雷達個例_ 梧州_20201129080000-20201130080000”,將參數(shù)“2020 1129”拆分年“2020”和 月“11”,將字符串“2020”、“11”、“20201129”和“\\ 資料數(shù)據(jù)\\ 過程的基數(shù)據(jù)”合成需 要存放 的路徑 “D:\rad\ 雷達個例_ 梧州_20201129080000-20201130080000\ 資料數(shù)據(jù)\ 過程的基數(shù)據(jù)”,用命令“Dir D:\rad\archive\2020\202011\20201129\*.*/B>basedatalog.txt”,將基數(shù)據(jù)目錄下的所有文件名導出到“basedatalog.txt”文本,打 開“basedatalog.txt”文 本,循環(huán)讀取“basedatalog.txt”文本下所有文件名。
以整型結(jié)構(gòu)存儲文件名總數(shù),關(guān)閉“basedatalog.txt”文件,以文件名總數(shù)循環(huán)值作為循環(huán)次數(shù),用數(shù)組結(jié)構(gòu)存儲文件名的前36 個字符“Z_RADR_I_Z9774_20201129000100_O_DOR_”。
用“copy”命令將“D:\rad\archive\”目錄下的基數(shù)據(jù)拷貝到“D:\rad\雷達個例_梧州_20201129080000-20201130080000\ 資料數(shù)據(jù)\ 過程的基數(shù)據(jù)”目錄下,以文件名總數(shù)循環(huán)值作為循環(huán)次數(shù),用“rename”命令將“D:\rad\雷達個例_梧州_20201129080000-20201130080000\ 資料數(shù)據(jù)\ 過程的基數(shù)據(jù)” 目錄下的文件重命名。
調(diào)用狀態(tài)信息重命名函數(shù)“rename_rscts(argv_1,argv_2)”,argv_2 為參數(shù) “d:\rad\ 雷達個例_ 梧州_20201129080000-20201130080000”,將參數(shù)“2020 1129”拆分年“2020”和 月“11”,將字符串“2020”、“11”、“20201129”和“\\ 資料數(shù)據(jù)\\ 雷達狀態(tài)信息”合成需要存放的路徑 “D:\rad\ 雷達個例_ 梧州_20201129080000-20201130080000\ 資料數(shù)據(jù)\ 雷達狀態(tài)信息”,用命令“Dir D:\rad\rscts\2020\202011\20201129\*.*/B> rsctslog.txt”,將基數(shù)據(jù)目錄下的所有文件名導出到“rsctslog.txt”文本,打開“rsctslog.txt”文本,循環(huán)讀取“rsctslog.txt”文本下所有文件名
關(guān)閉“rsctslog.txt”文件,以文件名總算為循環(huán)值循環(huán)次數(shù),存儲文件名的第13 至24 個字符“202011290004”,以文件名總數(shù)作為循環(huán)值。
用“copy”命令將“D:\rad\rscts \”目錄下的狀態(tài)信息拷貝到“D:\rad\ 雷達個例_ 梧州_20201129 080000-20201130080000\ 資料數(shù)據(jù)\ 雷達狀態(tài)信息”目錄下,在拷貝的過程中把文件名重命名
調(diào)用雷達產(chǎn)品重命名函數(shù)“rename_products(argv_1,argv_2)”,argv_1 為參數(shù)“20201129”,argv_2為參數(shù)“d:\rad\ 雷達個例_ 梧州_20201129080000-20201130080000”,將參數(shù)“20201129”拆分年“2020”和月“11”,將字符串“2020”、“11”、“20201129”和“\\資料數(shù)據(jù)\\產(chǎn)品數(shù)據(jù)”合成需要存放的路徑“D:\rad\雷達個例_梧州_20201129080000-20201130080000\資料數(shù)據(jù)\ 產(chǎn)品數(shù)據(jù)”,用命令“Dir D:\rad\products\2020\202011\Z9774 -20201129\CAR\110\Z*.*/B >productslog110.txt”。
將產(chǎn)品目錄下的Z 開頭的文件名導出到“productslog110.txt”文本,打開“productslog110.txt”文本,循環(huán)讀取“productslog110.txt”文本下所有文件名。
以二維數(shù)組結(jié)構(gòu)存儲文件名,以整型結(jié)構(gòu)存儲文件名總數(shù),關(guān)閉“productslog110.txt”文件,以文件名總數(shù)作為循環(huán)值,調(diào)用函數(shù)products_prefix(j),j為循環(huán)第幾個文件,用“copy”命令將“D:\rad\products\2020\202011\Z9774-20201129\CAR\110\*.*”所有文件拷貝到“D:\rad\ 雷達個例_ 梧州_2020112908 0000-20201130080000\ 資料數(shù)據(jù)\ 產(chǎn)品數(shù)據(jù)” 目錄下,在拷貝的過程中把文件名重命名,重命名后利用壓縮工具“bzip2.exe”壓縮文件。
采用同樣的方法對產(chǎn)品37、38、87、41、59、33、60、78、19、20、56、62、58、80、79、61、26、27、57、48 和53 進行重命名壓縮。
雷達產(chǎn)品重命名和壓縮函數(shù)流程圖詳見圖2,雷達基數(shù)據(jù)、狀態(tài)信息文件名處理流程與圖2 的雷達產(chǎn)品重命名相似(略)。
圖2 雷達產(chǎn)品重命名和壓縮函數(shù)流程圖
新一代天氣雷達個例資料整編系統(tǒng)具有自動建立整理資料所需的各類文件夾和文件,自動完成基數(shù)據(jù)、產(chǎn)品數(shù)據(jù)、雷達狀態(tài)信息等文件重命名。界面簡單,操作直觀,實現(xiàn)了個例資料整編的自動化、批量化、流程化和標準化。本文系統(tǒng)地介紹了雷達個例資料整編的實現(xiàn)。系統(tǒng)在南寧、玉林、防城港、梧州、青海、海南和秦皇島等天氣雷達站投入試用,試用以來運行穩(wěn)定可靠,提高了業(yè)務(wù)人員工作時效性,便于在其他新一代天氣雷達站進行移植推廣。