高 超,鄧 瑤,張小潭,趙 磊
(1.中國電建集團昆明勘測設計研究院有限公司,云南昆明650051;2.南京衡水科技有限公司,江蘇南京210000)
1990年,我國引進和試用聲學多普勒流速剖面儀(Acoustic Doppler Current Profiler,簡稱“ADCP”)開展長江口潮汐流量測驗,開創了應用ADCP進行河口及內河流量測驗的先河[1]。由于其較之常規的測流方法可極大地提高效率,目前已在我國多種類型河流、不同適用性條件下的水文系統工作中廣泛應用[2- 3]。但多用于河口及內河流速、流量與懸移質泥沙測驗工作,而對于其他測量數據的深度挖掘與二次開發并未得到充分研究。隨著ADCP應用范圍與場景的不斷拓展與深入,其測量采集的數據可應用于許多方面;這就需要先對其大量測量數據進行甄別及深度挖掘,從中提取出我們需要的數據,并視情況對其進行二次加工利用。
筆者就以往的實踐經驗與水文分析等工作先后采用MATLAB軟件進行以下研究,基于Copula函數的區域降水聯合分布與特征分析[4],基于AHP_Fuzzy法的漢江流域水資源承載力評價與預測[5]及基于MATLAB的水文資料整編后處理模塊開發[6],充分展現出MATLAB語言的矩陣運算、曲線繪圖等強大的數據處理功能;其在水文測量龐大的數據挖掘與整理分析工作中同樣具有優良的應用前景與推廣意義。
以基層水文工作的實例為切入點——設計斷面僅具有ADCP走航數據與水上斷面測量數據,需推求出設計斷面的水位流量關系;故先從ADCP走航數據中挖掘提取出設計斷面的水下部分,并與水上測量斷面合并,得到完整的大斷面成果;再基于MATLAB軟件編制了水力要素計算程序,可輕松實現水位流量關系的推求。
以筆者所在單位中國電建集團昆明勘測設計研究院有限公司采購的走航式ADCP為例,其由美國TRDI公司開發研制,與之配套的是WinRiver II軟件v2.17版本。使用軟件打開圖1中一個測量文件,點擊圖1中箭頭指示的“ASCII數據文件輸出向導”按鈕,彈出如圖對話框。

圖1 ASCII數據文件輸出向導對話框示意
此時,可采用兩種方法創建模版:方法一直接點擊下一步按步驟生成所需模版;方法二載入之前已保存的輸出文件模版,減少對話框中手動操作的工作量。兩種方法的具體操作分別介紹如下。
(1)方法一。在圖1對話框中默認選擇第一項“生成新ASCII輸出文件模版”,點擊下一步,彈出生成模版系列對話框,見圖2。從左側項目欄可見共包括四個子步驟,第一步“參數選擇”對話框:在中間列表欄中搜索選擇所需輸出的參數,本例為提取水下斷面,即對走航式ADCP測量文件中的底跟蹤數據進行提取,對應輸出參數為各呼集合(垂線)深度與寬度,其中深度參數為四個探頭Beam平均深度——即Beams Average Depth[m]參數,寬度參數為參照底跟蹤BT總寬度——即Total Width(Ref:BT)[m]參數,參數選入右側項目欄后點擊下一步;第二步“選擇輸出格式”對話框:如無特殊輸出格式要求按默認選擇即可并點擊下一步;第三步“數據輸出選擇”對話框:勾選“到文件(輸出到工程目錄)”選項并點擊下一步;第四步“完成”對話框:點擊“瀏覽”按鈕,編輯要保存的模版路徑及文件名并點擊完成。至此,便完成了所需提取數據(本例為水下斷面數據)其新ASCII輸出文件模版生成的所有步驟,即在目標文件夾中已生成一個輸出文件模版,即ttf格式文件,可供下次提取數據直接導入使用。

圖2 生成新ASCII輸出文件模版對話框示意
(2)方法二。在圖1對話框中選擇第二項“載入ASCII數據文件輸出模版”,點擊下一步,彈出對話框中選擇之前導出的數據文件輸出模版,即ttf格式文件;再回到圖1對話框中后選擇第三項“管理載入模版”,點擊下一步,視需要在已有模版基礎上按照方法一的步驟對應修改;最后得到所需的輸出文件模版。
按照上述任一方法完成輸出文件模版的創建后,回到WinRiver II軟件界面,便可發現當前測量文件的各測次下面都多了一個txt文件,見圖3。接著根據生成的輸出文件模版對所需提取測次進行重新處理,先勾選所需提取測次,右鍵點擊圖3中的“站點流量”文字處,將會彈出幾個選項,選擇第一個“重新處理所有選定的測次”,等待所有選定的測次逐個

圖3 模版創建后的WinRiver II軟件界面示意
處理結束。上述txt文件便可直接訪問,同時測流文件所在目錄中亦生成了上述txt文件。文件內容為對應測次所需提取的數據。亦即為前述輸出文件模版中選定的參數,本例為各呼集合(垂線)深度與寬度參數。
至此,所需提取的ADCP測量數據已經成功導出到對應地txt文件中。即,本例中組成水下斷面的各呼集合(垂線)深度與寬度參數已提取出來。需要注意的一點,導出的各呼集合(垂線)寬度數據已包含測流時設置的左右岸寬度。
回顧上述ADCP測量數據挖掘過程,最核心的工作便是在輸出文件模版中正確甄別與選擇出所需要的參數;否則,很可能南轅北轍,最后導致分析計算成果出錯。例如,本文分析計算設計斷面水位流量關系所缺的水下斷面數據是應該提取各呼集合(垂線)深度與寬度參數;而ADCP走航測流過程中測量到的深度和寬度很多。如何從其中準確甄別得到所需參數便是本次實際工作中的重難點。解決此類問題推薦參閱《WINRIVER II SOFTWARE USER’S GUIDE(August 2015)》軟件幫助文檔中的“Table 6. WinRiver II ASCII Output Variable List”等有關內容。
采用WinRiver II軟件查看某個完整的ADCP走航測流文件,其中共包含576項可輸出參數,上文已介紹了從這些海量測量數據中進行甄別與提取數據的詳細過程,獲取原始測量數據后視需要對其進行二次加工處理,以滿足后期應用的需要。如本例需要將水下提取斷面與水上測量斷面進行合并,得到完整的測流大斷面成果,并對逐個水位級統計計算得到對應的斷面面積、濕周與水力半徑值,最終采用曼寧公式推求得到設計斷面的水位流量關系成果。其中,水上、水下斷面的合并過程較為簡單,人工完成即可,而依據大斷面成果推求水位流量關系為批量過程,推薦采用MATLAB開發對應計算程序;此外,在水位流量關系定線過程中應充分考慮與斷面水位流量實測點據的匹配,對斷面糙率值進行率定采用。
根據曼寧公式推求水位流量關系:首先定義由低到高的水位級系列,再依據大斷面情況分別對各水位級統計計算得到此水面與水下斷面組成的斷面面積A值與濕周χ值,進而求得此水位級對應地水力半徑R值;結合斷面縱剖面測量資料求得其比降S值;結合經驗糙率表或者斷面實測水位流量成果率定得到的糙率n值;最后將各水位級對應地A、R、S、n帶入曼寧公式便可推求得到對應流量,即為水位流量關系成果。
上述依據大斷面統計批量計算各水位級的水力要素(A值、χ值與R值等)的過程采用MATLAB進行編制。A值為依次對相鄰兩個點據與水面組成的三角形或四邊形面積求和得到,χ值為依次對相鄰兩個點據之間的距離求和得到。此程序只需將大斷面數據文件與水位級數據文件統一輸入,即可得到各水位級對應地水力要素成果。充分利用MATLAB語言強大的矩陣運算優勢實現有關批量計算功能,并結合實際工作需要批量繪制各種圖表(如本例水位流量關系曲線圖),從而使得ADCP測量數據二次開發過程簡單可行。
本文以基層水文工作的實例為切入點,對ADCP測量數據挖掘與二次開發展開介紹。實例中的方法已在中國電建集團昆明勘測設計研究院有限公司設計與運行的南歐江流域水情自動測報系統[7]等多個工程項目中有效運用。尤其是,本方法中數據挖掘提取過程僅依靠官方WinRiver II測流軟件便可實現,操作簡單,在未來推廣過程中,面對各式各樣的個性化數據提取需求,僅需針對性的修改輸出文件模版即可。
回顧ADCP測量數據挖掘過程,最核心的工作便是在輸出文件模版中正確甄別與選擇出所需要的參數;否則,很可能南轅北轍,最后導致分析計算成果出錯。ADCP走航測流文件共包含576項可輸出參數,創建輸出文件模版的準確性將是未來推廣使用中的重難點問題,推薦參閱WinRiver II軟件幫助文檔等有關內容,以保證數據提取準確。