張 巖,聶永丹,趙建民,侯俊龍,何文杰
(東北石油大學(xué) 計(jì)算機(jī)與信息技術(shù)學(xué)院,黑龍江 大慶 163318)
雖然當(dāng)前Eclipse等主流的油藏?cái)?shù)值模擬軟件能夠?qū)崿F(xiàn)油藏可視化,但缺點(diǎn)是不能根據(jù)用戶需要讀取其他類別的勘探開(kāi)發(fā)數(shù)據(jù),因此深入研究油藏?cái)?shù)值模擬數(shù)據(jù)的精細(xì)展示,不但能直觀表達(dá)油藏儲(chǔ)量信息演變過(guò)程、迅速展示所關(guān)心區(qū)域下的油藏?cái)?shù)據(jù),而且可以擴(kuò)展加載用戶所需的額外地質(zhì)數(shù)據(jù)實(shí)現(xiàn)綜合展示。應(yīng)用計(jì)算機(jī)三維可視化技術(shù),把油氣勘探開(kāi)發(fā)中的大量地質(zhì)對(duì)象及數(shù)據(jù)和油藏?cái)?shù)值模擬結(jié)果數(shù)據(jù)以三維的方式進(jìn)行集成展示,使地質(zhì)工程師能更直觀地了解目標(biāo)區(qū)塊的各種地質(zhì)狀況和儲(chǔ)量信息,從而為石油勘探開(kāi)發(fā)提供更好的決策支持[1]。
目前應(yīng)用比較廣泛的三維圖形開(kāi)發(fā)軟件包主要有OpenGL和Open Inventor等。采用 OpenGL圖形庫(kù)進(jìn)行三維圖形開(kāi)發(fā)的特點(diǎn)是,它的函數(shù)功能復(fù)雜多樣,不易在短時(shí)間內(nèi)掌握,要想生成效果較好的三維地層需要對(duì)圖形的投影、顏色、紋理、光照等方面進(jìn)行繁瑣設(shè)置,編碼量大。Open Inventor是目前世界上使用最廣泛的面向?qū)ο蟮睦L圖軟件接口,允許用戶通過(guò)搭積木的方式構(gòu)建復(fù)雜的三維場(chǎng)景,使得用戶只需花費(fèi)很少的時(shí)間就可以構(gòu)造出復(fù)雜的三維場(chǎng)景[2]。因此使用 Open Inventor三維可視化技術(shù),可以快速、簡(jiǎn)捷地生成三維地層模型,再結(jié)合多種交互和查詢手段,讓地質(zhì)研究人員和決策人員直觀掌握地層及儲(chǔ)量信息。
當(dāng)前國(guó)內(nèi)外主流的油藏?cái)?shù)模軟件是斯倫貝謝公司的Eclipse,模型中包括的網(wǎng)格數(shù)據(jù)和屬性數(shù)據(jù)采用的數(shù)據(jù)格式主要是一種柱狀(pillar)模型,如圖1所示,其組織方式是一種點(diǎn)線結(jié)構(gòu):模型中i,j坐標(biāo)相同且處于不同位置處所有網(wǎng)格同一方位的棱邊位于一條直線上,其中100網(wǎng)格的“100-101”棱邊和101網(wǎng)格的“100-101”棱邊在三維空間內(nèi)共線[3]。
由數(shù)據(jù)體中給出的(nx+1)(ny+1)個(gè)頂?shù)c(diǎn)三維坐標(biāo)對(duì),構(gòu)成(nx+1)(ny+1)個(gè)柱狀結(jié)構(gòu),共同組成目標(biāo)油藏的柱狀模型。根據(jù)當(dāng)前網(wǎng)格的i、j編號(hào),可以計(jì)算出該網(wǎng)格棱邊所在線段頂?shù)c(diǎn)坐標(biāo)序號(hào)。利用Eclipse軟件輸出每個(gè)網(wǎng)格8個(gè)角點(diǎn)的z坐標(biāo),根據(jù)目標(biāo)網(wǎng)格 i、j、k編號(hào),可以計(jì)算出該網(wǎng)格角點(diǎn)z坐標(biāo)的序號(hào)。根據(jù)目標(biāo)網(wǎng)格某一方位棱邊所在線段頂?shù)c(diǎn)的三維坐標(biāo)和該棱邊某角點(diǎn)的z坐標(biāo),就可以計(jì)算出該角點(diǎn)的三維坐標(biāo)。于是可以求解出每個(gè)網(wǎng)格所有角點(diǎn)坐標(biāo)。按照i、j、k的順序輸出網(wǎng)格的屬性值和有效性數(shù)據(jù)。根據(jù)網(wǎng)格i、j、k編號(hào),可以獲取當(dāng)前網(wǎng)格所對(duì)應(yīng)屬性數(shù)據(jù)以及有效性數(shù)據(jù)的索引值。
油藏?cái)?shù)值模擬模型數(shù)據(jù)可分為文本格式和二進(jìn)制格式2大類,文本格式的文件,其格式易于解析,二進(jìn)制格式的文件不利于閱讀,但計(jì)算機(jī)讀寫速度快,占用更少的存儲(chǔ)空間。所以需要對(duì)2種格式的文件都進(jìn)行分析,在程序調(diào)試階段使用文本格式文件比較方便,在示范應(yīng)用時(shí)使用二進(jìn)制格式,以得到真正的數(shù)模標(biāo)準(zhǔn)數(shù)據(jù)和更好的運(yùn)行性能。
1.2.1 GRDECL 文本文件格式解析
油藏?cái)?shù)值模擬主要利用Petrel建模軟件建立的靜態(tài)模型,其地層模型文件是保存在*.grdecl的三維場(chǎng)數(shù)據(jù),其中包括網(wǎng)格定義和每個(gè)網(wǎng)格的屬性值。*.grdecl文件主要分為文件基本信息、文件內(nèi)容格式信息以及文件數(shù)據(jù)等。文件數(shù)據(jù)分為地質(zhì)體頂?shù)鬃鴺?biāo)、各單元格結(jié)點(diǎn)的深度Z值、單元格有效信息和各單元格屬性值(通常可能包含孔隙度、厚度凈毛比以及三個(gè)方向的滲透率等靜態(tài)屬性信息)。
1.2.2 二進(jìn)制文件格式解析
油藏?cái)?shù)值模擬模型二進(jìn)制格式文件可以在E-clipse軟件中使用關(guān)鍵字進(jìn)行定制輸出,輸出文件一般包括以下三個(gè)文件:
(1)*.GRID文件(*.EGRID文件):存儲(chǔ)網(wǎng)格的相關(guān)信息。
(2)*.INIT文件:屬性文件,存儲(chǔ)孔隙度、不同方向的滲透率以及NTG等靜態(tài)屬性。
(3)*.UNRST文件(*.X0000):重啟文件。記錄各種動(dòng)態(tài)屬性結(jié)果,如:含油飽和度、壓力等數(shù)據(jù)。其中,*.UNRST文件中包含所有時(shí)間步的屬性信息,而*.X0000文件可以分時(shí)間步進(jìn)行輸出,一個(gè)文件僅僅存儲(chǔ)一個(gè)時(shí)間步的屬性數(shù)據(jù)。
Eclipse的二進(jìn)制文件由許多個(gè)塊組成,每個(gè)塊由1個(gè)關(guān)鍵字塊和0~n個(gè)數(shù)據(jù)塊組成,文件存儲(chǔ)格式是通過(guò)巴恩斯范式實(shí)現(xiàn)[4]。
除了常用數(shù)模軟件輸出的標(biāo)準(zhǔn)結(jié)果數(shù)據(jù)外,根據(jù)用戶不同的業(yè)務(wù)需求,實(shí)際應(yīng)用中還可能用到某些特定結(jié)構(gòu)的數(shù)據(jù)。為了提高擴(kuò)展性,降低模塊之間耦合度,采用面向?qū)ο蟮脑O(shè)計(jì)思想,將每一類用戶數(shù)據(jù)的文件格式解析和展示交互分別封裝成一個(gè)類,來(lái)解析和展示此類文件數(shù)據(jù),最后整合在一個(gè)三維可視化框架中,提供油藏的綜合展示,總體框架設(shè)計(jì)思路如圖2所示。
圖2 總體結(jié)構(gòu)設(shè)計(jì)思路
針對(duì)油藏?cái)?shù)值模擬數(shù)據(jù)模型是由許多個(gè)不規(guī)則六面體構(gòu)成角點(diǎn)網(wǎng)格的特點(diǎn),本文采用Open Inventor中MeshViz XLM模塊實(shí)現(xiàn)三維體數(shù)據(jù)的展示。角點(diǎn)網(wǎng)格拓?fù)潢P(guān)系由MbHexahedron TopologyExplicitIjk類型對(duì)象進(jìn)行組織,MiGeometryI類型對(duì)象存儲(chǔ)和管理網(wǎng)格幾何信息。建立的網(wǎng)格模型由MoMesh類型對(duì)象存儲(chǔ)并在場(chǎng)景中顯示,其中包括地層數(shù)據(jù)屬性信息的表達(dá),模型屬性數(shù)據(jù)存儲(chǔ)在MoScalarSetIJK類型的對(duì)象中,按照Mo-DataBinding類型指定的方式進(jìn)行材質(zhì)的綁定,再由MoLinearColorMapping類型對(duì)象進(jìn)行渲染。Open Inventor中對(duì)網(wǎng)格進(jìn)行材質(zhì)綁定有兩種方式,PER_CELL和PER_NODE,本文選用前者將屬性值綁定到網(wǎng)格進(jìn)行渲染,因?yàn)榈貙幽P偷膶傩孕畔⑹前疵總€(gè)網(wǎng)格給定的,三維場(chǎng)景的結(jié)構(gòu)圖如圖3所示。對(duì)地層模型按某種屬性類別進(jìn)行的顯示是可選擇的,用戶可以通過(guò)點(diǎn)擊窗口下方的checkbox控件選擇加載選項(xiàng),利用slider控件可以控制顯示的層位或數(shù)值界限,通過(guò)交互用戶可以查看任意單元的各屬性值以便于實(shí)時(shí)查看某油田某區(qū)塊中的數(shù)值模擬結(jié)果。數(shù)據(jù)中含水飽和度參數(shù)描述了區(qū)塊模型中各個(gè)網(wǎng)格數(shù)據(jù)塊含水所占的比重情況,是一個(gè)比較關(guān)鍵的參數(shù),本文以含水飽和度參數(shù)為例來(lái)說(shuō)明模型三維展示情況。通過(guò)顏色映射的程度就可以查看含水的程度,數(shù)模參數(shù)含水飽和度展示結(jié)果如圖4所示。其中顏色為紅色的網(wǎng)格說(shuō)明含水程度比較高,反之顏色為藍(lán)色的網(wǎng)格說(shuō)明含水程度比較低,可以推知含油程度較高。
圖3 三維場(chǎng)景結(jié)構(gòu)
圖4 含水飽和度三維展示
當(dāng)目標(biāo)油藏范圍較大時(shí),行業(yè)專家可能會(huì)更加關(guān)注其中部分區(qū)塊或者特定屬性范圍內(nèi)的網(wǎng)格分布情況。為此,設(shè)計(jì)一種數(shù)據(jù)體ROI區(qū)域設(shè)置和切片展示方案。根據(jù)目標(biāo)區(qū)塊在I、J、K方向上的起始和終止坐標(biāo)設(shè)定所關(guān)心的屬性區(qū)間,將Mi-Hexahedron Topology ExplicitIjk中相應(yīng)區(qū)域的設(shè)置為有效區(qū)域,其他區(qū)域設(shè)置為無(wú)效。ROI區(qū)域選擇和切片設(shè)置使用MoCellFilter類型對(duì)象設(shè)定,使用MoCellFilter對(duì)象前要先用setCellFilter函數(shù)指定MiCellFilterIjk類型對(duì)象的參數(shù),該對(duì)象必須實(shí)現(xiàn)acceptCell接口以用來(lái)設(shè)置感興趣區(qū)域過(guò)濾條件,將不在目標(biāo)區(qū)塊范圍內(nèi)的網(wǎng)格設(shè)定為無(wú)效網(wǎng)格,屬性不在所關(guān)心區(qū)間內(nèi)的網(wǎng)格設(shè)定為無(wú)效網(wǎng)格[5]。用戶通過(guò)窗口下方的“ROI數(shù)據(jù)區(qū)域選擇”選項(xiàng)卡面板,選擇“啟用ROI”選項(xiàng),然后選擇沿x軸方向10層到70層,沿y軸方向10層到70層,沿z軸方向10層到15層,數(shù)據(jù)值范圍在0.1到0.9之間的區(qū)域展示,如圖5所示。
圖5 ROI展示
將油藏體中網(wǎng)格數(shù)據(jù)根據(jù)坐標(biāo)條件和數(shù)據(jù)值范圍設(shè)定感興趣區(qū)域,消隱所有坐標(biāo)和數(shù)據(jù)范圍不符合條件的無(wú)效網(wǎng)格后,屏幕上展示的區(qū)塊即為感興趣區(qū)塊,感興趣區(qū)域設(shè)置關(guān)鍵代碼如下:
在實(shí)現(xiàn)acceptCell接口時(shí),通過(guò) x、y、z坐標(biāo)來(lái)限制過(guò)濾條件,將不在目標(biāo)坐標(biāo)層范圍的網(wǎng)格設(shè)定為無(wú)效網(wǎng)格,即可實(shí)現(xiàn)沿3個(gè)方向的切片功能,關(guān)鍵代碼如下。
SoClipPlaneManip操縱器可以用來(lái)實(shí)現(xiàn)數(shù)據(jù)體的簡(jiǎn)單切片交互操作,SoClipPlaneManip利用其內(nèi)部的SoJackDragger拖拽器來(lái)移動(dòng)切片,SoClip-PlaneManip從SoClipPlane類派生,具有一般操縱器的功能,其本身的數(shù)據(jù)成員和繼承的拖拽器可以一致工作。利用SoClipPlaneManip節(jié)點(diǎn)實(shí)現(xiàn)沿坐標(biāo)軸方向的旋轉(zhuǎn)任意角度的切片功能。
用戶通過(guò)窗口下方的“模型體瀏覽”選項(xiàng)卡面板,設(shè)置沿x軸方向第30層,沿y軸方向第29層,沿z軸方向第8層,和沿z軸方向旋轉(zhuǎn)35度角的切片展示,如圖6所示。
圖6 切片展示
為有效區(qū)分不同網(wǎng)格的動(dòng)靜態(tài)參數(shù)屬性,需要根據(jù)某種屬性的數(shù)值范圍動(dòng)態(tài)映射顏色值,實(shí)現(xiàn)的方法可以采用系統(tǒng)預(yù)定義的映射方式和用戶自定義的方式兩種,前者是將每個(gè)屬性值映射到預(yù)定義的PredefColorMapping類型映射方式,這種方式的特點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,無(wú)需用戶干預(yù)[6]。但缺點(diǎn)是在某些情況下屬性的顏色值分布的不靈活,用戶修改顏色分布情況難度大。例如,對(duì)于含水飽和度的網(wǎng)格顏色的表達(dá)與其他參數(shù)有所不同,含水飽和度越高表示其含油越少,反之含油越多,此時(shí)若采用紅色代表含水飽和度大的話與標(biāo)準(zhǔn)數(shù)值模擬軟件習(xí)慣不一致,而且石油行業(yè)上也通常使用紅色來(lái)表示含油高的網(wǎng)格,因此為實(shí)現(xiàn)用戶可以自定義不同的顏色映射模式,設(shè)置數(shù)據(jù)體某些屬性的顏色表示方式,通過(guò)顏色圖例給用戶以直觀的屬性表達(dá),以及根據(jù)參數(shù)屬性的含義能夠自動(dòng)變換顏色分布,以滿足用戶使用習(xí)慣,采用MoLinearColorMapping映射方式,實(shí)現(xiàn)了一種用戶自定義的圖例范圍及映射方式的動(dòng)態(tài)設(shè)定。在mylegend類中提供一個(gè)供外部模塊調(diào)用的public方法setmapvalue,該方法通過(guò)傳入數(shù)據(jù)范圍參數(shù)min,max來(lái)動(dòng)態(tài)改變數(shù)據(jù)映射范圍,通過(guò)參數(shù)order來(lái)判斷用戶的數(shù)據(jù)映射方式是順序還是倒序,以此改變映射方式。
用戶通過(guò)窗口下方的“模型體瀏覽”選項(xiàng)卡面板,選擇“圖例反轉(zhuǎn)”選項(xiàng),然后設(shè)置“最大值”為0.900,“最小值”為 0.100,可將含水飽和度參數(shù)數(shù)值從0.1到0.9,對(duì)應(yīng)顏色映射從紅到藍(lán)對(duì)應(yīng)的色譜展示,如圖7所示,因此圖中紅色的網(wǎng)格表示含油程度高,藍(lán)色的網(wǎng)格表示含水程度高,符合數(shù)模領(lǐng)域的使用習(xí)慣。
圖7 自定義色譜展示
本文對(duì)國(guó)內(nèi)外常用的數(shù)模軟件輸出文件格式進(jìn)行解析,結(jié)合油田勘探開(kāi)發(fā)其他地質(zhì)數(shù)據(jù),研究油藏體的三維綜合展示與技術(shù),可以實(shí)現(xiàn)油藏體展示,感興趣區(qū)域設(shè)置,體切片,色譜自定義等交互式功能。為實(shí)現(xiàn)三維資料綜合解釋、地質(zhì)過(guò)程的仿真模擬可視化奠定基礎(chǔ)。
[1]明光春.油藏?cái)?shù)值模擬結(jié)果的三維圖形顯示[J].計(jì)算機(jī)工程與應(yīng)用,1999,4:121 -123.
[2]閻鋒欣,候增選,張定華,等.Open Inventor程序設(shè)計(jì)從入門到精通[M].北京:清華大學(xué)出版社,2007.
[3]白永良,劉展,魏合龍,等.基于Open Inventor油藏四維展示方法研究[J].西安石油大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,12(1):94 -98.
[4]申龍斌.油田勘探開(kāi)發(fā)地質(zhì)對(duì)象三維可視化關(guān)鍵技術(shù)研究[D].青島:中國(guó)海洋大學(xué),2010.
[5]田宜平,沈建業(yè).三峽庫(kù)區(qū)地質(zhì)災(zāi)害體三維地層可視化實(shí)現(xiàn)[J].人民長(zhǎng)江,2011,42(5):26 -29.
[6]Guide.Mercury Computer System Inc.Open Inventor6 User’s[Z].