吳昱駒 龍群 何昌奮
(珠江水文水資源勘測(cè)中心 廣東省廣州市 510380)
感潮河段的水文資料不同于一般的內(nèi)陸徑流河道。
海洋潮汐的周期變化規(guī)律近似于正弦曲線。而在感潮河段的潮水位,受潮汐、上游徑流和風(fēng)浪等多重影響,潮水位呈類(lèi)似潮汐的周期性變化,高潮、低潮交替出現(xiàn)。與潮水位類(lèi)似,感潮河段的流量也呈周期性變化,漲急、漲憩、落急、落憩依次循環(huán)出現(xiàn)。隨著潮水位、潮流的周期性變化,一個(gè)潮流期內(nèi)懸移質(zhì)含沙量也出現(xiàn)兩個(gè)沙峰[2]。
感潮河段復(fù)雜多變,在水文資料整編定線方面,因無(wú)法建立穩(wěn)定的水位流量關(guān)系,單一關(guān)系不能滿足要求。感潮河段傳統(tǒng)上常采用定潮汐要素法、合軸相關(guān)法等處理推流。隨著在線測(cè)流系統(tǒng)的普及,應(yīng)用代表流速法推流逐步成為主流,通過(guò)實(shí)測(cè)逐時(shí)流速進(jìn)行流量整編。
針對(duì)感潮河段水文資料特點(diǎn),提出以下潮水位處理方法供整編軟件參考。本文所有涉及算法在.NET Framework 4.0下用C#編程語(yǔ)言實(shí)現(xiàn)。
高(低)潮是潮水位的特征值,通過(guò)軟件的自動(dòng)識(shí)別能夠極大地提高潮水位整編效率。
2.1.1 高潮位的識(shí)別
下面以高潮為例說(shuō)明軟件自動(dòng)識(shí)別高潮。高潮是一個(gè)潮流期內(nèi)的水位最高值,存在以下特點(diǎn):
ZH=max(Zt),Ts≤t≤Te
其中ZH為高潮潮位,Zt為t時(shí)刻潮位,Ts、Te為潮流期開(kāi)始和結(jié)束時(shí)刻。
另根據(jù)潮水位過(guò)程線接近正弦曲線的特性,高潮出現(xiàn)在波峰位置。利用該特點(diǎn)可設(shè)置時(shí)間Δt作為判據(jù),若Zt大于等于其前、后Δt時(shí)間范圍內(nèi)的所有數(shù)據(jù),Zt即可判斷為高潮,否則不是高潮。低潮的識(shí)別同理。
通過(guò)該方法遍歷全年的水位數(shù)據(jù),即可識(shí)別全年高(低)潮。
2.1.2 出現(xiàn)時(shí)刻識(shí)別
在潮水位觀測(cè)中,水位采集間隔一般采用5min,水位觀測(cè)精確到0.01m。仍以高潮為例,當(dāng)發(fā)生高潮時(shí),高潮位會(huì)持續(xù)幾分鐘乃至幾十分鐘(即平潮),這將導(dǎo)致潮流期內(nèi)最大值不唯一,因此上一節(jié)的方法僅可識(shí)別高潮潮位,無(wú)法識(shí)別高潮出現(xiàn)位置。不妨通過(guò)上節(jié)所述算法,先將所有高潮數(shù)據(jù)標(biāo)記出來(lái),如圖1 所示,標(biāo)記出6個(gè)高潮數(shù)據(jù)。
通常將平潮期中間時(shí)刻作為高潮時(shí)刻,此時(shí)帶來(lái)第二個(gè)問(wèn)題:若平潮期間數(shù)據(jù)個(gè)數(shù)為奇數(shù),毫無(wú)疑問(wèn)中間時(shí)刻為高潮時(shí)刻;若平潮期間數(shù)據(jù)個(gè)數(shù)為偶數(shù)(如圖1 ,有6個(gè)高潮數(shù)據(jù)),若取中間附近的前者(第3個(gè))或后者(第4個(gè))會(huì)帶來(lái)統(tǒng)計(jì)偏差。最好是通過(guò)一定的方法,將取前者、后者的次數(shù)平均分配。
圖1:高潮附近過(guò)程線圖
圖2
針對(duì)該問(wèn)題,引入“奇取后,偶取前”的規(guī)則,將偶數(shù)個(gè)高潮出現(xiàn)時(shí)刻平均分配。
設(shè)平潮期間出現(xiàn)偶數(shù)個(gè)高潮數(shù)據(jù),其第一個(gè)數(shù)據(jù)為當(dāng)年第n個(gè)數(shù)據(jù)。因總個(gè)數(shù)為偶數(shù),其后的高潮數(shù)據(jù)個(gè)數(shù)必為奇數(shù),最后一個(gè)可表示為n+(2k+1)。平潮期中間時(shí)刻在即n+k+0.5處。此時(shí)以n+k的奇偶作為判據(jù),若n+k為奇數(shù),則取n+k+1(后者)為高潮時(shí)刻;若n+k為偶數(shù),則取n+k(前者)為高潮時(shí)刻。通過(guò)對(duì)(n+k+0.5)進(jìn)行“四舍六入,奇進(jìn)偶舍”保留至整數(shù)位,即可完成以上規(guī)則。同理,對(duì)于奇數(shù)個(gè)高潮數(shù)據(jù)的情況可以直接計(jì)算得出。
綜上,無(wú)論是奇數(shù)或偶數(shù)個(gè)的情況,高潮出現(xiàn)位置均可表示為:
其中,N表示高潮出現(xiàn)在第N個(gè)數(shù)據(jù),s為首個(gè)高潮出現(xiàn)在第s個(gè)數(shù)據(jù),e為最末高潮出現(xiàn)的位置,Round為“四舍六入”函數(shù),第2個(gè)參數(shù)表示保留的小數(shù)位。低潮同理進(jìn)行識(shí)別。
2.1.3 算法實(shí)現(xiàn)流程
以下簡(jiǎn)述計(jì)算機(jī)軟件算法進(jìn)行識(shí)別流程。
(1)定義高低潮位識(shí)別函數(shù)。輸入任意時(shí)刻潮位數(shù)據(jù)Z,同其前后Δt時(shí)間內(nèi)的數(shù)據(jù)進(jìn)行對(duì)比,若Z大于等于所有區(qū)間內(nèi)的數(shù)據(jù),則對(duì)數(shù)據(jù)標(biāo)記“H”表示其為高潮;若Z小于等于所有區(qū)間內(nèi)的數(shù)據(jù),則對(duì)數(shù)據(jù)標(biāo)記“L”表示其為低潮;兩者都不是,標(biāo)記為“o”。
(2)遍歷所有數(shù)據(jù)進(jìn)行標(biāo)記,得到與數(shù)據(jù)對(duì)應(yīng)的高低潮類(lèi)別序列,過(guò)濾掉“o”僅保留標(biāo)記“H”、“L”,如:“HHHHLLHLLLH……”。
(3)計(jì)算相同標(biāo)記的首尾位置,應(yīng)用公式計(jì)算中間位置。對(duì)中間位置進(jìn)行“四舍六入”運(yùn)算,作為保留標(biāo)記位置,其余位置標(biāo)記為“o”。余下標(biāo)記“H”、“L”即為對(duì)應(yīng)的高(低)潮。算例如圖2所示。
在水文站水位觀測(cè)中,常因儀器故障、水毀等多種原因?qū)е聰?shù)據(jù)缺失,水文中常用線性插補(bǔ)方法對(duì)缺失數(shù)據(jù)進(jìn)行插補(bǔ)。在感潮河段中,水位變化過(guò)程曲線近似于正弦曲線,用線性插補(bǔ)不符合實(shí)際情況。
本文提出采用三次樣條曲線插值法進(jìn)行插補(bǔ),可以減少插補(bǔ)工作計(jì)算量,對(duì)比實(shí)測(cè)數(shù)據(jù)取得較好的擬合效果。
2.2.1 三次樣條插值算法
設(shè)有節(jié)點(diǎn)(x1,y1)、(x2,y2)…(xn,yn):
x:a=x1 y:y1y2… yn 其中,a、b為插值的邊界點(diǎn)。 三次樣條曲線S(x)是一個(gè)分段函數(shù),n個(gè)節(jié)點(diǎn)將區(qū)間分為n-1個(gè)分段。應(yīng)滿足以下條件: 在區(qū)間[a,b]中的分段區(qū)間[xi,xi+1]中,S(x)存在一個(gè)三次多項(xiàng)式函數(shù)Si(x)(i=1,2,…,n)。 滿足yi=S(xi)。 S(x)、一階導(dǎo)數(shù)S'(x)、二階導(dǎo)數(shù)S''(x)在[a,b]中連續(xù),即S(x)曲線是光滑的。 綜上,三次樣條曲線可統(tǒng)一用下式表示: 其中,ai、bi、ci、di代表三次多項(xiàng)式方程的未知參數(shù)。關(guān)于樣條曲線的方程解法非本文重點(diǎn),可利用現(xiàn)有多種算法實(shí)現(xiàn)求解。在C#下可采用Math.NET Numerics開(kāi)源數(shù)值計(jì)算庫(kù)可以實(shí)現(xiàn)。 2.2.2 潮水位插補(bǔ) 在潮水位的插值中,以缺失數(shù)據(jù)段的時(shí)間始、末作為插值區(qū)間[Ts,Te]。通??捎脭?shù)據(jù)缺失經(jīng)歷的秒數(shù)來(lái)表示時(shí)間,則插值函數(shù)定義域x∈[0,Te-Ts]。 對(duì)于缺測(cè)數(shù)據(jù),可通過(guò)比例插值法、相關(guān)插補(bǔ)法、綜合過(guò)程線插補(bǔ)法等,采用相鄰水文站數(shù)據(jù)插補(bǔ)出本站缺失數(shù)據(jù)段的部分節(jié)點(diǎn)數(shù)據(jù)(如高潮潮位、低潮潮位、出現(xiàn)時(shí)刻等)。插補(bǔ)后可得到以下節(jié)點(diǎn): (0,y0),(t1,Y1),(t2,Y2),…(ti,Yi),(Te-Ts,yn) 其中: (0,y0)是數(shù)據(jù)缺失前,最后一個(gè)正常觀測(cè)的潮水位y0; (ti,Yi)是數(shù)據(jù)缺失期間插補(bǔ)得到的數(shù)據(jù),ti是距(0,y0)經(jīng)歷的時(shí)間,Yi是對(duì)應(yīng)的潮水位; (Te-Ts,yn)是數(shù)據(jù)觀測(cè)恢復(fù)后,第一個(gè)正常觀測(cè)的潮水位yn。 根據(jù)以上序列構(gòu)造三次樣條方程,即解出[Ts,Te]區(qū)間內(nèi)任意時(shí)刻的潮水位。 2.2.3 節(jié)點(diǎn)選取及精度對(duì)比 采用實(shí)測(cè)數(shù)據(jù)對(duì)比插值擬合精度。采用某潮水位站實(shí)測(cè)數(shù)據(jù),假定當(dāng)日缺測(cè),僅保留缺測(cè)始末、高(低)潮數(shù)據(jù),驗(yàn)證擬合精度。 擬合曲線共六個(gè)節(jié)點(diǎn),其中首、尾分別是缺測(cè)前、后最近的實(shí)測(cè)數(shù)據(jù),中間四個(gè)節(jié)點(diǎn)為當(dāng)日的高潮和低潮。可以看出,曲線經(jīng)過(guò)每個(gè)節(jié)點(diǎn),在高潮附近擬合較好,低潮附近擬合偏差稍大。原因是低潮時(shí)潮汐影響較弱,曲線主要受徑流控制。同時(shí)還可以看到,雖曲線經(jīng)過(guò)第一個(gè)低潮點(diǎn)(6:10附近),但該點(diǎn)已不是擬合曲線上的低潮點(diǎn),與插補(bǔ)的假定矛盾。 針對(duì)上述問(wèn)題,可通過(guò)增加節(jié)點(diǎn)解決。鑒于低潮擬合較差,增加的節(jié)點(diǎn)應(yīng)偏向于低潮附近。在兩個(gè)低潮前后附近各增加一個(gè)節(jié)點(diǎn),對(duì)擬合效果有較大的提升作用。 增加節(jié)點(diǎn)后,約58%數(shù)據(jù)誤差在[0,0.02]區(qū)間,而誤差在[0,0.04]的占78%。可見(jiàn)該方法有較高的擬合精度。計(jì)算8個(gè)節(jié)點(diǎn)即可較好擬合全天的潮水位。 綜上,三次樣條曲線可以較好的擬合潮水位數(shù)據(jù),曲線節(jié)點(diǎn)應(yīng)選取在高潮、低潮、以及低潮前后附近。該方法除應(yīng)用于插補(bǔ)擬合外,還可用于加密人工觀測(cè)數(shù)據(jù)。通過(guò)人工觀測(cè)的少量數(shù)據(jù)作為曲線節(jié)點(diǎn),可將數(shù)據(jù)頻次擴(kuò)展加密。 開(kāi)展感潮水文資料軟件處理技術(shù)研究,對(duì)于水文現(xiàn)代化,實(shí)現(xiàn)自動(dòng)化、信息化具有重要意義。不僅可以縮短資料整編時(shí)間,提高效率,還能大量節(jié)省人力物力。本文在感潮水文資料部分問(wèn)題上,提出了可行的解決辦法,為完善資料整編軟件提供思路。3 結(jié)語(yǔ)