黃 啟 有,黃 文 衡
(中國電建集團中南勘測設計研究院有限公司,湖南 長沙 410014)
中國幅員遼闊,河湖水系眾多,同時也是世界上水庫數(shù)量最多的國家[1],受季風及地理地形條件等的影響,洪澇災害頻發(fā),21世紀以來,平均每年洪澇災害給全國帶來的直接經(jīng)濟損失在千億元級[2-3]。流域洪水的預報調度,涉及流域內多個預報斷面和水庫對象,上游水庫的調度直接影響下游全部預報斷面和水庫調節(jié)的成果。實際工作中,往往是水文部門負責預報,防汛部門負責調度,防汛值班期間需要兩個部門深度合作,循環(huán)反復調試方案,給實際防汛工作帶來了極大的不便。流域洪水的預報調度一體化,是根據(jù)流域內預報斷面和調節(jié)水庫對象的上下游關系,將預報單元的產匯流計算、河道洪水演算、水庫調洪計算深度耦合在一起,一次計算,全部返回。預報調度一體化涉及眾多預報單元、眾多河段和眾多水庫對象的邏輯計算,因此一體化方案的創(chuàng)建和高效計算是該研究的重點和難點?,F(xiàn)有的系統(tǒng)大多是預報和調度兩個獨立運行的系統(tǒng),彼此間耦合度低,應用時需要人工干預,效率較低[4]。章四龍[5]采用C/S架構,設計并開發(fā)了覆蓋全國范圍的“中國洪水預報系統(tǒng)”,這是一個應用范圍廣、模型種類多的洪水預報系統(tǒng),但該系統(tǒng)中沒有考慮流域內水庫調節(jié)的影響。夏達忠[6]研究了預報方案的構建技術,采用方案對象鏈和配置鏈的方式,解決了對象最優(yōu)演算次序問題,為建立通用型的洪水預報系統(tǒng)框架打下了基礎,但是該技術中亦未考慮調節(jié)水庫的影響。水庫防洪調度系統(tǒng)方面,國內外多數(shù)重要的水庫/水電站,均建有水調自動化系統(tǒng),但多為單庫的洪水預報調度[7-8],對下游多個防洪保護對象和下游水庫的預報調度一體化考慮不足。2019年,陳瑜彬等[9]基于面向大數(shù)據(jù)平臺的網(wǎng)絡化服務理念,設計開發(fā)了長江流域防洪預報調度一體化系統(tǒng),實現(xiàn)了河系的河庫(湖)聯(lián)動、有序連續(xù)演算的預報調度一體化功能,是第一個面向大流域的完整意義上的河系洪水預報調度一體化系統(tǒng),但該系統(tǒng)以長江流域為特定對象,相對固定,系統(tǒng)對任意河系對象的預報調度一體化方案參數(shù)化配置考慮不足,可移植性有待提升。
本文基于預報調度一體化、模型云、陸氣耦合及多語言融合開發(fā)等多項關鍵核心技術,設計并開發(fā)了一個適用于大流域的河系洪水預報調度通用平臺,實現(xiàn)了河系洪水預報調度一體化方案創(chuàng)建的參數(shù)化配置與高效計算,具有滾動預報、作業(yè)預報、防洪調度等多項高級應用功能,系統(tǒng)具有可復用、可配置、可移植的特點。研究成果可為其他流域洪水預報調度提供參考。
預報調度通用平臺結合數(shù)據(jù)庫技術,根據(jù)河流層級的劃分,同一條河流名錄下,不同用戶可分別創(chuàng)建所屬用戶的多個不同方案(如高、中、低水方案等),并能對指定的方案面向指定的人群或人員共享,其他用戶可復制共享方案并對復制后的方案進行修改,具有良好的包容性。然后在此基礎上,開發(fā)預報調度一體化方案的參數(shù)化配置工具。
參數(shù)化配置是將流域內所有的預報斷面和調節(jié)水庫對象統(tǒng)一概化為兩種不同類型的節(jié)點,根據(jù)節(jié)點間的上下游關系進行連接,生成概化的流域拓撲圖;對拓撲圖中的對象,包括斷面節(jié)點、水庫節(jié)點以及節(jié)點與節(jié)點間的河段,根據(jù)預報調度方案,分別關聯(lián)選定預報模型、河道演算模型、水庫調度規(guī)則等屬性參數(shù),并統(tǒng)一存儲;根據(jù)拓撲圖的邏輯關系,自上而下進行產匯流計算、河道洪水演算、水庫調洪計算。
預報調度一體化體系,可以抽象地看作一棵“樹”,如圖1所示。樹干代表干流,枝杈代表支流,節(jié)點與節(jié)點間的連線代表河段,河段又分為實線河段(代表考慮區(qū)間洪水預報的河段)和虛線河段(代表不考慮區(qū)間洪水預報的河段)。
根據(jù)預報調度方案,對河系樹中的對象關聯(lián)屬性,節(jié)點屬性包括節(jié)點編碼、節(jié)點名稱、節(jié)點類型、上游節(jié)點編碼(可以多個,代表多條支流匯入,也可以為空,代表源頭節(jié)點)、下游節(jié)點編碼(可以為空,代表終點)。對于水庫類型節(jié)點,還包括水庫特性曲線(包括庫容曲線、泄流曲線)、調度規(guī)則(單庫調度)對應的模型求解方法類型及模型參數(shù),如規(guī)則調度(用D1表示,參數(shù)包括控制水位1、控泄流量1、控制水位2、控泄流量2、控制水位3、控泄流量3等)、水位控制(用D2表示,參數(shù)包括最高控制水位、當前出庫、出庫允許變幅、最低控制水位)、出庫控制(用D3表示,參數(shù)包括最大出庫控制、當前出庫、出庫允許變幅、最低控制水位)、指令調度(用D4表示,參數(shù)為指定出庫的時間序列)、固定下泄(用D5表示,參數(shù)為允許最大下泄流量)等。對于源頭節(jié)點和實線河段,關聯(lián)屬性包括預報單元編碼、預報單元名稱、預報模型類型、預報模型配置與參數(shù),以新安江模型為例,模型類型用Y1表示(陜北模型用Y2表示),模型配置與參數(shù)包括預報單元面積、雨量站點列表及面積權重、蒸發(fā)站點列表、蒸散發(fā)折算系數(shù)、上層張力水容量、下層張力水容量、深層張力水容量等模型參數(shù)。河段對象還需關聯(lián)河道演算模型及參數(shù),屬性還包括河段編碼、河段名稱、上游節(jié)點編碼、下游節(jié)點編碼、河段演算模型類型、河段演算模型參數(shù)。例如馬斯京根法,類型為Z1,參數(shù)包括馬斯京根法河段數(shù)n、馬斯京根參數(shù)1(KE)、馬斯京根參數(shù)2(XE)。
預報調度一體化計算由于計算量較大,平臺基于模型云計算服務技術將預報、調度、洪水演算等模型解耦,并封裝部署于云端。由模型云提供單個模型計算的微服務,對外提供標準的統(tǒng)一Restful API接口,包括新安江模型微服務、陜北模型微服務、馬斯京根河道演算微服務、規(guī)則調度微服務、指令調度微服務、預泄調度微服務等。模型云是一個單獨的模型云后臺管理平臺,為預報調度通用平臺提供模型計算服務。模型計算服務以容器云為基礎,兼容層為計算核心,網(wǎng)絡文件存儲為模型計算數(shù)據(jù)交換中間件,支持對其他模型的擴展,將不同的模型計算引擎部署在容器云中,生成標準化的接口對外提供服務??紤]到模型計算服務調用的效率問題,采用負載均衡機制對模型計算的資源進行分配,保證多用戶同時調用或者同一用戶多個任務的并發(fā)調用的實時響應。為保證模型計算的安全性和保密性,對每一個微服務接口,通過帶token的請求頭的權限認證方式進行計算認證。一體化計算根據(jù)拓撲對象間的上下游關系采用自上而下的順序計算方式,對相互獨立的多任務計算采用并行處理的方式,提高了模型計算效率,其應用在了包括全部預報單元的產匯流并行計算、同一層級的河道洪水演算并行計算、同一層級的預報斷面或水庫的洪水組成及水庫調洪并行計算。一體化計算流程如圖2所示,其中①代表全部預報單元產匯流并行計算,②④⑥⑧代表河道匯流計算,③⑦代代洪水組成疊加計算,⑤⑨代表洪水組成疊加計算和調洪計算,按照①~⑨的步驟進行一體化計算。
陸氣耦合的目的在于延長流域洪水預報的預見期,在保證數(shù)值預報精度的前提下,提前預報洪峰流量、洪量及峰現(xiàn)時間等,預先采取措施,有效提高流域整體的防洪減災能力。氣象預報模式包括歐洲氣象中心ECMWF模式、日本氣象廳JMAM模式、美國國家環(huán)境預報中心的GFS模式,以及中國氣象局數(shù)值預報中心的GRAPES模式等[10-11]。數(shù)值氣象預報降雨成果為網(wǎng)格型數(shù)據(jù),當水文預報采用分布式水文模型時,由于陸氣兩套網(wǎng)格尺寸可能不同,需要以分布式水文預報的網(wǎng)格為基準,對網(wǎng)格降雨進行相應匹配;而對傳統(tǒng)的水文模型,則需要將網(wǎng)格型降雨數(shù)據(jù)轉化為相應分區(qū)的面雨量。
流域洪水預報調度通用平臺的開發(fā)涉及前端、后臺、數(shù)據(jù)庫及GIS等多個方面,平臺前端開發(fā)涉及HTML 5、CSS3、JavaScript、ES6、Ant Design、ECharts等技術,后臺包括模型云涉及Spring、Spring Cloud等微服務技術,以及前后端的調用與數(shù)據(jù)交互等。本文在預報調度通用平臺開發(fā)中,前端應用通過Ajax方式調用后端的RESTFUL API接口,采用JSON格式進行數(shù)據(jù)交互。平臺的數(shù)據(jù)存儲包含關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫,關系型數(shù)據(jù)可采用My SQL、SQL Server、Oracle等,非關系型數(shù)據(jù)可采用Hbase、MongoDB、HDFS等存儲。GIS主要涉及前端的展示以及應用工具的開發(fā),平臺預報單元子匯水區(qū)劃分采用泰森多邊形法。
考慮到通用平臺的廣泛適用性和應用規(guī)模,平臺開發(fā)采用當前最先進的“云計算”典型架構,遵循微服務理念、RESTful API架構風格及前后端分離的標準開發(fā)方式,前端應用通過Ajax方式調用后端的RESTFUL API接口并使用JSON格式進行數(shù)據(jù)交互。
平臺在統(tǒng)一標準和安全防護體系下分層構建,主要包括展現(xiàn)層、應用層、數(shù)據(jù)層、基礎設施層(見圖3)。展現(xiàn)層主要為WEB系統(tǒng)、大屏、小程序、APP、公眾號等服務方式。應用層基于微服務的理念,通過REST API及消息隊列等方式實現(xiàn)通信,分模塊封裝,包括滾動預報、作業(yè)預報、一體化方案構建、參數(shù)率定、精度評價等。數(shù)據(jù)層包括實時水雨情、數(shù)值氣象預報及基礎工程類等數(shù)據(jù),類型包括關系型數(shù)據(jù)和非關系型數(shù)據(jù),可分別采用SQL Server/Oracle/My SQL或Hbase/MongoDB/HDFS文件系統(tǒng)等存儲,數(shù)據(jù)的管理基于Hadoop生態(tài),同時結合Spark和STORM等流式計算提高性能?;A設施層包括服務器、存儲、網(wǎng)絡、云服務設施和安防設備等。
預報調度通用平臺的主體功能包括一體化方案創(chuàng)建、參數(shù)率定與驗證、滾動預報、作業(yè)預報、防洪調度、值班監(jiān)視與預警、防汛會商、精度評價等。
(1) 預報調度一體化方案的創(chuàng)建??紤]到平臺的通用性,結合實時水雨情數(shù)據(jù)庫表及河流水系表,平臺設計支持任意河流水系對象下的多個預報調度一體化方案創(chuàng)建,結合拓撲配置工具,實現(xiàn)河系洪水預報調度一體化方案的參數(shù)化配置。
(2) 參數(shù)率定與驗證。一體化方案涉及的預報單元、水庫對象和河段數(shù)等較多,模型參數(shù)多,參數(shù)率定和驗證采用人機結合的方式。根據(jù)上游對象節(jié)點(非唯一)的編碼,自動提取相應關聯(lián)站點的實測數(shù)據(jù)進行河道演算,從而對區(qū)間預報單元的模型參數(shù)以及區(qū)間河段的演算參數(shù)進行率定。
參數(shù)化配置工作中的參數(shù)率定模塊支持指定任意河段范圍的參數(shù)率定計算(見圖4)。
(3) 滾動預報。在預報調度一體化方案的基礎上,結合GIS技術,通過定時任務的方式,實現(xiàn)平臺可配置的多河系對象預報調度一體化滾動計算。平臺采用關系型數(shù)據(jù)庫對河流水系對象的矢量數(shù)據(jù)進行參數(shù)化存儲,根據(jù)上下游對象預報統(tǒng)計成果,通過GIS技術對河段及站點水情預報成果進行渲染。對于水文水位斷面,采用警戒水位、保證水位、歷史最高水位3個指標進行預警提示;對于水庫對象,采用汛限水位、防洪高水位、設計洪水位、校核洪水位4個指標進行預警提示。滾動預報中,水庫的調洪計算按照當前出庫流量并以泄流能力為約束參與計算。
(4) 作業(yè)預報。作業(yè)預報涉及多用戶、多任務,甚至多模式、多方案的預報調度一體化計算,其中單個預報調度一體化方案又涉及多個預報單元和河道及水庫的預報、調度計算,對后臺模型的調用異常頻繁。為此平臺結合模型云計算服務技術,通過負載均衡手段,對預報調度一體化體系的計算流程進行優(yōu)化,實現(xiàn)了多用戶、多任務、多方案、多模式的高效并發(fā),理論上比傳統(tǒng)的串行計算提高了數(shù)倍甚至數(shù)十倍的效率。平臺支持任意時段長的預報調度一體化計算,不同的時段步長,模型參數(shù)需要適當調整。預報成果經(jīng)審核發(fā)布后,自動生產相應的產品并對其他系統(tǒng)提供預報產品服務。
(5) 防洪調度。防洪調度功能模塊以水庫調度為核心,基于成熟的預報方案,在預報調度一體化的后臺計算邏輯基礎上,通過改變水庫的調度方式,實現(xiàn)不同調度方案的調度成效對比和下游對象的洪水影響評價。
(6) 值班監(jiān)視與預警。值班監(jiān)視與預警提供監(jiān)測和預報的雨水情監(jiān)視與預警功能,其中雨情監(jiān)視與預警采用暴雨、大暴雨、特大暴雨等級標準劃分,河道水情按超警戒、超保證、超歷史最高水位劃分,水庫水情按汛限水位、防洪高水位、設計洪水位、校核洪水位劃分。
(7) 防汛會商。防汛會商主要基于視頻會商流程,在智慧防汛模塊中,提供對實測降雨、數(shù)值預報降雨、河道和水庫實時水情、預報水情等的分析功能,并支持人工干預的不同調度方式實時計算與方案對比分析,為防汛調度提供決策技術支持。
(8) 精度評價。洪水預報效果的評價主要取決于洪峰流量、洪量、峰現(xiàn)時間、過程擬合程度,平臺按照規(guī)范,對于洪峰流量、洪量及峰現(xiàn)時間采用相對誤差的指標進行描述,采用確定性系數(shù)評價洪水預報的精度[12-13]。
湖南省水系發(fā)達,河湖眾多,洞庭湖蓄納湘、資、沅、澧四水,吞吐長江,流域總面積26.28萬km2,其中四水流域23.02萬km2。獨特的地理氣候條件,使得全省洪澇災害頻發(fā),損失較大,同時四水與長江洪水易遭遇,防洪問題尤為突出。全省水庫13 737座,其中四水主要干支流分布有承擔流域防洪任務的大中型水庫群幾十座,流域洪水的預報調度對于整個洞庭湖流域的防洪至關重要。
湖南省四水流域洪水預報調度系統(tǒng),是基于預報調度一體化和模型云等技術開發(fā)的一個集水雨情監(jiān)測、洪水預報、水庫調度及防汛會商等功能于一體的預報調度通用平臺。該平臺除了支持湘、資、沅、澧四水流域的洪水預報調度應用外,通過系統(tǒng)管理的基礎數(shù)據(jù)管理配置功能,可任意擴展河流水系并進行預報調度一體化方案配置、參數(shù)率定和驗證、一體化計算及自動預報等功能。四水流域洪水預報調度系統(tǒng)共含21座水庫、59個防洪控制斷面的預報調度對象,如表1所列。
表1 湖南省四水流域預報調度一體化節(jié)點對象Tab.1 Node objects of the four river major basins in Hunan Province
方案構建基于“一體化方案拓撲配置工具”實現(xiàn),其中洪水預報采用新安江模型,河道演算采用馬斯京根法,水庫調度集成了包括規(guī)則調度、預泄調度、水位控制、出庫控制、補償調度、指令調度等模型算法。
該系統(tǒng)針對多用戶并發(fā)的多河流水系預報調度方案擬定,實現(xiàn)了多模式預報調度一體化高效計算。以2020年7月洪水為例,四水流域共計21座水庫59個水文站,預熱期10 d,模擬期20 d,時段長3 h,多任務計算耗時合計55.6 s,而單純的串行計算時間需2 min 58 s,大大提高了計算效率。方案運算情況分別見圖5及表2,其中澧水流域不受水庫調節(jié)影響的7個預報斷面中,4次洪水過程合格率為82.5%,達到甲等水平。以雙楓潭站為例,7月洪水模擬對比如圖6所示。
從圖5和表2可以看出:2020年7月,洪水主要發(fā)生在資水、沅水和澧水流域,其中資水柘溪水庫按不超170 m防洪高水位調度,全流域預報超警戒斷面4個;沅水主要水庫按照規(guī)則調度控制,預報超警戒斷面5個,鳳灘、五強溪水庫將超汛限水位但低于防洪高水位;澧水預報超警戒斷面5個,超保證斷面2個,皂市水庫按照調度規(guī)則將超汛限水位但低于防洪高水位。
表2 四水流域2020年7月洪水預報調度結果統(tǒng)計Tab.2 Statistics of flood forecasting and dispatching results of the four river basins in July 2020
本文基于預報調度一體化、模型云、多模式陸氣耦合的水文預報及多語言融合的平臺開發(fā)技術,開發(fā)了一套大流域河系洪水預報調度通用平臺。平臺通過拓撲配置工具,實現(xiàn)了任意流域水系的參數(shù)化建模。結合模型云計算服務技術及多模式的陸氣耦合技術等,實現(xiàn)了流域河系洪水預報調度一體化的高效計算,并在此基礎上,開發(fā)了滾動預報、作業(yè)預報及專門面向防汛會商的水庫防洪調度等多項高級應用。最后在湖南省湘、資、沅、澧四水流域開展了應用,取得了良好的效果。構建的平臺具有可復用、可配置及高效計算等特性,可推廣應用于全國其他流域水系。