王靜 岳成鯤 楊釗 張偉昊
摘要:水文曲線的自動繪制及圖形儲存是水文工作中的難點,專門開發(fā)的水文曲線繪圖系統(tǒng)能夠自動繪制多種水文曲線,包括水位一流量關(guān)系線、單斷沙關(guān)系線、過程線、河道大斷面圖及跨年度的曲線套繪;系統(tǒng)設(shè)計采用C++編程語言、嵌入式數(shù)據(jù)庫以及計算機圖形技術(shù),界面友好,操作方便。對水位一流量關(guān)系線精度進行的分析表明,系統(tǒng)誤差、隨機不確定度、符號檢驗、適線檢驗、偏離值檢驗等均達到有關(guān)規(guī)范要求。系統(tǒng)的開發(fā)填補了自動繪制水文曲線的技術(shù)空白,為黃河水文電子圖庫的建立提供了技術(shù)支持。
關(guān)鍵詞:圖形儲存;自動繪制;繪圖系統(tǒng);水文曲線;黃河
中圖分類號:P333;TV882.1
文獻標(biāo)志碼:A
doi: 10.3969/j.issn.1000-1379.2018.04.002
1 概述
1987年起,黃委山東水文水資源局在測區(qū)全面實現(xiàn)了水文資料整編的電算化。隨著2008年“北方片水文資料整匯編軟件”的推廣應(yīng)用,水文數(shù)據(jù)處理水平得到了進一步提高,水文數(shù)據(jù)的存儲、查詢均實現(xiàn)了自動化。但是,作為水文原始資料的一部分,各種水文曲線、關(guān)系線仍為手工繪制,沒有實現(xiàn)計算機制圖及圖形存儲。為此,黃委山東水文水資源局開發(fā)了水文專用軟件,用于繪制各種水文曲線,實現(xiàn)了水文曲線的數(shù)字存儲,提高了水文數(shù)據(jù)的利用效率。軟件實現(xiàn)了以下水文曲線的自動繪制:①水文站水位一流量關(guān)系線;②水文站單斷沙關(guān)系線:③水文站水位、流量、含沙量過程線:④河道大斷面套繪:⑤不同年份的水位一流量關(guān)系線套繪:⑥跨年度的水位、流量、含沙量過程線。
2 系統(tǒng)設(shè)計
水文曲線繪圖系統(tǒng)采用面向?qū)ο蟪绦蛟O(shè)計,并結(jié)合泛型程序設(shè)計、函數(shù)式程序設(shè)計技術(shù)進行軟件開發(fā),可在WIN XP、WIN 7、WIN 10等操作系統(tǒng)上運行。在程序設(shè)計中,數(shù)據(jù)源直接調(diào)用水文整編原始數(shù)據(jù)文件來繪制圖形,無需重復(fù)錄入數(shù)據(jù)。編程語言采用C++11、Python3、JavaScript,在圖形等跨平臺領(lǐng)域,使用Qt5.2、Python3.3、Boostl.55庫。系統(tǒng)包括7個模塊,其中圖形模塊及計算模塊為核心模塊。系統(tǒng)總體框架見圖l。
3 圖形繪制
3.1
水位一流量關(guān)系圖繪制
繪制步驟:①在制圖項目中,新建或打開一張圖紙,打開“插入水位一流量關(guān)系圖”功能:②選擇測站,然后在樹型列表中展開年份,單站的跨年套繪通過展開不同年份實現(xiàn):③選擇線號,選線時可輸入水位查讀流量來驗證所選線號是否正確:④設(shè)置坐標(biāo)軸比例尺,縱坐標(biāo)代表水位值,橫坐標(biāo)代表流量值,點擊“插入”按鈕,將關(guān)系圖插入到圖紙上,見圖2。
水位一流量關(guān)系曲線的平滑處理方法:系統(tǒng)采用拉格朗日拋物線插值方法結(jié)合二階貝塞爾曲線平滑處理等技術(shù),實現(xiàn)水位一流量關(guān)系線的曲線擬合,攻克了曲線繪制的技術(shù)難點。
目前,整編程序采用的插值方法為分段拉格朗日拋物線插值法,對節(jié)點按順序進行摘錄,選取每3個相鄰點進行一次插值,其插值多項式為式中:(xo,yo)、(X1,y1)、(x2,Y2)分別為三個過拋物線的已知點坐標(biāo)。
對每3個相鄰點,依照式(1)可繪制分段的拉格朗日拋物線。但是,如果僅用這個方法直接繪制水位一流量關(guān)系線,那么繪出的關(guān)系線不平滑,存在跳躍轉(zhuǎn)折點,需要找出一種方法進行擬合,獲取平滑的關(guān)系線。經(jīng)過對多種方法進行嘗試,并對擬合曲線與整編計算方法進行研究對比,最終選用計算機圖形領(lǐng)域應(yīng)用廣泛的二階貝塞爾曲線進行擬合繪制。二階貝塞爾曲線的方程為B(t)=(1-t)2PO+2t(l-t)P1+t2P2(t∈[0,l])
(2)式中:B(t)為轉(zhuǎn)折點;PO為繪制線段的起點坐標(biāo);P2為該段終點坐標(biāo):P1為控制點的坐標(biāo)。
通過Po、P1、P2三點即可繪制該段的二階貝塞爾曲線。結(jié)果表明,采用二階貝塞爾曲線擬合的效果良好,曲線平滑無轉(zhuǎn)折,與人工繪制的關(guān)系曲線更加貼近。
3.2 單斷沙關(guān)系圖繪制
插入單斷沙關(guān)系圖與插入水位一流量關(guān)系圖類似,繪圖界面見圖3。步驟為:①在制圖項目中,新建或打開一張圖紙,打開“插入單樣一斷面平均含沙量關(guān)系圖”功能;②選擇測站、年份與線號:③指定坐標(biāo)軸比例尺,指定單位長度橫縱坐標(biāo)代表含沙量的值,點擊“插入”按鈕,把關(guān)系圖插入到圖紙上。
3.3 過程線圖繪制
過程線是系列數(shù)據(jù),需要先將原始數(shù)據(jù)建立為系列,才能插入到過程圖中。步驟:①在制圖項目中,新建或打開一張圖紙,打開“過程系列查看器”功能:②在過程選擇器上方,首先選擇要插入的系列起始時間與結(jié)束時間:③點擊“+”號按鈕,選擇要插入的系列類型:④點擊“插入”按鈕,將過程線連同系列插入到圖紙中,形成過程線圖,見圖4。
3.4 河道大斷面圖的制作
制作河道大斷面圖的步驟:①在制圖項目中,打開“插人大斷面圖”功能;②選擇測站、年份,點擊“繪圖”按鈕,生成某年度大斷面圖的套繪成果,見圖5:③點擊“插入”按鈕,將繪制的大斷面圖插入到圖紙上。
4 精度分析
計算機繪制的水文曲線必須滿足《水文資料整編規(guī)范》(SL247-2012)(以下簡稱《規(guī)范》)的精度要求,才能應(yīng)用于實際工作。因單斷沙關(guān)系線、過程線、河道大斷面圖均為直線,在水文數(shù)據(jù)正確的情況下繪圖精度不存在誤差,故僅就計算機繪制的水位一流量關(guān)系曲線進行精度分析。
4.1 水文曲線樣本的選取
選取黃河下游高村、孫口、艾山、濼口、利津5個干流水文站及東平湖人黃把口站陳山口站作為分析樣本,涵蓋了黃委山東水文水資源局所有的水文站。采用最近年份24站年共32條水位一流量關(guān)系曲線,包含高、中、低水,各水文站最小流量到最大流量曲線均包括在內(nèi),曲線的選取具有代表性。
4.2 實測流量點繪制曲線的精度分析
根據(jù)《規(guī)范》定線精度要求:穩(wěn)定的水位一流量關(guān)系(10個流量點以上),一類精度水文站采用臨時曲線進行整編,系統(tǒng)誤差不得超過±1%,隨機不確定度不得超過8%,且應(yīng)進行符號檢驗、適線檢驗、偏離值檢驗(簡稱三種檢驗)。
4.2.1 不確定度的計算
置信水平為95%的隨機不確定度XQ計算公式為
XQ=Se
(3)式中:Se為實測點標(biāo)準(zhǔn)差。
4.2.2 系統(tǒng)誤差的計算
系統(tǒng)誤差s的計算公式為式中:Qi為實測點的流量;Qci為Qi相應(yīng)水位在曲線中的查讀流量。
4.2.3 三種檢驗
(1)符號檢驗。分別統(tǒng)計測點偏離曲線的正、負(fù)符號個數(shù),按式(5)計算統(tǒng)計量u,當(dāng)u(2)適線檢驗。按測點水位由低到高排列,測點流量與關(guān)系線上查讀流量相比,偏大為正,偏小為負(fù),從第二個測點開始統(tǒng)計正負(fù)符號是否變換,符號變換記1,否則記0。按式(6)計算統(tǒng)計量u,當(dāng)u