黎世忠,楊斌斌
(1.德惠市水利局,吉林 德惠 130300;2.松遼水利委員會水文局(信息中心),吉林 長春 130021)
嫩江右側主要支流水情自動測報系統建設的主要目的是為了滿足尼爾基水庫補償湊泄預報調度的要求以及嫩江下游蓄滯洪區洪水調度的需要,為松花江流域和尼爾基水庫防洪調度提供科學的決策依據。
嫩江右側主要支流洪水預報系統的建設目標是:基于現有報汛站、新建站,以實時水情數據庫、歷史水情數據庫為數據源,選用適合流域特點的水文模型,編制實時洪水預報方案,同時以DEM數字高程模型、先進的雨量查補技術、實時校正技術為輔助手段,依托計算機網絡環境,遵循水利部統一的技術架構,開發集預報與調洪演算為一體的洪水預報系統,有效提高嫩江右側主要支流洪水預報的精度和預見期,為松遼委防汛抗旱和水資源管理提供科學、合理的洪水預測預報和調洪成果。
在洪水預報系統設計選擇瀏覽器/服務器(B/S)結構和客戶機/服務器(C/S)結構混合的異構軟件體系結構,傳統的C/S體系結構(無論是二層還是多層)和新興的B/S體系結構各有其優點和缺點。在設計中揚長避短,由單位內部人員使用的模塊采用C/S結構,由各級領導及查詢人員使用的模塊采用B/S結構。
外部用戶不直接訪問數據庫服務器,能保證數據庫的相對安全。內部用戶的交互性較強,數據查詢和修改的響應速度較快。同時,C/S與B/S混合軟件體系結構,能節省開發和維護成本,使系統具有良好的開放性,易擴展性,便于移植等優點。
嫩右洪水預報系統的總體邏輯結構框架可分以為3個層次:人機交互層、系統應用層和系統支撐層。人機交互層是嫩右洪水預報系統與業務分析人員、決策分析人員和高層決策者進行交互的層;系統應用層完成洪水預報作業過程中各個階段、各個環節的多種信息需求和分析處理;系統支撐層主要是對各種水雨工情數據、模型、方法、知識、圖形、空間信息等進行數據管理。系統的總體邏輯結構框架見圖1。

圖1 系統的總體邏輯結構框架
面向對象編程是考慮要開發的問題空間的一種方法,是把系統分解到組件,考慮組件之間的相互交互,這些組件稱為對象,包括與系統中其他組件交互所需的數據與編程邏輯分開考慮。面向對象編程的基本思路是系統中的一切都是對象,這些對象具有封裝性、繼承性、可復用性,極大地提高了面向對象系統的可擴充性和可復用性。在全面分析洪水預報系統數據結構的基礎上,運用抽象、聚類、分解等信息建模方法,定義了水文模型及其參數率定方法。
水文模型的選擇是洪水預報的關鍵問題,目前廣泛使用的概念性模型主要有新安江模型、API模型、Tank模型、大伙房模型等等,系統目前使用的模型是三水源新安江模型。但是為了保證系統的可擴展性和可移植性,必須使系統兼容不同的水文模型,而每種模型的結構和參數卻有很大差別,不可能用同一模型函數加以實現,因此需要對各種水文模型的實現過程進行抽象,從接口的層面上定義模型。系統定義了HydrologicModel接口,其靜態UML如圖2,不同的水文模型只需要實現此接口中的各個方法。開發者只需要對HydrologicModel接口進行編程,而并不需要關心模型的實現細節,通過這種方法水文模型可以被輕易地移植、重用和擴展。
系統在進行參數自動率定時,常用的參數率定方法主要有SCE-UA算法、遺傳算法、離子群算法、Rosenbroke算法等。該系統采用的是SCE-UA算法,在對三水源新安江模型進行參數率定時效果比較理想。但是由于不同的率定算法對于不同的水文模型在計算效率和精度上差別較大,為了使開發者今后能夠對率定方法進行補充和擴展以便進行比較分析,系統仍然在算法結構上進行了抽象接口設計。系統定義了CalibrateMethod接口,其靜態UML如圖3。編程者如果今后要對率定算法進行擴展只需要實現此接口。

圖2 水文模型對象描述

圖3 率定方法對象描述
數據庫是系統的基礎部分,為所有功能提供信息支撐,設計數據庫要從上到下,從高到低,從整體到局部,采用面向對象的方法來設計數據庫,使數據庫模塊化,降低耦合性,方便以后的功能擴展或功能模塊的移植。本次開發從便于處理大量水文時間序列,支持多用戶、多方案操作的角度對數據庫表結構進行了精心的設計,主要遵循了以下原則:
1)實用性原則:滿足各工作環節的需求,充分考慮用戶的一般要求和特殊要求,數據的取舍、關系的建立應符合洪水預報系統實際需求。
2)可靠性原則:數據表結構、屬性(字段)的定義完整、明確、界限清晰,保證用戶能方便、準確地采集和查詢數據。盡可能遵從第三范式要求,減少數據冗余度,確保數據一致性,提高查詢速度和系統的可靠性。
3)先進性原則:盡可能采用現代數據庫技術,保證設計的先進性。必要時,適當放寬規范化要求和冗余度要求。
4)標準化原則:類別界定清晰,定義明確(無二義性),字段說明翔實。術語的采用,定義盡可能符合有關國家和行業規范,對沒有國家或行業標準,但是使用頻繁、數據量多的字段,或經常需要進行排序、統計的字段,定義本系統內統一的代碼規則和代碼表。
5)開放性原則:數據庫能夠靈活地進一步擴展,滿足洪水預報系統業務的發展。
1)系統堅持實用性、可靠性、先進性、開放性的原則,做到通用性強,界面清晰,接口標準,操作簡便;系統充分吸收國內外成熟的經驗,采用先進的設計思想和應用技術;系統的各個功能模塊要結構化、模塊化、標準化,形成標準組件。
2)在軟件的開發過程中,將具有一定功能的程序模塊按照規范的格式封裝在一個組件中,并提供給其它的程序使用。在洪水預報系統中,中間件技術的應用主要體現在:數據庫之間的同步和一致采用中間件編程的方式實現;洪水預報和調洪演算模型的調用采用中間件構建。
3)適用于水庫群、多水文模型,避免重復開發,節約成本,達到資源優化配置,同時也為了便于將來擴展到流域管理,系統需要能適用于流域水庫群環境,而且對于每個水庫需集成多套水文模型。
4)采用交互式界面設計,采用直觀的圖形用戶界面技術(GUI),信息表達形象、簡潔、直觀;以電子地圖作為系統背景,實現系統的分布式表達和專業信息查詢;各模型與系統界面控制程序之間平滑連接;系統操作以菜單、圖形、標像等形象化的界面元素為基礎,大多數操作可以通過鼠標點擊完成,操作步驟和操作方法更加方便快捷。