劉旭躍, 周 巍, 孔祥寧, 黃 駿
(中國石化 石油物探技術(shù)研究院,南京 211103)
?
SEG-Y格式自動轉(zhuǎn)化軟件的研究與實現(xiàn)
劉旭躍, 周巍, 孔祥寧, 黃駿
(中國石化 石油物探技術(shù)研究院,南京 211103)
摘要:為避免不同體系架構(gòu)下的計算機系統(tǒng)之間地震數(shù)據(jù)多次手動轉(zhuǎn)換數(shù)據(jù)格式,縮短地震數(shù)據(jù)處理時間,設(shè)計開發(fā)了SEGY格式自動轉(zhuǎn)化軟件。在分析SEG-Y文件格式特征的基礎(chǔ)上,通過建立中間文件,利用format字段存儲原始地震數(shù)據(jù)格式,經(jīng)過數(shù)據(jù)字節(jié)交換和格式轉(zhuǎn)化,自動把SEG-Y格式數(shù)據(jù)轉(zhuǎn)換為PC格式數(shù)據(jù)。將與成像計算相關(guān)的數(shù)據(jù)下載到中間文件中,方便快捷瀏覽和檢索數(shù)據(jù),實現(xiàn)了地震數(shù)據(jù)讀取、瀏覽和輸出的功能。經(jīng)實際應(yīng)用表明,該軟件轉(zhuǎn)化地震數(shù)據(jù)效果良好。
關(guān)鍵詞:SEGY; 數(shù)據(jù)格式; 自動轉(zhuǎn)化
0引言
在地質(zhì)勘探與開發(fā)研究工作中,地震數(shù)據(jù)是最重要的研究對象。隨著地震勘探技術(shù)的發(fā)展,從野外采集的地震數(shù)據(jù)通過采集儀器直接轉(zhuǎn)換成按道排列的SEGY數(shù)據(jù)格式。地震資料采集器使用的都是Unix工作站,不能在PC機上直接觀察地震數(shù)據(jù)文件的道頭、振幅數(shù)據(jù)等信息。這兩種機器存儲的數(shù)據(jù)格式有很大的區(qū)別,必須把工作站格式的數(shù)據(jù)轉(zhuǎn)化成PC格式才能使用。
目前基于SEG-Y格式的地震數(shù)據(jù)處理解釋商業(yè)軟件層次不窮(CGG、landmark、Paradigm、Petrel等),為方便管理地震數(shù)據(jù),大部分商業(yè)軟件和國內(nèi)自主軟件都設(shè)計自己獨有的地震數(shù)據(jù)格式,基于知識產(chǎn)權(quán)、商業(yè)協(xié)議等各個方面的原因,作為一般的用戶很難了解它們的內(nèi)部結(jié)構(gòu)[1]。加載數(shù)據(jù)時首先應(yīng)將外界的SEGY數(shù)據(jù)轉(zhuǎn)換成內(nèi)部格式數(shù)據(jù)后再使用;輸出時又必需將內(nèi)部格式轉(zhuǎn)換成SEGY數(shù)據(jù),這樣才能和別的系統(tǒng)兼容,為以后的工作準備。這些軟件雖然提供了格式轉(zhuǎn)化的功能,但通常采用的是手動“一對一”方式進行兩種類型之間的數(shù)據(jù)格式轉(zhuǎn)換。在科研生產(chǎn)中,如果遇到多種格式的地震數(shù)據(jù),每種數(shù)據(jù)都要分別選擇不同的功能按鈕進行格式轉(zhuǎn)換,當數(shù)據(jù)量比較大的時候,尤其是海量數(shù)據(jù),轉(zhuǎn)換起來非常耗時,浪費了大量的人力物力,降低了工作效率。
這里介紹了格式自動轉(zhuǎn)化軟件的主要功能和系統(tǒng)結(jié)構(gòu),進行SEG-Y地震數(shù)據(jù)格式自動轉(zhuǎn)化的研究與實現(xiàn),避免了手動多次進行數(shù)據(jù)格式轉(zhuǎn)化。采用motif和c語言編程,通過建立中間文件,選擇保存原始地震數(shù)據(jù)的重要數(shù)據(jù),加快數(shù)據(jù)檢索。開發(fā)了道頭信息、道信息瀏覽的功能,方便用戶掌握數(shù)據(jù)情況,利于開展研究工作。
1研究方案
1.1主要功能
SEG-Y格式自動轉(zhuǎn)化軟件的主要功能包括讀取數(shù)據(jù)、瀏覽數(shù)據(jù)、輸出數(shù)據(jù)三個部分。
1.1.1讀取數(shù)據(jù)
SEG-Y標準規(guī)定,所有的二進制值都采用大端字節(jié)排序方式,即采用的是從高字節(jié)到低字節(jié)的尋址方式(大端法),而PC機采用的是從低字節(jié)到高字節(jié)的尋址方式(小端法)。鑒于工作站和PC機的數(shù)據(jù)編碼方式不同,所以首先要判斷運行程序的機器字節(jié)序,如果是小端法,需要把高低字節(jié)互換。
在地震數(shù)據(jù)使用時,經(jīng)常用到的關(guān)鍵數(shù)據(jù)比較固定。由于原始地震數(shù)據(jù)量相對較大,為節(jié)省讀取時間,采用創(chuàng)建中間文件的方式,把原始地震數(shù)據(jù)里關(guān)鍵字段信息保存在中間文件中,這樣就不必每次讀取原始地震數(shù)據(jù),通過直接讀取中間文件的內(nèi)容獲得數(shù)據(jù)。中間文件和segy文件類似,也由文件頭和文件體組成。加載原始數(shù)據(jù)時,為避免多次轉(zhuǎn)化數(shù)據(jù)格式,在中間文件的頭文件中增加format字段,用來保存原始地震數(shù)據(jù)的格式。SEG-Y格式規(guī)定,在400 Byte二進制卷頭的3 225 Byte~3 226 Byte處,存儲的是數(shù)據(jù)格式碼。通常1代表工作站格式的IBM32位浮點, 2代表4 Byte定點等。但是這個數(shù)據(jù)是由處理員提供的,可能會出現(xiàn)錯誤。工作中,地震數(shù)據(jù)格式還會有PC格式的IBM浮點型,PC格式的IEEE浮點型。在創(chuàng)建中間文件時,我們在軟件界面上需要用戶重新選擇原始地震數(shù)據(jù)類型,然后把選擇的值賦給format,地震道道頭的格式和文件頭是一樣的,只需轉(zhuǎn)化高低位即可。地震道數(shù)據(jù)需要根據(jù)format值不同,采用不同的轉(zhuǎn)化方法,最后都轉(zhuǎn)化為PC格式的IEEE格式,讀取的地震道數(shù)據(jù)保存在全局動態(tài)數(shù)組中。
讀取數(shù)據(jù)流程圖如圖1所示。
圖1 讀取數(shù)據(jù)流程Fig.1 Reading data process
1.1.2瀏覽數(shù)據(jù)
用戶可以瀏覽文件頭信息,列出每道的樣點數(shù)、采樣率、起始時間或深度、總炮數(shù)等文件頭所有數(shù)據(jù)。選取前5個地震道數(shù)據(jù),列出地震道頭信息,通過地震道順序號,可以檢測出地震數(shù)據(jù)前5道是否按道序排列。由于線號和道號等信息在文件中的位置不固定,所以可以根據(jù)數(shù)據(jù)來判斷線號等信息的位置。中間文件的文件頭數(shù)據(jù)列出采集數(shù)據(jù)的總體情況(如采樣點數(shù)、起始cdp、終止cdp等),中間文件的文件體列出的是具體每道數(shù)據(jù)的檢波點位置、炮點位置、檢波點高程、炮點高程等。
1.1.3輸出數(shù)據(jù)
當有些程序需要地震數(shù)據(jù)時,需輸出地震數(shù)據(jù)。由于在中間文件中保存了地震數(shù)據(jù)格式,這時自動從中間文件中找到format值,然后根據(jù)format值進行相應(yīng)的數(shù)據(jù)格式轉(zhuǎn)化。這些操作封裝在代碼中,是個黑匣子,用戶不用操作,所有的讀取、轉(zhuǎn)化和輸出全部自動執(zhí)行,地震數(shù)據(jù)以數(shù)組的形式傳遞出去。
1.2系統(tǒng)結(jié)構(gòu)
系統(tǒng)開發(fā)采用數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和表示層的“高內(nèi)聚、低耦合”開發(fā)方式。數(shù)據(jù)訪問層和業(yè)務(wù)邏輯層都寫在庫函數(shù)中,數(shù)據(jù)訪問層主要是地震數(shù)據(jù)文件I/O類,包括讀取函數(shù),輸出函數(shù),數(shù)據(jù)接口函數(shù)等;業(yè)務(wù)邏輯層是數(shù)據(jù)轉(zhuǎn)化類,主要是格式轉(zhuǎn)化函數(shù);表示層是界面模板類,主要是對話框顯示。把對話框相同的基本功能用類模板封裝好,通過接口函數(shù)調(diào)用對話框類,系統(tǒng)結(jié)構(gòu)圖如圖2所示。
1.3SEG-Y文件格式
圖2 系統(tǒng)結(jié)構(gòu)圖Fig.2 The system structure diagram
地震數(shù)據(jù)一般以地震道為單位進行組織,采用SEG-Y文件格式存儲(SEG-Y格式是由SEG提出的標準磁帶數(shù)據(jù)格式之一[2])。標準SEG-Y文件一般包括三部分,①3 200 Byte 的EBCDIC文件頭,由40個卡組成,用來保存一些對地震數(shù)據(jù)體進行描述的信息;②400 Byte的二進制文件頭用來存儲描述SEG-Y文件的一些關(guān)鍵信息,包括SEG-Y文件的數(shù)據(jù)格式、采樣點數(shù)、采樣間隔、測量單位等一些信息,這些信息一般存儲在二進制文件頭的固定位置上;③實際的地震道,每條地震道都包含240 Byte的道頭信息和地震道數(shù)據(jù)。道頭數(shù)據(jù)中一般保存該地震道對應(yīng)的線號、道號、采樣點數(shù)、大地坐標等信息,但一些關(guān)鍵的參數(shù)位置(如線號、道號)在道頭中的位置并不固定。地震道數(shù)據(jù)是對地震信號的波形按一定時間間隔Δt進行取樣,再將這一系列的離散振幅值以某種方式記錄下來。標準SEG-Y文件結(jié)構(gòu)如圖3所示。
圖3 標準SEG-Y文件結(jié)構(gòu)圖Fig.3 Standard SEG-Y file structure diagram
每個地震道記錄塊分布情況如圖4所示。
圖4 每道記錄塊結(jié)構(gòu)Fig.4 Each short record block structure
SEGY文件存儲方式有工作站格式和微機(PC)格式。常見的地震數(shù)據(jù)格式包括工作站的4 Byte IBM浮點型、 工作站的4 Byte IEEE浮點型、工作站的4 Byte定點,工作站的2 Byte定點,PC的4 Byte IBM浮點型和PC的4 Byte IEEE浮點型。這里以常見地震數(shù)據(jù)格式為例說明,一個地震工區(qū)同一次處理的地震數(shù)據(jù)格式是唯一的。
2關(guān)鍵技術(shù)
原始的地震數(shù)據(jù)不能直接在PC機上應(yīng)用,一般先將SEGY數(shù)據(jù)字節(jié)交換(也就是將數(shù)據(jù)內(nèi)容正確提取),數(shù)據(jù)交換后,再將地震數(shù)據(jù)格式轉(zhuǎn)換為PC格式,以便后期的處理和解釋。本系統(tǒng)在字節(jié)交換和格式轉(zhuǎn)化方法上做了些改進。
2.1字節(jié)交換
標準SEG-Y 文件是工作站格式的,所有二進制值是大端字節(jié)排序方式。數(shù)據(jù)的高字節(jié)保存在內(nèi)存的低地址中,數(shù)據(jù)的低字節(jié)保存在內(nèi)存的高地址中。PC機采用的是小端模式,數(shù)據(jù)存放在內(nèi)存中的位置剛好想反。高低址部分權(quán)值高,低地址部分權(quán)值低,和邏輯方法一致。以十六進制的0x02030405, 在計算機中需要用4 Byte來保存它, ‘02’、‘ 03’、‘ 04’、‘05’各占一個字節(jié)。按照人類的計數(shù)習(xí)慣,最左邊的‘02’,稱之為最高有效位(MSB,Most Significant Byte);最右邊的‘05’稱之為最低有效位(LSB, Least Significant Byte);在計算機中需要用4個字節(jié)來保存它,其中‘02’、‘ 03’、‘ 04’、 ‘05’各占一個字節(jié)。大端序的計算機保存這個數(shù)值時,按照從低地址到高地址的順序分別保存MSB到LSB四個字節(jié),0x02030405的存儲情況如圖5所示。
MSB (->地址增長方向) LSB 02030405
圖5 大端序存儲情況圖
圖6小端序存儲情況圖
Fig.6The little endian storage situation map
小端序計算機的存儲如圖6所示。必須把數(shù)據(jù)進行高低位逐一交換,才能在PC機上使用SEGY地震數(shù)據(jù),一般采用C語言的字節(jié)移位符的方法可以實現(xiàn)。假設(shè)原始位序列為data=01011001,data=(data<<4)|(data>>4),之后序列為1 0010 101;data=((data<<2)&0xcc)|((data>>2)&0x33), 之后序列為01100101。
2.2格式轉(zhuǎn)化
SEG-Y地震數(shù)據(jù)中,常見的格式有:4 Byte的IBM浮點型、4 Byte的IEEE浮點、4 Byte二進制補碼整型、2 Byte二進制補碼整型等。工作站格式的數(shù)據(jù),通過字節(jié)交換后,轉(zhuǎn)化為小端式,PC機上浮點數(shù)的格式是IEEE浮點型,IBM格式的數(shù)據(jù)需要轉(zhuǎn)化為IEEE浮點型才能在PC機上使用。
IBM格式數(shù)據(jù)分為三部分:①符號位(sign);②指數(shù)部分(exp);③尾數(shù)部分(mant)。4 Byte的IBM格式數(shù)據(jù)有32 bit,符號位占1 bit,指數(shù)部分占7 bit、尾數(shù)部分占24 bit[6-7](圖7)。
signexpmant3130……2423……0
圖7IBM格式數(shù)據(jù)字節(jié)分布
Fig.7The IBM format data byte distribution
IBM浮點數(shù)格式的數(shù)值=
(-1)sign×(mant/224) ×16(exp-64)
(1)
IEEE格式數(shù)據(jù)也分為三部分:符號位(sign)、指數(shù)部分(exp)和尾數(shù)部分(mant)。共有32 bit,符號位占1bit,指數(shù)部分占8bit、尾數(shù)部分占23bit[4,5](圖8)。
signexpmant3130……2322……0
圖8IEEE格式數(shù)據(jù)字節(jié)分布
Fig.8The IEEE format data byte distribution
IEEE浮點數(shù)格式的數(shù)值=
(-1)sign×(mant/223) ×16(exp-127)
(2)
當指數(shù)部分為全“0”且尾數(shù)mant也為全“0”時,表示的數(shù)值為“0”,結(jié)合符號位s為“0”或“1”,有正零和負零之分。當指數(shù)部分exp為全“1”且尾數(shù)也為全“0”時,表示的數(shù)值為無窮大(∞),結(jié)合符號位sign為“0”或“1”,有+∞和-∞之分。在浮點數(shù)數(shù)值表示中,要除去指數(shù)部分用全“0”和全“1”表示零和無窮大的特殊情況,因此IBM的指數(shù)部分exp的取值范圍變?yōu)?~126,指數(shù)的偏移量不選65而選64,真正的指數(shù)部分范圍為-63~+64,數(shù)值范圍為(1/16) ×16-64~(1-1/223) ×1662。IEEE指數(shù)部分exp的取值范圍變?yōu)?~254,指數(shù)的偏移量不選128而選127,真正的指數(shù)部分為-126~+127,數(shù)值范圍為(1+1/223) ×2-127~(2-1/222) ×2127。
IBM浮點數(shù)格式轉(zhuǎn)換為IEEE浮點數(shù)格式的轉(zhuǎn)換方法如下[3]:
expIEEE=4expIBM-130
(3)
mantIEEE=2mantIBM-1
(4)
式中,expIBM、mantIBM分別表示4 Byte的IBM浮點數(shù)的指數(shù)和尾數(shù)部分;expIEEE、mantIEEE分別表示4 Byte的IEEE浮點數(shù)的指數(shù)和尾數(shù)部分。
其中1/16<=mantIBM<=1-1/223,若mantIBM<1/2,mantIEEE將溢出,必須調(diào)整。因為mantIBM>=1/16, mantIBM中為1的最高位是k:
expIEEE=(4expIBM-130)-(k-1)
(5)
mantIEEE=2kmantIBM-1
(6)
由于0<= expIBM<=126,-130<=4expIBM-130<=374。IBM浮點數(shù)以16為基底,浮點數(shù)的大小范圍(1/16)×16-64<=T<=(1-1/223)×1662大于IEEE浮點數(shù)。故只有當0<=4expIBM-130<=254,即32<= expIBM<=96時,IBM浮點數(shù)才能正確轉(zhuǎn)化為IEEE浮點數(shù)。而當expIBM<32時,轉(zhuǎn)換為IEEE格式浮點數(shù)結(jié)果為0;當expIBM>96時,轉(zhuǎn)化為IBM格式浮點數(shù)結(jié)果是無窮大。當mantIBM前3位為0時,expIBM=197,其IBM浮點數(shù)一樣可以轉(zhuǎn)化為IEEE浮點數(shù)。
3系統(tǒng)實現(xiàn)與應(yīng)用
基于上述研究內(nèi)容,設(shè)計并開發(fā)了SEG-Y格式自動轉(zhuǎn)化軟件。其中重要的兩部分是數(shù)據(jù)加載和數(shù)據(jù)檢索,數(shù)據(jù)加載器用于加載地震數(shù)據(jù)到本系統(tǒng)中,檢查源數(shù)據(jù)的道頭信息,將與成像計算有關(guān)的參數(shù)下載到中間文件中。數(shù)據(jù)檢索通過中間文件的format字段數(shù)據(jù)得知地震數(shù)據(jù)類型,獲取數(shù)據(jù)提供成像計算使用,可根據(jù)給定區(qū)域獲取相關(guān)數(shù)據(jù),檢查感興趣的數(shù)據(jù)項等。該軟件應(yīng)用在icluster地震成像軟件中管理數(shù)據(jù)效果良好,提高了數(shù)據(jù)處理效率。
中間文件存放記錄的順序和數(shù)目,可能不同與源數(shù)據(jù)文件,這是根據(jù)不同數(shù)據(jù)子集的要求,重新編排(排序或轉(zhuǎn)置),中間文件與源數(shù)據(jù)文件之間的映射可以是規(guī)則的,或是不規(guī)則的,如果它的每一個網(wǎng)格單元都存在一個數(shù)據(jù)記錄的位置,則是規(guī)則的。反之,則是不規(guī)則的,即有些網(wǎng)格單元中沒有與之相關(guān)聯(lián)數(shù)據(jù)記錄的位置,設(shè)置為一空指針。在成像計算時,均通過地震數(shù)據(jù)的中間文件來獲取地震道數(shù)據(jù)和道頭信息。
中間文件的數(shù)據(jù)由文件頭和文件體組成,文件頭結(jié)構(gòu)如表1所示,文件體結(jié)構(gòu)如表2所示。
地震數(shù)據(jù)管理中間文件參數(shù)界面見圖9。
表1 中間文件的文件頭結(jié)構(gòu)
表2 中間文件的文件體結(jié)構(gòu)
圖9 中間文件參數(shù)界面圖Fig.9 The intermediate file parameter interface
3.1測試結(jié)果
選用哥倫比亞工區(qū)實際資料進行測試。地震數(shù)據(jù)格式是UNIX_IBM。從中取原始數(shù)據(jù)量36G, 674個CDP, 525條line,3673673個道。
硬件配置:HP集群,64位,在單節(jié)點上測試,每個節(jié)點有12個CPU(CPU型號是Intel(R) Xeon(R) CPU X5650 @ 2.67 GHz),每個CPU有6個核,內(nèi)存大小是49 453 068 kB。
采用文件方式管理數(shù)據(jù),數(shù)據(jù)存儲量取決于硬件硬盤大小。從加載數(shù)據(jù)到轉(zhuǎn)化完畢,歷時約12 s。加載后,數(shù)據(jù)瀏覽如圖10所示。轉(zhuǎn)化前和轉(zhuǎn)化后的地震道集對比顯示圖如圖11所示。
圖10 瀏覽地震道數(shù)據(jù)Fig.10 Browse the seismic data
圖11 轉(zhuǎn)化前和轉(zhuǎn)化后地震道集對比圖Fig.11 Before transforming and after the conversion of seismic gathers the comparison chart(a)轉(zhuǎn)化前的地震道集;(b)轉(zhuǎn)化后的地震道集
4結(jié)論
通過建立中間文件,保存原始地震數(shù)據(jù)格式,避免使用地震數(shù)據(jù)時手動轉(zhuǎn)化數(shù)據(jù)格式,減小用戶操作難度。合理將地震數(shù)據(jù)道頭中和成像計算有關(guān)的數(shù)據(jù)下載到中間文件,檢索數(shù)據(jù)時,不用從原始地震數(shù)據(jù)讀取,提高了數(shù)據(jù)檢索的效率。軟件界面設(shè)計人性化,代碼耦合度高。將轉(zhuǎn)化數(shù)據(jù)格式的功能封裝在代碼中,自動進行格式轉(zhuǎn)化,方便科研生產(chǎn)人員直接把原始地震數(shù)據(jù)在本地計算機上使用,為后續(xù)的去噪、校正、疊加、偏移等處理解釋工作,提供了數(shù)據(jù)基礎(chǔ)。
參考文獻:
[1]詹澤東,胥德平,吳海洋,等.深入解析SEGY格式地震數(shù)據(jù)轉(zhuǎn)化的精度問題[J].物探與化探,2011,35(6):851-854.
ZHAN Z D ,XU D P ,WU H Y ,et al.Deep analysis about accuracy problem for segy format conversion of seismic data[J].Geophysical & Geochemical exploration,2011,35(6):851-854.(In Chinese)
[2]SEG,Recommended Standards for Digital Tape Forams[OL].http://www.seg.org/.
[3]約翰P海斯.計算機結(jié)構(gòu)和組織[M].上海:上??萍嘉墨I出版社,1981.
JOHN P HAYES. Computer architecture and organization[M].Shanghai: Shanghai science and Technology Literature Press,1981. (In Chinese)
[4]美國電氣和電子工程師協(xié)會(IEEE).IEEE754-1985[S].1985.
American Institute of electrical and Electronics Engineers (IEEE).IEEE754-1985[S].1985. (In Chinese)
[5]美國電氣和電子工程師協(xié)會(IEEE).IEEE754-2008[S].2008.
American Institute of electrical and Electronics Engineers (IEEE).IEEE754-2008[S].2008. (In Chinese)
[6]IBM System/360 Principles of Operation[S].IBM Publication,1967.
[7]IBM System/370 Principles of Operation[S].IBM Publication,1975.
Research and implementation of SEGY seismic data format conversion automation
LIU Xu-yue, ZHOU wei, KONG Xiang-ning, HUANG jun
(Sinopec Geophysical Research Institute,Nanjing 211103,China)
Abstract:In order to avoid between computer systems with different architecture of the seismic data more manual data format conversion and shorten the time of seismic data processing, it is necessary to design and development of automatic SEGY format conversion software. Based on analyzing the characteristics of SEG-Y file format, the SEG-Y format data can be converted to PC format data through the establishment of the intermediate file and using the format field to store the original seismic data format as well as after data byte swapping and format conversion. The imaging and calculation of relevant data is downloaded to the intermediate file, convenient browsing and retrieval of data. Implementation of the seismic data read, browse and output function. The practical application shows that the software transformed seismic data, good results.
Key words:SEGY; data formats; automatic conversion
中圖分類號:P 631.4
文獻標志碼:A
DOI:10.3969/j.issn.1001-1749.2016.01.19
文章編號:1001-1749(2016)01-0125-06
作者簡介:劉旭躍(1985-),女,碩士,主要從事計算機應(yīng)用工作,E-mail:814979185@qq.com。
收稿日期:2015-01-21改回日期:2015-05-12