劉旭躍, 周 巍, 孔祥寧, 黃 駿
(中國石化 石油物探技術研究院,南京 211103)
?
SEG-Y格式自動轉化軟件的研究與實現
劉旭躍, 周巍, 孔祥寧, 黃駿
(中國石化 石油物探技術研究院,南京 211103)
摘要:為避免不同體系架構下的計算機系統之間地震數據多次手動轉換數據格式,縮短地震數據處理時間,設計開發了SEGY格式自動轉化軟件。在分析SEG-Y文件格式特征的基礎上,通過建立中間文件,利用format字段存儲原始地震數據格式,經過數據字節交換和格式轉化,自動把SEG-Y格式數據轉換為PC格式數據。將與成像計算相關的數據下載到中間文件中,方便快捷瀏覽和檢索數據,實現了地震數據讀取、瀏覽和輸出的功能。經實際應用表明,該軟件轉化地震數據效果良好。
關鍵詞:SEGY; 數據格式; 自動轉化
0引言
在地質勘探與開發研究工作中,地震數據是最重要的研究對象。隨著地震勘探技術的發展,從野外采集的地震數據通過采集儀器直接轉換成按道排列的SEGY數據格式。地震資料采集器使用的都是Unix工作站,不能在PC機上直接觀察地震數據文件的道頭、振幅數據等信息。這兩種機器存儲的數據格式有很大的區別,必須把工作站格式的數據轉化成PC格式才能使用。
目前基于SEG-Y格式的地震數據處理解釋商業軟件層次不窮(CGG、landmark、Paradigm、Petrel等),為方便管理地震數據,大部分商業軟件和國內自主軟件都設計自己獨有的地震數據格式,基于知識產權、商業協議等各個方面的原因,作為一般的用戶很難了解它們的內部結構[1]。加載數據時首先應將外界的SEGY數據轉換成內部格式數據后再使用;輸出時又必需將內部格式轉換成SEGY數據,這樣才能和別的系統兼容,為以后的工作準備。這些軟件雖然提供了格式轉化的功能,但通常采用的是手動“一對一”方式進行兩種類型之間的數據格式轉換。在科研生產中,如果遇到多種格式的地震數據,每種數據都要分別選擇不同的功能按鈕進行格式轉換,當數據量比較大的時候,尤其是海量數據,轉換起來非常耗時,浪費了大量的人力物力,降低了工作效率。
這里介紹了格式自動轉化軟件的主要功能和系統結構,進行SEG-Y地震數據格式自動轉化的研究與實現,避免了手動多次進行數據格式轉化。采用motif和c語言編程,通過建立中間文件,選擇保存原始地震數據的重要數據,加快數據檢索。開發了道頭信息、道信息瀏覽的功能,方便用戶掌握數據情況,利于開展研究工作。
1研究方案
1.1主要功能
SEG-Y格式自動轉化軟件的主要功能包括讀取數據、瀏覽數據、輸出數據三個部分。
1.1.1讀取數據
SEG-Y標準規定,所有的二進制值都采用大端字節排序方式,即采用的是從高字節到低字節的尋址方式(大端法),而PC機采用的是從低字節到高字節的尋址方式(小端法)。鑒于工作站和PC機的數據編碼方式不同,所以首先要判斷運行程序的機器字節序,如果是小端法,需要把高低字節互換。
在地震數據使用時,經常用到的關鍵數據比較固定。由于原始地震數據量相對較大,為節省讀取時間,采用創建中間文件的方式,把原始地震數據里關鍵字段信息保存在中間文件中,這樣就不必每次讀取原始地震數據,通過直接讀取中間文件的內容獲得數據。中間文件和segy文件類似,也由文件頭和文件體組成。加載原始數據時,為避免多次轉化數據格式,在中間文件的頭文件中增加format字段,用來保存原始地震數據的格式。SEG-Y格式規定,在400 Byte二進制卷頭的3 225 Byte~3 226 Byte處,存儲的是數據格式碼。通常1代表工作站格式的IBM32位浮點, 2代表4 Byte定點等。但是這個數據是由處理員提供的,可能會出現錯誤。工作中,地震數據格式還會有PC格式的IBM浮點型,PC格式的IEEE浮點型。在創建中間文件時,我們在軟件界面上需要用戶重新選擇原始地震數據類型,然后把選擇的值賦給format,地震道道頭的格式和文件頭是一樣的,只需轉化高低位即可。地震道數據需要根據format值不同,采用不同的轉化方法,最后都轉化為PC格式的IEEE格式,讀取的地震道數據保存在全局動態數組中。
讀取數據流程圖如圖1所示。

圖1 讀取數據流程Fig.1 Reading data process
1.1.2瀏覽數據
用戶可以瀏覽文件頭信息,列出每道的樣點數、采樣率、起始時間或深度、總炮數等文件頭所有數據。選取前5個地震道數據,列出地震道頭信息,通過地震道順序號,可以檢測出地震數據前5道是否按道序排列。由于線號和道號等信息在文件中的位置不固定,所以可以根據數據來判斷線號等信息的位置。中間文件的文件頭數據列出采集數據的總體情況(如采樣點數、起始cdp、終止cdp等),中間文件的文件體列出的是具體每道數據的檢波點位置、炮點位置、檢波點高程、炮點高程等。
1.1.3輸出數據
當有些程序需要地震數據時,需輸出地震數據。由于在中間文件中保存了地震數據格式,這時自動從中間文件中找到format值,然后根據format值進行相應的數據格式轉化。這些操作封裝在代碼中,是個黑匣子,用戶不用操作,所有的讀取、轉化和輸出全部自動執行,地震數據以數組的形式傳遞出去。
1.2系統結構
系統開發采用數據訪問層、業務邏輯層和表示層的“高內聚、低耦合”開發方式。數據訪問層和業務邏輯層都寫在庫函數中,數據訪問層主要是地震數據文件I/O類,包括讀取函數,輸出函數,數據接口函數等;業務邏輯層是數據轉化類,主要是格式轉化函數;表示層是界面模板類,主要是對話框顯示。把對話框相同的基本功能用類模板封裝好,通過接口函數調用對話框類,系統結構圖如圖2所示。
1.3SEG-Y文件格式

圖2 系統結構圖Fig.2 The system structure diagram
地震數據一般以地震道為單位進行組織,采用SEG-Y文件格式存儲(SEG-Y格式是由SEG提出的標準磁帶數據格式之一[2])。標準SEG-Y文件一般包括三部分,①3 200 Byte 的EBCDIC文件頭,由40個卡組成,用來保存一些對地震數據體進行描述的信息;②400 Byte的二進制文件頭用來存儲描述SEG-Y文件的一些關鍵信息,包括SEG-Y文件的數據格式、采樣點數、采樣間隔、測量單位等一些信息,這些信息一般存儲在二進制文件頭的固定位置上;③實際的地震道,每條地震道都包含240 Byte的道頭信息和地震道數據。道頭數據中一般保存該地震道對應的線號、道號、采樣點數、大地坐標等信息,但一些關鍵的參數位置(如線號、道號)在道頭中的位置并不固定。地震道數據是對地震信號的波形按一定時間間隔Δt進行取樣,再將這一系列的離散振幅值以某種方式記錄下來。標準SEG-Y文件結構如圖3所示。

圖3 標準SEG-Y文件結構圖Fig.3 Standard SEG-Y file structure diagram
每個地震道記錄塊分布情況如圖4所示。

圖4 每道記錄塊結構Fig.4 Each short record block structure
SEGY文件存儲方式有工作站格式和微機(PC)格式。常見的地震數據格式包括工作站的4 Byte IBM浮點型、 工作站的4 Byte IEEE浮點型、工作站的4 Byte定點,工作站的2 Byte定點,PC的4 Byte IBM浮點型和PC的4 Byte IEEE浮點型。這里以常見地震數據格式為例說明,一個地震工區同一次處理的地震數據格式是唯一的。
2關鍵技術
原始的地震數據不能直接在PC機上應用,一般先將SEGY數據字節交換(也就是將數據內容正確提取),數據交換后,再將地震數據格式轉換為PC格式,以便后期的處理和解釋。本系統在字節交換和格式轉化方法上做了些改進。
2.1字節交換
標準SEG-Y 文件是工作站格式的,所有二進制值是大端字節排序方式。數據的高字節保存在內存的低地址中,數據的低字節保存在內存的高地址中。PC機采用的是小端模式,數據存放在內存中的位置剛好想反。高低址部分權值高,低地址部分權值低,和邏輯方法一致。以十六進制的0x02030405, 在計算機中需要用4 Byte來保存它, ‘02’、‘ 03’、‘ 04’、‘05’各占一個字節。按照人類的計數習慣,最左邊的‘02’,稱之為最高有效位(MSB,Most Significant Byte);最右邊的‘05’稱之為最低有效位(LSB, Least Significant Byte);在計算機中需要用4個字節來保存它,其中‘02’、‘ 03’、‘ 04’、 ‘05’各占一個字節。大端序的計算機保存這個數值時,按照從低地址到高地址的順序分別保存MSB到LSB四個字節,0x02030405的存儲情況如圖5所示。

MSB (->地址增長方向) LSB 02030405

圖5 大端序存儲情況圖
圖6小端序存儲情況圖
Fig.6The little endian storage situation map
小端序計算機的存儲如圖6所示。必須把數據進行高低位逐一交換,才能在PC機上使用SEGY地震數據,一般采用C語言的字節移位符的方法可以實現。假設原始位序列為data=01011001,data=(data<<4)|(data>>4),之后序列為1 0010 101;data=((data<<2)&0xcc)|((data>>2)&0x33), 之后序列為01100101。
2.2格式轉化
SEG-Y地震數據中,常見的格式有:4 Byte的IBM浮點型、4 Byte的IEEE浮點、4 Byte二進制補碼整型、2 Byte二進制補碼整型等。工作站格式的數據,通過字節交換后,轉化為小端式,PC機上浮點數的格式是IEEE浮點型,IBM格式的數據需要轉化為IEEE浮點型才能在PC機上使用。
IBM格式數據分為三部分:①符號位(sign);②指數部分(exp);③尾數部分(mant)。4 Byte的IBM格式數據有32 bit,符號位占1 bit,指數部分占7 bit、尾數部分占24 bit[6-7](圖7)。

signexpmant3130……2423……0
圖7IBM格式數據字節分布
Fig.7The IBM format data byte distribution
IBM浮點數格式的數值=
(-1)sign×(mant/224) ×16(exp-64)
(1)
IEEE格式數據也分為三部分:符號位(sign)、指數部分(exp)和尾數部分(mant)。共有32 bit,符號位占1bit,指數部分占8bit、尾數部分占23bit[4,5](圖8)。

signexpmant3130……2322……0
圖8IEEE格式數據字節分布
Fig.8The IEEE format data byte distribution
IEEE浮點數格式的數值=
(-1)sign×(mant/223) ×16(exp-127)
(2)
當指數部分為全“0”且尾數mant也為全“0”時,表示的數值為“0”,結合符號位s為“0”或“1”,有正零和負零之分。當指數部分exp為全“1”且尾數也為全“0”時,表示的數值為無窮大(∞),結合符號位sign為“0”或“1”,有+∞和-∞之分。在浮點數數值表示中,要除去指數部分用全“0”和全“1”表示零和無窮大的特殊情況,因此IBM的指數部分exp的取值范圍變為1~126,指數的偏移量不選65而選64,真正的指數部分范圍為-63~+64,數值范圍為(1/16) ×16-64~(1-1/223) ×1662。IEEE指數部分exp的取值范圍變為1~254,指數的偏移量不選128而選127,真正的指數部分為-126~+127,數值范圍為(1+1/223) ×2-127~(2-1/222) ×2127。
IBM浮點數格式轉換為IEEE浮點數格式的轉換方法如下[3]:
expIEEE=4expIBM-130
(3)
mantIEEE=2mantIBM-1
(4)
式中,expIBM、mantIBM分別表示4 Byte的IBM浮點數的指數和尾數部分;expIEEE、mantIEEE分別表示4 Byte的IEEE浮點數的指數和尾數部分。
其中1/16<=mantIBM<=1-1/223,若mantIBM<1/2,mantIEEE將溢出,必須調整。因為mantIBM>=1/16, mantIBM中為1的最高位是k:
expIEEE=(4expIBM-130)-(k-1)
(5)
mantIEEE=2kmantIBM-1
(6)
由于0<= expIBM<=126,-130<=4expIBM-130<=374。IBM浮點數以16為基底,浮點數的大小范圍(1/16)×16-64<=T<=(1-1/223)×1662大于IEEE浮點數。故只有當0<=4expIBM-130<=254,即32<= expIBM<=96時,IBM浮點數才能正確轉化為IEEE浮點數。而當expIBM<32時,轉換為IEEE格式浮點數結果為0;當expIBM>96時,轉化為IBM格式浮點數結果是無窮大。當mantIBM前3位為0時,expIBM=197,其IBM浮點數一樣可以轉化為IEEE浮點數。
3系統實現與應用
基于上述研究內容,設計并開發了SEG-Y格式自動轉化軟件。其中重要的兩部分是數據加載和數據檢索,數據加載器用于加載地震數據到本系統中,檢查源數據的道頭信息,將與成像計算有關的參數下載到中間文件中。數據檢索通過中間文件的format字段數據得知地震數據類型,獲取數據提供成像計算使用,可根據給定區域獲取相關數據,檢查感興趣的數據項等。該軟件應用在icluster地震成像軟件中管理數據效果良好,提高了數據處理效率。
中間文件存放記錄的順序和數目,可能不同與源數據文件,這是根據不同數據子集的要求,重新編排(排序或轉置),中間文件與源數據文件之間的映射可以是規則的,或是不規則的,如果它的每一個網格單元都存在一個數據記錄的位置,則是規則的。反之,則是不規則的,即有些網格單元中沒有與之相關聯數據記錄的位置,設置為一空指針。在成像計算時,均通過地震數據的中間文件來獲取地震道數據和道頭信息。
中間文件的數據由文件頭和文件體組成,文件頭結構如表1所示,文件體結構如表2所示。
地震數據管理中間文件參數界面見圖9。

表1 中間文件的文件頭結構

表2 中間文件的文件體結構

圖9 中間文件參數界面圖Fig.9 The intermediate file parameter interface
3.1測試結果
選用哥倫比亞工區實際資料進行測試。地震數據格式是UNIX_IBM。從中取原始數據量36G, 674個CDP, 525條line,3673673個道。
硬件配置:HP集群,64位,在單節點上測試,每個節點有12個CPU(CPU型號是Intel(R) Xeon(R) CPU X5650 @ 2.67 GHz),每個CPU有6個核,內存大小是49 453 068 kB。
采用文件方式管理數據,數據存儲量取決于硬件硬盤大小。從加載數據到轉化完畢,歷時約12 s。加載后,數據瀏覽如圖10所示。轉化前和轉化后的地震道集對比顯示圖如圖11所示。

圖10 瀏覽地震道數據Fig.10 Browse the seismic data

圖11 轉化前和轉化后地震道集對比圖Fig.11 Before transforming and after the conversion of seismic gathers the comparison chart(a)轉化前的地震道集;(b)轉化后的地震道集
4結論
通過建立中間文件,保存原始地震數據格式,避免使用地震數據時手動轉化數據格式,減小用戶操作難度。合理將地震數據道頭中和成像計算有關的數據下載到中間文件,檢索數據時,不用從原始地震數據讀取,提高了數據檢索的效率。軟件界面設計人性化,代碼耦合度高。將轉化數據格式的功能封裝在代碼中,自動進行格式轉化,方便科研生產人員直接把原始地震數據在本地計算機上使用,為后續的去噪、校正、疊加、偏移等處理解釋工作,提供了數據基礎。
參考文獻:
[1]詹澤東,胥德平,吳海洋,等.深入解析SEGY格式地震數據轉化的精度問題[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海斯.計算機結構和組織[M].上海:上海科技文獻出版社,1981.
JOHN P HAYES. Computer architecture and organization[M].Shanghai: Shanghai science and Technology Literature Press,1981. (In Chinese)
[4]美國電氣和電子工程師協會(IEEE).IEEE754-1985[S].1985.
American Institute of electrical and Electronics Engineers (IEEE).IEEE754-1985[S].1985. (In Chinese)
[5]美國電氣和電子工程師協會(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-),女,碩士,主要從事計算機應用工作,E-mail:814979185@qq.com。
收稿日期:2015-01-21改回日期:2015-05-12