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