胡斌
摘 要:本文主要主要對地震數據對存儲特點、存儲數據對格式簡要說明,提出了一種利用計算機編程快速讀取地震數據的方法。
【關鍵詞】計算機編程 讀取 地震數據
油氣資源的開發在國家發展中占有重要的地位,為了進一步的促進油田的生產穩定,往往需要在開采前進行地質情況探測。地震采集則是一種深入挖掘油田開采潛力的勘探手段,在地震勘探的過程中,往往會產生大量的采集數據,對于這些數據的存數方式十分重要的。本文主要主要對地震數據對存儲特點、存儲數據對格式簡要說明,提出了一種利用計算機編程快速讀取地震數據的方法。
1 地震數據的存儲特點
地震數據的存儲于我們一般所說的數據存儲不同,一方面,地震采集過程中,會產生十分龐大的采集數據,在一個區塊中采集數據就會產生上百個TB;另一方面,地震采集數據與油田開發有著極為緊密的聯系,因此其對于數據精度的要求高,并且為了區分與其他數據,地震數據往往有行業獨特的數據格式和標準。
1.1 地震數據的來源
地震數據主要來源于地震勘探過程,通常情況下,地震勘探主要包含了三個過程:野外采集過程、室內地震資料處理過程以及地震資料解釋三個階段。采集得到的是最為原始的地震數據,而資料處理過程中得到的是經過處理的地震數據,地震資料解釋階段往往數據較少。
野外采集過程中,勘探工作者往往會根據勘探計劃,將地震儀器放置在野外進行數據采集勘探,這一時期產生的勘探數據是多種多樣的,數量極為龐大,這些采集數據往往被存儲在地震磁帶之中,主要的地震數據包括有高程、坐標等。
在資料處理過程中,相關工作人員往往會根據計算機對原始的采集數據進行科學計算,繼而產生一些結果性的地震數據。
1.2 地震數據的類型
在地震勘探的三個過程中,各自會產生不同類型的地震數據。在野外采集過程中,通常采用微測井方法進行地表調查,所產生的地震數據包含有:原始數據盤、低降速帶解釋成果、圖形文件、施工設計、高程、坐標等不同的類型。在地震資料處理過程中,通常會根據不同的處理流程產生不同類型的數據類型,在地震資料的皆是過程中,解釋人員根據地質任務以及設計要求進行地震數據解釋,所產生的成果數據往往與上一個流程相差無幾。
2 地震數據的格式
地震數據的格式往往以特定的記錄方式記錄在磁帶上,地震數據的格式最初包括有十幾種的格式,但隨著計算機的迅速發展,現階段用于地震數據存儲的格式選擇往往只有SEG-D格式和SEG-Y格式兩種。通常情況下,SEG-D格式往往應用在野外數據采集過程,作為原始數據的格式,而SEG-Y格式則是地震資料處理過程中的特定存儲格式,作為一種數據交換的標準。
SEG-Y格式分為四個部分:第一部分是以3200個字節組成的數據塊,主要是有關磁帶記錄的輔助信息,第二部分是二進制文件頭400個字節組成的數據塊,記錄有采樣間隔、記錄長度及格式碼等重要參數,第三部分是地震道數據,在磁帶上每一道表現為一個記錄,第四部分是結束標記EOF或EOT。SEG-Y格式的道記錄分為兩部分,第一部分是地震道的道頭字,記錄了本道的有關信息、第二部分是地震道的樣點值。
3 通過計算機編程快速讀取地震數據的方法
SEG-Y文件通常由文件頭文件和數據體兩個部分組成,數據體是訪問和讀取的主體,其中包含了大量的地震數據,而頭文件是對文件的一種參數說明,給文件的讀取提供必要的信息。文件頭總長度分為字符型文件頭和二進制文件頭,數據體則是由多個數據道組成。
3.1 讀取文件頭
字符型文件頭的數據通常需要將其中的EBCDIC代碼轉換成ASCII代碼后就能夠正確顯示,因此常用的讀取方式就是建立兩種代碼的關系對應碼。而對于二進制文件頭的讀取則相對的復雜一些,這是因為二進制文件頭是由二進制數據構成,包括16位和32位兩種數據形式,在讀取的過程中要注意其存儲格式,工作站與計算機對文件頭的存儲迅速存在相反的情況。
對于二進制文件頭的讀取流程如下:讀取400個字節的文件信息進入內存——按照地址從低到高的順序存放——數據的存數位數——轉換字節數。例如讀取一個16位的數據,讀取第一個字節放入一個16位臨時整型數中,將整型數據左移8位,然后,再讀入下一字節, 將其放入另一個16位臨時整型數中,最后,將臨時 16位數按位或,得到16位微機格式的地震數據。
3.2 讀取地震數據
通常情況下,數據體中的數據道都是以工作站的存儲方式進行數據存儲,與微機中的存儲格式存在差異,因此,需要將導數據進行高地位轉換。SEG-Y道數據的常用記錄形式為IBM浮點型數據和IEEE浮點型兩種。以下簡要介紹IBM浮點型數據(32位)的存儲格式和讀取方法。
IBM浮點型數據分為三個部分:符號位占1位,指數部分占7位,尾數部分占24位。其讀取方法為:順序讀入道數據——4字節數據——數據轉換(同文件頭的數據轉換方式)——32位數右移31,得到符號位,讀取出來保存。32位數與 0x7f000000按位與,獲得浮點數指數部分,保存;將 32位數與0x00ffffff按位與,獲得浮點數位數部分,保存。
其中格式轉換可以通過類 conversion實現,conversion 的定義如下:
class conversion
{ short char2int( char * array) ; / /將工作站上的整型數轉換為微機格式
void int2char( short dat, char * array) ; / /將微機上的整型數轉換為工作站格式
float IBM2PC( char * array) ; / /將 IBM 浮點九轉換為微機格式浮點數
void PC2IBM( float dat, char * array) ; / /將微機上的浮點數轉換為 IBM 浮點數
}
參考文獻
[1]于盛.高性能集群系統在野外現場地震資料處理中的應用明[J].軟件導刊,2012,9(4):(73-75).
[2]王長國,俞華,周興松。地震處理系統的現狀及其發展[J].石油機械,2013,31(增刊):115-11.
[3]嚴哲,張學強,朱翔鵬.兩種數據類型的存儲特征分析及其轉換[J].工程地球物理學報,2007,4(1):43-45.
作者單位
欽州市地震監測預報中心 廣西壯族自治區欽州市 535000