陳關(guān)清,王 麗,甑廷忠,方 標(biāo)
(1.貴州省銅仁市氣象局,貴州 銅仁 554300;2.云南省昆明市氣象局,云南 昆明 650000)
2011年12月,中國氣象局出臺(tái)《新一代天氣雷達(dá)業(yè)務(wù)質(zhì)量考核辦法(試行)》(下文簡稱“辦法”)?!稗k法”規(guī)定以單部新一代天氣雷達(dá)為單位開展的臺(tái)站級(jí)雷達(dá)觀測業(yè)務(wù)和雷達(dá)保障業(yè)務(wù)均需要考核,并制定了詳細(xì)的考核細(xì)則。根據(jù)“辦法”規(guī)定,雷達(dá)臺(tái)站必須按月上報(bào)《新一代天氣雷達(dá)個(gè)人業(yè)務(wù)質(zhì)量月報(bào)表(基數(shù)表)》、《新一代天氣雷達(dá)個(gè)人業(yè)務(wù)質(zhì)量月報(bào)表(錯(cuò)情表)》和《新一代天氣雷達(dá)臺(tái)站業(yè)務(wù)質(zhì)量月報(bào)表》。目前,這3 個(gè)表格的數(shù)據(jù)記錄、數(shù)據(jù)統(tǒng)計(jì)和報(bào)表制作等工作都是手工完成,故需要研發(fā)本系統(tǒng)改變手工紙質(zhì)化填寫和人工統(tǒng)計(jì)分析等工作,實(shí)現(xiàn)雷達(dá)臺(tái)站基數(shù)、錯(cuò)情數(shù)據(jù)的錄入和查詢,自動(dòng)統(tǒng)計(jì)個(gè)人和臺(tái)站月報(bào)表各項(xiàng)數(shù)據(jù),自動(dòng)生成各種月報(bào)表,完成故障信息電子化錄入、管理和查詢,實(shí)現(xiàn)雷達(dá)考核和故障信息共享的自動(dòng)化和信息化,減少業(yè)務(wù)工作量,保證業(yè)務(wù)質(zhì)量,提高工作效率。
開發(fā)本系統(tǒng)并要實(shí)現(xiàn)系統(tǒng)的功能需要,選擇的開發(fā)技術(shù)平臺(tái)是Visual Studio 2005 中的C#,整個(gè)程序?qū)⒃贑#開發(fā)環(huán)境下完成程序設(shè)計(jì),之所以選擇C#為開發(fā)平臺(tái),主要是基于以下幾方面考慮:
①利用C#平臺(tái)中的TabContrl 控件能夠?qū)崿F(xiàn)基數(shù)、錯(cuò)情、報(bào)表、質(zhì)量分析和故障共享的分頁,減少子窗體使用,增強(qiáng)軟件界面美觀性和可操作性。
②利用C#基于MultiHeaderDataGridView的重繪事件,自定義繪制基數(shù)、錯(cuò)情各相關(guān)表格的多維表頭。利用雙緩沖技術(shù)和滾動(dòng)條拖動(dòng)重繪事件函數(shù)實(shí)現(xiàn)基數(shù)、錯(cuò)情相關(guān)數(shù)據(jù)表格多維表頭重繪,使多維表頭在任何時(shí)候均能正常顯示,提高軟件界面可讀性和美觀性。利用MultiHeaderDataGridView 添加列和行相關(guān)技術(shù),控制添加“姓名”和“校對(duì)人”兩列的數(shù)據(jù)類型為下拉菜單類型,添加全站人員姓名進(jìn)入下拉菜單,實(shí)現(xiàn)數(shù)據(jù)錄入時(shí)相關(guān)人員名稱在下拉菜單中選擇。在MultiHeaderDataGridView 單元格編輯狀態(tài)結(jié)束事件中,編程實(shí)現(xiàn)“個(gè)人日基數(shù)合計(jì)”和“個(gè)人日錯(cuò)情合計(jì)”等需要求和列的數(shù)據(jù)自動(dòng)累加,減少手工輸入工作量。
③利用C#中的DataTable 數(shù)據(jù)格式存儲(chǔ)查詢結(jié)果,并根據(jù)需求進(jìn)行數(shù)據(jù)移出、數(shù)據(jù)添加等操作。
④通過C#中ZedGraph的X 軸和Y 軸數(shù)據(jù)組的添加,以及ZedGraph 柱狀圖、折線、擬合曲線相關(guān)參數(shù)的設(shè)置和對(duì)象的添加,實(shí)現(xiàn)基于ZedGraph的折線、柱狀圖、擬合曲線形式的雷達(dá)業(yè)務(wù)質(zhì)量分析。
⑤利用C#中word 可編程支持功能和空月報(bào)表的word 模板,設(shè)定需要添加信息(如月份、雷達(dá)站名、填報(bào)人、校對(duì)人等)的位置標(biāo)簽,結(jié)合word 模板操作和計(jì)算機(jī)編程技術(shù),實(shí)現(xiàn)word 報(bào)表導(dǎo)出時(shí)的信息添加和數(shù)據(jù)添加,完成word月報(bào)表的導(dǎo)出功能。
在數(shù)據(jù)庫技術(shù)上,考慮到數(shù)據(jù)安全性、全省各雷達(dá)臺(tái)站網(wǎng)絡(luò)訪問存儲(chǔ)以及數(shù)據(jù)庫共享等問題,我們選擇SQL server,通過計(jì)算機(jī)編程技術(shù)實(shí)現(xiàn)SQL server的寫入、數(shù)據(jù)組合查詢、分類查詢、累計(jì)查詢和數(shù)據(jù)修改功能,以此來完成基數(shù)、錯(cuò)情、雷達(dá)故障填報(bào)等數(shù)據(jù)(遠(yuǎn)程)查詢和修改功能。
設(shè)計(jì)新一代天氣雷達(dá)質(zhì)量考核與故障共享系統(tǒng)的目標(biāo)是提高業(yè)務(wù)人員的工作效率以及實(shí)現(xiàn)故障信息共享,從實(shí)際需求出發(fā),該系統(tǒng)主要采用單機(jī)版的模式,選擇使用SQL server 數(shù)據(jù)庫并進(jìn)行相應(yīng)的設(shè)置可以實(shí)現(xiàn)數(shù)據(jù)庫的數(shù)據(jù)共享和遠(yuǎn)程訪問。各臺(tái)站之間主要采用臺(tái)站名來識(shí)別各臺(tái)站的質(zhì)量考核信息和故障信息。綜上,我們把系統(tǒng)的邏輯結(jié)構(gòu)分為3 層架構(gòu):應(yīng)用層、服務(wù)層和數(shù)據(jù)層。
應(yīng)用層:提供給各雷達(dá)站一個(gè)操作界面,各雷達(dá)站安裝系統(tǒng)后通過應(yīng)用層,用戶可以實(shí)現(xiàn)數(shù)據(jù)的輸入與輸出,而不必關(guān)心該系統(tǒng)本身的算法和數(shù)據(jù)的讀取與寫入,只需要進(jìn)行人機(jī)交互,數(shù)據(jù)分析即可。
服務(wù)層:它是由微軟提供的Visual Studio 2005開發(fā)環(huán)境和SQL server 共同開發(fā)的新一代天氣雷達(dá)質(zhì)量考核與故障共享系統(tǒng)的各功能模塊。該層對(duì)數(shù)據(jù)庫中的基數(shù)、錯(cuò)情和故障進(jìn)行數(shù)據(jù)處理和分析。將結(jié)果返回給新一代天氣雷達(dá)質(zhì)量考核與故障共享系統(tǒng)前端應(yīng)用層顯示。該層具有良好的伸縮性,可根據(jù)具體的模型要求而發(fā)生改變。從而將對(duì)新一代天氣雷達(dá)質(zhì)量考核與故障共享系統(tǒng)應(yīng)用層和數(shù)據(jù)層的影響減到最小程度。
數(shù)據(jù)層:該層主要負(fù)責(zé)提供數(shù)據(jù)服務(wù)。數(shù)據(jù)包括觀測人員的工作基數(shù)、錯(cuò)情和故障等數(shù)據(jù)。各雷達(dá)站通過應(yīng)用層和服務(wù)層可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的各種操作。
系統(tǒng)邏輯結(jié)構(gòu)圖見下圖1 所示。
圖1 系統(tǒng)邏輯結(jié)構(gòu)圖
設(shè)計(jì)新一代天氣雷達(dá)質(zhì)量考核與故障共享系統(tǒng)的數(shù)據(jù)庫,根據(jù)考核辦法中的考核指標(biāo),我們建立了3 個(gè)數(shù)據(jù)表,分別命名為基數(shù)表“CheckBaseData”、錯(cuò)情表“CheckErrorData”和雷達(dá)故障表“Rad-Fault”。分別如下表所示:
表1 基數(shù)表CheckBaseData
表2 錯(cuò)情表CheckErrorData
表3 雷達(dá)故障表RadFault
通過該功能可以實(shí)現(xiàn)數(shù)據(jù)庫服務(wù)器大寫地址、數(shù)據(jù)庫名、用戶名、密碼和本站站名等參數(shù)的設(shè)置。界面如圖2 所示。
圖2 參數(shù)設(shè)置界面
該功能可以按照時(shí)間、站點(diǎn)信息執(zhí)行基數(shù)和錯(cuò)情的查詢操作,如果需要修改或者新建數(shù)據(jù),在相應(yīng)的欄內(nèi)輸入數(shù)據(jù)或者選擇相應(yīng)人員,點(diǎn)擊保存數(shù)據(jù)即可。
該功能可以按照月份、站點(diǎn)等信息進(jìn)行月基數(shù)、錯(cuò)情和全站質(zhì)量數(shù)據(jù)查詢和統(tǒng)計(jì),并根據(jù)用戶需求導(dǎo)出當(dāng)月word 格式數(shù)據(jù)月報(bào)表。
該功能可以實(shí)現(xiàn)對(duì)雷達(dá)站全站和個(gè)人的逐日基數(shù)、逐月基數(shù)、逐月錯(cuò)情、逐月錯(cuò)情率等數(shù)據(jù)進(jìn)行統(tǒng)計(jì),并以柱狀圖、折線圖、擬合曲線圖3 種形式顯示,直觀體現(xiàn)出全站和個(gè)人的業(yè)務(wù)質(zhì)量變化情況(圖3)。
圖3 月數(shù)據(jù)統(tǒng)計(jì)和報(bào)表生成界面
實(shí)現(xiàn)雷達(dá)故障現(xiàn)象、故障原因、處理情況、器件更換等情況的電子化填報(bào),其他臺(tái)站也可以通過訪問數(shù)據(jù)庫(前提是共用數(shù)據(jù)庫)實(shí)現(xiàn)遠(yuǎn)程填寫、查詢、修改故障記錄,通過該功能可以實(shí)現(xiàn)全省雷達(dá)故障信息共享,便于機(jī)務(wù)人員判斷故障原因。
新一代天氣雷達(dá)質(zhì)量考核與故障共享系統(tǒng)雖然能夠滿足現(xiàn)有的質(zhì)量考核和故障共享功能,但是自動(dòng)化的程度不高,還需要手工錄入相關(guān)數(shù)據(jù),還有需要完善的地方??煽紤]與雷達(dá)監(jiān)控軟件結(jié)合起來,根據(jù)監(jiān)控軟件中的數(shù)據(jù)傳輸率來實(shí)現(xiàn)基數(shù)和錯(cuò)情的自動(dòng)錄入,以此提高效率和減輕工作人員的工作量。
[1]梁麗明.基于.NET的學(xué)校辦公自動(dòng)化系統(tǒng)研究與實(shí)現(xiàn)[J].制造業(yè)自動(dòng)化,2011,33(02).
[2]王赟,敖俊,姚愚,等.氣象決策短信自動(dòng)生成系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2012,(02).
[3]甄廷忠,方夏馨,江龍,等.雷達(dá)月報(bào)表自動(dòng)生成軟件的設(shè)計(jì)與實(shí)現(xiàn)[J],2013,(03).
[4]龍馬工作室.新編Visual C# 2005 程序設(shè)計(jì)從入門到精通[M].北京:人民郵電出版社,2008.