劉 彧,周 琦,于汪洋
(1.中國水利水電科學(xué)研究院 標準化研究中心,北京 100038;2.清華大學(xué) 水利水電工程系,北京 100084)
在水電站泄洪消能模型試驗中,對于沖擊壓強的測定是一個很常見的試驗內(nèi)容。時均壓強是一項非常重要的數(shù)據(jù)參數(shù),一般來講,測壓排是水工水力學(xué)模型試驗中測量時均壓強最直觀簡便的一種測量工具,傳統(tǒng)的測壓排數(shù)據(jù)處理方法,是根據(jù)測壓排后面的刻度紙進行直接讀數(shù)的較為原始、機械重復(fù)的人工讀數(shù)方法。
在近年來的試驗手段中,也較常使用傳感儀進行測量,雖然可以直接測得測點的脈動過程來進行分析統(tǒng)計,但是在測點較多的模型試驗中就顯得成本非常高,并且實時數(shù)據(jù)也不如直接通過測壓排觀察直觀可辨。不少研究人員對如何對測壓排進行自動讀數(shù)開展了研究,目前有通過在測壓管水面放置有色小球,在照片中可以發(fā)現(xiàn)水注的頂端由于有色小球的亮度值較高,可以比較容易的實現(xiàn)測壓排數(shù)據(jù)的自動讀取[1-2],但是放置有色小球可能會導(dǎo)致工作量的增加及水面的高度變化,因此如何不對水面進行特殊處理而進行數(shù)據(jù)處理是一個需要解決的問題。
本文主要闡述了在白鶴灘水力學(xué)模型試驗[3-5]中,以測壓排的直接讀數(shù)為基礎(chǔ),在沒有對測壓排進行特殊操作的情況下,通過對照片數(shù)字圖像處理來進行水面的自動識別,從而實現(xiàn)測壓排水柱的高度的自動讀取。該方法對現(xiàn)有的測壓排直接讀數(shù)手段進行了改進,并可以實現(xiàn)批量化處理實驗數(shù)據(jù)。
測壓排是水力學(xué)實驗中測量時均壓強最直觀最實用的一種方法,它能讀取一定時間內(nèi)的最大值和最小值用于分析平均值,但測壓管測量方法本身具有一定的缺陷,如測壓管對流動有阻尼不易獲得最大壓力值,布置有一定密度限制且不易更改等,實際操作中可通過改進測壓排及連接管材質(zhì)或者加大布置的密度來改進,也會因此加大數(shù)據(jù)讀取的工作量,而且很難精確;為了改進這個缺點,數(shù)字圖像自動處理技術(shù)的應(yīng)用掌握必不可少。自動讀取法主要是通過對ArcGIS進行程序的編寫,從而對測壓排照片進行數(shù)字圖像預(yù)處理,最后達到可以批量省時省力處理測壓排讀數(shù)的過程。
2.1 方法簡介測壓排壓力值是通過照片或?qū)崟r攝像對其進行觀測并讀數(shù)的,在充分研究測壓排的圖片特征后,可以發(fā)現(xiàn)測壓管水柱與空氣界面亮度值的差異顯著,即玻璃管中有水的部分亮度值較高,而沒有水的部分亮度值較低。讀取測壓排水柱的高度就是要確定水柱頂端的位置。所以本方法從水柱頂端的影像作為突破口,利用接觸面的亮度差異設(shè)計讀取方法,從而提取出頂端的位置點,最后讀取這些點的坐標,即可以得到水柱的高度。
以1#、3#、5#表孔工況下斷面1的測壓排為例(見圖1)。
圖1 測壓排照片示例
坡度(Slope)在數(shù)字圖像處理技術(shù)中是確定每個像元和它的鄰近像元之間值的最大的變化率[6]。默認的是計算坡度的變化率(即一個角度的測量)。
ArcMap是一個可用于數(shù)據(jù)輸入、編輯、查詢、分析等功能的應(yīng)用程序,具有基于地圖的所有功能,實現(xiàn)如地圖制圖、地圖編輯、地圖分析等功能[7]。它包含一個復(fù)雜的專業(yè)制圖和編輯系統(tǒng),利用其中的SLOPE 函數(shù),生成坡度數(shù)據(jù),在生成的坡度影像中大部分區(qū)域的坡度較大,但是在水柱頂管有塊呈帶狀的坡度較大的斑塊,該區(qū)域的坡度都在89度以上。
坡向(Aspect)可以理解為水柱與空氣接觸面的上行方向,與等高線垂直。在ArcMap中計算中,可以認為是每個像元與其鄰近像元變化率最大的下坡方向[8]。在得到的坡向計算結(jié)果中,用0到360度的羅盤方向表示,依照順時針方向。當曲面z=f(x,y)已知時,通過公式計算給定點的坡向。
其中fx是東西方向高程變化率,fy是南北方向高程變化率。計算中所用到的亮度值情況如圖2所示。
圖2 3×3分析窗口
式中cellsize為像元的大小。
利用坡度計算,從而提取水柱頂端的位置,達到批量數(shù)據(jù)處理的目的。
2.2 測試圖像前期的預(yù)處理因為需要確定的是水柱頂端的位置,所以只將包含水柱頂端的位置裁剪下來即可。任意截取該工況下數(shù)個水柱頂端照片,如圖3所示。
進行坡度計算,計算結(jié)果如圖4。
圖3 只包含水柱頂端的照片截圖
從圖中可以看出,水柱頂管的坡向為North,坡向主要在0°~22.5°和337.5°~360°之間。
2.3 測壓排水位位置確定計算過程結(jié)合水柱頂端在坡度圖像和坡向圖像中的特點,提取水柱頂端的圖像。利用柵格計算工具Raster Calculator[9],設(shè)置坡度坡向條件,提取水柱頂端區(qū)域,設(shè)置的條件語句為:
Result=con(slope>89&((aspect >0&aspect <20)|(aspect >350&aspect <360)),1);
其中,con函數(shù)是實現(xiàn)傳統(tǒng)的IF-ELSE結(jié)構(gòu)的地圖代數(shù)函數(shù)[10]。執(zhí)行上述表達式,并將提取的影像與原測壓排圖像疊加,得到圖5,從圖中可以看出,水柱頂端在圖像上呈現(xiàn)塊狀分布,但是提取結(jié)果還是存在一些碎點,表明在原圖像上仍有局部點也符合坡度坡向的限定條件。
圖4 生成的坡向影像
圖5 根據(jù)坡度和坡向的限定條件提取得到的結(jié)果與測壓排原圖疊加
從圖中可以清楚的看到,提取的斑塊正好處于水柱的頂端,說明設(shè)置的條件是合理的。
由于提取結(jié)果中存在一些碎點,要將其去除,首先需要統(tǒng)計每個有值像元的個數(shù),然后將個數(shù)大于某個限定值的區(qū)域留下,小于這一限定值的碎點全部去掉。在ArcMap 中,對于同一個區(qū)域的一組像元,無論它們的像元值是否相同,RegionGroup函數(shù)會給這些像元一個唯一的值,這個值就是這一組像元的個數(shù)[11]。這里用RegionGroup函數(shù)對提取的結(jié)果進行處理:
得到各個區(qū)域內(nèi)像元個數(shù)后,把小于設(shè)定限定值的碎點去除,使用SetNull語句:
利用SetNull 函數(shù)檢驗當前像元[12]并將這些斑塊與原測壓排的圖像疊加,得到的結(jié)果如圖6,圖像上的碎點已經(jīng)去除,只留下水柱頂端的斑塊。
圖6 去除碎點提取得到的結(jié)果與測壓排原圖疊加
提出水柱頂端的斑塊后,仍然有一個問題需要解決:在有些水柱頂端有兩個甚至多個小的斑塊,而每個水柱頂端理想狀況下提取的是一個斑塊,從而讀出一個讀數(shù),所以需要將小的斑塊合并成一個較大斑塊。經(jīng)過反復(fù)驗證,發(fā)現(xiàn)將每個斑塊向外擴張3個像元即可行之有效地將小的斑塊連接起來??梢岳肊xpand函數(shù)處理,增加選定區(qū)域的大小,通過從周圍“吸收”像元,這樣與擴展區(qū)域相鄰的小區(qū)域會消失[13]。疊加測壓排圖像,得到的結(jié)果如圖7所示。
圖7 提取得到的結(jié)果與測壓排原圖疊加
圖8 根據(jù)水柱頂端斑塊提取出的斑塊幾何中心的矢量圖與測壓排原圖的疊加
為了讀取水柱高度的數(shù)據(jù),需要確定的是水柱頂端一個點的數(shù)值,所以需要確定斑塊的幾何中心,作為讀數(shù)點。由于圖7所示斑塊為柵格圖像格式,不容易提取圖像中心,所以需要將其轉(zhuǎn)化為矢量圖像,可使用Raster to Pogon 工具進行轉(zhuǎn)換即可得到矢量圖,接著利用Feature to Point 工具,可以直接提取出斑塊幾何中心的點圖層,將其與原測壓排疊加,結(jié)果如圖8 所示,從圖中可以直觀地看出,提取的幾何中心點基本都位于水柱頂端的位置。
2.4 測壓排水位值自動提取要進行模型的集成,首先要利用ModelBuilder為創(chuàng)建模型和復(fù)雜的工作流提供一個圖形環(huán)境[13-14]。根據(jù)工作流可以將模型可視化。模型存儲在ArcToolbox中,并可以用不同的參數(shù)重新運行。可以對模型進行編輯來改變運行環(huán)境,添加或刪除工具或數(shù)據(jù),或者改變參數(shù)或?qū)傩浴?/p>
在自動讀數(shù)工具提取出水柱頂端的點圖層后,需要確定并導(dǎo)出這些點的坐標,其中縱坐標即為測壓管的讀數(shù)。接下來用該工具提取出水柱頂端的點圖層后,確定并導(dǎo)出這些點的坐標,其中縱坐標即為測壓排的讀數(shù)。通過Calculate Geometry 命令即可自動計算出各個點的縱坐標,并將結(jié)果導(dǎo)入excel表格中,根據(jù)圖片模擬值與真實值的比例關(guān)系建立線性方程求得兩者的比例大小。設(shè)方程為:
將照片中最右邊兩個點的實際讀數(shù)和在ArcMap 中讀數(shù)(17.20,1.17),(17.25,1.25)代入式(5)中,得到a=0.63,b=16.46。將輸出點在ArcMap中讀數(shù)代入式(5),即得到各個點的實際讀數(shù)。
以上步驟可以進行批量化處理
總結(jié)操作流程如圖9所示。
通過上述處理過程,在ArcMap中導(dǎo)出圖例中11根水柱的讀數(shù),與人工讀數(shù)可做一對比,如表1所示。
圖9 測壓排讀數(shù)自動讀取的程序流程圖
表1 自動讀取法的讀數(shù)與人口讀取的結(jié)果的對照表
利用水柱頂端兩邊亮度值的差異設(shè)計自動讀數(shù)的方法,可以提取測壓排水柱頂端的點來得到水柱的高度,從直接讀數(shù)和自動讀數(shù)的結(jié)果對比看來,讀數(shù)普遍偏大一些,誤差來源可能主要與照片的變形以及自動讀取水位的位置有關(guān),但相對誤差控制在0.460%~1.667%之間。
該處理方法的特點如下:(1)無需對試驗中的單個測壓管進行額外的人工處理,如采取添加指示標志等方法,可直接使用原始實測圖像進行數(shù)據(jù)的讀?。唬?)因為是利用圖像中測壓管水柱與空氣的接觸面進行數(shù)據(jù)的讀取,所以較人為讀數(shù)而言客觀性更強,是切實可行并且高效的;(3)相對于傳感器的高成本而言,該方法使用普通的數(shù)碼照相機即可實現(xiàn)時均壓強的數(shù)據(jù),試驗成本較低,且若進行攝像采樣并利用該技術(shù)對之進行逐幀處理,還可得到各測點壓強的實時變化過程;(4)通過實際應(yīng)用,發(fā)現(xiàn)該方法能夠批量處理以節(jié)省時間提高準確度,在模型試驗中有一定的應(yīng)用前景。