陳關清,王 麗,甑廷忠,方 標
(1.貴州省銅仁市氣象局,貴州 銅仁 554300;2.云南省昆明市氣象局,云南 昆明 650000)
2011年12月,中國氣象局出臺《新一代天氣雷達業務質量考核辦法(試行)》(下文簡稱“辦法”)。“辦法”規定以單部新一代天氣雷達為單位開展的臺站級雷達觀測業務和雷達保障業務均需要考核,并制定了詳細的考核細則。根據“辦法”規定,雷達臺站必須按月上報《新一代天氣雷達個人業務質量月報表(基數表)》、《新一代天氣雷達個人業務質量月報表(錯情表)》和《新一代天氣雷達臺站業務質量月報表》。目前,這3 個表格的數據記錄、數據統計和報表制作等工作都是手工完成,故需要研發本系統改變手工紙質化填寫和人工統計分析等工作,實現雷達臺站基數、錯情數據的錄入和查詢,自動統計個人和臺站月報表各項數據,自動生成各種月報表,完成故障信息電子化錄入、管理和查詢,實現雷達考核和故障信息共享的自動化和信息化,減少業務工作量,保證業務質量,提高工作效率。
開發本系統并要實現系統的功能需要,選擇的開發技術平臺是Visual Studio 2005 中的C#,整個程序將在C#開發環境下完成程序設計,之所以選擇C#為開發平臺,主要是基于以下幾方面考慮:
①利用C#平臺中的TabContrl 控件能夠實現基數、錯情、報表、質量分析和故障共享的分頁,減少子窗體使用,增強軟件界面美觀性和可操作性。
②利用C#基于MultiHeaderDataGridView的重繪事件,自定義繪制基數、錯情各相關表格的多維表頭。利用雙緩沖技術和滾動條拖動重繪事件函數實現基數、錯情相關數據表格多維表頭重繪,使多維表頭在任何時候均能正常顯示,提高軟件界面可讀性和美觀性。利用MultiHeaderDataGridView 添加列和行相關技術,控制添加“姓名”和“校對人”兩列的數據類型為下拉菜單類型,添加全站人員姓名進入下拉菜單,實現數據錄入時相關人員名稱在下拉菜單中選擇。在MultiHeaderDataGridView 單元格編輯狀態結束事件中,編程實現“個人日基數合計”和“個人日錯情合計”等需要求和列的數據自動累加,減少手工輸入工作量。
③利用C#中的DataTable 數據格式存儲查詢結果,并根據需求進行數據移出、數據添加等操作。
④通過C#中ZedGraph的X 軸和Y 軸數據組的添加,以及ZedGraph 柱狀圖、折線、擬合曲線相關參數的設置和對象的添加,實現基于ZedGraph的折線、柱狀圖、擬合曲線形式的雷達業務質量分析。
⑤利用C#中word 可編程支持功能和空月報表的word 模板,設定需要添加信息(如月份、雷達站名、填報人、校對人等)的位置標簽,結合word 模板操作和計算機編程技術,實現word 報表導出時的信息添加和數據添加,完成word月報表的導出功能。
在數據庫技術上,考慮到數據安全性、全省各雷達臺站網絡訪問存儲以及數據庫共享等問題,我們選擇SQL server,通過計算機編程技術實現SQL server的寫入、數據組合查詢、分類查詢、累計查詢和數據修改功能,以此來完成基數、錯情、雷達故障填報等數據(遠程)查詢和修改功能。
設計新一代天氣雷達質量考核與故障共享系統的目標是提高業務人員的工作效率以及實現故障信息共享,從實際需求出發,該系統主要采用單機版的模式,選擇使用SQL server 數據庫并進行相應的設置可以實現數據庫的數據共享和遠程訪問。各臺站之間主要采用臺站名來識別各臺站的質量考核信息和故障信息。綜上,我們把系統的邏輯結構分為3 層架構:應用層、服務層和數據層。
應用層:提供給各雷達站一個操作界面,各雷達站安裝系統后通過應用層,用戶可以實現數據的輸入與輸出,而不必關心該系統本身的算法和數據的讀取與寫入,只需要進行人機交互,數據分析即可。
服務層:它是由微軟提供的Visual Studio 2005開發環境和SQL server 共同開發的新一代天氣雷達質量考核與故障共享系統的各功能模塊。該層對數據庫中的基數、錯情和故障進行數據處理和分析。將結果返回給新一代天氣雷達質量考核與故障共享系統前端應用層顯示。該層具有良好的伸縮性,可根據具體的模型要求而發生改變。從而將對新一代天氣雷達質量考核與故障共享系統應用層和數據層的影響減到最小程度。
數據層:該層主要負責提供數據服務。數據包括觀測人員的工作基數、錯情和故障等數據。各雷達站通過應用層和服務層可以實現對數據的各種操作。
系統邏輯結構圖見下圖1 所示。

圖1 系統邏輯結構圖
設計新一代天氣雷達質量考核與故障共享系統的數據庫,根據考核辦法中的考核指標,我們建立了3 個數據表,分別命名為基數表“CheckBaseData”、錯情表“CheckErrorData”和雷達故障表“Rad-Fault”。分別如下表所示:

表1 基數表CheckBaseData

表2 錯情表CheckErrorData

表3 雷達故障表RadFault
通過該功能可以實現數據庫服務器大寫地址、數據庫名、用戶名、密碼和本站站名等參數的設置。界面如圖2 所示。

圖2 參數設置界面
該功能可以按照時間、站點信息執行基數和錯情的查詢操作,如果需要修改或者新建數據,在相應的欄內輸入數據或者選擇相應人員,點擊保存數據即可。
該功能可以按照月份、站點等信息進行月基數、錯情和全站質量數據查詢和統計,并根據用戶需求導出當月word 格式數據月報表。
該功能可以實現對雷達站全站和個人的逐日基數、逐月基數、逐月錯情、逐月錯情率等數據進行統計,并以柱狀圖、折線圖、擬合曲線圖3 種形式顯示,直觀體現出全站和個人的業務質量變化情況(圖3)。

圖3 月數據統計和報表生成界面
實現雷達故障現象、故障原因、處理情況、器件更換等情況的電子化填報,其他臺站也可以通過訪問數據庫(前提是共用數據庫)實現遠程填寫、查詢、修改故障記錄,通過該功能可以實現全省雷達故障信息共享,便于機務人員判斷故障原因。
新一代天氣雷達質量考核與故障共享系統雖然能夠滿足現有的質量考核和故障共享功能,但是自動化的程度不高,還需要手工錄入相關數據,還有需要完善的地方。可考慮與雷達監控軟件結合起來,根據監控軟件中的數據傳輸率來實現基數和錯情的自動錄入,以此提高效率和減輕工作人員的工作量。
[1]梁麗明.基于.NET的學校辦公自動化系統研究與實現[J].制造業自動化,2011,33(02).
[2]王赟,敖俊,姚愚,等.氣象決策短信自動生成系統設計與實現[J].電腦編程技巧與維護,2012,(02).
[3]甄廷忠,方夏馨,江龍,等.雷達月報表自動生成軟件的設計與實現[J],2013,(03).
[4]龍馬工作室.新編Visual C# 2005 程序設計從入門到精通[M].北京:人民郵電出版社,2008.