高雅潔,劉奕辰,張 玲,李 閣
(濟(jì)南市章丘區(qū)氣象局,山東 濟(jì)南 250200)
高空氣象觀測(cè)業(yè)務(wù)是對(duì)大氣的垂直空間的溫度、氣壓、濕度、風(fēng)向、風(fēng)速等氣象要素的變化進(jìn)行觀測(cè)、收集、處理的工作,是對(duì)天氣預(yù)報(bào)制作、大氣探究具有重要意義的基礎(chǔ)觀測(cè)業(yè)務(wù)。
隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,windows xp系統(tǒng)已經(jīng)告別市場(chǎng),臺(tái)站使用的業(yè)務(wù)計(jì)算機(jī)也陸續(xù)開(kāi)始升級(jí)到windows 7操作系統(tǒng)。過(guò)去本站一直使用著業(yè)務(wù)人員自行編寫(xiě)的發(fā)送高空壓、溫、濕、風(fēng)(TTAA、TTBB、TTCC、TTDD)和高空風(fēng)(PPBB、PPDD)報(bào)文的軟件(以下以TTAA代指此6份報(bào)),雖然該軟件功能較為單一(僅傳輸TTAA報(bào)),但使用起來(lái)十分方便,界面簡(jiǎn)潔,易于操作。然而,更換到windows 7系統(tǒng)后,由于該軟件落后于系統(tǒng),致使無(wú)法使用;再者,全國(guó)探空站業(yè)務(wù)升級(jí),新增添了BUFR報(bào)與XML報(bào)傳輸。為了適應(yīng)新的要求,用軟件進(jìn)行發(fā)送此類(lèi)數(shù)據(jù)報(bào),將十分便捷。結(jié)合本站實(shí)際情況,本文對(duì)編寫(xiě)的新探空軟件進(jìn)行分析與實(shí)現(xiàn)說(shuō)明,程序由臺(tái)站業(yè)務(wù)人員親自編寫(xiě)并對(duì)程序進(jìn)行維護(hù),更加貼合實(shí)際,方便實(shí)用。
信息技術(shù)的普及,計(jì)算機(jī)的更新?lián)Q代,對(duì)軟件的要求也有所提高。由于編程語(yǔ)言的更新與淘汰,過(guò)去編寫(xiě)的發(fā)報(bào)軟件在windows 7系統(tǒng)中無(wú)法運(yùn)行。雖然L波段放球處理軟件中含有發(fā)送報(bào)文的功能,但是它將所有報(bào)文都集合到了一個(gè)發(fā)報(bào)界面上,雖然可以使用,但存在以下不足:第一不夠智能化。如回執(zhí)報(bào)文無(wú)法自動(dòng)下載。由于近期新增添了BUFR報(bào)與XML報(bào)并行傳輸。再者,有許多本站不需要發(fā)送的報(bào)文和不需要觀測(cè)的業(yè)務(wù),但是該軟件將其全部整合到一起,用起來(lái)并不順手;第二它是處理軟件的一部分,稍有發(fā)送失敗等問(wèn)題就可能使計(jì)算機(jī)崩潰死機(jī),影響正常業(yè)務(wù)值班。
另外,因山東省氣象信息中心更新的服務(wù)器在定時(shí)刷新時(shí)存在基數(shù)據(jù)和監(jiān)控報(bào)報(bào)文上傳不完全的問(wèn)題:即當(dāng)報(bào)文只傳送了一部分,服務(wù)器刷新時(shí),就會(huì)造成報(bào)文缺報(bào)、漏報(bào)等問(wèn)題。遇此情況,就需要手動(dòng)修改報(bào)文名稱(chēng),上傳之后還需要再次修改方可正常傳輸,操作繁瑣且容易出錯(cuò)。如將此部分用軟件加以實(shí)現(xiàn),將提高值班員工作效率,降低失誤率。
本軟件使用C#語(yǔ)言,在windows 7環(huán)境下,使用visual studio 2010開(kāi)發(fā)。軟件以windows窗體的形式顯示,簡(jiǎn)潔、直觀。
軟件設(shè)計(jì)是重點(diǎn),本軟件需要將許多瑣碎的功能集合在一起,既要面面俱到,又要簡(jiǎn)潔易操作??紤]到軟件的易用性,界面盡可能簡(jiǎn)潔。基于報(bào)文種類(lèi)較多,且各類(lèi)報(bào)文的發(fā)送與回執(zhí)獲取的方式、地址等也不盡相同。因此使用標(biāo)簽選項(xiàng)來(lái)進(jìn)行功能切換最為合適,各類(lèi)報(bào)文的收發(fā)互不干擾。將高空值班各類(lèi)報(bào)文囊括其中,做到智能發(fā)報(bào),高效值班。按照?qǐng)?bào)文種類(lèi)來(lái)進(jìn)行界面的劃分,并針對(duì)各類(lèi)報(bào)文的收發(fā)方式做出如下設(shè)計(jì)。
(1)探空測(cè)風(fēng)報(bào)文:其報(bào)文文件名是按照世界時(shí)命名的。在讀取方面需要將文件名重組為北京時(shí)。之后做一個(gè)匹配,匹配成功即為當(dāng)前所需發(fā)送報(bào)文。遍歷報(bào)文存儲(chǔ)文件夾,按照要求自動(dòng)搜尋所有匹配成功的報(bào)文,將其加入發(fā)送列表。隨后進(jìn)行發(fā)送與回執(zhí)下載。
(2)基數(shù)據(jù)、監(jiān)控報(bào)報(bào)文傳輸和回執(zhí)下載:此類(lèi)報(bào)文在發(fā)送時(shí)有一個(gè)問(wèn)題,臺(tái)站過(guò)去使用復(fù)制粘貼的形式將報(bào)文復(fù)制到ftp傳輸文件夾中進(jìn)行發(fā)送,由于服務(wù)器的定時(shí)刷新這兩種報(bào)文發(fā)送時(shí)有缺報(bào)、漏報(bào)的問(wèn)題。需要手動(dòng)添加tmp后綴,粘貼至服務(wù)器后,再刪除tmp后綴,操作十分繁瑣且易出錯(cuò),且咨詢本省其他探空站為解決報(bào)文丟包問(wèn)題,采用的是手動(dòng)修改報(bào)文名稱(chēng)中的時(shí)間項(xiàng)的方式,并未有更簡(jiǎn)捷的方式避免丟包。因此,用軟件來(lái)處理這一系列的操作。由于本類(lèi)報(bào)文回執(zhí)的生成有一定的延時(shí),因此回執(zhí)下載設(shè)計(jì)為自動(dòng)下載。
(3)BUFR報(bào)文:對(duì)于整個(gè)高空業(yè)務(wù)來(lái)說(shuō),BUFR報(bào)與XML報(bào)文是新增添的報(bào)文類(lèi)型,這也是本軟件面對(duì)的一個(gè)新業(yè)務(wù)要求。BUFR報(bào)文的讀取是關(guān)鍵,不僅需要區(qū)分開(kāi)07時(shí)和19時(shí),還要區(qū)分開(kāi)500Hpa,100Hpa,探空終止這三類(lèi)。設(shè)計(jì)按照?qǐng)?bào)文的生成時(shí)間來(lái)判斷發(fā)報(bào)時(shí)次。通過(guò)對(duì)報(bào)文名稱(chēng)的分析,其中有后3類(lèi)報(bào)文的區(qū)別,按此進(jìn)行區(qū)分。
(4)XML報(bào)文的傳輸與回執(zhí)下載:XML報(bào)文可以說(shuō)是新格式下的基數(shù)據(jù)、監(jiān)控報(bào),其上傳與回執(zhí)下載方式與基數(shù)據(jù)、監(jiān)控報(bào)基本相同。
(5)月報(bào)發(fā)送:僅需每月4日發(fā)送,有一定的遺漏性,軟件考慮加入報(bào)文發(fā)送提醒功能,這功能在很大程度上可以避免漏發(fā)月報(bào)的問(wèn)題。
(6)參數(shù)設(shè)置:本軟件的設(shè)計(jì)初衷考慮到后續(xù)的升級(jí)問(wèn)題,為了適應(yīng)業(yè)務(wù)需求,順應(yīng)業(yè)務(wù)改革,本軟件必須要做出相應(yīng)升級(jí)。因此不能將發(fā)報(bào)地址、存儲(chǔ)地址、用戶名、密碼等固化在程序中。要做到可以手動(dòng)修改這些參數(shù)。
(7)考慮到是否會(huì)需要發(fā)送加密觀測(cè)時(shí)次的報(bào)文,需要增加手動(dòng)選擇報(bào)文的發(fā)報(bào)功能。
軟件功能設(shè)計(jì)如圖1所示。
圖1 功能設(shè)計(jì)方框圖
TTAA報(bào)文在讀取文件時(shí),文件名作為讀取的依據(jù)。在這里對(duì)文件名進(jìn)行一下分析:如UP011200.EJN,UP 后的數(shù)拆為 3 組,01、12、00,分別表示日期、時(shí)次、報(bào)文序號(hào),時(shí)間為世界時(shí)。將本地時(shí)間讀取后轉(zhuǎn)換為世界時(shí),與文件中的時(shí)次進(jìn)行比對(duì),并將該文件夾下的目標(biāo)報(bào)文篩選讀取出來(lái)。
基數(shù)據(jù)與監(jiān)控報(bào)的傳輸流程:1顯示報(bào)文→2修改文件名后綴→3報(bào)文上傳至ftp服務(wù)器→4刪除后綴,恢復(fù)文件名→5自動(dòng)下載回執(zhí)
回執(zhí)下載時(shí),先判斷兩種報(bào)文的回執(zhí)是否均已生成,只有在回執(zhí)全部生成的情況下,才執(zhí)行回執(zhí)下載的操作。使用timer控件進(jìn)行自動(dòng)回執(zhí)下載,根據(jù)計(jì)算機(jī)性能以及回執(zhí)通常的生成時(shí)間,設(shè)計(jì)為每隔20秒進(jìn)行一次回執(zhí)下載操作。直到回執(zhí)成功下載,結(jié)束timer,并彈出成功下載的提示。
2017年9月1日起,全國(guó)探空站均進(jìn)行了報(bào)文升級(jí),所有探空站均需在發(fā)送原有報(bào)文的基礎(chǔ)上并行編發(fā)BUFR報(bào)與XML報(bào)文。
(1)BUFR報(bào):根據(jù)最新的標(biāo)準(zhǔn)格式文件(BUFR)傳輸規(guī)定,綜合探測(cè)07時(shí)需要按500hPa、100 hPa、探測(cè)終止傳輸三次BUFR報(bào)文,綜合探測(cè)19時(shí)需要按100hPa、探測(cè)終止傳輸二次BUFR報(bào)文。其命名規(guī)則如下:
Z_UPAR_I_54727_20170814061953_O_TEMPL-50_12042312.BIN 500hPa(只 07時(shí)發(fā))
Z_UPAR_I_54727_20170814061953_O_TEMPL-10_12042312.BIN 100hPa(所有時(shí)段發(fā))
Z_UPAR_I_54727_20170814061953_O_TEMPL-00_12042312.BIN 探測(cè)終止(所有時(shí)段發(fā))
其中的“50、10、00”即表示“500hPa、100hPa、探測(cè)終止”。根據(jù)報(bào)文名稱(chēng)讀取出放球的時(shí)次和標(biāo)志位來(lái)綜合判斷是否為本次探空需要發(fā)送的BUFR報(bào)文,并將其讀出。
(2)XML報(bào):新增XML版的狀態(tài)文件,在放球5分鐘后會(huì)和原txt版的狀態(tài)文件同步產(chǎn)生一個(gè)XML版的狀態(tài)文件;在產(chǎn)生探測(cè)終止后的BUFR(00)文件的同時(shí)會(huì)同步產(chǎn)生一個(gè)xml版的狀態(tài)文件,該文件名與放球軟件產(chǎn)生的XML版的狀態(tài)文件一樣,內(nèi)容也一樣(放球軟件產(chǎn)生的XML狀態(tài)文件由于一些參數(shù)還沒(méi)確定會(huì)暫時(shí)空白),在發(fā)送完畢BUFR報(bào)文后立即發(fā)送該狀態(tài)XML文件。即新增了兩份XML文件。
XML報(bào)文按照文件的生成時(shí)間進(jìn)行判斷讀取,令其只可讀取當(dāng)天時(shí)次的報(bào)文。探空數(shù)據(jù)處理軟件在探測(cè)終止時(shí),如果誤點(diǎn)擊到BUFR生成按鈕時(shí),也會(huì)生成一份新的XML報(bào)文,并且XML報(bào)文命名方式是按照時(shí)間(精確到秒),誤點(diǎn)后,會(huì)生成內(nèi)容重復(fù)的XML報(bào)文。出現(xiàn)這種情況時(shí),會(huì)彈出提醒令值班員自行選擇需要傳輸?shù)腦ML報(bào)文。
參數(shù)設(shè)置存儲(chǔ)內(nèi)容包括(1)ftp服務(wù)器上傳與下載地址、用戶名、密碼;(2)報(bào)文存放地址;(3)回執(zhí)存放地址。 分 3 個(gè)模塊:(1)TTAA 參數(shù);(2)監(jiān)控報(bào)、基數(shù)據(jù)參數(shù);(3)月報(bào)參數(shù)。為了程序應(yīng)用方便,使用ini配置文件來(lái)保存這些參數(shù),存放內(nèi)容均可以手動(dòng)修改,因數(shù)據(jù)量少,不需要使用數(shù)據(jù)庫(kù),增強(qiáng)了程序的可移植性。
通過(guò)測(cè)試,經(jīng)進(jìn)行多次修改、更新,最終實(shí)現(xiàn)了預(yù)期的效果。圖2為T(mén)TAA報(bào)文發(fā)送與回執(zhí)下載測(cè)試圖;圖3為基數(shù)據(jù)、監(jiān)控報(bào)功能測(cè)試圖。
圖2 TTAA報(bào)文發(fā)送與回執(zhí)下載測(cè)試圖
圖3 基數(shù)據(jù)、監(jiān)控報(bào)功能測(cè)試圖
自從加入了月報(bào)發(fā)送提醒功能后,臺(tái)站月報(bào)遺漏問(wèn)題得到明顯的改善,創(chuàng)新類(lèi)小功能的加入讓軟件收獲了更大的使用效果。面對(duì)今年新增添的報(bào)文選項(xiàng),本軟件也做出了及時(shí)的更新。
圖4、圖5為新增的BUFR報(bào)與XML報(bào)文發(fā)送運(yùn)行效果圖。值班員在發(fā)送BUFR報(bào)時(shí)可以直觀地、便捷地進(jìn)行選擇報(bào)文。由于報(bào)文名稱(chēng)極其類(lèi)似,在使用自帶發(fā)報(bào)軟件的時(shí)候容易發(fā)生錯(cuò)選、漏選等問(wèn)題。本軟件極大程度上避免了這些問(wèn)題,并且提供了回執(zhí)下載功能,更加貼合實(shí)際應(yīng)用。
圖5所展示的為自定義傳輸功能。由于目前處于并行發(fā)報(bào)階段,BUFR報(bào)和XML報(bào)文處于試運(yùn)行期,未知何種情況需要發(fā)送CCA報(bào),因此,在此處設(shè)置自定義發(fā)報(bào),讓值班員可以有選擇的進(jìn)行報(bào)文的發(fā)送,為后續(xù)的報(bào)文和軟件更新留下了可持續(xù)發(fā)展的空間。
圖4 BUFR報(bào)和XML報(bào)
圖5 自定義發(fā)報(bào)
軟件的成功運(yùn)行使業(yè)務(wù)人員可以放心地使用新的系統(tǒng),在信息時(shí)代中,系統(tǒng)與硬件的更新推動(dòng)著臺(tái)站業(yè)務(wù)的進(jìn)步。這款高空數(shù)據(jù)傳輸軟件為業(yè)務(wù)帶來(lái)了很多便利,不僅提高了值班員的工作效率,而且在一定程度上為高空氣象業(yè)務(wù)提供了保障。通過(guò)軟件更新,可以適應(yīng)數(shù)據(jù)傳輸?shù)男枨?,也可以擴(kuò)充其他業(yè)務(wù)使用(例如在前期基礎(chǔ)上增添了BUFR報(bào)與XML報(bào)文的傳輸項(xiàng))。本軟件可以作為高空探測(cè)業(yè)務(wù)長(zhǎng)期有效的數(shù)據(jù)傳輸軟件使用。
[1]李偉,李柏,陳永清,等.常規(guī)高空氣象觀測(cè)業(yè)務(wù)手冊(cè)[M].北京:氣象出版社,2012:129-136.
[2]中國(guó)氣象局.常規(guī)高空氣象觀測(cè)業(yè)務(wù)規(guī)范[M].北京:氣象出版社,2010:10-16.
[3]鄭阿奇.Visual C# 網(wǎng)絡(luò)編程[M].北京:電子工業(yè)出版社,2011:25-55.
[4]劉遠(yuǎn),胡維,姚立宏.雷達(dá)產(chǎn)品生成與傳輸監(jiān)控短信報(bào)警平臺(tái)[J].氣象研究與應(yīng)用,2014,35(4):115-116.
[5]梁建平,趙麗英,覃曉玲.高空地面業(yè)務(wù)一體化運(yùn)行中常見(jiàn)問(wèn)題分析[J].氣象研究與應(yīng)用,2016,37(1):97-100.
[6]熊文兵,羅永明,曾鵬.廣西森林火險(xiǎn)等級(jí)精細(xì)化監(jiān)測(cè)與預(yù)報(bào)系統(tǒng)研究[J].氣象研究與應(yīng)用,2016,37(2):59-63.
[7]曾鵬,廖國(guó)蓮,莫雨淳.廣西地質(zhì)災(zāi)害業(yè)務(wù)平臺(tái)的設(shè)計(jì)與開(kāi)發(fā)[J].氣象研究與應(yīng)用,2014,35(2):57-59.
[8]張?jiān)S斌,覃天信.廣西農(nóng)情氣象短信產(chǎn)品采集系統(tǒng)開(kāi)發(fā)及應(yīng)用[J].氣象研究與應(yīng)用,2017,38(2):49-51.
[9]黃宏智,黃飛龍,陳冰懷.新型自動(dòng)氣象站實(shí)時(shí)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].廣東氣象,2016,38(5):74-77.
[10]何迪,羅律,陸德輝.基于RIA的觀測(cè)數(shù)據(jù)共享平臺(tái)設(shè)計(jì)和實(shí)現(xiàn)[J].廣東氣象,2015,37(4):77-80.
[11]李茂,謝近年,馬佩強(qiáng).東源探空站秒數(shù)據(jù)在探空異常情況下的應(yīng)用[J].廣東氣象,2014,36(5):78-80.
[12]梁釗揚(yáng),郭澤勇.基于C/S架構(gòu)的雷達(dá)產(chǎn)品分發(fā)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].廣東氣象,2013,35(5):64-67.
[13]王建莊,余秀娟.廣東省自動(dòng)氣象站數(shù)據(jù)傳輸監(jiān)控功能的實(shí)現(xiàn)[J].廣東氣象,2013,35(2):71-73.