錫林郭勒盟氣象局 郭立志
為進(jìn)一步完善錫林郭勒盟激光雨滴譜觀測站網(wǎng)布局,近年來陸續(xù)建設(shè)八個激光雨滴譜觀測站,初步組成錫林郭勒盟激光雨滴譜觀測站網(wǎng),實(shí)現(xiàn)對各種類型的降水粒子的自動組網(wǎng)監(jiān)測,降水粒子監(jiān)測資料實(shí)時上傳服務(wù)器,采集的降水粒子信息可以實(shí)時共享。經(jīng)過業(yè)務(wù)試運(yùn)行,服務(wù)器收集存儲大量.csv格式文件,為數(shù)據(jù)管理應(yīng)用分析造成很大問題。
為加強(qiáng)激光雨滴譜站網(wǎng)數(shù)據(jù)管理業(yè)務(wù)分析應(yīng)用,針對目前錫林郭勒盟激光雨滴譜觀測站網(wǎng)現(xiàn)狀,結(jié)合業(yè)務(wù)需求,決定設(shè)計研制錫林郭勒盟激光雨滴譜站網(wǎng)數(shù)據(jù)業(yè)務(wù)管理系統(tǒng),對錫林郭勒盟激光雨滴譜觀測站網(wǎng)數(shù)據(jù)加強(qiáng)管理與應(yīng)用,評估人工影響天氣作業(yè)效果,制作監(jiān)測降水粒子服務(wù)產(chǎn)品,更好地為農(nóng)、牧業(yè)服務(wù)。
設(shè)計實(shí)現(xiàn)激光雨滴譜站網(wǎng)數(shù)據(jù)業(yè)務(wù)管理系統(tǒng),系統(tǒng)將強(qiáng)化數(shù)據(jù)管理,定期形成電子檔案資料,統(tǒng)一存儲,方便以后科研、管理、應(yīng)用。系統(tǒng)全面管理雨滴譜觀測站網(wǎng)建站信息、設(shè)備信息、業(yè)務(wù)運(yùn)行信息、質(zhì)量考核信息,實(shí)現(xiàn)業(yè)務(wù)運(yùn)行與質(zhì)量考核一體化運(yùn)行,保證雨滴譜觀測站網(wǎng)業(yè)務(wù)化運(yùn)行。依據(jù)雨滴譜站網(wǎng)觀測數(shù)據(jù)支撐,經(jīng)過分析研究雨滴數(shù)據(jù),可形成pdf、doc、Excel文件格式初級服務(wù)產(chǎn)品。系統(tǒng)集成SURFER制圖功能,充分利用雨滴譜站網(wǎng)空間分布特性,分析降水粒子分布形成圖形服務(wù)產(chǎn)品。系統(tǒng)可收集每次人工影響天氣作業(yè)前后降水粒子數(shù)據(jù)、全盟站點(diǎn)降水量等信息,綜合評估分析作業(yè)效果,形成圖片、表格等作業(yè)評估初級服務(wù)產(chǎn)品,為決策者提供服務(wù)。激光雨滴譜站網(wǎng)數(shù)據(jù)業(yè)務(wù)管理系統(tǒng)設(shè)計研究,填補(bǔ)了這一領(lǐng)域的空白。系統(tǒng)設(shè)計實(shí)現(xiàn)后,可加強(qiáng)雨滴數(shù)據(jù)管理,通過綜合其他氣象資料,結(jié)合全盟站點(diǎn)降水資料,加強(qiáng)對降水粒子分析評估,可有力支撐雨滴譜站網(wǎng)數(shù)據(jù)在人工影響業(yè)務(wù)方面的應(yīng)用。
使用EnterpriseLibary做數(shù)據(jù)庫訪問底層,它除了其能兼容多種數(shù)據(jù)庫,還可以使用其進(jìn)行數(shù)據(jù)庫訪問,編寫一次操作代碼,基本在各種數(shù)據(jù)庫都適用。
首先BLL層,通過BLL Fact ory對象,根據(jù)配置信息,實(shí)例化不同的業(yè)務(wù)訪問對象,轉(zhuǎn)換為數(shù)據(jù)訪問層接口進(jìn)行調(diào)用,BLLFactory通過反射間接方式,構(gòu)建出不同數(shù)據(jù)庫對象的數(shù)據(jù)訪問層,而數(shù)據(jù)訪問對象,他們都集成了基類BaseDAL,這個基類封裝了增刪改查等基礎(chǔ)性操作,并通過高度抽象,只需要繼承該基類的子類重載部分函數(shù)即可完成較為豐富的操作實(shí)現(xiàn)。
用戶操作數(shù)據(jù)訪問對象ItemDetail,它繼承BaseDAL,具有操作數(shù)據(jù)庫對應(yīng)基本操作,還繼承另一個接口IitemDetail,它可定義用戶需要的特殊接口,以便使數(shù)據(jù)訪問功能更強(qiáng)。
為提高系統(tǒng)運(yùn)行效率,系統(tǒng)設(shè)計為客戶端/服務(wù)器(C/S)結(jié)構(gòu),使用.NET Framework 4.6為目標(biāo)框架,基于C#編程語言編寫“激光雨滴譜站網(wǎng)數(shù)據(jù)業(yè)務(wù)管理系統(tǒng)”運(yùn)行處理顯示程序。系統(tǒng)采用通用三層開發(fā)框架開發(fā),將整個系統(tǒng)研制劃分為業(yè)務(wù)表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。利于系統(tǒng)的開發(fā)、維護(hù)、部署和以后系統(tǒng)的擴(kuò)展。分層也是為了實(shí)現(xiàn)程序開發(fā)“高內(nèi)聚,低耦合”,符合程序設(shè)計開發(fā)標(biāo)準(zhǔn)化要求。把業(yè)務(wù)問題與程序設(shè)計高度契合,劃分問題,各個解決,易于控制程序開發(fā),便于解決問題。數(shù)據(jù)層可以解決將雨滴譜站網(wǎng)原始數(shù)據(jù)文件處理并保存到數(shù)據(jù)庫,用戶可根據(jù)業(yè)務(wù)需求,通過業(yè)務(wù)邏輯,訪問數(shù)據(jù)庫,數(shù)據(jù)訪問層根據(jù)指令,按照用戶要求將數(shù)據(jù)加工處理為表格圖片等形式反饋給用戶。系統(tǒng)可以管理站網(wǎng)基本、業(yè)務(wù)日常運(yùn)行考核等信息,實(shí)現(xiàn)業(yè)務(wù)運(yùn)行與質(zhì)量考核一體化。系統(tǒng)采用三層架構(gòu)分層設(shè)計,分別是表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL)。如圖1三層設(shè)計架構(gòu)。三層架構(gòu)中主要功能與業(yè)務(wù)邏輯一般要在業(yè)務(wù)邏輯層進(jìn)行信息處理和實(shí)現(xiàn),其中三層體系架構(gòu)中的客戶端和數(shù)據(jù)庫要預(yù)設(shè)中間層,成為組建層。三層架構(gòu)中的三層具有一定的邏輯性,即是將三層設(shè)置到同一個計算機(jī)系統(tǒng)中,把業(yè)務(wù)協(xié)議、合法校驗(yàn)以及數(shù)據(jù)訪問等程序歸置到中間層進(jìn)行信息處理,一般客戶端無法和數(shù)據(jù)庫進(jìn)行數(shù)據(jù)傳輸,主要是利用COM/DCOM通訊和中間層構(gòu)建銜接通道,實(shí)現(xiàn)中間層與數(shù)據(jù)庫的數(shù)據(jù)傳輸,進(jìn)而實(shí)現(xiàn)客戶端與數(shù)據(jù)庫的交互。
圖1 三層設(shè)計系統(tǒng)架構(gòu)
1.表示層
表示層又稱表現(xiàn)層‘簡稱UI’,位于三層構(gòu)架的最上層,與用戶直接接觸,主要是C/S信息系統(tǒng)中的用戶瀏覽操作窗體。作為Winform窗體瀏覽操作頁面,表示層的主要功能是實(shí)現(xiàn)系統(tǒng)數(shù)據(jù)的輸入與輸出,在此過程中不需要借助邏輯判斷操作就可以將數(shù)據(jù)傳送到業(yè)務(wù)邏輯層BLL層中進(jìn)行數(shù)據(jù)處理,處理后會將處理結(jié)果反饋到表示層。換句話說,表示層就是實(shí)現(xiàn)用戶界面功能,將用戶的需求傳達(dá)和反饋,保證用戶體驗(yàn)流暢,操作友好。
2.業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層BLL的功能是對具體問題進(jìn)行邏輯判斷與執(zhí)行操作,接收到UI層的用戶指令后,會連接數(shù)據(jù)訪問層DAL,訪問層在三層構(gòu)架中位于表示層與數(shù)據(jù)層中間位置,同時也是表示層與數(shù)據(jù)層的橋梁,實(shí)現(xiàn)三層之間的數(shù)據(jù)連接和指令傳達(dá),可以對接收數(shù)據(jù)進(jìn)行邏輯處理,實(shí)現(xiàn)數(shù)據(jù)的修改、獲取、刪除等功能,并將處理結(jié)果反饋到UI層中,實(shí)現(xiàn)軟件功能。
3.數(shù)據(jù)訪問層
數(shù)據(jù)訪問層DAL是數(shù)據(jù)庫的主要操控系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)的增加、刪除、修改、查詢等操作,并將操作結(jié)果反饋到業(yè)務(wù)邏輯層BLL。在實(shí)際運(yùn)行的過程中,數(shù)據(jù)訪問層沒有邏輯判斷能力,為了實(shí)現(xiàn)代碼編寫的嚴(yán)謹(jǐn)性,提高代碼閱讀限度,系統(tǒng)會在該層中編寫Data Access Common,保證數(shù)據(jù)訪問層DAL數(shù)據(jù)處理功能。
4.實(shí)體類庫
實(shí)體類庫是數(shù)據(jù)庫表的映射對象,在信息系統(tǒng)軟件實(shí)際開發(fā)的過程中,要建立對象實(shí)例,將關(guān)系數(shù)據(jù)庫表采用對象實(shí)體化的方式表現(xiàn)出來,輔助軟件開發(fā)中對各個系統(tǒng)功能的控制與操作執(zhí)行,把數(shù)據(jù)庫表中的所有字段映射為系統(tǒng)對象,建立實(shí)體類庫,進(jìn)而實(shí)現(xiàn)各個結(jié)構(gòu)層的參數(shù)傳輸,提高代碼的閱讀性。從本質(zhì)上看,實(shí)體類庫主要服務(wù)于表示層、業(yè)務(wù)邏輯層以及數(shù)據(jù)訪問層,在三層之間進(jìn)行數(shù)據(jù)參數(shù)傳輸,強(qiáng)化數(shù)據(jù)表示的簡約性。
針對雨滴站網(wǎng)業(yè)務(wù)運(yùn)行情況,結(jié)合系統(tǒng)架構(gòu)設(shè)計,將系統(tǒng)功能模塊化,按照數(shù)據(jù)業(yè)務(wù)應(yīng)用流程,功能設(shè)計劃分為五個部分:分別是數(shù)據(jù)采集存儲、數(shù)據(jù)查詢、數(shù)據(jù)可視化、結(jié)合SURFER進(jìn)行數(shù)據(jù)空間分析、通過融合多源數(shù)據(jù)進(jìn)行人工影響天氣作業(yè)評估(具體功能設(shè)計結(jié)構(gòu)如圖2)。
圖2 系統(tǒng)功能設(shè)計
1.數(shù)據(jù)存儲功能
此功能實(shí)現(xiàn)雨滴譜站網(wǎng)數(shù)據(jù)傳輸?shù)街付夸洠缓髮⒚總€數(shù)據(jù)文件讀取并進(jìn)行解析,最后保存到數(shù)據(jù)庫相應(yīng)數(shù)據(jù)表。用戶操作軟件輸入雨滴站、設(shè)備、業(yè)務(wù)運(yùn)行、質(zhì)量考核信息后保存,完成數(shù)據(jù)存儲功能。
2.數(shù)據(jù)查詢統(tǒng)計功能
此功能實(shí)現(xiàn)用戶操作軟件,通過查詢選項(xiàng)操作,把用戶數(shù)據(jù)需求,在數(shù)據(jù)庫中查詢,以表格形成呈現(xiàn)。用戶可以以旬、月、季、年等進(jìn)行統(tǒng)計并以表格呈現(xiàn)。
3.數(shù)據(jù)可視化功能
此功能利用ScottPlot控件進(jìn)行數(shù)據(jù)繪制為圖形。表現(xiàn)為折線圖、條形圖、餅圖、散點(diǎn)圖等。ScottPlot是一個免費(fèi)的開源交互式繪圖庫,適用于.NET。它具有適用于Windows窗體的用戶控件,它可快速將數(shù)據(jù)繪圖生成為圖像文件。ScottPlot的接口模仿Python的Matplotlib,大多數(shù)繪圖都可以用一行代碼創(chuàng)建(使用可選參數(shù)來自定義樣式)。用戶可復(fù)制數(shù)據(jù)可視化圖像文件,添加到氣象服務(wù)產(chǎn)品中,為各類用戶服務(wù)。
4.空間分析功能
此功能利用Surfer數(shù)據(jù)文件網(wǎng)格化、數(shù)據(jù)網(wǎng)格點(diǎn)插值、疊加底圖等功能,且在.NET實(shí)現(xiàn)了特定范圍內(nèi)等值線色斑圖的繪制,可將雨滴數(shù)據(jù)繪制呈現(xiàn)等值線色斑圖,并與錫盟地理地圖疊加,表現(xiàn)出雨滴、降雨量等氣象要素值地理分布與強(qiáng)度變化。用戶可以將此圖添加到氣象預(yù)報、服務(wù)產(chǎn)品中,為更多用戶提供參考服務(wù)。
5.效果評估功能
人工影響天氣作業(yè)后,對作業(yè)效果進(jìn)行評估是重要環(huán)節(jié),評估主要是作業(yè)目標(biāo)區(qū)與對比區(qū)降水量等氣象要素值數(shù)學(xué)模型計算后再進(jìn)行效果評估。作業(yè)目標(biāo)區(qū)與對比區(qū)降雨量正態(tài)分布檢驗(yàn)過程,估算作業(yè)影響區(qū)降雨絕對增加量、相對增加量、折合水量、社會生態(tài)經(jīng)濟(jì)效果等。
為了降低系統(tǒng)具備高效的數(shù)據(jù)查詢效率,保持良好的擴(kuò)展性,系統(tǒng)數(shù)據(jù)存儲設(shè)計,充分利用Access關(guān)系型數(shù)據(jù)庫功能,存儲雨滴譜站網(wǎng)數(shù)據(jù)。系統(tǒng)功能模塊可以收集分析雨滴譜站形成的數(shù)據(jù)文件,重點(diǎn)分析數(shù)據(jù)文件結(jié)構(gòu),技術(shù)攻關(guān)雨滴譜站網(wǎng)數(shù)據(jù)文件結(jié)構(gòu)解析,并研究其存儲表結(jié)構(gòu),最終形成數(shù)據(jù)庫存儲數(shù)據(jù)表,實(shí)現(xiàn)激光雨滴譜站網(wǎng)數(shù)據(jù)統(tǒng)一管理,形成存儲電子日志資料,定期安全檢查,數(shù)據(jù)文件統(tǒng)一存儲,方便以后科研應(yīng)用。針對系統(tǒng)處理存儲數(shù)據(jù)實(shí)際需求將雨滴譜站網(wǎng)數(shù)據(jù),設(shè)計為Access數(shù)據(jù)庫四個存儲表:分別為雨滴譜建站信息數(shù)據(jù)表、雨滴譜設(shè)備信息數(shù)據(jù)表、雨滴譜業(yè)務(wù)運(yùn)行信息數(shù)據(jù)表、雨滴譜業(yè)務(wù)質(zhì)量考核信息數(shù)據(jù)表,存儲在Access數(shù)據(jù)庫,為提供系統(tǒng)運(yùn)行必要的數(shù)據(jù)支撐,便于用戶分析研究業(yè)務(wù)運(yùn)行信息、質(zhì)量考核信息,實(shí)現(xiàn)業(yè)務(wù)運(yùn)行與質(zhì)量考核一體化,統(tǒng)一監(jiān)督考核。
建立業(yè)務(wù)運(yùn)行工作日志數(shù)據(jù)管理中心,設(shè)置用戶職責(zé)權(quán)限與操作系統(tǒng)數(shù)據(jù)對應(yīng)管理中心。利用C#程序設(shè)計研究分析統(tǒng)計處理模型,研究業(yè)務(wù)運(yùn)行信息、質(zhì)量考核信息有機(jī)統(tǒng)一,才能實(shí)現(xiàn)站網(wǎng)數(shù)據(jù)管理系統(tǒng)一體化、信息化運(yùn)行。
雨滴譜建站信息數(shù)據(jù)表可以存儲站網(wǎng)建站基本信息。其主要字段有記錄唯一標(biāo)記、自治區(qū)名稱、盟市名稱、旗縣名稱、站點(diǎn)名稱、站點(diǎn)代碼、經(jīng)度、緯度、海拔高度、站點(diǎn)建設(shè)日期、分頁控件專用字段,根據(jù)需要設(shè)計好表的字段、備注、約束、索引等信息。
雨滴譜設(shè)備信息數(shù)據(jù)表可以存儲雨滴設(shè)備基本信息。其主要字段有記錄唯一標(biāo)記、設(shè)備名稱、設(shè)備型號、生產(chǎn)廠家、生產(chǎn)日期、合格證代碼、檢定日期、分頁控件專用字段。
雨滴譜業(yè)務(wù)運(yùn)行信息數(shù)據(jù)表可以存儲雨滴數(shù)據(jù)文件業(yè)務(wù)運(yùn)行基本信息。其主要字段有記錄唯一標(biāo)記、年份、月份、站點(diǎn)代碼、應(yīng)發(fā)報數(shù)、及時報、及時率、逾限報、逾限率、缺報、缺報率、分頁控件專用字段。
雨滴譜業(yè)務(wù)質(zhì)量考核信息數(shù)據(jù)表可以存儲雨滴站網(wǎng)業(yè)務(wù)運(yùn)行質(zhì)量考核基本信息。其主要字段有記錄唯一標(biāo)記、年份、月份、站點(diǎn)代碼、質(zhì)量考核錯誤、錯誤率、分頁控件專用字段。
分析雨滴數(shù)據(jù)文件結(jié)構(gòu),系統(tǒng)解析數(shù)據(jù)文件,并與數(shù)據(jù)庫相應(yīng)表對應(yīng),通過系統(tǒng)數(shù)據(jù)邏輯層指令,通過數(shù)據(jù)訪問層將數(shù)據(jù)存儲于數(shù)據(jù)庫,便于用戶操作數(shù)據(jù)。針對雨滴譜站網(wǎng)運(yùn)行現(xiàn)狀,梳理業(yè)務(wù)數(shù)據(jù)需求,研究歸納業(yè)務(wù)運(yùn)行信息存儲結(jié)構(gòu),建立存儲數(shù)據(jù)表,分析研究業(yè)務(wù)運(yùn)行信息、業(yè)務(wù)考核信息統(tǒng)一監(jiān)督,實(shí)現(xiàn)業(yè)務(wù)運(yùn)行與考核一體化運(yùn)行。依據(jù)系統(tǒng)運(yùn)行需求,建立日志記錄根據(jù)用戶操作數(shù)據(jù)存儲表,記錄用戶操作信息,保障系統(tǒng)安全可控運(yùn)行。系統(tǒng)集成SURFER制圖功能,充分利用雨滴譜站網(wǎng)空間分布特性,設(shè)計數(shù)據(jù)處理模式,分析雨滴譜站網(wǎng)降水粒子數(shù)據(jù)在錫林郭勒盟轄區(qū)內(nèi)空間分布,形成可應(yīng)用降水粒子信息細(xì)化分布圖像,形成服務(wù)應(yīng)用產(chǎn)品。系統(tǒng)收集每次人工影響天氣作業(yè)前后降水粒子數(shù)據(jù)、錫林郭勒盟轄區(qū)站點(diǎn)降水量等數(shù)據(jù),通過現(xiàn)有評估模式,綜合評估分析作業(yè)效果,形成評估報告呈現(xiàn)給用戶。
此系統(tǒng)是針對目前錫林郭勒盟激光雨滴譜觀測站網(wǎng)現(xiàn)狀,結(jié)合業(yè)務(wù)需求,設(shè)計并實(shí)現(xiàn)了一種基于客戶端/服務(wù)器(C/S)模式的激光雨滴譜站網(wǎng)數(shù)據(jù)業(yè)務(wù)管理系統(tǒng),可實(shí)現(xiàn)雨滴數(shù)據(jù)管理,通過融合其他氣象資料,結(jié)合相關(guān)站點(diǎn)降水資料,制作降水粒子分析、人工影響天氣評估等服務(wù)產(chǎn)品,可有力支撐人工影響業(yè)務(wù)向信息化發(fā)展。