安聰榮,劉 展,王心眾
中國石油大學(華東)地球科學與技術學院,山東青島266555
以地震解釋得到的地質界面(如地層界面、斷層面等)數據為基礎,采用一定的曲面重建算法,在三維空間中可得到拓撲一致的層面模型[1-2],這是地質構造建模的基本成果,但此時的模型是沒有描述塊體結構的地質模型,無法在其基礎上進行實體(屬性)建模[3-4],這在一定程度成為導致目前油氣藏構造模型和屬性模型之間難以融合的重要原因之一。
因此,鑒于地質塊體結構模型的提取在地質體建模中的重要地位,許多研究者對此進行了深入地研究。文獻[5]于1988年提出一種用塊體生成語言(block generation language,BGL)來完成地質塊體識別的方法,這種方法對簡單體的識別非常適合,而對于地質建模中經常遇到的復雜地質體的識別能力有限。之后,文獻[6]通過引入拓撲的概念實現地質塊體識別。文獻[7]提出基于層面結構的地質塊體構建方法,該方法采用一種改進的半邊數據結構,然后依據三角形間的拓撲關系構建地質塊體,由于需要遍歷層面模型中的所有三角形,因此在地層三角形數量極大時,方法的效率不高。文獻[4]是基于簡化面片的閉合塊體構造方法,由于在簡化后的層面模型包含全局的拓撲信息,因此該方法無需遍歷層面模型中所有的三角形,就能實現地質塊體的識別與提取,極大提高算法的運行效率,但該方法并沒有直接建立地質塊體的拓撲信息。文獻[8]利用上下地層中三角網的重疊次數分離不同類型的子面,然后依此建立子面與地質塊體之間的對應關系,這種方法同樣沒有直接建立和保存地質塊體的拓撲信息。由此可見,目前地質塊體結構的構建方法在算法效率提高方面取得較大進展,然而卻對地質塊體與面片之間以及地質塊體與地質塊體之間拓撲關系自動建立的研究存在明顯的不足,從而在一定程度上限定三維地質體拓撲查詢和分析。
為此,本文提出一種地質塊體拓撲關系自動構建技術,其核心是建立地質塊體與地質面片之間組合關系,并間接表達地質塊體之間的鄰接關系。為了提高算法的效率,引入方向邊和方向三角形的概念以簡化層面模型,使得算法在運算中無需遍歷層面模型的所有三角形,就能實現地質塊體拓撲關系的自動構建。
地層面上廣泛分布的斷層線、地層相交線與曲面的邊界(外邊界、內邊界)共同作用,可將地層面劃分成若干個相鄰的區(qū)域,這些區(qū)域即為面片。在當前的許多地質數據模型中都將面片作為模型構建元素之一,如3DFDS(formal data structure)模型[9-10]、矢量與柵格集成的三維空間數據模型[11-13]等。在這些模型中,面片一般都為曲面片,由邊界和以不規(guī)則三角網(irregular triangle net,TIN)表示的內部區(qū)域兩部分構成,其內的每個三角形都只能被兩個不同的地層閉合體所共享。在實際的地質建模中所涉及的面片主要有斷層面片、地層面片和邊界面片,其邊界也可能由斷層線、地層相交線、研究區(qū)邊界線等閉合而構成。面片可以將復雜體分割為左右兩個部分,即正體(位于面片正法向量方向一側的閉合體)和負體(位于面片負法向量方向一側的閉合體)。
面片的構建主要分為兩個步驟進行:
(1)面片邊界的確定。正確建立面片邊界不僅是確定地層面邊界位置的需要,也是正確構建面片之間拓撲關系的需要。在實際建模時,如何從大量弧段中(主要為斷層線、地層相交線、邊界線等)中提取面片閉合邊界,是構建地質面片面臨的首要問題。通常采用的方法有兩種:一是人工構建,二是自動構建。前者顯然已不能滿足復雜地質建模的時代要求,后者的難點在于邊界弧段與地質面片拓撲關系的自動建立,可以采用2D GIS中多邊形拓撲關系自動構建技術來實現地層面片邊界弧段的自動成區(qū)[14]。
(2)面片內部區(qū)域的構建。不同類型的面片所采用的技術也是不同的,如地層面片、斷層面片構建常用的方法是將上述步驟(1)所提取的面片邊界線作為約束線,利用限定Delaunay算法實現它的構建[15],這樣可以確保邊界線在其中的存在性,而地層邊界面片則可以采用文獻[16]提出的相鄰輪廓線同步前進法來實現。
導入地質層面模型,提取所有地質面片,并對其進行預處理,然后依據3DFDS模型、矢量與柵格集成模型等的原理,對面片設置正體和負體字段,并從任意面片開始,按照一定的遍歷規(guī)則建立所有面片的正體和負體,從而實現地質塊體拓撲關系的自動構建。
為了描述算法原理的方便,引入以下概念。懸掛面片:正體和負體是同一個體的面片,類似二維空間中的懸掛弧段。
面片排序表:算法運行中的一個變量,記錄邊界弧段ID和共享該邊界弧段并且按照右手法則排序的地質面片集。
活動面片集:是算法運行中的一個變量,命名為PS,記錄激活面片的ID和標記,在算法運行起初是空集。
邊界弧段的重度:指共享邊界弧段的面片個數,是算法運行中的一個變量,利用邊界弧段的重度可以判斷一個面片是否為懸掛面片。
方向邊:邊界弧段上的一條矢量線段,僅有一個起點和一個終點,沒有中間點。
方向三角形:在層面數據的三角形集中共享方向邊的三角形。方向三角形的頂點中有兩個是方向邊的端點,而第3個是來自各個不同的面片,因此,方向三角形隱含著層面數據中面片的拓撲信息。
3.3.1 懸掛面片的消除
懸掛面片往往處于一個最小閉合體內部,但又不是這個閉合體的內邊界,它是懸掛于這個閉合體內。它的存在會破壞地質塊體拓撲關系的自動建立,對于懸掛面片的處理有兩種策略,一是預先除去模型內的所有懸掛面片,另一是在閉合體構造過程中除去懸掛面片。本文選擇第1種策略,遍歷所有面片,求出每條邊界弧段的重度,凡是含有重度為1的邊界弧段的面片都認為是懸掛面片,給予刪除。
3.3.2 共享邊界弧段面片的排序
面片排序表用于記錄邊界弧段與共享每一個邊界弧段面片,并且按照右手法則對面片進行排序。但是由于邊界弧段是復雜的折線,直接利用邊界弧段和共享邊界弧段的面片來判斷面片的順序關系變得異常復雜。為了簡化算法設計的難度,采用方向邊和方向三角形的概念。
如圖1所示,假設V1V2是邊界弧段L中的一線段(起點為V1,終點為V2),三角形a、b、c分別來自各面片且共享線段V1V2,則稱線段V1V2為方向邊,三角形a、b、c為方向三角形,利用右手法則可以得到方向三角形的排序,從而得到共享邊界線L的所有面片排序。
圖1 方向邊和方向三角形Fig.1 Direction-edge and direction-triangle
按照上述思路,在算法運行前,對每條邊界弧段,提取方向邊和方向三角形,對共享該邊的面片進行排序,排序后的結果保存在面片排序表中,值得一提的是,該排序是循環(huán)排序。
3.3.3 面片邊界弧段方向一致性處理
由于面片生成時,邊界是由若干個邊界弧段相連構成的閉合線,各個邊界弧段的方向可能出現不一致情況,導致無法定義一個面片的正體和負體屬性。因此在算法運行前,需要通過遍歷面片邊界組成弧段,調整首尾節(jié)點以及中間點的ID順序,并保存處理結果。
算法輸入:輸入層面模型的邊界弧段和經預處理后的面片集。
算法輸出:輸出每個面片的正體和負體。
具體步驟如下:
(1)得到第1面片A,并設置為當前面片,轉到步驟(2)。
(2)判斷面片A的正體和負體是否為空,如果都非空,轉到步驟(1)。當所有面片處理完畢后,算法結束。若正體為空,轉到步驟(3)。若負體為空,轉到步驟(4)。
(3)創(chuàng)建一個新的正體B,轉到步驟(5)。
(4)創(chuàng)建一個新的負體B,轉到步驟(5)。
(5)將面片A加入到PS中,并標記面片A,轉到步驟(6)。
(6)獲取面片A的一條未標記的邊界弧段,命名為L,并作標記,轉到步驟(7)。
(7)判斷B是面片A的正體還是負體,如果是正體轉到步驟(8),如果是負體轉到步驟(10)。
(8)檢查L的方向是否和方向邊的方向一致,如果一致,選擇面片A之后的下一個面片A′作為擴展面片;如果不一致,選擇面片A之前的面片A′作為擴展面片,判斷面片A′在PS中是否存在。如果不存在,則加入到其中,并轉到步驟(9);如果存在,轉到步驟(12)。
(9)判斷邊界弧段L的起點和終點的前后順序是否和面片A′的一致,如果一致,將B設置為面片A′的負體,如果否,設置為面片A′的正體,轉到步驟(12)。
(10)檢查L的方向是否和方向邊的方向一致,如果一致,選擇面片A之前的面片A′作為擴展面片;如果不一致,選擇面片A之后下一個面片A′作為擴展面片,然后判斷面片A′在PS中是否存在。如果否,則加入到其中,并轉到步驟(11);如果存在,轉到步驟(12)。
(11)判斷邊界弧段L的起點和終點的前后順序是否和面片A′一致,如果一致,將B設置為面片A′的正體;如果否,設置為面片A′的負體,轉到步驟(12)。
(12)判斷面片A的邊界弧段是否都已標記過,如果是,轉到步驟(13);如果否,轉到步驟(6)。
(13)判斷PS中所有面片是否標記過,如果是,清空PS中的所有記錄并轉到步驟(1);如果否,選擇一個沒有標記的面片作為當前面片A,轉到步驟(5)。
struct thirdverd ∥方向三角形
試驗采用的數據是基于鉆井數據構建的層面數據和利用相鄰輪廓線同步前進法得到的地層邊界面數據,這些數據以三角網格的形式存放。
利用C#語言,筆者實現了本文所提出的方法,并對其進行測試。在試驗中,使用某地質區(qū)域的層面數據(共8層,包括1個地表面和7個地下層面數據)以及邊界面數據,共有36個地質面片(如圖2所示)。從表1可以看出,三角形數量達19 554的層面模型數據,在引入方向三角形后,在內存中僅保存142個三角形(即方向三角形,包含有全局拓撲信息),三角形的數量大幅度減少,極大提高了算法的運行效率(本算例的運行時間為256ms)。圖2是算法運行前的輸入數據,圖3是根據算法運行后所得的地質塊體與面片拓撲信息而建立的地質塊體結構模型。結果表明,該算法運行高效、準確。
表1 試驗數據預處理結果Tab.1 Results of pre-processing experimental data
圖2 層面模型數據Fig.2 Experimental data of stratified geological structure
圖3 算法運行后的三維塊體模型Fig.3 3DGeological blocks model after running algorithm
通過以上研究以及試驗證明,算法設計合理,結果可靠、準確,并得出以下幾點結論:
(1)本文提出的地質塊體模型構建方法的核心是構建地質面片的正體和負體屬性,該方法不僅建立地質塊體與其組成面片的拓撲關系,同時也間接建立地質塊體與地質塊體之間的拓撲信息,有效彌補當前地質塊體模型構建過程中未能就地質體拓撲關系信息進行建立的不足。
(2)該算法同時也兼顧了效率問題,引入方向邊和方向三角形的概念,簡化地質層面數據模型,使得算法無需遍歷所有三角形,就能完成地質面片正體與負體屬性的計算。
(3)當前的許多地質數據模型中都將面片作為模型構建元素之一,在建模過程都面臨著地質體與面片拓撲關系的自動構建,因此,該算法在這些模型的構建過程具有重要意義。
[1] XIONG Zuqiang,HE Huaijian,XIA Yanhua.Study on Technology of 3DStratum Modeling and Visualization Based on TIN[J].Rock and Soil Mechanics,2007,28(9):1954-1958.(熊祖強,賀懷建,夏艷華.基于TIN的三維地層建模及可視化技術研究[J].巖土力學,2007,28(9):1954-1958.)
[2] WANG Chunxiang,BAI Shiwei,HE Huaijian.Study on Geological Modeling in 3DStratum Visualization[J].Chinese Journal of Rock Mechanics and Engineering,2003,22(10):1722-1726.(王純祥,白世偉,賀懷建.三維地層可視化中地質建模研究[J].巖石力學與工程學報,2003,22(10):1722-1726.)
[3] WEI Jia,TANG Jie,YUE Chengqi,et al.Study of 3D Geological Structure Model Building[J].Geophysical Prospecting for Petroleum,2008,47(4):319-327.(魏嘉,唐杰,岳承祺,等.三維地質構造建模技術研究[J].石油物探,2008,47(4):319-327.)
[4] ZHU Lian,TANG Jie,YUAN Chunfeng.Construction of Coherent Structure from 3DGeological Model[J].Journal of Image and Graphics,2009,14(12):2582-2587.(朱煉,唐杰,袁春風.3維地質體模型中閉合結構的提取[J].中國圖象圖形學報,2009,14(12):2582-2587.)
[5] HELIOT D.Generating a Blocky Rock Mass[J].International Journal of Rock Mechanics and Mining Science and Geomech Abstracts,1988,25(3):127-138.
[6] JING L,STEPHANSSON O.Topological Identification of Blocky Assemblages for Jointed Rock Masses[J].International Journal of Rock Mechanics and Mining Science and Geomechanics Abstracts,1994,31(2):163-172.
[7] MENG Xianhai,YANG Qin,LI Jigang.Construction of Coherent 3DGeological Blocks from Stratified Geological Structure[J].Journal of Beijing University of Aeronautics and Astronautic,2005,31(2):182-186.(孟憲海,楊欽,李吉剛.基于層面結構的三維閉合地質區(qū)塊構造算法[J].北京航空航天大學學報,2005,31(2):182-186.)
[8] LI Yuanheng,CHEN Guoliang,LIU Xiuguo,et al.The Topology-oriented Method of Building 3DGeological Block Model Based on Primary TIN[J].Rock and Soil Mechanics,2010,31(6):1902-1906.(李元亨,陳國良,劉修國,等.主TIN模式下面向拓撲的三維地質塊體構建方法[J].巖土力學,2010,31(6):1902-1906.)
[9] MOLENAAR M.A Formal Data Structure for Three Dimensional Vector Maps[C]∥Proceedings of 4th International Symposium on Spatial Data Handling.Zurich:[s.n.],1990:830-843.
[10] MOLENAAR M.A Topology for 3DVector Maps[J].ITC International Technology Communication Journal,1992,1:25-33.
[11] LI Qingquan,LI Deren.Research on the Conceptual Frame of the Integration of 3DSpatial Datamodel[J].Acta Geodaetica et Cartographica Sinica,1998,27(4):325-330.(李清泉,李德仁.三維空間數據模型集成的概念框架研究[J].測繪學報,1998,27(4):325-330.)
[12] CHENG Penggen,GONG Jianya.Design of Threedimensional Spatial Data Model and Its Data Structure in Geological Exploration Engineering[J].Acta Geodaetica et Cartographica Sinica,2001,30(1):74-81.(程朋根,龔健雅.地勘工程3維空間數據模型及其數據結構設計[J].測繪學報,2001,30(1):74-81.)
[13] GONG Jianya,XIA Zongguo.An Integrated Data Model in Three Dimensional GIS[J].Journal of Wuhan Technical University of Surveying and Mapping,1997,22(1):7-15.(龔健雅,夏宗國.矢量與柵格集成的三維數據模型[J].武漢測繪科技大學學報,1997,22(1):7-15.)
[14] QI Hua.The Optimization and Improvement for the Algorithm Steps on the Automatic Creation of Topological Relation of Polygons[J].Acta Geodaetica et Cartographica Sinica,1997,26(3):254-260.(齊華.自動建立多邊形拓撲關系算法步驟的優(yōu)化與改進[J].測繪學報,1997,26(3):254-260.)
[15] SLOAN S W.A Fast Algorithm for Constructing Delaunay Triangulations in the Plane[J].Advances in Engineering Soft Ware,1987,9(1):34-55.
[16] GANAPATHY S,DENEHY T G.A New General Triangulation Method for Planar Contours[J].Computer Graphics,1982,16(3):69-75.