樊亦涵,王 靜,馬吉讓
(黃河水利委員會 山東水文水資源局,山東濟南 250100)
基本水文資料整編是水文工作的重要組成部分,整編時需錄入全年的水位、流量、含沙量數(shù)據(jù),工作量大,容易出錯,且資料校核工作繁瑣,需要投入大量的人力及時間。當(dāng)今社會對水文資料時效性提出了更高的要求,傳統(tǒng)的工作模式已經(jīng)適應(yīng)不了工作的需要,結(jié)合工作實際,黃委山東水文局研發(fā)了“水沙月報及整編數(shù)據(jù)轉(zhuǎn)換系統(tǒng)”。該軟件具有水位數(shù)據(jù)的自動采集功能,具有圖形繪制功能,可套繪上下游站水位、流量、含沙量過程線,可繪制水位~流量關(guān)系線,能滿足測站日常水沙月報制作及測驗數(shù)據(jù)合理性分析需求,年底可將全年月報數(shù)據(jù)轉(zhuǎn)換為整編數(shù)據(jù),直接用于整編,不再需要錄入水沙數(shù)據(jù),減少了工作環(huán)節(jié),提高了工作效率。
系統(tǒng)采用模塊化軟件開發(fā)的架構(gòu),采用C++編程語言、嵌入式數(shù)據(jù)庫、計算機圖形技術(shù),綜合運用多種編程技術(shù)實現(xiàn)了軟件的研發(fā)。為了將目前計算機的性能發(fā)揮出來,提升計算效率,系統(tǒng)代碼基于64 位開發(fā),可在Windows 7/8/10 等操作系統(tǒng)上運行。系統(tǒng)采用良好的人機交互技術(shù),數(shù)據(jù)更新及時顯現(xiàn),有批處理功能,通過多線程技術(shù)設(shè)計,擴大了系統(tǒng)性能,可調(diào)用長系列水文資料。本系統(tǒng)采用開源、免費、嵌入式的SQLite 數(shù)據(jù)庫。SQLite 數(shù)據(jù)庫以文件形式保存到硬盤上,擴展名以.db 結(jié)尾,對該數(shù)據(jù)庫文件的大部分操作都可以在本系統(tǒng)內(nèi)完成。
系統(tǒng)界面采用Qt 編程語言開發(fā),網(wǎng)絡(luò)接口采用C#語言開發(fā)。分析用戶的需求,主要集中在數(shù)據(jù)管理、繪圖分析、輸出整編格式、統(tǒng)計評價4個功能模塊,系統(tǒng)功能框架見圖1。分析數(shù)據(jù)的采集與調(diào)用,主要集中在遠程讀取、編輯數(shù)據(jù)、繪圖分析、統(tǒng)計評價四個功能模塊,數(shù)據(jù)流程見圖2。
圖1 系統(tǒng)功能框架
圖2 數(shù)據(jù)流程
系統(tǒng)需訪問Web 接口下載數(shù)據(jù),因此需借助網(wǎng)絡(luò)進行水位數(shù)據(jù)下載,進行在線數(shù)據(jù)下載時,系統(tǒng)會有相關(guān)提示,點擊確定后,進入數(shù)據(jù)處理界面。遙測數(shù)據(jù)Web 接口訪問的是PG 數(shù)據(jù)庫,遙測數(shù)據(jù)摘錄表前端已根據(jù)測站設(shè)置的測站水位上下限,經(jīng)過數(shù)據(jù)過濾、篩選、平滑處理,保證了無異常值、數(shù)據(jù)可靠。系統(tǒng)自動根據(jù)水位數(shù)據(jù)轉(zhuǎn)折變化摘取數(shù)據(jù),確保摘錄數(shù)據(jù)合理控制了變化過程,同時避免數(shù)據(jù)量過大而影響整編性能。
接口采用C#語言編程。首先用戶操作通過網(wǎng)絡(luò)帶參數(shù)訪問Web 接口,Web 接口根據(jù)參數(shù)對數(shù)據(jù)庫數(shù)據(jù)進行讀取,根據(jù)山東局水文站、水位站任務(wù)書中關(guān)于水位摘錄的要求,首先對水位變幅進行判斷,進而決定摘錄密度,最后返回一個Json 文件,利用網(wǎng)絡(luò)回傳。系統(tǒng)接收到回執(zhí)后,若返回值無誤,則將數(shù)據(jù)寫入表格供用戶使用。數(shù)據(jù)庫查詢數(shù)據(jù)后,將數(shù)據(jù)存儲在三維數(shù)組,最后將符合要求的數(shù)據(jù)累加成Json 文件返回。
點擊月報制作后,進入月報表制作界面,根據(jù)提示,可以選擇新建或使用已有數(shù)據(jù)進行數(shù)據(jù)整理。數(shù)據(jù)的導(dǎo)入可以采用手動輸入、Dat 或JD文件導(dǎo)入、從數(shù)據(jù)庫讀取數(shù)據(jù)這幾種方式,左側(cè)表格為線號、年月日、水位流量等數(shù)據(jù),右側(cè)表格為推流節(jié)點數(shù)據(jù),可根據(jù)功能按鈕實現(xiàn)行的插入、上下移動、清空等功能。
進入數(shù)據(jù)表計算界面,點擊水位按鈕,可進行日平均水位的計算;點擊計算按鈕,可進行瞬時流量、日平均流量的計算、單樣含沙量的插補以及日平均含沙量、輸沙率的計算。
能夠進行水位、流量、含沙量過程線的套繪工作。在水位的套繪過程中,各站水位高程可以加上常數(shù),實現(xiàn)了過程線的上下平移,克服了各站實際水位值相差太大繪制在同一圖紙上過程較平起伏不明顯的缺點。
可實現(xiàn)測站水沙量特征值統(tǒng)計表及測驗次數(shù)統(tǒng)計表的自動生成,用于編制水沙測驗簡報,進行測驗質(zhì)量控制,檢查測驗次數(shù)是否滿足任務(wù)書的要求,上下游水量是否相應(yīng)。導(dǎo)出的數(shù)據(jù)文件儲存在上級目錄“output”里,可進入文件夾進行相關(guān)文件的查看和讀取。水沙量特征值統(tǒng)計格式見表1。
表1 2022 年1 月份測站特征值統(tǒng)計
本系統(tǒng)充分利用月報及遙測數(shù)據(jù)簡化了整編過程,減少了整編的工作量和勞動強度,月報數(shù)據(jù)直接轉(zhuǎn)換為整編數(shù)據(jù),提高了數(shù)據(jù)的利用效率。各種過程線的對照工作全部在計算機上完成,關(guān)系線的調(diào)整方便快捷。
系統(tǒng)還實現(xiàn)了統(tǒng)計表格的自動編制功能,自動生成水沙量特征值統(tǒng)計表和測驗次數(shù)統(tǒng)計表,便于進行測驗質(zhì)量控制,檢查測驗次數(shù)是否滿足任務(wù)書的要求,上下游水量是否相應(yīng)等。
該程序在山東測區(qū)投入應(yīng)用后取得了良好的效果,經(jīng)過檢驗,系統(tǒng)運行良好,大幅度提高了工作效率及水文資料整編質(zhì)量,達到了程序開發(fā)的預(yù)期目標,滿足了現(xiàn)代水文對資料準確性及時效性的要求,獲得了良好的社會效益。