唐佑輝,許成義,趙云昌
(山東省國土測繪院,山東 濟(jì)南 250013)
水下地形測量是新型基礎(chǔ)測繪的重要組成部分[1],分為常規(guī)模式和自動化模式。常規(guī)模式采用GNSS方法測量測點(diǎn)平面位置,用測深桿、測深錘測量水深;自動化模式采用無人測量船測量,無人測量船集成了GNSS、姿態(tài)儀、單波束測深儀或者多波束測深儀,能夠同步采集測點(diǎn)平面位置和水深數(shù)據(jù)[2-4]。水下地形測量具有隱蔽性,無法像陸上地形測繪一樣,可以自主選擇地形特征點(diǎn),只能通過布設(shè)一定數(shù)量的主測線獲取測線上一定間隔的水下點(diǎn)信息。水下地形測量的隱蔽性,決定了其無法像陸地地形檢查那樣,通過實(shí)地測點(diǎn)來衡量地形測量成果質(zhì)量?!端姽こ虦y量規(guī)范》規(guī)定,應(yīng)布設(shè)一定數(shù)量的測深檢查線,且檢查線宜垂直于測深線,通過對比圖上1mm范圍內(nèi)水深點(diǎn)的深度來衡量水下地形測量的精度[5]。因此準(zhǔn)確、高效的對比統(tǒng)計距離限差范圍的水深點(diǎn)的深度誤差及各項檢驗參數(shù)在水下地形測量質(zhì)量中至關(guān)重要。
水下地形測量是指利用測繪手段,獲取水下點(diǎn)定位、水深及高程信息。水下點(diǎn)定位通常采用GNSS接收機(jī),通過CORS獲取水下定位點(diǎn)對應(yīng)的水面點(diǎn)X、Y、Z坐標(biāo)。水深值通過單波束或多波束測深系統(tǒng)獲取。通過水面點(diǎn)大地高和水深值可獲得水下測量點(diǎn)的大地高,利用區(qū)域似大地水準(zhǔn)面模型轉(zhuǎn)換可獲得水下測量點(diǎn)的正常高[6-7]。
水深測量主要利用了回聲測距原理,發(fā)射換能器向水下發(fā)射一個脈沖超聲波信號,在水中向下傳播,遇到密度不同的水底介質(zhì)時發(fā)生反射,反射后的聲脈沖被水面的接受換能器所接收。根據(jù)聲脈沖在水中往返的時間及聲脈沖在水中的傳播速度,即可計算出換能器至水底的直線距離。由于換能器底面距離水面有一定距離,用于計算水深的聲速與實(shí)際聲速不同,導(dǎo)致回聲測深儀測得的觀測水深并非實(shí)際水深。要獲得實(shí)際水深要經(jīng)過吃水改正、聲速改正,吃水改正可以輸入船體吃水深度進(jìn)行實(shí)時改正,聲速改正可以根據(jù)測得實(shí)際聲速進(jìn)行后期改正[8-9]。實(shí)際水深獲取流程如圖1所示。
圖1 實(shí)際水深獲取流程圖
水下地形測量的誤差來源主要包括測點(diǎn)平面位置誤差及水深測量誤差[10-13]。測點(diǎn)定位采用GNSS實(shí)時動態(tài)差分定位,影響測點(diǎn)平面定位精度的主要因素為接收衛(wèi)星的狀況、電離層影響、多路徑效應(yīng)等。水深測量誤差主要包括聲波回聲誤差、船舶姿態(tài)變化引起的誤差、船舶動態(tài)吃水引起的誤差等。水下地形測量主要目的是獲取水底地形點(diǎn)的高程信息,GNSS實(shí)時動態(tài)差分獲取的大地高誤差及區(qū)域似大地水準(zhǔn)面精化模型轉(zhuǎn)換誤差也會影響水下地形測量成果的質(zhì)量。
水下地形測量的質(zhì)量檢查主要通過在水域布設(shè)一定數(shù)量的檢查線,比對檢查線和主測線相交處一定距離的測點(diǎn)水深差值來實(shí)現(xiàn)。水下地形測量數(shù)據(jù)檢查的參數(shù)較多,包括主測線總長度、檢測線總長度、檢測線長度占主測線長度比、對比樣本點(diǎn)個數(shù)、不符值個數(shù)、不符值比例、各深度區(qū)間檢測中誤差、各深度區(qū)間超限點(diǎn)個數(shù)等,需要計算統(tǒng)計的項目較多,單純依靠人工尋找檢測比對點(diǎn)難度較大,因此設(shè)計開發(fā)一套水深比對檢測系統(tǒng)很有必要。
外業(yè)數(shù)據(jù)采集前,需要事先收集水域主測線的方向、主測線長度、水域面積等信息。按照《水利水電工程測量規(guī)范》規(guī)定,測深檢查線宜垂直于主測線方向,其長度不宜小于測深線總長度的5%。檢查線的布設(shè)應(yīng)分布均勻,為了兼顧水域重點(diǎn)部位(如水庫主壩前)的精度,適當(dāng)在特殊部位增設(shè)檢查線。檢查線上測點(diǎn)間隔應(yīng)不低于測線施測的測點(diǎn)間隔。系統(tǒng)設(shè)定主測線文件和檢查線文件為CASS格式,測點(diǎn)高程為正常高,進(jìn)行檢查線施測時應(yīng)采用RTK獲取水面正常高,用以計算各測點(diǎn)的水深區(qū)間。在數(shù)據(jù)采集過程中,由于水流速度、波浪大小、船行速度等因素影響,會造成吃水深度不同程度的改變,從而影響檢測數(shù)據(jù)質(zhì)量。無人船采集數(shù)據(jù)時,將其自動模式可有效保證船行速度且能保證按照設(shè)定的測線方向運(yùn)行,在浪高大于0.4m時應(yīng)停止采集數(shù)據(jù),從而提高檢測數(shù)據(jù)采集質(zhì)量。
系統(tǒng)模塊包括打開文件、參數(shù)設(shè)置、統(tǒng)計結(jié)果展示及比對詳細(xì)結(jié)果展示模塊。
(1)打開文件模塊:設(shè)定檢測線和主測線數(shù)據(jù)文件的格式,本系統(tǒng)可以讀取CASS格式及東北高(空格分割)模式的數(shù)據(jù)文件。
(2)參數(shù)設(shè)置模塊:需要設(shè)置圖上檢查線和主測線比對范圍、成圖比例尺(通過比對范圍和成圖比例尺確定實(shí)地檢測數(shù)據(jù)比對范圍)、測量時的水面高程(用以計算測點(diǎn)水深)、測區(qū)名稱、各區(qū)間深度限差要求(本系統(tǒng)中將測深區(qū)間設(shè)定為0~5m、5~10m、10~20m、20m以上4個區(qū)間)。
(3)統(tǒng)計結(jié)果展示模塊:展示的統(tǒng)計結(jié)果包括主測線長度、檢查線長度、檢測線長度占主測線長度的百分比、各區(qū)間深度超限點(diǎn)個數(shù)及超限比例、檢測比對的樣本數(shù)、總的不符值個數(shù)和比例另外還計算了比對的總的中誤差(僅供參考使用,在導(dǎo)出的統(tǒng)計結(jié)果中按照深度區(qū)間分別計算中誤差)。
(4)對比詳細(xì)結(jié)果:詳細(xì)展示了比對的檢測線測點(diǎn)坐標(biāo)及相匹配的主測線測點(diǎn)坐標(biāo)、測點(diǎn)間距、水底高程差值、檢測水深值等信息。
水深比對算法有最近點(diǎn)法、交叉點(diǎn)法、DEM法[14-15]。本系統(tǒng)采用最近點(diǎn)法進(jìn)行開發(fā)。按照《水利水電工程測量規(guī)范》規(guī)定檢測線與主測線相交處,圖上1mm范圍內(nèi)進(jìn)行比對。為加快比對速度,首先對主測線文件縮小范圍,通過計算出檢測線文件的最大坐標(biāo)值和最小坐標(biāo)值,將主測線文件提取出檢測線文件所在區(qū)域的坐標(biāo)數(shù)據(jù)。檢測線某一測點(diǎn)數(shù)據(jù)可能在圖上1mm范圍內(nèi)存在多個與之相匹配的主測線測點(diǎn),通過篩選出距離最近的主測線測點(diǎn)作為比對測點(diǎn)數(shù)據(jù)。在統(tǒng)計分析階段根據(jù)水深值進(jìn)行區(qū)間劃分,對符合限差范圍的測點(diǎn)文件和超限測點(diǎn)文件進(jìn)行計數(shù)。比對的具體設(shè)計如圖2所示。
圖2 水深比對算法流程圖
本系統(tǒng)采用Python語言,基于PyQt5包的方式進(jìn)行開發(fā)。Python是一種面向?qū)ο蟮慕忉屝透呒壘幊陶Z言,相較于C、C++等編譯型語言來說具有簡單易學(xué)、編寫效率高等特點(diǎn)[16-20]。Qt是一個跨平臺C++開發(fā)庫,能夠開發(fā)出界面更加美觀的圖形用戶界面應(yīng)用程序。PyQt5是Python與Qt結(jié)合的產(chǎn)物,它既可以利用Python語言強(qiáng)大而又簡潔的語法,又可以利用Qt強(qiáng)大的功能。PyQt5由一些列的python模塊組成,擁有超過620個類和6000個函數(shù)及方法[2]。PyQt5的模塊包括QtCore、QtGui、QtWidgets、QtMultimedia、QtBluetooth、QtNetwork、QtPositioning等15個模塊。
系統(tǒng)設(shè)計實(shí)現(xiàn)功能主要包括:
(1)通過導(dǎo)入檢測線文件和主測線文件,根據(jù)設(shè)計好的圖上比對范圍,進(jìn)行水深比對計算,計算出測點(diǎn)匹配數(shù)據(jù)及各項檢驗參數(shù)。
(2)實(shí)現(xiàn)水深檢測原始記錄表和水深檢測統(tǒng)計記錄表的自動生成,生成的格式為excel格式。
(3)自動繪制主測線和檢測線走向示意圖,展示主測線和檢查線方向及測點(diǎn)數(shù)據(jù)范圍。
為檢驗系統(tǒng)的運(yùn)行效率,選取山東省濟(jì)南市某小型水庫作為樣例進(jìn)行檢測。該水庫主測線文件包含4萬多條測點(diǎn)數(shù)據(jù),檢測線文件包含2900多條測點(diǎn)數(shù)據(jù)。測線數(shù)據(jù)格式為CASS模式,水面高程為310.38m。打開系統(tǒng)選擇檢測線文件和主測線文件,輸入水面高程及測區(qū)名稱,設(shè)置各區(qū)間中誤差,點(diǎn)擊比對計算按鈕,在控制臺窗口中將顯示程序執(zhí)行的進(jìn)度,具體執(zhí)行過程如下圖3所示。
圖3 水深比對系統(tǒng)運(yùn)行圖
本項目比對計算執(zhí)行時間為19.4s。系統(tǒng)執(zhí)行完比對計算后,將在詳細(xì)結(jié)果窗口中展示對比的具體信息,點(diǎn)擊導(dǎo)出原始記錄按鈕將導(dǎo)出具體的比對數(shù)據(jù),點(diǎn)擊導(dǎo)出統(tǒng)計結(jié)果按鈕將導(dǎo)出各區(qū)間深度中誤差計算統(tǒng)計表并在程序主界面對比結(jié)果中展示各深度區(qū)間超限點(diǎn)數(shù)、超限比例等計算指標(biāo)。圖4為程序運(yùn)行完成后展示的對比結(jié)果,圖5為生成的主測線與檢測線方向示意圖,可方便瀏覽主測線和檢查線方向,圖6為生成的水深比對統(tǒng)計表,表格中將對比的各項參數(shù)結(jié)果進(jìn)行了展示。
圖4 水深比對計算結(jié)果
圖5 檢測線與主測線方向示意圖
圖6 水深比對統(tǒng)計表
(1)本文敘述了目前水下地形測量的方法主要分為常規(guī)模式和自動化模型,水下地形測量質(zhì)量檢查與陸上地形圖質(zhì)量檢查的不同點(diǎn)。簡要回顧了水下地形測量的原理及水下地形測量的誤差來源。
(2)本文針對水下地形測量質(zhì)量檢查需要檢查的參數(shù)較多,檢測數(shù)據(jù)量大的特點(diǎn),設(shè)計了一套水深比對檢測系統(tǒng),從水下地形測量檢測要求、系統(tǒng)模塊、比對算法等方面進(jìn)行設(shè)計。
(3)本文結(jié)合Python語言具有開發(fā)速度快、開發(fā)效率高的顯著優(yōu)勢及PyQt5作為圖形界面程序(GUI)開發(fā)的工具包的優(yōu)點(diǎn),利用python語言和PyQt5工具開發(fā)了一套水深比對檢測系統(tǒng),實(shí)現(xiàn)了對水下測量檢測線和主測線測深數(shù)據(jù)的自動比對,自動計算統(tǒng)計各項檢查參數(shù)、生成檢測線和主測線走向示意圖等功能。在山東省某水庫的水下地形測量質(zhì)量檢查中得到了應(yīng)用,取得了較好的效果。
(4)本系統(tǒng)在設(shè)計時兼容了CASS格式和東北高(空格分割)模式的檢測數(shù)據(jù),提高了對檢測數(shù)據(jù)格式的適用性。測線里程計算根據(jù)相鄰兩點(diǎn)之間距離進(jìn)行累計計算得來,如對測線數(shù)據(jù)進(jìn)行隨意排序?qū)绊懤锍逃嬎?可通過在CASS中進(jìn)行展點(diǎn)計算其測線里程。