陳柯宇,趙建軍,李清淼,賴琪毅,代欣然,鄧杰
(地質(zhì)災(zāi)害防治與地質(zhì)環(huán)境保護國家重點實驗室(成都理工大學(xué)),成都 610059)
青藏高原地區(qū)地質(zhì)構(gòu)造強烈、板塊快速隆升,孕育了大量高陡巖質(zhì)邊坡,地質(zhì)人員現(xiàn)場難以通過地質(zhì)羅盤測量巖層產(chǎn)狀,室內(nèi)在地質(zhì)圖上求解產(chǎn)狀工作繁瑣且不直觀[1-4]。隨著復(fù)雜計算機視覺、無人機攝影和地質(zhì)調(diào)查領(lǐng)域發(fā)展結(jié)合的深入,通過航空傾斜攝影可以獲取厘米級分辨率的三維影像,為上述問題的解決提供了遠(yuǎn)程解決的新思路[5-8]。三維空間影像技術(shù)是能獲取目標(biāo)物體表部空間幾何特征,實現(xiàn)遠(yuǎn)距離、無接觸測量,通過室內(nèi)數(shù)據(jù)疊加便可獲取精度高、密度大的三維點云數(shù)據(jù)[9]。通過三維空間影像提取測點的經(jīng)緯度及高程信息,繼而計算高陡巖質(zhì)邊坡的結(jié)構(gòu)面產(chǎn)狀,整個過程相對安全、便捷[10]。目前計算產(chǎn)狀常采用向量關(guān)系法和擬合平面法[11-14]。
本文研究對象為高陡巖質(zhì)邊坡坡表松動巖體的結(jié)構(gòu)面產(chǎn)狀,不涉及深部巖體。通過高分辨航空遙感正射影像獲取研究區(qū)域的帶有位置信息的三維模型,與現(xiàn)場踏勘對照,確認(rèn)待測量的結(jié)構(gòu)面的擬合點,引入計算隱伏活動斷層傾向、傾角計算公式,通過Python語言將計算方法程序化并建立簡潔直觀的用戶窗口。
基于立體幾何學(xué)的三點問題求解,相比傳統(tǒng)的作圖法具有公式化、程序化的特點。三點法求解結(jié)構(gòu)面產(chǎn)狀的充要條件是已知位于同一結(jié)構(gòu)面上的三個點間的平距、高差及兩兩連線的方位角。結(jié)構(gòu)面傾角的計算公式是已知三點之間平距和高差為變量的代數(shù)表達(dá)式。結(jié)構(gòu)面走向計算公式是已知三點之間平距、高差及三點連線的方位角為變量的代數(shù)表達(dá)式。
借助航空斜攝影測量技術(shù)建立的三維圖像可以遠(yuǎn)程快速獲取單點的地理信息(經(jīng)緯度、高程)。兩點的平距及兩點連線的方位角無法直接從三維圖像上獲取,本文利用球面三角學(xué)相關(guān)公式進行推導(dǎo)并求解。
將地球近似看作一個球體,求解球面上A、B兩點的距離和方位角的示意圖如圖1所示。對于地球上兩點A、B,假設(shè)A為基準(zhǔn)點,B為測點,其經(jīng)緯度信息分別為Aj、Aw、Bj、Bw,θa、θb、θc為基準(zhǔn)點A、測點B、北極點N其中兩點與地心O夾角。θd為面AON與面BON夾角。
圖1 兩點求解距離和方位角示意圖
求解基準(zhǔn)點A與測點B與地心O之間夾角θc可以利用球面余弦公式:
cos(θc)=cos(θa)×cos(θb)+sin(θa)×sin(θb)×cos(θc)=cos(90°-Bw)×cos(90°-Aw)+sin(90°-Bw)×sin(90°-Aw)×cos(Bj-Aj)
(1)
(2)
根據(jù)球面正弦公式:
(3)
轉(zhuǎn)換得:
(4)
根據(jù)基準(zhǔn)點A與測點B的位置關(guān)系,測點相對于基準(zhǔn)點的方位角如下:
(1)B點相對于A位于第一象限,即Bj≥Aj且Bw≥Aw時:AB方位角為θA;
(2)B點相對于A位于第二象限,即Bj (3)B點相對于A位于第三、四象限,即Bw 根據(jù)半正矢公式,球面上A、B兩點距離LAB為: (5) 巖層層面與任一假想水平面的交線稱走向線,層面上與走向線垂直并沿斜面向下所引的直線叫傾斜線。傾斜線在水平面上的投影所指示的方向稱巖層的傾向。層面上的傾斜線和它在水平面上投影的夾角稱為傾角。 三點的高度關(guān)系和位置關(guān)系直接影響到結(jié)構(gòu)面傾角及傾向的公式推導(dǎo)。以三點高程不等的位置關(guān)系為例,如圖2中(a)、(b)所示,A、B、C分別為結(jié)構(gòu)面ABC三點,A點高程最高,B點高程次之,C點高程最低,DN為真北方向。存在水平面A’CE,A’為A點在水平面上投影,E為AB與水平面交點,CE即為走向線。AC上存在D與B高程一致,在平面ABC作DG⊥DB,DG與CE交于F。可得DG⊥CE,DG(DF)即為傾斜線。B’、D’、G’為B、D、G在水平面上投影。令∠G’FG為α,α∈(0,0.5Π),∠A’D’B’為β,β∈(0,Π),∠CA’E為γ,γ∈(0,Π),AC之間高差為ha,AB高差為hb,AB間平距c,AC間平距為b,BC間平距為a,B’D’長度為d,BF前進方向為φBF,AB前進方向為φAB,AC前進方向為φAC,BC前進方向為φBC。傾斜線DF與其在水平面A’CE投影夾角α即為傾角,DF’前進方向φBF即為傾向。 圖2 三點求結(jié)構(gòu)面產(chǎn)狀示意圖 (6) (7) (8) (9) 如圖2(a)所示位置關(guān)系下,結(jié)構(gòu)面ABC傾向φDF的計算公式如下: φDF=φAC+β-90° (10) 由公式(6)、(7)、(8)、(9)、(10)可知, 結(jié)構(gòu)面ABC的傾角α計算公式僅與點A、B、C高程及兩點間水平距離有關(guān),與點間的方位關(guān)系無關(guān)。而結(jié)構(gòu)面ABC的傾向不僅與三點的高程及兩點間水平距離有關(guān),還與三點的位置關(guān)系、兩點連線方位角有關(guān)。對于選取的三點不同位置關(guān)系下傾角計算公式總結(jié)如表1。 表1 結(jié)構(gòu)面傾向計算公式 Python(Guido van Rossum,1991)是一種廣泛使用的編程語言,可以構(gòu)建計算程序所需的的函數(shù)式、指令式、結(jié)構(gòu)化、面向?qū)ο蟮木幊?。Numpy是python語言的一個擴展程序庫,提供大量的數(shù)學(xué)函數(shù)庫。Tkinter是Tk GUI工具包的標(biāo)準(zhǔn)python接口,是python建立圖形用戶界面的標(biāo)準(zhǔn)工具包。它也有其他的流行的GUI庫來代替,例如wxPython、PyQt。 借助以上三者,可以較好地實現(xiàn)算法的本地化并可視化窗口,有效降低后續(xù)操作人員的負(fù)擔(dān),同時視覺上更加直觀且便于理解。設(shè)計流程如下:(1)搭建Python運行環(huán)境,并加載所需的擴展程序庫;(2)基于Numpy的底層函數(shù)將計算公式轉(zhuǎn)化為用戶自定義的函數(shù),通過輸入函數(shù)建立人機交互路徑;(3)通過Tkinter提供的底層函數(shù)建立圖形用戶界面。最終圖形界面如圖3所示。 圖3 程序操作界面及Tkinter底層函數(shù) 設(shè)計完成的程序包括三個大的部分。窗口,用戶顯示屏上的某矩形區(qū)域,包含標(biāo)準(zhǔn)框架和控件。小工具,指圖形用戶界面中構(gòu)成應(yīng)用程序的任何構(gòu)建塊,包括容器、按鈕和對話框??蚣埽菑?fù)雜布局的基本組織單位,是一個矩形區(qū)域,可以包含其他小部件。 程序各區(qū)域功能如下:A:輸入?yún)^(qū),按照提示依次輸入三點的位置信息;B:確認(rèn)按鈕,完成前一項數(shù)據(jù)輸入并進入下一項;C:提示區(qū),對當(dāng)前所需的操作進行提示;D:計算按鈕,完成數(shù)據(jù)輸入后,點擊按鈕開始計算;E,顯示區(qū):顯示產(chǎn)狀計算結(jié)果;F:備注區(qū),備注提示信息或進行數(shù)據(jù)記錄。 以藏東某溝谷高位巖質(zhì)陡壁為例,如圖4所示,為研究陡壁上部危巖落石的沖擊影響,需要測明陡壁上部控制結(jié)構(gòu)面產(chǎn)狀,以確定危巖落石方量。由于后緣巖壁陡峭,人工測量僅能在巖壁下部及兩側(cè)開展,為測量現(xiàn)場人員難以到達(dá)的區(qū)域的巖體結(jié)構(gòu)面產(chǎn)狀,本工程借助航空傾斜攝影技術(shù)和產(chǎn)狀計算程序進行調(diào)查。在大規(guī)模測量前,對程序計算產(chǎn)狀與現(xiàn)場羅盤測量的產(chǎn)狀進行對比,驗證程序計算結(jié)果的準(zhǔn)確性,測試結(jié)果如表2所示。室內(nèi)測量的產(chǎn)狀與現(xiàn)場羅盤測量的產(chǎn)狀整體一致,傾向平均誤差為3°,傾角平均誤差為2°。現(xiàn)場調(diào)查產(chǎn)狀測量的傾向和傾角中誤差分別為4°和3°,現(xiàn)場容許的最大偶然誤差值為中誤差的3倍。室內(nèi)測量的產(chǎn)狀值在工程誤差容許范圍內(nèi),可以滿足實際需求。 表2 現(xiàn)場實測產(chǎn)狀與室內(nèi)計算產(chǎn)狀對比表 圖4 測點無人機照片(#a)和航空傾斜攝影圖(#b)對比圖 上述結(jié)論表明借助三維影像和推導(dǎo)的傾角、傾向公式以及可以快速、準(zhǔn)確的獲取結(jié)構(gòu)面的產(chǎn)狀信息。同時不同的產(chǎn)狀計算方法都可以通過Python語言和Tkinter庫建立較好的圖形用戶界面。對于批量的數(shù)據(jù)也可以通過Python的循環(huán)語句,接入編寫的計算函數(shù)進行批量處理。 本文使用立體幾何學(xué)知識及航空傾斜攝影技術(shù)總結(jié)出巖體表層結(jié)構(gòu)面的快速取值方法。 (1) 通過三維立體影像確定結(jié)構(gòu)面上三點經(jīng)緯度、高程,利用封裝的傾角、傾向計算程序可以快速、準(zhǔn)確的計算結(jié)構(gòu)面產(chǎn)狀。 (2) 本文使用Python編程語言將傾向、傾角計算方法通過圖形用戶界面的方式提供給用戶,讓算法在實際工程應(yīng)用中更加簡潔直觀。對于已有的解析幾何中的向量關(guān)系和最小二乘法擬合平面的產(chǎn)狀算法也可以通過本文流程實現(xiàn)窗口化。 (3) 限于現(xiàn)階段航空測量精度和三維地形圖只能提供巖體表面空間信息的問題,通過程序測量產(chǎn)狀的方法現(xiàn)階段仍無法完全取代傳統(tǒng)的現(xiàn)場羅盤測量。 本文的創(chuàng)新點在于基于立體幾何學(xué)和Python語言完成了產(chǎn)狀計算程序開發(fā)的全流程。2.2 結(jié)構(gòu)面產(chǎn)狀計算方法
3 計算方法程序化
4 數(shù)據(jù)與測試
5 結(jié)論