石信肖,王 健,孫文瀟,3
(1.山東省魯南地質(zhì)工程勘察院(山東省地質(zhì)礦產(chǎn)勘查開發(fā)局第二地質(zhì)大隊),山東 濟(jì)寧 272100;2.山東科技大學(xué) 測繪與空間信息學(xué)院,山東 青島 266590;3.山東建筑大學(xué),測繪地理信息學(xué)院,山東 濟(jì)南 250101)
智慧礦山等數(shù)字化理念的提出,對可更直觀、準(zhǔn)確的展示地理實體三維空間數(shù)據(jù)的需求越來越多。在地學(xué)領(lǐng)域,自1980年以來眾多專家建立了多種實體模型來模擬地質(zhì)結(jié)構(gòu),主要包括基于面元的表面模型和基于體元的實體模型,其中表面模型能夠快速表達(dá)物體外部結(jié)構(gòu),但該方法不能體現(xiàn)地質(zhì)體內(nèi)部特征,無法實現(xiàn)真正的地質(zhì)體真三維重建[1-2]。而體元模型恰好彌補(bǔ)這一不足,該模型側(cè)重于表示三維地質(zhì)體內(nèi)部整體或邊界,比如對于礦體和地質(zhì)體的各地層的表示,是借助三維空間的真三維實體的展示,常見的體元模型有四面體,六面體。利用不規(guī)則四面體描述的地質(zhì)體,在層位面可以更加精確,內(nèi)部結(jié)構(gòu)的刻畫也較為精細(xì),對比之下六面體網(wǎng)格對細(xì)節(jié)的刻畫不夠精細(xì)[3-4]。
對于四面體剖分算法使用較多的是Delaunay四面體剖分,國內(nèi)外學(xué)者對此做了大量研究。KARASICK等[5]對三維四面體網(wǎng)格剖分的可視化方法進(jìn)行了研究。SI等[6]利用三維空間域的限定Delaunay四面體剖分,解決了限定邊界難以恢復(fù)的問題。DEVILLERS等[7]將隨機(jī)擾動的方法引入到三維四面體剖分中。BUCHIN等[8]提出一種高效的四面體剖分方法,該方法主要是對三維Delaunay的頂點(diǎn)進(jìn)行刪除,大大提高處理效率。LO[9]也在利用Delaunay四面體剖分對恢復(fù)邊界的處理上進(jìn)行算法研究[9],該學(xué)者是利用增加頂點(diǎn)的方法,從而做到邊界邊及面的恢復(fù)。國內(nèi)專家學(xué)者在此領(lǐng)域有些許滯后,崔漢國等[10]利用動態(tài)修改和自動生成的算法,建立了另一種方式的三維空間的Delaunay四面體剖分。胡于進(jìn)等[11]利用Delaunay的空外接圓準(zhǔn)則,獲得插入點(diǎn)的最佳位置改進(jìn)了之前的算法。趙建軍等[12]提出邊界一致的Delaunay四面體穩(wěn)定生成算法,避免了之前剖分算法中的不足。楊忱瑛等[13]也提出了一種新的三維限定Delaunay四面體剖分的算法。劉巖[14]改進(jìn)了網(wǎng)格單元質(zhì)量優(yōu)化算法,提高了剖分四面體的質(zhì)量。
以上諸多學(xué)者基于四面體重建已經(jīng)做出多種探索,并取得一定成效,但對于地層,尤其斷層等具體地質(zhì)結(jié)構(gòu)重建缺少具體實施方案。為解決地層模型內(nèi)部屬性表征問題,結(jié)合該模型體元結(jié)構(gòu)簡單、能有效描述拓?fù)潢P(guān)系、能夠有效地實現(xiàn)插值運(yùn)算、能快速進(jìn)行幾何和邏輯變換的特點(diǎn),基于Tetgen四面體剖分算法庫,探討了四面體模型下的地質(zhì)層和斷層的三維重建研究。
根據(jù)四面體在地質(zhì)層內(nèi)部建模的良好特性,利用Tetgen四面體剖分算法庫[15-19]實現(xiàn)了Delaunay三角剖分和Edelsbrunner以及Shah的隨機(jī)增量翻轉(zhuǎn)算法,并且生成的自適應(yīng)四面體網(wǎng)格質(zhì)量較高,在有限元或有限體積數(shù)值計算時有著良好適應(yīng)性。
假設(shè)存在一個三維區(qū)域A,借助諸多四面體盡可能地準(zhǔn)確描述該區(qū)域,當(dāng)然該區(qū)域內(nèi)的四面體形狀是大小不一樣的。點(diǎn)集W中存在2個點(diǎn)可見的p、q點(diǎn),構(gòu)建約束平面f,構(gòu)建條件為點(diǎn)p、q兩點(diǎn)分別位于平面f的上下兩邊,p、q間的線段交叉于平面f, 并且兩頂點(diǎn)不可見。由此條件下眾多頂點(diǎn)構(gòu)成點(diǎn)集W,約束Delaunay四面體的頂點(diǎn)都處于點(diǎn)集W中。借助四面體描述區(qū)域形態(tài)的方式稱為約束Delaunay四面體剖分。
圖1 約束Delaunay四面體剖分Fig.1 Constrained Delaunay tetrahedral meshing
Tetgen算法在構(gòu)建四面體網(wǎng)格時,總能避免最小或最大二面角四面體出現(xiàn)。構(gòu)建高質(zhì)量四面體網(wǎng)格主要是源于多種條件的約束,比如三維頂點(diǎn),約束段,不少于90°的輸入角和小平面,等多個點(diǎn)線面控制條件。同時四面體網(wǎng)格的半徑邊緣比不大于2.0這一條件的約束下的網(wǎng)格基本能描述各種情況。通常,借助邊界縱橫比來判斷網(wǎng)格劃分的質(zhì)量情況[20]。邊界縱橫比ηt是最大邊的長度lmax與最小高度hmin的比值,即
(1)
邊界縱橫比和四面體網(wǎng)格質(zhì)量成反比,越小的比值代表質(zhì)量越高。
但Tetgen借助半徑邊緣比來控制網(wǎng)格質(zhì)量情況,半徑邊緣比是由MILLER等[21]提出的網(wǎng)格控制準(zhǔn)則。該準(zhǔn)則是指控制一個四面體t只存在一個外接球條件下,分別獲取四面體外接球的半徑r以及四面體最短邊的長度d。那么四面體的半徑邊緣比ρt是:
(2)
式中:θmin為四面體t的最小面角。
同樣,半徑邊緣比和四面體網(wǎng)格質(zhì)量成反比,較小的比值代表質(zhì)量越高。
筆者是在Ubuntu系統(tǒng)下對Tetgen進(jìn)行編譯,并將該庫命名為“Tetgen.a”。通過對該庫的調(diào)用,實現(xiàn)了三維實體結(jié)構(gòu)的網(wǎng)格劃分。
Tetgen算法庫主要是根據(jù)已知的三維點(diǎn)集,重新構(gòu)建點(diǎn)集的Delaunay四面體格網(wǎng)或者權(quán)重Delaunay四面體格網(wǎng)的過程。借助Tetgen算法庫進(jìn)行地層建模具體過程為:
1)根據(jù)鉆孔數(shù)據(jù)以及CAD圖獲取地層數(shù)據(jù),并建立表面不規(guī)則三角網(wǎng),完成地層表面模型的重建。
2)由于Tetgen存在多種約束條件才能構(gòu)建高質(zhì)量四面體網(wǎng)格,因此輸入數(shù)據(jù)需要預(yù)處理,進(jìn)行有效性檢查,對檢查后的數(shù)據(jù)使用靜態(tài)鏈接庫Tetgen.a進(jìn)行下一步處理,反之重復(fù)以上步驟。
3)Tetgen算法主要有4塊內(nèi)容:計算特殊點(diǎn)、得到跟蹤邊、生成表面網(wǎng)格生成,最后完成體剖分,在數(shù)據(jù)處理時利用Tetgen的核心算法庫Tetgen.a完成四面體剖分。
4)根據(jù)實際情況選取合適的剖分參數(shù),對模型剖分,最終得到完整的地質(zhì)層四面體模型。
該算法進(jìn)行建模流程如圖2所示。
圖2 四面體建模流程Fig.2 Flow chart of tetrahedron modeling
1)面模型建立。根據(jù)獲取的巷道模型以及鉆孔數(shù)據(jù),首先完成單層和多層地層表面模型的建模并以*stl二進(jìn)制格式保存,文件包含頂點(diǎn),面片等信息。
2)模型初始檢驗。Tetgen以分線段復(fù)雜體(PLC)[20]來描述三維幾何體對象,對于輸入的模型需要判定是否滿足該規(guī)則,地層模型的初始檢驗主要是避免模型相交以及非閉合等問題,無法進(jìn)行四面體剖分。
以./tetgen-ddxxf.stl命令調(diào)用庫文件,首先是對頂點(diǎn)進(jìn)行分析。然后檢查2個單曲面的地層模型的自相交情況,一般來說自相交會出現(xiàn)共面相交三角形以及異面相交三角形2種情況。無論哪種情況三角形都要重新處理,并基于交點(diǎn)形成2個同頂點(diǎn)三角形,從而通過Tetgen對輸入模型的相交性檢查。
3)四面體網(wǎng)格構(gòu)建。我們需要用到的參數(shù)為tetgenbehavior *b, tetgenio *in, tetgenio *out, tetgenio *addin這4個,這4個參數(shù)的含義分別指代限定剖分選項參數(shù)結(jié)構(gòu)、輸入網(wǎng)格結(jié)構(gòu),輸出剖分結(jié)構(gòu),附加點(diǎn)集輸入結(jié)構(gòu),限定剖分其實就是輸入Point+Mesh,輸出TetraMesh的過程。
4)模型的輸出。運(yùn)用./tetgen-q*.stl命令對模型進(jìn)行四面體剖分,依次運(yùn)行頂點(diǎn)、面片讀取,頂點(diǎn),格網(wǎng)優(yōu)化,重建等過程,完成四面體模型重建。最終輸出模型的點(diǎn)集文件、四面體列表文件、三角面片文件、四面體格網(wǎng)的邊界列表文件、PLC專用的表面格網(wǎng)文件。
以某煤礦掃描數(shù)據(jù)為例,驗證算法的可行性,采用三維激光掃描儀獲取巷道點(diǎn)云數(shù)據(jù),根據(jù)鉆孔資料及CAD圖紙數(shù)據(jù)獲取地質(zhì)層數(shù)據(jù)。
利用三維激光掃描儀采集了海量的巷道點(diǎn)云數(shù)據(jù),在配套的數(shù)據(jù)處理工具中完成點(diǎn)云預(yù)處理。隨后通過配準(zhǔn)、去噪、抽稀等操作獲取可用于建模的巷道點(diǎn)云,預(yù)處理后的點(diǎn)云如圖3所示。
圖3 巷道整體點(diǎn)云Fig.3 Tunnel overall point cloud
以構(gòu)網(wǎng)擬合的方式對點(diǎn)云建模,得到巷道初始模型,為使模型更加精細(xì)對模型進(jìn)行孔洞修補(bǔ),打磨及優(yōu)化,具體模型效果如圖4所示。
圖4 巷道模型效果Fig.4 Effect of tunnel model after processing
結(jié)合鉆孔數(shù)據(jù)以及CAD信息完成地層模型的構(gòu)建。主要分為鉆孔數(shù)據(jù)處理,面模型構(gòu)建以及體元模型構(gòu)建等步驟。
1)鉆孔數(shù)據(jù)處理。利用研究區(qū)域工程地質(zhì)平面圖,采用人工方式,提取鉆孔詳細(xì)數(shù)據(jù),在對提取的數(shù)據(jù)進(jìn)行解譯后參與后期三維地質(zhì)模型的構(gòu)建。
2)地層面模型構(gòu)建。根據(jù)鉆孔數(shù)據(jù)并將巖層數(shù)據(jù)進(jìn)行整理,借助建模軟件以人工提取地質(zhì)信息的方式確定地層的大致范圍;然后勾繪出矢量線模擬地質(zhì)形態(tài)確定單層地層面片;將單層面片按照高度進(jìn)行拉伸完成各地層模型;最后建立地層模型的表面模型,并將不同巖層賦予不同的紋理材質(zhì),為效果展示做注釋,地層模型如圖5所示。
圖5 地層模型Fig.5 Stratigraphic model
結(jié)合巷道模型與地層模型進(jìn)行布爾運(yùn)算,采用曲面相交的方法獲取地層輪廓形狀。根據(jù)鉆孔數(shù)據(jù)以及巷道數(shù)據(jù)進(jìn)行多種約束進(jìn)行地層建模,具體效果如圖6所示。
圖6 約束輪廓后的地層模型Fig.6 Strata model after constrained profile
3)體元地層模型構(gòu)建。將獲取的地層表面模型采用第2節(jié)中的四面體剖分算法進(jìn)行體元化的地層模型重建。以./tetgen-pq1.2Va1zdc.stl命令對地層模型進(jìn)行重建,其重建效果如圖7所示。
圖7 地層四面體模型Fig.7 Strata tetrahedron model
參照地層模型整體構(gòu)建方法,以局部法建立斷層模型。具體步驟如下:
1)根據(jù)各類鉆孔及其他資料大致整理斷層位置及分界面信息;并根據(jù)斷層屬性對于斷層每部分采用分片處理建立單層模型;最后采用人工編輯的方式形成無拓?fù)潢P(guān)系的地層層面。從而確定基本的空間形態(tài),最終構(gòu)建的表面模型如圖8所示。
2)根據(jù)構(gòu)造出的地層表面模型,采用四面體剖分的方法完成含斷層結(jié)構(gòu)的地層剖分,由于采用局部法構(gòu)造的表面模型,需要尤其注意多地層模型的相交性。首先對模型初始剖分,并根據(jù)模型效果選取合適的剖分參數(shù),為保持格網(wǎng)圖元優(yōu)良性,增加格網(wǎng)頂點(diǎn)并增加半徑約束條件,使得外接圓半徑和邊的比率不超過1.2。模型結(jié)果如圖9所示。
圖8 斷層面模型Fig.8 Fault plane model
圖9 斷層體元模型Fig.9 Fault voxel model
1)針對地層模型缺少內(nèi)部屬性表達(dá)的問題,研究了Tetgen算法庫在地質(zhì)模型三維重建中的應(yīng)用,結(jié)合Tetgen算法庫便于完成網(wǎng)格細(xì)分、角點(diǎn)重組的特性提出了一種體元結(jié)構(gòu)下的地質(zhì)模型重建方法。
2)根據(jù)鉆孔等數(shù)據(jù)完成地層面模型的重建,為判斷模型相交以及非閉合狀態(tài)借助靜態(tài)庫文件完成模型初始檢驗。并根據(jù)實際情況,為了盡可能展現(xiàn)實體信息便于內(nèi)部結(jié)構(gòu)表達(dá),進(jìn)行優(yōu)化剖分參數(shù),最終獲取最優(yōu)的地層四面體模型。
3)針對斷層特殊地質(zhì)結(jié)構(gòu)復(fù)雜且對于以面模型來表達(dá)該構(gòu)造缺乏內(nèi)部結(jié)構(gòu)的特點(diǎn),采用局部法完成斷層部分面模型的構(gòu)建,并多次調(diào)整單層面片后確保各層之間無交叉以通過初始檢驗,借助四面體良好的空間拓展性,用合適的四面體剖分參數(shù),完成了斷層結(jié)構(gòu)的體元建模。