張振林,姬戰(zhàn)生,孫政軒,金輝明
(1·杭州市水文水資源監(jiān)測中心,浙江 杭州 310016;2·余杭區(qū)東苕溪水利工程運管中心,浙江 杭州 311115;3·杭州知水科技有限公司,浙江 杭州 310009)
隨著水利數(shù)字化改革的不斷深入,對水文分析成果質(zhì)量提出越來越高的要求,希望在快訊、快報等實時分析材料中嵌入各類水文分析圖件,達到圖文并茂的展示效果。而水文圖件繪制是一項十分繁瑣的任務。水文圖件種類繁多,有雨量過程圖件、等值線圖件、水位圖件、水庫蓄水圖件等,而且繪制時需要整理大量的實時和歷史水文資料作為基礎,工作量大且容易出錯,所以水文圖件自動繪制是信息化轉(zhuǎn)換的必然要求,也是水文數(shù)字化改革中的重要一環(huán)。
水文圖件作為文檔自動生成的重要組成部分,國內(nèi)外研究較多,如:姜鵬[1]構建基于云平臺的防汛文檔智能生成模型,實現(xiàn)水利分析文檔的自動構建;曲明成[2]構建基于工作流的文檔生成系統(tǒng),實現(xiàn)電力制造企業(yè)中某些復雜計算的自動化;BUCHNER J[3]結合MVC架構設計文檔描述模型框架HotDoc;葛芬[4]提出基于VBA、ADO和ASP等多項技術,利用模板建立Word文檔的自動生成平臺。綜上所述,在文檔自動生成方面,已有比較完善的研究可供參考,而在水文圖件的自動生成方面,目前國內(nèi)還沒有相關研究。
本文根據(jù)水利防汛和水文分析的實際應用需要,對水文分析圖件進行研究,提取公共分析圖件,并基于當前主流的微服務技術,以服務調(diào)用方式提供圖件生成支持,在完成文檔報告“一鍵生成”的同時,提供水文分析圖件的自動生成和插入,大大提高了分析效率和分析質(zhì)量。
平臺采用4層系統(tǒng)架構(見圖1)。
圖1 服務架構圖
數(shù)據(jù)服務層:為系統(tǒng)提供基礎性數(shù)據(jù)服務,實時準確地提供各類水文應用相關數(shù)據(jù)。
服務支撐層:為應用層提供基礎性信息服務。
微服務層:通過調(diào)用基礎性服務,為用戶提供應用需要的圖件。
應用層:對于圖件的調(diào)用,目前主要是文檔生成時調(diào)用和應用系統(tǒng)直接調(diào)用。
水文分析圖件生成的基礎是數(shù)據(jù),在一個省市級的數(shù)據(jù)中心,數(shù)據(jù)量大且種類繁多。為將數(shù)據(jù)和業(yè)務有效隔離,采用微服務技術,對外提供各種高效方便的數(shù)據(jù)服務,各應用只需通過調(diào)用指定服務即可獲取各類分析成果,大大提高應用開發(fā)效率,并利于系統(tǒng)后期維護。
水文分析過程中會產(chǎn)生各類分析成果,由于成果未進行服務化處理,很多固化在某個文檔中,很難在各文檔間引用或進行成果的定制化處理。本研究將對所有水文分析成果進行分類和抽象化處理,形成公共的水文分析成果服務。
等值線圖是水文分析計算中最常用的圖形表現(xiàn)形式,是進行雨量空間分布分析和平原河網(wǎng)水位分析的基礎。本研究對等值線常用算法的反距離權重法、最小曲率法、三角剖分線性插值法以及克立格法進行比較分析,并綜合考慮計算機并行計算的復雜程度、計算效率等,采用逆距離加權法進行等值面計算。通過遮蔽算法對反距離權重法進行優(yōu)化,充分運用當前主流服務器的并行計算能力對算法進行并行計算,保證等值線圖件3 s內(nèi)返回結果。等值線圖件生成需要經(jīng)過5個步驟:
(1)邊界和站點數(shù)據(jù)獲取。在繪制等值線(面)之前,首先要有完整的邊界數(shù)據(jù)和用于參與計算的樣本數(shù)據(jù),即站點信息,其中包括站點的位置信息和實時降雨量數(shù)據(jù),系統(tǒng)可根據(jù)邊界數(shù)據(jù)從所有站點中提取邊界內(nèi)和周邊的站點信息。
(2)站點數(shù)據(jù)篩選。綜合考慮各站點的位置信息、實時降雨量和歷史降雨情況,篩選出布局均勻、數(shù)據(jù)可靠的站點參與等值面計算。
(3)網(wǎng)格數(shù)據(jù)生成。采用逆距離加權法,并通過遮蔽算法對網(wǎng)格數(shù)據(jù)進行優(yōu)化,生成邊界內(nèi)各網(wǎng)格的雨量數(shù)據(jù)。對計算過程進行并行化處理,提供網(wǎng)格計算效率,保證數(shù)據(jù)在規(guī)定時間內(nèi)生成。
(4)等值線生成。采用三角網(wǎng)格化方法對生成的網(wǎng)格進行等值線提取,并對提取的等值線進行光滑處理,刪除無效等值線,保證生成的等值線合理、準確、美觀。
(5)圖片生成。根據(jù)水文規(guī)范對網(wǎng)格數(shù)據(jù)進行色塊著色,并在畫布上繪制等值線和對應的標注,在一張圖上生成等值線面圖,并對圖形以Base64字符格式的接口數(shù)據(jù)返回。
在文檔中插入圖形是豐富文檔內(nèi)容的重要手段。水文分析計算中會涉及各類圖形,如:用于表達雨量同期分析的雨量柱狀圖,用于表達水位變化過程的水位線性過程圖,用于表達水庫水量分布的餅狀圖以及用于表達降雨分布的等值線圖等,這些圖形只有通過服務化才能實現(xiàn)生成文檔時直接調(diào)用。本研究通過比較各類組件,最終選用Puppeteer作為統(tǒng)計圖形服務化的基礎組件,并通過集成ECharts或HighCharts控件對生成的圖形包裝成微服務,供文檔應用程序調(diào)用。
水文業(yè)務分析系統(tǒng)是進行水文分析文檔自動生成、在線編輯和發(fā)布的綜合性系統(tǒng)。用戶可通過水文分析系統(tǒng)生成各類水文分析文檔,包括實時水雨情分析文檔、歷史同期水雨情分析文檔、階段總結文檔、匯報文檔以及專題文檔等。系統(tǒng)支持一鍵生成文檔,文檔內(nèi)容包括文字描述、統(tǒng)計表格、圖形展示等,圖文并茂、主題內(nèi)容突出、結構簡潔明了,為生成水文防汛報表、報告提供強大的技術和數(shù)據(jù)支持。
以一個綜合性的文檔報告生成為例,文檔主要由實時雨情、實時河道水情、實時水庫水情、洪水預報和氣象預測信息5部分組成。各部分均采用文字、表格和圖形進行信息表達,涉及文字生成、表格生成和圖形生成至少3個服務的調(diào)用過程。比如:實時雨情通過文字和圖形描述總體降雨情況、分區(qū)降雨情況以及同期降雨情況,通過等值線圖對全區(qū)域的降雨情況進行表達;實時河道水情通過文字和表格對全區(qū)域內(nèi)重點河道的實時水位信息以及超警戒情況進行描述,并對重點河道站以過程圖的方式表達。調(diào)用結構見圖2。
圖2 文檔構建過程服務調(diào)用結構圖
通過文檔構建過程中對各服務的調(diào)用,可生成綜合性水文分析文檔,文檔中包括文字和圖片,用戶可直接打印或?qū)С鯬DF文檔發(fā)布分享,效果見圖3。
圖3 文檔生成效果圖
針對當前水文分析文檔中插入圖表繁瑣費時、生成的圖表樣式不標準等問題,本研究通過對文檔的綜合性分析,提取常用水文分析圖件,通過圖件生成技術對文檔中涉及的各類圖件進行微服務化封裝,為各類應用文檔的生成提供服務支持,為在防汛期間快速、高效地生成高質(zhì)量的水文分析文檔提供技術和案例參考。