黎世忠,楊斌斌
(1.德惠市水利局,吉林 德惠 130300;2.松遼水利委員會水文局(信息中心),吉林 長春 130021)
嫩江右側(cè)主要支流水情自動測報系統(tǒng)建設(shè)的主要目的是為了滿足尼爾基水庫補償湊泄預報調(diào)度的要求以及嫩江下游蓄滯洪區(qū)洪水調(diào)度的需要,為松花江流域和尼爾基水庫防洪調(diào)度提供科學的決策依據(jù)。
嫩江右側(cè)主要支流洪水預報系統(tǒng)的建設(shè)目標是:基于現(xiàn)有報汛站、新建站,以實時水情數(shù)據(jù)庫、歷史水情數(shù)據(jù)庫為數(shù)據(jù)源,選用適合流域特點的水文模型,編制實時洪水預報方案,同時以DEM數(shù)字高程模型、先進的雨量查補技術(shù)、實時校正技術(shù)為輔助手段,依托計算機網(wǎng)絡(luò)環(huán)境,遵循水利部統(tǒng)一的技術(shù)架構(gòu),開發(fā)集預報與調(diào)洪演算為一體的洪水預報系統(tǒng),有效提高嫩江右側(cè)主要支流洪水預報的精度和預見期,為松遼委防汛抗旱和水資源管理提供科學、合理的洪水預測預報和調(diào)洪成果。
在洪水預報系統(tǒng)設(shè)計選擇瀏覽器/服務(wù)器(B/S)結(jié)構(gòu)和客戶機/服務(wù)器(C/S)結(jié)構(gòu)混合的異構(gòu)軟件體系結(jié)構(gòu),傳統(tǒng)的C/S體系結(jié)構(gòu)(無論是二層還是多層)和新興的B/S體系結(jié)構(gòu)各有其優(yōu)點和缺點。在設(shè)計中揚長避短,由單位內(nèi)部人員使用的模塊采用C/S結(jié)構(gòu),由各級領(lǐng)導及查詢?nèi)藛T使用的模塊采用B/S結(jié)構(gòu)。
外部用戶不直接訪問數(shù)據(jù)庫服務(wù)器,能保證數(shù)據(jù)庫的相對安全。內(nèi)部用戶的交互性較強,數(shù)據(jù)查詢和修改的響應(yīng)速度較快。同時,C/S與B/S混合軟件體系結(jié)構(gòu),能節(jié)省開發(fā)和維護成本,使系統(tǒng)具有良好的開放性,易擴展性,便于移植等優(yōu)點。
嫩右洪水預報系統(tǒng)的總體邏輯結(jié)構(gòu)框架可分以為3個層次:人機交互層、系統(tǒng)應(yīng)用層和系統(tǒng)支撐層。人機交互層是嫩右洪水預報系統(tǒng)與業(yè)務(wù)分析人員、決策分析人員和高層決策者進行交互的層;系統(tǒng)應(yīng)用層完成洪水預報作業(yè)過程中各個階段、各個環(huán)節(jié)的多種信息需求和分析處理;系統(tǒng)支撐層主要是對各種水雨工情數(shù)據(jù)、模型、方法、知識、圖形、空間信息等進行數(shù)據(jù)管理。系統(tǒng)的總體邏輯結(jié)構(gòu)框架見圖1。
圖1 系統(tǒng)的總體邏輯結(jié)構(gòu)框架
面向?qū)ο缶幊淌强紤]要開發(fā)的問題空間的一種方法,是把系統(tǒng)分解到組件,考慮組件之間的相互交互,這些組件稱為對象,包括與系統(tǒng)中其他組件交互所需的數(shù)據(jù)與編程邏輯分開考慮。面向?qū)ο缶幊痰幕舅悸肥窍到y(tǒng)中的一切都是對象,這些對象具有封裝性、繼承性、可復用性,極大地提高了面向?qū)ο笙到y(tǒng)的可擴充性和可復用性。在全面分析洪水預報系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,運用抽象、聚類、分解等信息建模方法,定義了水文模型及其參數(shù)率定方法。
水文模型的選擇是洪水預報的關(guān)鍵問題,目前廣泛使用的概念性模型主要有新安江模型、API模型、Tank模型、大伙房模型等等,系統(tǒng)目前使用的模型是三水源新安江模型。但是為了保證系統(tǒng)的可擴展性和可移植性,必須使系統(tǒng)兼容不同的水文模型,而每種模型的結(jié)構(gòu)和參數(shù)卻有很大差別,不可能用同一模型函數(shù)加以實現(xiàn),因此需要對各種水文模型的實現(xiàn)過程進行抽象,從接口的層面上定義模型。系統(tǒng)定義了HydrologicModel接口,其靜態(tài)UML如圖2,不同的水文模型只需要實現(xiàn)此接口中的各個方法。開發(fā)者只需要對HydrologicModel接口進行編程,而并不需要關(guān)心模型的實現(xiàn)細節(jié),通過這種方法水文模型可以被輕易地移植、重用和擴展。
系統(tǒng)在進行參數(shù)自動率定時,常用的參數(shù)率定方法主要有SCE-UA算法、遺傳算法、離子群算法、Rosenbroke算法等。該系統(tǒng)采用的是SCE-UA算法,在對三水源新安江模型進行參數(shù)率定時效果比較理想。但是由于不同的率定算法對于不同的水文模型在計算效率和精度上差別較大,為了使開發(fā)者今后能夠?qū)β识ǚ椒ㄟM行補充和擴展以便進行比較分析,系統(tǒng)仍然在算法結(jié)構(gòu)上進行了抽象接口設(shè)計。系統(tǒng)定義了CalibrateMethod接口,其靜態(tài)UML如圖3。編程者如果今后要對率定算法進行擴展只需要實現(xiàn)此接口。
圖2 水文模型對象描述
圖3 率定方法對象描述
數(shù)據(jù)庫是系統(tǒng)的基礎(chǔ)部分,為所有功能提供信息支撐,設(shè)計數(shù)據(jù)庫要從上到下,從高到低,從整體到局部,采用面向?qū)ο蟮姆椒▉碓O(shè)計數(shù)據(jù)庫,使數(shù)據(jù)庫模塊化,降低耦合性,方便以后的功能擴展或功能模塊的移植。本次開發(fā)從便于處理大量水文時間序列,支持多用戶、多方案操作的角度對數(shù)據(jù)庫表結(jié)構(gòu)進行了精心的設(shè)計,主要遵循了以下原則:
1)實用性原則:滿足各工作環(huán)節(jié)的需求,充分考慮用戶的一般要求和特殊要求,數(shù)據(jù)的取舍、關(guān)系的建立應(yīng)符合洪水預報系統(tǒng)實際需求。
2)可靠性原則:數(shù)據(jù)表結(jié)構(gòu)、屬性(字段)的定義完整、明確、界限清晰,保證用戶能方便、準確地采集和查詢數(shù)據(jù)。盡可能遵從第三范式要求,減少數(shù)據(jù)冗余度,確保數(shù)據(jù)一致性,提高查詢速度和系統(tǒng)的可靠性。
3)先進性原則:盡可能采用現(xiàn)代數(shù)據(jù)庫技術(shù),保證設(shè)計的先進性。必要時,適當放寬規(guī)范化要求和冗余度要求。
4)標準化原則:類別界定清晰,定義明確(無二義性),字段說明翔實。術(shù)語的采用,定義盡可能符合有關(guān)國家和行業(yè)規(guī)范,對沒有國家或行業(yè)標準,但是使用頻繁、數(shù)據(jù)量多的字段,或經(jīng)常需要進行排序、統(tǒng)計的字段,定義本系統(tǒng)內(nèi)統(tǒng)一的代碼規(guī)則和代碼表。
5)開放性原則:數(shù)據(jù)庫能夠靈活地進一步擴展,滿足洪水預報系統(tǒng)業(yè)務(wù)的發(fā)展。
1)系統(tǒng)堅持實用性、可靠性、先進性、開放性的原則,做到通用性強,界面清晰,接口標準,操作簡便;系統(tǒng)充分吸收國內(nèi)外成熟的經(jīng)驗,采用先進的設(shè)計思想和應(yīng)用技術(shù);系統(tǒng)的各個功能模塊要結(jié)構(gòu)化、模塊化、標準化,形成標準組件。
2)在軟件的開發(fā)過程中,將具有一定功能的程序模塊按照規(guī)范的格式封裝在一個組件中,并提供給其它的程序使用。在洪水預報系統(tǒng)中,中間件技術(shù)的應(yīng)用主要體現(xiàn)在:數(shù)據(jù)庫之間的同步和一致采用中間件編程的方式實現(xiàn);洪水預報和調(diào)洪演算模型的調(diào)用采用中間件構(gòu)建。
3)適用于水庫群、多水文模型,避免重復開發(fā),節(jié)約成本,達到資源優(yōu)化配置,同時也為了便于將來擴展到流域管理,系統(tǒng)需要能適用于流域水庫群環(huán)境,而且對于每個水庫需集成多套水文模型。
4)采用交互式界面設(shè)計,采用直觀的圖形用戶界面技術(shù)(GUI),信息表達形象、簡潔、直觀;以電子地圖作為系統(tǒng)背景,實現(xiàn)系統(tǒng)的分布式表達和專業(yè)信息查詢;各模型與系統(tǒng)界面控制程序之間平滑連接;系統(tǒng)操作以菜單、圖形、標像等形象化的界面元素為基礎(chǔ),大多數(shù)操作可以通過鼠標點擊完成,操作步驟和操作方法更加方便快捷。