諸葛政樺
ZHUGE Zhenghua
隨著我國地下空間工程建設的不斷發(fā)展,工程地質分析越來越受到工程勘察部門、設計部門的重視。工程地質三維剖切可以清晰地展現(xiàn)地下空間的內(nèi)部細節(jié),極大地增強工程地質分析的直觀性和準確性,其重要性日益顯現(xiàn),因此工程地質三維剖切的實現(xiàn)成為工程地質研究中的熱點[1]。近年來,國內(nèi)外許多學者對此進行了研究,如:以似三棱柱為體元表達的三維模型的切割操作[2- 3];通過切割多層DEM生成剖面[4]。這些方法利用構成模型的各個面與邊與剖面求交線,最后構成整個剖面的輪廓線,形成地質三維模型的剖切面,需要對三維模型所有的線和面進行搜索,計算量較大[5]。本文利用標準地層層序來建立工程地質三維模型,以剖切平面生成的虛擬鉆孔來完成工程地質三維模型的剖切。
工程地質三維剖切的實現(xiàn)需要對工程地質三維模型和剖切平面求加運算,在計算機技術迅速發(fā)展的今天,面向對象編程(OOP)在廣泛開拓與應用[6],利用OOP技術對工程地質三維模型進行剖切,概念明確,可以簡便地實現(xiàn)集成和抽象。
地層在空間上大體呈層狀分布,且每一層都由上下層面及邊界面構成,因此,三維地層構造就相當于地層層面及邊界面的構造[7]。為了正確反映地層層面的拓撲關系、符合原始資料獲取的特點、很好地表達土層尖滅的現(xiàn)象,本文利用標準地層層序來構造工程地質三維模型,以克里金(Kriging)插值法擬合層面高程,其流程見圖1。
圖1 三維地質建模流程圖
地層層序定律表明,在正常情況下,老的地層沉積在下,新的地層沉積在上。按照地層層序定律,確定研究區(qū)域地層總數(shù)及層與層之間的空間關系,通過鉆孔遇到的巖土最大層數(shù)確定研究區(qū)域地層總數(shù),相同巖性并在垂直方向位置相似的看作一層,然后根據(jù)層與層的上下關系確定地層的排序,即根據(jù)鉆孔遇到的巖土層豎向Z坐標的上下關系,確定地層排序[8],建立研究區(qū)域標準地層層序表。
由于某些區(qū)域存在地層缺失或地層尖滅現(xiàn)象,有些標準地層可能不在鉆孔揭示的地層中,不利于地層層面的構造。因此需要標準化鉆孔資料,即令缺失地層的厚度為0,也就是該地層層底和層面的標高相同,且均等于上層地層層底的標高[9],然后比對標準層序表的內(nèi)容,將該缺少地層的信息添加進鉆孔資料中。
根據(jù)標準化后的鉆孔數(shù)據(jù),采用不規(guī)則三角網(wǎng)(Triangular Irregular Network,TIN)來描述各地層層面。依次填充相鄰地層層面TIN垂直對應的三角形,形成實體三維模型[9]。
工程地質三維剖切的實現(xiàn),其實質是根據(jù)剖切平面將工程地質三維實體分割成兩個三維實體,其關鍵是拆分被剖切的工程地質三維實體。而工程地質三維實體由層面TIN構成,層面TIN又有鉆孔點三角化形成,因此,拆分工程地質實體需要拆分鉆孔點。
由于剖切平面垂直于xoy平面,因此,可以將剖切平面和工程地質三維模型都投影到xoy平面,將三維問題簡化為二維問題[10]。剖切平面在xoy平面的投影為一根直線,如圖2中的粗線,工程地質三維模型在xoy平面的投影為層面TIN,如圖2所示的細線。剖切平面將構成層面TIN的鉆孔點分解成兩組,P2、P3、P4、P5、P6為一組,P1、P7、P8為一組。
圖2 地質TIN與剖切平面投影圖
虛擬鉆孔由兩類數(shù)據(jù)構成,一類數(shù)據(jù)是虛擬鉆孔的地理數(shù)據(jù),即虛擬鉆孔在何處虛擬生成。為準確表達工程地質三維實體在剖切平面處的地質情況,在剖切平面與層面TIN邊相交的交點處虛擬出鉆孔,如圖3中的X1、X2、X3、X4、X5、X6。
圖3 虛擬鉆孔圖
圖4 虛擬鉆孔插值計算示意圖
一類為虛擬鉆孔的層面數(shù)據(jù),即虛擬鉆孔各地層層面標高,其數(shù)值需要進行插值計算。計算時依次序從上到下遍歷標準地層層序表的每個地層面,虛擬鉆孔在該地層面的標高按其到所在TIN邊的兩個鉆孔的距離線性插值確定,如虛擬鉆孔X1各個地層層面標高可按下式(1)計算[11],如圖4。
(1)
式(1)中:i=1,2,…標準地層數(shù);
Zi為虛擬鉆孔X1第i個地層面標高,Z1i為P1鉆孔第i個地層面標高,Z2i為P8鉆孔第i個地層面標高;l1為X1至P1鉆孔距離,l2為X1至P8鉆孔距離,l為P1、P8鉆孔之間的距離。
在生成各部分三維地質實體時,為反映地質剖面的實際情況,應將剖切時生成的虛擬鉆孔分別加入到上述拆分成兩組的構成TIN的鉆孔點集中,以X1→X2→X3→X4→X5→X6剖面為約束條件,進行有約束條件的Delauney三角網(wǎng)剖分,形成TIN模型,如圖5所示。
圖5 重生成的TIN模型
按照利用標準地層層序表建立工程地質三維模型的方法分別生成兩部分三維地質實體,并利用OpenGL實現(xiàn)工程地質三維剖切。
工程地質三維剖切概念明確,對象層次清晰,具有面向對象的特點,易于采用面向對象技術編程實現(xiàn)。
面向對象技術首先應對問題抽象成類,并且建立類之間的消息機制及類之間的關系,即進行工程地質三維剖切的概念設計。工程地質三維剖切的概念設計如圖6。
圖6 工程地質剖切概念設計
根據(jù)概念模型,抽象出工程地質三維剖切類并采用類圖表示,如圖7。
圖7 工程地質三維剖切類圖
如上圖7,工程地質三維剖切主要類有CSolid(工程地質三維實體類)、CDrillHoles(鉆孔集合類)、CPlane(剖切平面類)、OpenGLSense(圖形輸出類)。CDrillHoles類由CDrillHole類組合形成,并通過CDelauney類的Trangulate方法實現(xiàn)CTins類,由CTins類實現(xiàn)CSolid類,利用CPlane類中Cut方法實現(xiàn)工程地質三維實體的剖切。OpenGLSense類中包含CDrillHoles和CSolid這兩個圖形繪制類,CDrillHoles類向場景中繪制鉆孔集,CSolid類向場景中繪制工程地質三維實體。這些類的部分屬性和行為見表1。
表1 工程地質剖切類
下面以C#為面向對象語言,給出上表1四個類的部分代碼實現(xiàn)。
1)CDrillHoles(鉆孔集合類)
Public class CDrillHoles
{
Private _DrillHole;∥定義鉆孔
Public void Add()
{
∥向鉆孔集中添加鉆孔
}
Public void Delete()
{
∥從鉆孔集中刪除鉆孔
}
Public int Count()
{
∥統(tǒng)計鉆孔集中的鉆孔數(shù)量
}
public CdrillHole CreateVisualDrillHole()
{
∥生成虛擬鉆孔
}
}
2)CPlane(剖切平面類)
Public class CPlane
{
Private _StartPoint;∥定義剖切平面起始位置
Private _EndPoint;∥定義剖切平面終止位置
Public CSolid Cut()
{
∥由剖切平面剖切三維實體
}
}
3)CSolid(工程地質三維實體類)
Public class CSolid
{
Private _Tins;∥定義三維實體的上下層面Tins
Private _Surface;∥定義三維實體的邊界面
}
4)OpenGLSense(圖形輸出類)
Public class OpenGLSense
{
Private _DrillHoles;∥定義鉆孔輸出類
Private _Solid;∥定義三維實體輸出類
Public Void Initialize()
{
∥ 初始化OpenGL
}
Public Void Render()
{
∥ 設置OpenGL場景
}
Public Void SetCameraView()
{
∥ 設置OpenGL相機位置
}
}
應用本文方法對杭州某區(qū)工程地質模型進行了三維剖切分析。研究區(qū)位于錢塘江北岸沖積區(qū),面積約為60 km2,共收集該區(qū)具有代表性的典型鉆孔46個,研究區(qū)鉆孔揭示地層屬典型第四紀沉積環(huán)境,沒有斷層、褶皺等特殊構造地質發(fā)育,共出現(xiàn)10個大層27個亞層,如下表2。以這27個互異地層的層位關系建立該區(qū)的標準地層層序表。
根據(jù)收集到的該區(qū)鉆孔數(shù)據(jù),和前文第二節(jié)所述方法構建該區(qū)工程地質三維實體模型,如圖8(a),圖中所示黑線為剖切平面在xoy平面投影,即在此位置對工程地質三維實體進行剖切。剖切過程如前文第三節(jié)所述:①定義并生成剖面類和鉆孔集類,依剖切平面位置將鉆孔集拆分為兩部分;②定在剖切平面與層面TIN相交處生成虛擬鉆孔;③將虛擬鉆孔加入拆分的兩部分鉆孔中分別構成鉆孔集;④定義并生成地質實體類和圖形輸出類,分別構建剖切后的工程地質三維實體并在OpenGL場景中輸出,如圖8(b),剖面圖如圖8(c)。
表2 研究區(qū)標準地層層序表
圖8 杭州某地區(qū)工程地質模型三維剖切分析
1)基于虛擬鉆孔的工程地質三維剖切方法計算量少,原理簡單,易于編程實現(xiàn),可以很好的滿足層狀地質結構實際應用的需要。鑒于地質現(xiàn)象的高度復雜性和多解性,該方法對地質構造活動強烈、扭曲變形嚴重的地層三維剖面效果較差,且未考慮復雜地質構造,如侵入體、透鏡體、復雜褶皺等的影響與作用,因此仍需隨著實際應用的深入而逐步完善。
2)采用面向對象程序設計思想進行工程地質三維剖切分析,其對象及類的概念接近工程實際,本文基于OOP技術,對其在工程地質三維剖切中的應用進行了探討和分析,并給出了具體實現(xiàn),可為工程地質分析提供另一條途徑。
[1] 黨曾明,胡建平.基于鉆孔數(shù)據(jù)的三維地層建模軟件的實現(xiàn)[J].天津城市建設學院學報,2008, 14(1): 60-63.
[2] Wulixin. Topological Relations Embodied in a Generalized Triprism(GTP)Model for a 3D Geosciences Modeling System[J]. Computers and Geosciences,2004, 30(4): 405-418.
[3] Gong Jianya,Cheng Penggen,Wang Yandong. Three-dimensional modeling and application in geological exploration engineering[J]. Computers and Geosciences,2004, 30(4): 391-404.
[4] 趙德君,王寶軍.任意地質圖剖面生成的方法探討[J].西部探礦工程,2005(106): 91-92.
[5] 陳俊智,侯克鵬.利用OpenGL對巖體三維模型進行切剖面方法研究[J].云南冶金,2005, 34(1): 12-15.
[6] Coad P Y E. Object-Oriented Analysis[M]. New York: Yourdon Press, 1992.
[7] 周翠英,董立國,劉祚秋,等.OpenGL三維地層切割面的實現(xiàn)技術[J].土木工程學報,2006, 39(2): 35-61.
[8] 張渭軍,王文科.基于鉆孔數(shù)據(jù)的地層三維建模與可視化研究[J].大地構造與成礦學,2006, 30(1): 108-113.
[9] 陶海冰,蔣蓓.基于鉆孔數(shù)據(jù)的柵格法模擬三維土層研究[J].杭州師范大學學報,2008, 6(7): 469-474.
[10] 明鏡,潘懋,曲紅剛,等.基于TIN數(shù)據(jù)三維地質體的折剖面切割算法[J]. 地理與地理信息科學,2008, 24(3): 37-41.
[11] 梁師俊.巖土工程勘察數(shù)字化技術與實現(xiàn)[D]. 杭州:浙江工業(yè)大學, 2006.