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