郭林 周東紅 沈東義 胡元凌
(中海石油(中國)有限公司天津分公司渤海油田勘探開發研究院)
TB級海量地震數據三維顯示系統的設計與實現
郭林 周東紅 沈東義 胡元凌
(中海石油(中國)有限公司天津分公司渤海油田勘探開發研究院)
隨著渤海海域油氣勘探開發的不斷發展,地震數據體的數據量在不斷增加,可達到幾百GB甚至TB級,而現有軟件無法完成跨工區、跨軟件的海量地震數據調用和顯示。自主研發了TB級海量地震數據三維顯示系統,通過建立網絡數據服務對多個現有專業軟件數據庫、多個工區的地震數據統一調配,以形成一個龐大的數據集并提供統一的數據訪問接口,最終在客戶端實現海量地震數據的實時高速讀取,并以各種方式(剖面、切片、三維體)顯示地震數據及相關成果圖。應用效果表明,該系統功能強大、方便快捷,不僅可以在工作站上調入總量達到TB級的多個地震工區數據,同時還可以在PC機上快速瀏覽數據量達到幾十GB的地震體,從而為渤海海域區域地質研究提供有力的技術支持。
TB級海量地震數據三維顯示系統設計實時讀取
地震數據三維可視化顯示對石油企業提高勘探開發效率,加強數據采集、分析、處理能力,減少決策失誤,降低企業風險起到了重要作用。隨著渤海油田的高速發展和工作需求,科研人員對大范圍多工區數據的連片研究需求也在不斷增加。然而,隨著地震數據體總量以及單個地震體數據量的不斷增加,單個工區地震數據量可達幾十GB,個別處理后的連片地震數據體甚至達到了200GB,多個地震工區數據總量達到了TB級。渤海油田所采用的解釋系統為Openworks和Geoframe,其三維顯示軟件分別為Geoprobe和GeoViz,2個系統在進行大范圍多工區的海量地震數據顯示時仍存在一些問題,主要表現在:Geoprobe不能跨工區顯示地震體,GeoViz雖然可以跨工區顯示,但彼此之間無法直接進行數據共享;而三維地震數據往往分布在不同的軟件系統中,其擁有各自的項目數據庫和磁盤文件存放方法,在進行大范圍多地震工區研究時往往需要在不同軟件之間進行數據格式轉換;同時,相關三維軟件在繪制數據前,往往需要將硬盤上的地震體數據全部加載或部分預加載入內存進行處理轉換后再顯示,在總數據量達到數百GB甚至TB級時,占用的內存空間不容小視,如果不進行預加載而直接讀取硬盤,則需要事先進行數據格式轉換并在磁盤上形成相應緩存文件,以磁盤空間換取內存空間。在上述數據加載和處理的過程中,往往需要較長的等待時間而導致工作效率降低。
實踐表明,雖然可以通過采購高端配置工作站并配備大容量內存解決數據預加載,并采購大容量磁盤保存轉換后的冗余文件以實現海量數據的顯示,但仍無法解決數據加載和轉換所帶來的效率問題,同時也明顯增加了企業的硬件成本。因此,在不大量增加硬件成本的情況下,研發新的軟件以實現海量地震數據三維顯示并滿足科研工作需求,這對石油企業具有重要現實意義。鑒于此,我們自主研發了海量地震數據三維顯示系統,該系統通過建立網絡數據服務,實現了對多個專業軟件、不同工區數據庫的統一調配,以形成一個龐大的數據集并提供統一的數據訪問接口,客戶端可通過該接口直讀數據并實時繪制和顯示各種圖形;該系統不僅解決了不同解釋系統、不同工區之間數據共享問題,同時避免了數據轉換和過多的內存及磁盤占用,可在普通工作站和PC機上同時載入并顯示多個地震工區,顯示的海量地震數據總量達到了TB級。
從最初的需求分析來看,TB級海量地震數據三維顯示系統應為數據瀏覽系統,用于解決已有軟件在超大數據量顯示時所遇到的問題,通過對已有軟件的功能補充為管理人員和科研人員提供方便的數據瀏覽和成圖功能,不需要替代原有軟件較為成熟的功能(例如解釋功能),亦不需要對原始數據和工作成果進行處理和修改,只需要實現跨軟件、多工區的任意數據瀏覽,并保證實時性和運行效率,使其能夠在工作站上實現全區域的海量數據瀏覽以及在配置相對較低的普通PC機上方便地瀏覽和查看多個工區的數據與解釋成果。因此,本系統應主要解決兩大問題:
(1)同時獲取Openworks和Geoframe兩個軟件底層數據庫的數據,實現數據共享,同時不形成冗余文件——研制數據服務系統實現此功能。
(2)在現有硬件條件下實現多個地震工區數據的實時顯示——開發客戶端海量地震三維顯示系統實現此功能。
為實現更高效的數據共享訪問,我們將數據服務系統分為前端應用和后臺數據服務平臺兩部分,分別研發相應軟件。TB級海量地震數據三維顯示系統整體架構設計如圖1所示。

圖1 TB級海量地震數據三維顯示系統整體架構設計
對于數據服務平臺,該系統通過對Geoframe和Landmark底層數據庫格式進行解剖,自主研發相關的底層數據庫讀取軟件,提供相應的數據調用接口,并將各自底層數據庫數據實時轉換成統一格式;同時,通過研發數據總調度軟件對底層多個數據讀取軟件進行統一調配和管理,使得后臺數據形成一個龐大的數據集,并提供可供客戶端訪問的統一軟件接口。通過該服務平臺不但可以直接讀取上述2個軟件所對應Oracle數據庫中相關數據,而且可以同時直讀磁盤陣列上的地震數據體。
對于客戶端海量地震三維顯示軟件,需要在同一場景中載入并繪制幾個甚至幾十個工區的地震數據和多種專業數據,并在顯示環境中任意定位瀏覽地震剖面。為將加載時間和內存消耗降至最低,客戶端采用數據直讀實時繪制方法,該方法利用數據服務平臺提供的數據讀取功能實時獲取不同解釋系統、多個工區底層數據庫的地震數據,或磁盤陣列上的地震數據,實時繪制顯示圖形,無須進行預加載和轉換。數據直讀功能可以實時獲得所有服務器中的地震數據體,包括不同軟件、不同工區的數據,滿足了海量數據顯示的要求。雖然實時獲取數據的速度不及全載并直讀內存數據,會有一定延遲,但在高速千兆網的支持下,訪問速度足以滿足科研人員正常使用的要求。同時,由于數據實時獲取而非一次性載入,只需占用少量內存空間就可以滿足可視化的顯示需求,大幅度降低了系統資源占用。TB級海量地震數據三維顯示系統整體流程如圖2所示。

圖2 TB級海量地震數據三維顯示系統整體流程
數據服務平臺的關鍵功能是實現多個庫的數據讀取和統一調配,并提供統一的數據接口和數據格式,使所有數據成為一個龐大的數據集。地震解釋系統的數據主要包括地震數據、解釋成果數據和井數據,其中解釋成果與井數據存于Geoframe和Landmark的Oracle數據庫中,而數據量最大的地震數據則以文件形式按各自的格式存放在磁盤陣列上(除了一些索引等關鍵信息)。針對數據總量大、工區多,在多個服務器上建立多個數據庫并對應多個磁盤陣列的現實情況,數據服務平臺采用中間數據服務和數據直讀兩級結構。針對Openworks和Geo-frame數據庫的庫結構和數據存儲格式編寫相應的數據直讀程序,并部署在相應服務器上,將讀取后的數據實時轉換為統一標準的數據格式。由于客戶端需要后臺數據服務形成一個龐大的數據集,而不是與各個服務器直接交互,因此需要在此之上再建立一級中間數據服務層,由中間數據服務層總調度軟件統一調配服務器間的數據。
由于數據基于網絡傳輸,因此本系統客戶端與中間層以及中間層與底層服務之間的數據傳輸均采用基于TCP/IP的Socket編程,并采用Java來編寫。
需讀取的數據主要包括地震數據體、層位、斷層和井軌跡、測井曲線、合成記錄等不同類型的數據,根據功能需求與庫結構特點,建立相應的讀取模塊。由監聽端口生成Java中的ServerSocket對象,接收并處理客戶端命令消息[1],而后將數據返回客戶端。整個軟件執行流程如圖3所示。

圖3 數據讀取軟件流程
中間數據服務層總調度軟件(以下簡稱中間層軟件)主要實現兩大功能:一是與客戶端以及后臺服務之間的數據傳輸通訊;二是多數據庫的統一調度。通過實時解析客戶端的數據請求,并判斷數據所在服務器位置,將客戶端數據請求命令分發至后臺數據讀取服務器,并將獲取后的數據轉送回客戶端。通過該軟件對后臺多個服務器上的數據讀取軟件進行統一調度與管理,使得所有數據庫形成一個龐大的數據集,并具有實時獲取數據的功能。
具體實現時,在網絡數據傳輸方面同樣采用基于TCP/IP的Socket編程。對于數據的調度與管理,在架設好底層數據讀取服務軟件后,每臺服務器將具有數據列表和數據讀取功能。中間層軟件在掛載每臺服務器時,需分別獲取其各自的總數據列表,之后將多個軟件數據庫的數據匯總為數據總表,并在客戶端請求數據列表時傳回客戶端。其中,較為關鍵的問題是數據列表中的每個數據雖然在數據庫中有唯一的id編號,但由于系統跨軟件獲取數據,同時對于同一軟件建立的數據庫因存放于多個服務器上,可能存在數據冗余以及id號重復問題,因此中間層軟件在獲取各個服務器上數據列表后還需將其統一分配附加的唯一編號作為中間層與客戶端和底層數據交互的唯一識別碼。這種全局id號可采用字符串的方式,例如可采用類似如下方法進行分配:
全局id=服務器編號+軟件類型編號+軟件版本編號+數據類型編碼+原數據id
整個中間層軟件的執行流程如圖4所示。

圖4 中間數據服務層總調度軟件流程
海量地震數據三維顯示客戶端基于Visual C++ 2005進行研發,運行于Windows系統上,是以地震體數據為主,多種數據綜合顯示的三維軟件。由于該系統的重點是實現海量地震數據的三維顯示,因此本文僅重點論述地震體的繪制方法。
地震剖面數據由多個地震道構成,每道上有多個采樣點。地震體的三維繪制需要根據剖面上的每個采樣點的振幅值大小標記不同的顏色。作為獨立的填充對象,每一個采樣點對應于一個原地震數據體的振幅值和一個RGB色彩值。一個地震道最終被轉換成一個像素道[2]。該系統將色表劃分為256階,前128階與后128階分別對應負振幅值與正振幅值。在取色的過程中,系統會根據振幅值范圍來確定某一振幅值所在的具體區間,將會按照比例被對應劃入相應的色階中,且振幅值越大的采樣點對應的色階越高。采樣點與色表對應關系如圖5所示。

圖5 地震道取色
在具體繪制地震體剖面時,該系統選擇OpenGL作為程序開發所用圖形庫。程序實現時基于Open-GL中的紋理繪制功能,將每個采樣點依次取色并生成二維紋理,繪制時只需繪制剖面4個頂點所構成的四邊形,并用紋理進行填充。紋理繪制的優點在于擁有極快的繪制速度,通過紋理的各項異性過濾可以得到較為滿意的繪制效果[3]。當在三維空間中移動并將剖面放大到一定程度時,剖面的清晰度將會有較明顯降低,這時可以通過線性插值算法對剖面數據進行插值而生成更高精度的紋理,以滿足要求。
對于海量地震數據,即使使用紋理繪制,紋理的數據量也是很可觀的。對于超過100GB的超大地震數據體,單張剖面的數據量甚至可能達到百兆以上。因此,提高紋理的生成速度也是十分必要的,在此可以采用PBO技術提高紋理的生成速度。PBO (Pixel Buffer Object)是在OpenGL2.1中新增加的緩沖對象,它是通過擴展GL_ARB_pixel_buffer_object來實現快速的像素數據傳遞。PBO中的對象通過DMA(Direct Memory Access)傳遞到FrameBuffer,無須CPU介入,而且這種DMA是異步的[4],可有效減少紋理對象生成過程中產生的主線程延遲。
目前,自主研發的TB級海量地震數據三維顯示系統客戶端軟件可在裝有Windows系統的工作站上進行渤海全區域的地震數據顯示,同時可在普通辦公用PC機上為管理人員和科研人員提供方便的數據瀏覽和成圖功能。軟件運行后的主界面如圖6所示。

圖6 TB級海量地震數據三維顯示系統運行效果
軟件以樹形列表的方式為用戶提供數據加載功能,在擁有最高權限的情況下用戶可從列表看到Openworks和Geoframe的所有工區,無須關心數據來自哪個數據庫,均為相同的加載方式。樹形列表中每個工區下面分為井和地震兩大類數據,井數據包括井軌跡、測井曲線、時深標定等數據;地震數據包含Survey以及其下對應的地震體和所有解釋成果數據。加載時只需選中列表中的單選框即可,加載列表如圖7所示。

圖7 樹形列表局部截圖
用戶每次對數據的加載以及設置可保存成記錄文件,下次重新運行軟件時可選擇打開記錄文件,快速調入數據并恢復成上次加載時的場景,避免了重復點選數據列表而帶來的時間損耗。通過實測,將軟件運行在Windows XP 64位版操作系統上,硬件采用惠普Z800工作站,具體配置為Intel Xeon X5650 CPU以及16G內存和2.5G顯存的Quadro 5000顯卡,可以在3分鐘內調入總數據量高達500G的多個地震工區數據;通過不斷加載數據,最終可任意操作總數據量達2TB以上的海量數據體。同時,數據操作的實時讀取延遲被有效控制在2 s以下的可接受范圍內。
軟件可對地震體、解釋成果、井軌跡、測井曲線等主要數據進行三維顯示,并可顯示渤海三維版勘探形勢圖,每個數據對象均有其獨立的設置界面,包括色表和其他顯示參數??蛻舳巳S顯示效果如圖8所示。

圖8 客戶端三維顯示效果圖
該系統還提供了其他必要的實用操作功能,主要包括:
(1)方便快捷的場景漫游鼠標操作,并配有鍵盤快捷鍵。鼠標移動過程中,可實時計算其所指向區域的真實三維坐標;并配有全局快速定位,即在全渤海范圍內雙擊鼠標可瞬間拾取定位到三維場景中所要觀察的點。
(2)主界面上方快捷功能鍵提供切割任意線等快捷功能。
(3)全局設置功能。當加載多個地震體進行連片顯示時,可對所有對象同時進行色表調節、切時間切片、顯示比例調整等。
(4)全局數據管理功能。通過軟件提供的全局對象管理器,方便地查看已加載的所有對象并可調用其設置界面,也可對多個對象進行刪除管理。
(5)立體顯示功能。該功能可配合三維可視化中心相關設備,實現三維立體顯示。
(6)高精度快速成圖。使用戶在可預覽的情況下輸出所見即所得的效果圖,通過顯卡直接渲染,可得到分辨率超過8 000×8 000的高精度圖片。
目前,自主研發的TB級海量地震數據三維顯示系統已在渤海海域地質勘探研究中推廣應用,并顯示出諸多優點。
(1)為區域地質研究提供了極大的便利。渤海海域勘探面積4.4×104km2,三維地震分塊分批采集處理,尚未實現全區連片處理,且不同工區的數據存放于不同的數據服務平臺(Geoframe和Landmark)。不論是Geoframe還是Landmark,原有軟件都不能同時顯示全海域或某一較大區域的地震數據體;而對于區域地質研究,這種大區域地震數據體的同時顯示是十分必要的。自主研發的TB級海量地震數據三維顯示系統完全解決了這一問題,該系統在可視化中心和主流工作站上投入使用后,可以直接加載任意工區的數據,實現全海域各種地震數據體(如地震方差數據體)及解釋成果(約2 TB,僅覆蓋一次)的超海量顯示(圖9),同時可以在三維環境中抽取任意線剖面并加載三維勘探形勢圖,為區域地質研究提供了極大的便利。
(2)應用于郯廬斷裂帶研究。郯廬斷裂帶是貫穿渤海灣盆地的大斷裂,控制了該盆地的沉積和構造發育,與油氣聚集成藏關系密切,對于區域地質研究也具有重要意義[5-7],是渤海灣盆地地質勘探研究的一個熱點問題[8-10]。渤海油田三維地震數據已經全覆蓋渤海海域郯廬斷裂帶,具備郯廬斷裂帶研究的資料條件。但是,覆蓋郯廬斷裂帶的三維地震資料由41塊獨立的工區組成,共計2.29×104km2,最大采集面積2 400 km2,最大處理面積約1×104km2,此前由于三維可視化中心和工作站配備的商業軟件無法實現全區域三維地震資料的整體顯示,對郯廬斷裂帶的整體解剖造成了極大的困難。TB級海量地震數據三維顯示系統的應用為郯廬斷裂帶的整體研究提供了有力工具,如圖9所示的三維地震相干切片,清晰地顯示了郯廬斷裂帶的位置、走向及其與沉積凹陷、次一級斷層的關系。使在斷裂帶的平面展布及時空演化等有爭議的科學問題的認識上取得了較大的進展,為斷裂帶內油氣富集規律的認識及目標優選提供了有力的技術支持。

圖9 渤海海域多工區連片效果(三維地震相干切片)
TB級海量地震數據三維顯示系統通過搭建數據服務平臺,直接解析并讀取Openworks和Geoframe庫中數據與磁盤文件,無須重新建庫和數據格式轉換,避免了數據冗余。同時,基于實時繪制方法實現了TB級海量數據的三維顯示,彌補了原有地震解釋軟件的不足。在地質勘探實際應用中,該系統為區域地質研究、勘探形勢分析與決策,以及勘探項目管理提供了方便快捷、功能強大的軟件工具;同時與現有成熟的商業軟件相配合可為局部目標的精細研究提供保障。
當然,該系統目前還有一些待解決的問題,比如Openworks和Geoframe彼此之間的數據共享問題,多工區顯示時重合區域的拼接處理問題等,尚待進一步完善與發展。
[1]HORSTMANN G S,CORNELL G,陳昊鵬,等.JAVA核心技術卷II:高級特性[M].8版.北京:機械工業出版社,2008:154-161.
[2]馬仁安,張二華,楊靜宇.三維地震數據場的快速體繪制方法[J].計算機輔助設計與圖形學學報,2005,17(5):1008-1012.
[3]SHREINER D,WOO M,NEIDER J,et al.OpenGL編程指南[M].北京:機械工業出版社,2006:256-263.
[4]WRIGHT R S,LIPCHAK B,HAEMEL N.OpenGL SuperBible[M].4版.北京:人民郵電出版社,2007:601-608.
[5]XU JW,ZHU G,TONGW X,et al.Formation and evolution of the Tancheng-Lujiang wrench fault system:a major shear system to the northern of the Pacific Ocean[J].Tectonophysics,1987,134:273-310.
[6]UCHIMURA H,TSUNAKAWA M K H,KIMURA G,et al.Paleomagnetism of late Mesozoic rocks from northeastern China:the role of the Tan-Lu fault in the North China Block[J].Tectonophysics,262:301-319.
[7]YIN A.Cenozoic tectonic evolution of Asia:a preliminary synthesis[J].Tectonophysics,2010,488:293-325.
[8]HSIAO L Y,GRAHAM S A,TILANDER N.Seismic reflection imaging of a major strike-slip fault zone in a rift system:Paleogene structure and evolution of the Tan-Lu fault system,Liaodong Bay,Bohai,offshore China[J].AAPG Bull,2004,88:71-97.
[9]GONG Z S,ZHUW L,CHEN P P H.Revitalization of a mature oil-bearing basin by a paradigm shift in the exploration concept:a case history of Bohai Bay,Offshore China[J].Marine and Petroleum Geology,2010,27:1-17.
[10]黃雷,王應斌,武強,等.渤海灣盆地萊州灣凹陷新生代盆地演化[J].地質學報,2012,86(6):867-876.
(編輯:周雯雯)
Designing and realizing a 3D display system of themass seism ic data w ith a TB level
Guo Lin Zhou Donghong Shen Dongyi Hu Yuanling
(BohaiOilfield Exploration and Development Research Institute,Tianjin Branch of CNOOC Ltd.,Tianjin,300452)
With the continuous hydrocarbon exploration and development in Bohai water,the seismic data volume is expanding continuously and may be up to a level of several hundred GB or even TB.However,the existing softwares cannot call and display the mass seismic data from various work areas and softwares.A 3D display system of the mass seismic data with a TB level has been independently researched and developed,in which the multiple existing databases of special software and the seismic data from multiple work areas are allocated in a unified way by creating the service of network data,in order to form a huge data set and provide a unified data access interface,to achieve a real time and high-speed access to the mass seismic data at a client end and finally to display the seismic data and their related figures in various ways(section,slice and triaxiality).Its applications have shown that this system is powerful in functions and easy and fast in exploitation,and can not only call seismic data up to a TB level from several work areas at a workstation,but also view quickly the seismic bodies with data up to several ten GB at a PC.Therefore,the system may provide powerful supports for studying regional geology in Bohai water.
TB level;mass seismic data;3D display; system design;real-time access
郭林,男,工程師,2006年畢業于中國石油大學(華東)計算機科學與技術專業,主要從事軟件研發工作。地址:天津市塘沽區609信箱(郵編:300452)。
2012-07-17改回日期:2012-08-28