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