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