張軍華,黃廣譚,劉培金,劉 磊,班 麗
(1.中國石油大學(華東)地球科學與技術學院,青島 266580;2.勝利油田地質科學研究院,東營 257015)
灘壩砂地震精細解釋軟件開發及實現
張軍華1,黃廣譚1,劉培金1,劉 磊2,班 麗2
(1.中國石油大學(華東)地球科學與技術學院,青島 266580;2.勝利油田地質科學研究院,東營 257015)
灘壩砂儲層埋藏深,單個儲層較薄(壩砂大多幾米厚,而灘砂多在2 m以下),橫向變化大,地震反射弱,很難用常規軟件進行精細描述與預測。這里在研究灘壩砂精細解釋方法基礎上,使用C#語言,在基于.NET的Visual Studio2010平臺上,開發出一套用于灘壩砂精細解釋的軟件(Seis_BBS:Beach-Bar Sandstone)。Seis_BBS具有以下特點:①軟件集灘壩砂特征分析、正演模擬、目標處理、精細描述于一體,具有很強的實用性;②軟件中采用了三參數小波薄互層檢測、古地貌與地震屬性融合、多子波消除強屏蔽效應、基于HHT的目標處理等多項灘壩砂解釋新方法、新技術,彌補了商業軟件在這方面的不足;③模塊由C#語言開發,具有很好的移植性,可擴展性高,可以隨時將后續新的解釋方法添加到軟件中。
C#語言;軟件開發;灘壩砂;地震精細解釋
隨著油田勘探開發程度的不斷加大,薄互層的研究越來越受到重視。在勝利油田,作為薄互層油氣藏的一種重要類型即灘壩砂油氣藏,近年來取得了可喜的成果,成為新增儲量和產量的重要來源。此類油氣藏埋藏深(多在3 000 m以下),儲層薄(壩砂大多幾米厚,灘砂多在2 m以下,而且以薄互層為主),儲層非均質性強、橫向變化大,頂面還覆蓋一強蓋層,儲層地震反射呈弱信號,常規方法和商用軟件很難進行有針對性的目標處理和精細解釋。因此,根據實際需要,結合國家油氣重大專項研究成果,開發出一套具有自主知識產權的灘壩砂地震精細解釋軟件,具有客觀的必要性。
本研究基于.NET平臺,使用C#語言研發了Seis_BBS灘壩砂專用解釋軟件。內容包括輸入輸出、特征分析、正演模擬、目標處理、精細描述、顯示、幫助等功能。由于采用了三參數小波薄互層檢測、古地貌與地震屬性融合、多子波消除強屏蔽效應、基于H HT(Hilbert-Huang Transform)的目標處理等多項新方法、新技術,彌補了商業軟件在這方面的不足。方法、軟件已應用于油田多個區塊,取得了較好的應用效果,進一步豐富了灘壩砂解釋的理論與實踐。軟件采用C#開發,具有較好的移植性,也適合于灘壩砂以外其他薄互層油氣藏的精細解釋。
Seis_BBS以.NET為編譯環境和運行平臺,它由Microsoft公司于2000年6月發布,被譽為下一代網絡計劃。.NET是一個革命性的新平臺,它構建于開放的Internet協議和標準之上,并提供工具和服務,以新的方式整合計算和通信。
程序的開發環境基于.NET Framework 4.0的Visual Studio2010,Visual Studio是目前最流行的Windows平臺應用程序開發環境。Visual Studio 2010具有以下特性[1]:①支持C#4.0中的動態類型和動態編程;②多顯示器功能;③使用Visual Studio 2010的特性支持TDD;④支持Office;⑤Quick Search特性;⑥C++0x新特性;⑦IDE增強;⑧使用Visual C++2010創建Ribbon界面;⑨新增基于.NET平臺的語言F#。
編程語言使用的是C#語言[2]。.NET是一個支持軟件開發與使用的平臺,它允許用完全不同的語言開發控制臺應用程序、Windows應用程序、Web應用程序和Web服務等。還有一點,C#語言由C語言和C++語言派生而來,但使用比C++語言方便容易。C#語言的現代化設計能夠消除很多常見的C++語言編程錯誤。例如:①資源回收減輕了程序員內存管理的負擔;②C#語言中變量由環境自動初始化;③變量是類型安全的。
2.1 軟件基本架構及功能
基于不同的操作目的以及軟件擴展性,軟件分六大模塊,圖1展示了軟件的主界面,分為文件系統、特征分析、正演模擬、顯示系統、目標處理和精細描述六個不同模塊單元。

圖1 軟件主界面Fig.1 The main interface of the software
文件系統主要進行數據的輸入輸出、大數據的切割與合并、格式轉換、沿層數據的抽取、格式文件查看;特征分析主要是包括時頻分析、各種特色屬性以及一些常規屬性;正演模擬可以進行薄互層正演,更好地研究地震響應特征;顯示系統可以對二維或三維的二進制以及Segy文件進行顯示,方式包括主測線、聯絡線、切片,并可加載井位、拾取圖像坐標等;目標處理主要包括三參數小波,H HT變換,最佳匹配追蹤,90°相移子波和多子波變換,對地震數據進行目的層的處理;精細描述包括譜特征分析、調諧體、目標體鑲嵌、多信息融合和地層切片。模塊結構圖如圖2所示。

圖2 軟件模塊結構圖Fig.2 The modular structure chart of the software
2.2 軟件模塊化設計思路及實現舉例
軟件開發遵循模塊化設計思想(圖3),下面以其中的多子波變換模塊為例,展示界面開發流程。

圖3 界面開發實現流程圖Fig.3 The flow chart of interface development
2.2.1 方法研究及參數測試
用單一子波來研究灘壩砂薄互層儲層存在著很大局限,因為地震子波會出現主頻、相位等參數的變化,還會有子波復合的情況。為此,我們將多子波變換(Multi-Wavelet Transform)[3]技術應用到灘壩砂薄互層檢測中,以突出儲層信息,提高儲層預測精度。子波構成的特征值方程為:

[fmin,fmax]為儲層的頻帶范圍,fc為中心頻率,求解方程,使用方程相關特征值接近于1的特征向量作為求取的子波。參數設計時,地震數據需要道數和采樣點數2個參數,多子波變換需要子波主頻、采樣間隔、頻帶長度和子波長度4個參數。
2.2.2 界面設計
界面設計采用.NET的Windows窗體應用程序,界面使用Label、Button、RadioButton、Text-Box、Group Box和OpenFileDialog控件[4],界面形成如圖4所示。

圖4 界面設計顯示圖Fig.4 The interface design figure
2.2.3 界面結合方法
通過界面控制參數,結合方法調試,實現人機交互的結合。參數及數據傳遞后進行計算,計算的核心程序如下,其作用是進行公式(2)的計算并將結果保存在數組A中,對A通過已經編寫好的Jin Lab.math.eig子函數求取矩陣的特征值,通過if判斷句選擇接近于1時的特征向量作為子波保存在數組中wave_Wi.Wi中。


2.2.4 界面模塊調試
顯示系統基于.NET的GDI+成像顯示,GDI+是微軟在Windows 2000以后的操作系統中提供的新的圖形設備接口,其通過一套部署為托管代碼的類來展現,這套類被稱為GDI+的“托管類接口”[5]。顯示模塊使用了Graphics、Image、Pen、Color和Bitmap等類實現圖像顯示功能[6]。
由數據轉換為圖像主要分以下三步:首先使用Bitmap類將數據轉成像素點數據,然后將形成的Map數據在Graphics類的畫布上形成Image圖像[7],最后進行顯示。核心程序如下:使用Bitmap建立底圖,通過兩個for語句將data數據轉換成可以識別的色彩數據,保存在map中;使用draw_image函數將map投到底圖上,x形成im文件,數據大小由數據線號datain.In LineNum和道號datain.Cross LineNum控制;使用g.Draw Image函數成圖顯示。
this.Back Color=coord.color_background;//定義底圖背景顏色

圖5 界面調試結果顯示Fig.5 The results of interface debugging
float x=50f;float y=50f;//底圖的邊界大小定義
Graphics g=CreateGraphics();//底圖創建
Image buf_image=new Bitmap(width+100,height+100,g);//創建Bitmap,大小為map的長寬加100
Graphics buf_g=Graphics.FromImage(buf_image);
if(pic_map!=null)
{buf_g.Draw Image((Image)pic_map,x,y,width,height);}//畫Image,左上位置給定初始的x,y,大小為map的長和寬
Graphics g=e.Graphics;
if(this.TS_BTMapSet.Checked)//適應屏幕大小控制
{map_width=this.Width-125;
map_height=this.Height-150-this.tool-Strip1.Height-this.statusStrip1.Height-this.statusStrip1.Height;//底圖范圍
im=draw_image(map_width,map_height,map,zuobiao,true);}//創建im,范圍是map的長寬,數據位map,坐標范圍由zuobiao給定
else
{im=draw_image(datain.In LineNum,datain.
CrossLineNum,map,zuobiao,true);}//畫im的邊界,數據為線道號,數目在zuobiao中
g.Draw Image(im,new Point(this.toolStrip1.Location.X,this.toolStrip1.Location.Y+this.toolStrip1.Height));//畫im,控制Im的起始位置和結束點
圖5為界面調試顯示結果,其中圖5(a)為原始數據顯示,圖5(b)為使用多子波變換處理結果。
以L75工區為例,從圖6地震剖面上看,灘壩砂以中弱相位為主,薄互層波形呈復合形態;灘壩砂儲層埋深較大,地震主頻較低,基本上在25 Hz左右;沙四上的頂為很好的蓋層,但對下伏儲層能量屏蔽較強。針對灘壩砂薄互層存在的問題,軟件提供一系列的處理技術方法。

圖6 灘壩砂過井地震剖面Fig.6 The through-well profile of the beach bar sandstone
首先針對強屏蔽層的存在,軟件提供多子波強屏蔽剝離技術[7],可以很好地去除強屏蔽層的影響,圖7展示了去除強屏蔽層處理方法前后結果對比。

圖7 強屏蔽去除處理前后對比Fig.7 The comparis on between before and after removing strong shielding layer
針對灘壩砂儲層地震反射信息頻率低的問題,軟件開發了HHT頻率拓寬技術來展寬地震信息頻帶,提高地震資料的分辨率,在此基礎上進行多子波變換,進一步提高資料的分辨率,結合有利識別薄互層儲層的能量半時屬性,最終形成有利灘壩砂儲層分布平面展布(圖8)。處理結果與井點吻合很好,說明了本軟件可以較好地進行灘壩砂儲層的描述與預測。

圖8 灘壩砂有利儲層平面展布圖Fig.8 The favorable reservoir distribution of the beach bar sandstone
1)灘壩砂具有埋深大、儲層薄、信號弱等特點,常規商用軟件很難全面滿足生產需求,根據地質研究目標,開發具有目標處理和精細描述功能的配套地震解釋軟件,可以彌補商業軟件部分功能的不足,及時解決勘探開發中遇到的難題。
2)基于.NET平臺的Visual Studio2010,可以開發出運行在Windows上的幾乎所有應用程序,專門用于.NET的C#編程語言由C和C++派生而來,可讀性強,便于學習與掌握,模塊移植與軟件拓展也十分便捷。
3)由于采用了三參數小波薄互層檢測、古地貌與地震屬性融合、多子波剝離消除強屏蔽效應、基于H HT的目標處理等新方法、新技術,Seis_BBS灘壩砂專用解釋軟件應用效果良好。
[1] 景宇寧.完美世界——Visual Studio 2010新理念選析[J].科技情報開發與經濟,2010,20(19):104-105.
[2] 王小科,王軍,趙會東.C#編程寶典[M].北京:人民郵電出版社,2010.
[3] 張軍華,劉振,劉炳楊,等.強屏蔽層下弱反射儲層特征分析及識別方法研究[J].特種油氣藏,2012,19(1):23-26.
[4] 王娜.C#.NET中控件數組的實現[J].智能計算機與應用,2012,2(6):73-75.
[5] 張利紅,王斌,寧方輝,等.基于GDI+的海圖符號庫設計與實現[J].海洋測繪,2012.32(5):59-62.
[6] 周方曉,李昌華,丁有軍.用GDI+和面向對象設計方法構建交互式圖形平臺[J].微電子學與計算機,2010,27(10):165-169.
[7] HUANG N E,SHEN Z,LONG S R,et al.The empirical mode decomposition and Hilbert spectrum for nonlinear and non-stationary time series analysis[J].Proc.Roy.Soc.London A,1998,454:903-995.
Software development and implementation of beach bar sandstone fine interpretation
ZHANG Jun-hua1,HUANG Guang-tan1,LIU Pei-jin1,LIU Lei2,BAN Li2
(1.School of Geosciences,China University of Petroleum,Qingdao 266580,China;2.Shengli Geological Science Research Institute of SINOPEC,Dongying 257015,China)
As the beach bar sandstone reservoir has large depth,thin thickness for a single reservoir(sand dam is mostly a few meters thick and beach sand under 2 m),lager lateral change and weak seismic reflection,the conventional software can hardly fine interpret and predict the reservoir due to these restrictions.Based on studying the beach bar sandstone fine interpretation methods,the author uses C#language which based on.NET's Visual Studio 2010 platform to develop the software which used for beach bar sandstone fine interpretation(Seis_BBS,Beach Bar Sandstone).The software has the following characteristics:1)the software integrates beach bar sandstone feature analysis,forwarding modeling,target processing and fine description.2)the software includes many new methods and new technologies to analyze the beach bar sandstone reservoir,such as the three parameter wavelet thin interbed detection method,the fusion display of ancient landform and seismic attribute method,multi-wavelet to eliminate the strong shielding effect method,the HHT method,which make up the disadvantages of commercial software in these aspects.3)the software which developed by C#has good portability and scalability,you can add new interpretation methods to the software in the following study easily.
C#language;software development;beach bar sandstone;seismic fine interpretation
TP 311
A
10.3969/j.issn.1001-1749.2014.05.11
1001-1749(2014)05-0577-06
2013-06-05 改回日期:2014-06-18
國家油氣重大專項(2011ZX05051)
張軍華(1965-),男,教授,博士生導師,長期從事地震資料解釋與軟件開發,E-mail:zjh_upc@163.com。