錫林郭勒盟氣象局 郭立志
為進一步完善錫林郭勒盟激光雨滴譜觀測站網布局,近年來陸續建設八個激光雨滴譜觀測站,初步組成錫林郭勒盟激光雨滴譜觀測站網,實現對各種類型的降水粒子的自動組網監測,降水粒子監測資料實時上傳服務器,采集的降水粒子信息可以實時共享。經過業務試運行,服務器收集存儲大量.csv格式文件,為數據管理應用分析造成很大問題。
為加強激光雨滴譜站網數據管理業務分析應用,針對目前錫林郭勒盟激光雨滴譜觀測站網現狀,結合業務需求,決定設計研制錫林郭勒盟激光雨滴譜站網數據業務管理系統,對錫林郭勒盟激光雨滴譜觀測站網數據加強管理與應用,評估人工影響天氣作業效果,制作監測降水粒子服務產品,更好地為農、牧業服務。
設計實現激光雨滴譜站網數據業務管理系統,系統將強化數據管理,定期形成電子檔案資料,統一存儲,方便以后科研、管理、應用。系統全面管理雨滴譜觀測站網建站信息、設備信息、業務運行信息、質量考核信息,實現業務運行與質量考核一體化運行,保證雨滴譜觀測站網業務化運行。依據雨滴譜站網觀測數據支撐,經過分析研究雨滴數據,可形成pdf、doc、Excel文件格式初級服務產品。系統集成SURFER制圖功能,充分利用雨滴譜站網空間分布特性,分析降水粒子分布形成圖形服務產品。系統可收集每次人工影響天氣作業前后降水粒子數據、全盟站點降水量等信息,綜合評估分析作業效果,形成圖片、表格等作業評估初級服務產品,為決策者提供服務。激光雨滴譜站網數據業務管理系統設計研究,填補了這一領域的空白。系統設計實現后,可加強雨滴數據管理,通過綜合其他氣象資料,結合全盟站點降水資料,加強對降水粒子分析評估,可有力支撐雨滴譜站網數據在人工影響業務方面的應用。
使用EnterpriseLibary做數據庫訪問底層,它除了其能兼容多種數據庫,還可以使用其進行數據庫訪問,編寫一次操作代碼,基本在各種數據庫都適用。
首先BLL層,通過BLL Fact ory對象,根據配置信息,實例化不同的業務訪問對象,轉換為數據訪問層接口進行調用,BLLFactory通過反射間接方式,構建出不同數據庫對象的數據訪問層,而數據訪問對象,他們都集成了基類BaseDAL,這個基類封裝了增刪改查等基礎性操作,并通過高度抽象,只需要繼承該基類的子類重載部分函數即可完成較為豐富的操作實現。
用戶操作數據訪問對象ItemDetail,它繼承BaseDAL,具有操作數據庫對應基本操作,還繼承另一個接口IitemDetail,它可定義用戶需要的特殊接口,以便使數據訪問功能更強。
為提高系統運行效率,系統設計為客戶端/服務器(C/S)結構,使用.NET Framework 4.6為目標框架,基于C#編程語言編寫“激光雨滴譜站網數據業務管理系統”運行處理顯示程序。系統采用通用三層開發框架開發,將整個系統研制劃分為業務表示層、業務邏輯層和數據訪問層。利于系統的開發、維護、部署和以后系統的擴展。分層也是為了實現程序開發“高內聚,低耦合”,符合程序設計開發標準化要求。把業務問題與程序設計高度契合,劃分問題,各個解決,易于控制程序開發,便于解決問題。數據層可以解決將雨滴譜站網原始數據文件處理并保存到數據庫,用戶可根據業務需求,通過業務邏輯,訪問數據庫,數據訪問層根據指令,按照用戶要求將數據加工處理為表格圖片等形式反饋給用戶。系統可以管理站網基本、業務日常運行考核等信息,實現業務運行與質量考核一體化。系統采用三層架構分層設計,分別是表現層(UI)、業務邏輯層(BLL)和數據訪問層(DAL)。如圖1三層設計架構。三層架構中主要功能與業務邏輯一般要在業務邏輯層進行信息處理和實現,其中三層體系架構中的客戶端和數據庫要預設中間層,成為組建層。三層架構中的三層具有一定的邏輯性,即是將三層設置到同一個計算機系統中,把業務協議、合法校驗以及數據訪問等程序歸置到中間層進行信息處理,一般客戶端無法和數據庫進行數據傳輸,主要是利用COM/DCOM通訊和中間層構建銜接通道,實現中間層與數據庫的數據傳輸,進而實現客戶端與數據庫的交互。

圖1 三層設計系統架構
1.表示層
表示層又稱表現層‘簡稱UI’,位于三層構架的最上層,與用戶直接接觸,主要是C/S信息系統中的用戶瀏覽操作窗體。作為Winform窗體瀏覽操作頁面,表示層的主要功能是實現系統數據的輸入與輸出,在此過程中不需要借助邏輯判斷操作就可以將數據傳送到業務邏輯層BLL層中進行數據處理,處理后會將處理結果反饋到表示層。換句話說,表示層就是實現用戶界面功能,將用戶的需求傳達和反饋,保證用戶體驗流暢,操作友好。
2.業務邏輯層
業務邏輯層BLL的功能是對具體問題進行邏輯判斷與執行操作,接收到UI層的用戶指令后,會連接數據訪問層DAL,訪問層在三層構架中位于表示層與數據層中間位置,同時也是表示層與數據層的橋梁,實現三層之間的數據連接和指令傳達,可以對接收數據進行邏輯處理,實現數據的修改、獲取、刪除等功能,并將處理結果反饋到UI層中,實現軟件功能。
3.數據訪問層
數據訪問層DAL是數據庫的主要操控系統,實現數據的增加、刪除、修改、查詢等操作,并將操作結果反饋到業務邏輯層BLL。在實際運行的過程中,數據訪問層沒有邏輯判斷能力,為了實現代碼編寫的嚴謹性,提高代碼閱讀限度,系統會在該層中編寫Data Access Common,保證數據訪問層DAL數據處理功能。
4.實體類庫
實體類庫是數據庫表的映射對象,在信息系統軟件實際開發的過程中,要建立對象實例,將關系數據庫表采用對象實體化的方式表現出來,輔助軟件開發中對各個系統功能的控制與操作執行,把數據庫表中的所有字段映射為系統對象,建立實體類庫,進而實現各個結構層的參數傳輸,提高代碼的閱讀性。從本質上看,實體類庫主要服務于表示層、業務邏輯層以及數據訪問層,在三層之間進行數據參數傳輸,強化數據表示的簡約性。
針對雨滴站網業務運行情況,結合系統架構設計,將系統功能模塊化,按照數據業務應用流程,功能設計劃分為五個部分:分別是數據采集存儲、數據查詢、數據可視化、結合SURFER進行數據空間分析、通過融合多源數據進行人工影響天氣作業評估(具體功能設計結構如圖2)。

圖2 系統功能設計
1.數據存儲功能
此功能實現雨滴譜站網數據傳輸到指定目錄,然后將每個數據文件讀取并進行解析,最后保存到數據庫相應數據表。用戶操作軟件輸入雨滴站、設備、業務運行、質量考核信息后保存,完成數據存儲功能。
2.數據查詢統計功能
此功能實現用戶操作軟件,通過查詢選項操作,把用戶數據需求,在數據庫中查詢,以表格形成呈現。用戶可以以旬、月、季、年等進行統計并以表格呈現。
3.數據可視化功能
此功能利用ScottPlot控件進行數據繪制為圖形。表現為折線圖、條形圖、餅圖、散點圖等。ScottPlot是一個免費的開源交互式繪圖庫,適用于.NET。它具有適用于Windows窗體的用戶控件,它可快速將數據繪圖生成為圖像文件。ScottPlot的接口模仿Python的Matplotlib,大多數繪圖都可以用一行代碼創建(使用可選參數來自定義樣式)。用戶可復制數據可視化圖像文件,添加到氣象服務產品中,為各類用戶服務。
4.空間分析功能
此功能利用Surfer數據文件網格化、數據網格點插值、疊加底圖等功能,且在.NET實現了特定范圍內等值線色斑圖的繪制,可將雨滴數據繪制呈現等值線色斑圖,并與錫盟地理地圖疊加,表現出雨滴、降雨量等氣象要素值地理分布與強度變化。用戶可以將此圖添加到氣象預報、服務產品中,為更多用戶提供參考服務。
5.效果評估功能
人工影響天氣作業后,對作業效果進行評估是重要環節,評估主要是作業目標區與對比區降水量等氣象要素值數學模型計算后再進行效果評估。作業目標區與對比區降雨量正態分布檢驗過程,估算作業影響區降雨絕對增加量、相對增加量、折合水量、社會生態經濟效果等。
為了降低系統具備高效的數據查詢效率,保持良好的擴展性,系統數據存儲設計,充分利用Access關系型數據庫功能,存儲雨滴譜站網數據。系統功能模塊可以收集分析雨滴譜站形成的數據文件,重點分析數據文件結構,技術攻關雨滴譜站網數據文件結構解析,并研究其存儲表結構,最終形成數據庫存儲數據表,實現激光雨滴譜站網數據統一管理,形成存儲電子日志資料,定期安全檢查,數據文件統一存儲,方便以后科研應用。針對系統處理存儲數據實際需求將雨滴譜站網數據,設計為Access數據庫四個存儲表:分別為雨滴譜建站信息數據表、雨滴譜設備信息數據表、雨滴譜業務運行信息數據表、雨滴譜業務質量考核信息數據表,存儲在Access數據庫,為提供系統運行必要的數據支撐,便于用戶分析研究業務運行信息、質量考核信息,實現業務運行與質量考核一體化,統一監督考核。
建立業務運行工作日志數據管理中心,設置用戶職責權限與操作系統數據對應管理中心。利用C#程序設計研究分析統計處理模型,研究業務運行信息、質量考核信息有機統一,才能實現站網數據管理系統一體化、信息化運行。
雨滴譜建站信息數據表可以存儲站網建站基本信息。其主要字段有記錄唯一標記、自治區名稱、盟市名稱、旗縣名稱、站點名稱、站點代碼、經度、緯度、海拔高度、站點建設日期、分頁控件專用字段,根據需要設計好表的字段、備注、約束、索引等信息。
雨滴譜設備信息數據表可以存儲雨滴設備基本信息。其主要字段有記錄唯一標記、設備名稱、設備型號、生產廠家、生產日期、合格證代碼、檢定日期、分頁控件專用字段。
雨滴譜業務運行信息數據表可以存儲雨滴數據文件業務運行基本信息。其主要字段有記錄唯一標記、年份、月份、站點代碼、應發報數、及時報、及時率、逾限報、逾限率、缺報、缺報率、分頁控件專用字段。
雨滴譜業務質量考核信息數據表可以存儲雨滴站網業務運行質量考核基本信息。其主要字段有記錄唯一標記、年份、月份、站點代碼、質量考核錯誤、錯誤率、分頁控件專用字段。
分析雨滴數據文件結構,系統解析數據文件,并與數據庫相應表對應,通過系統數據邏輯層指令,通過數據訪問層將數據存儲于數據庫,便于用戶操作數據。針對雨滴譜站網運行現狀,梳理業務數據需求,研究歸納業務運行信息存儲結構,建立存儲數據表,分析研究業務運行信息、業務考核信息統一監督,實現業務運行與考核一體化運行。依據系統運行需求,建立日志記錄根據用戶操作數據存儲表,記錄用戶操作信息,保障系統安全可控運行。系統集成SURFER制圖功能,充分利用雨滴譜站網空間分布特性,設計數據處理模式,分析雨滴譜站網降水粒子數據在錫林郭勒盟轄區內空間分布,形成可應用降水粒子信息細化分布圖像,形成服務應用產品。系統收集每次人工影響天氣作業前后降水粒子數據、錫林郭勒盟轄區站點降水量等數據,通過現有評估模式,綜合評估分析作業效果,形成評估報告呈現給用戶。
此系統是針對目前錫林郭勒盟激光雨滴譜觀測站網現狀,結合業務需求,設計并實現了一種基于客戶端/服務器(C/S)模式的激光雨滴譜站網數據業務管理系統,可實現雨滴數據管理,通過融合其他氣象資料,結合相關站點降水資料,制作降水粒子分析、人工影響天氣評估等服務產品,可有力支撐人工影響業務向信息化發展。