本發(fā)明涉及到地震數(shù)據(jù)的壓縮技術(shù),特別是一種時(shí)變因子壓縮方法。
背景技術(shù):
隨著石油勘探的不斷深入,地震勘探正向多維、多分量、多參數(shù)和高分辨等方向發(fā)展,使得地震勘探數(shù)據(jù)持續(xù)膨脹。因此,在采集到海量觀測(cè)數(shù)據(jù)之后,如何對(duì)其進(jìn)行有效的傳送和存取,將直接影響這些數(shù)據(jù)被進(jìn)一步處理、利用的效果。常規(guī)數(shù)據(jù)存儲(chǔ)是32位浮點(diǎn)格式存儲(chǔ),這會(huì)產(chǎn)生巨大的數(shù)據(jù)量。常規(guī)的壓縮方法是將32位浮點(diǎn)格式轉(zhuǎn)化為8位整型的存儲(chǔ)格式。但是常規(guī)的數(shù)據(jù)轉(zhuǎn)存格式是對(duì)單道地震數(shù)據(jù)進(jìn)行處理,這樣在轉(zhuǎn)存的過(guò)程中大大降低存儲(chǔ)精度。為此我們發(fā)明了一種時(shí)變因子壓縮方法,解決了以上技術(shù)問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供了一種地震數(shù)據(jù)的高精度壓縮方法,可以將野外采集的原始32位浮點(diǎn)存儲(chǔ)格式的數(shù)據(jù)在基本不降低數(shù)據(jù)精度的前提下,應(yīng)用時(shí)變的比例因子,存儲(chǔ)成8位整型數(shù)據(jù),可以將數(shù)據(jù)壓縮到原來(lái)的四分之一。
本發(fā)明的目的可通過(guò)如下技術(shù)措施來(lái)實(shí)現(xiàn):時(shí)變因子壓縮方法,該時(shí)變因子壓縮方法包括:步驟1,對(duì)于每一個(gè)地震道,確定一定的取樣長(zhǎng)度為計(jì)算時(shí)窗;步驟2,在該時(shí)窗內(nèi)計(jì)算樣點(diǎn)值的最大值作為該時(shí)窗內(nèi)的比例因子;步驟3,將該時(shí)窗內(nèi)的所有樣點(diǎn)值除以該時(shí)窗的比例因子,再乘以27,然后取整;步驟4,將從新計(jì)算的樣點(diǎn)值存儲(chǔ)為8位整型數(shù)據(jù),并將每個(gè)時(shí)窗的比例因子存儲(chǔ)到道頭中,完成數(shù)據(jù)的壓縮過(guò)程。
本發(fā)明的目的還可通過(guò)如下技術(shù)措施來(lái)實(shí)現(xiàn):
該時(shí)變因子壓縮方法還包括,在步驟1之前,以道為單位讀取32位單精度浮點(diǎn)儲(chǔ)存格式的炮集地震數(shù)據(jù)。
在步驟1中,對(duì)每一個(gè)地震道選取樣點(diǎn)數(shù)100為計(jì)算時(shí)窗長(zhǎng)度,即每100個(gè)樣點(diǎn)值做一個(gè)計(jì)算時(shí)窗。
在步驟2中,在每個(gè)10個(gè)樣點(diǎn)的計(jì)算時(shí)窗內(nèi)取最大值作為計(jì)算因子,得到每個(gè)計(jì)算時(shí)窗內(nèi)的計(jì)算因子en,計(jì)算公式為:
en=max(|f(x)|)
式中f(x)為時(shí)間域函數(shù)n為采樣點(diǎn)數(shù)即時(shí)窗長(zhǎng)度。
在步驟3中,按照如下公式對(duì)時(shí)窗內(nèi)的每個(gè)樣點(diǎn)值進(jìn)行計(jì)算,
其中x為壓縮后的樣點(diǎn)值,m為壓縮前的樣點(diǎn)值,e為計(jì)算算子,n為存儲(chǔ)格式的位數(shù);在存儲(chǔ)格式為8位整型時(shí),n取8。
該時(shí)變因子壓縮方法還包括,在步驟4之后,逆運(yùn)算步驟3至步驟4,重構(gòu)解壓后的地震數(shù)據(jù)。
本發(fā)明中的時(shí)變因子壓縮方法,是在基本不降低數(shù)據(jù)精度的前提下,將數(shù)據(jù)進(jìn)行壓縮,提高數(shù)據(jù)的處理效率??梢詫⒚康赖卣饠?shù)據(jù)在一定的時(shí)窗內(nèi)取一個(gè)比例因子,然后通過(guò)比例因子將32位浮點(diǎn)存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)存為8位存儲(chǔ)的數(shù)據(jù)格式。這個(gè)方式可以大大壓縮數(shù)據(jù)量的大小,一般可以壓縮到原始數(shù)據(jù)的四分之一左右。并且通過(guò)時(shí)變因子的方式,可以縮小所取數(shù)據(jù)的動(dòng)態(tài)范圍,提高壓縮后的數(shù)據(jù)精度。通過(guò)該方法可以提高常規(guī)轉(zhuǎn)存儲(chǔ)格式方法的精度,基本不會(huì)降低原始數(shù)據(jù)的精度。并且通過(guò)壓縮后,數(shù)據(jù)量可以得到有效壓縮,可以大大的提高數(shù)據(jù)處理的效率。
附圖說(shuō)明
圖1為本發(fā)明的時(shí)變因子壓縮方法的-具體實(shí)施流程圖;
圖2為本發(fā)明的-具體實(shí)施例中樣點(diǎn)值具體計(jì)算過(guò)程圖;
圖3為本發(fā)明的-具體實(shí)施例中壓縮效果對(duì)比圖。
具體實(shí)施方式
為使本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉出較佳實(shí)施例,并配合附圖所示,作詳細(xì)說(shuō)明如下。
如圖1所示,圖1為本發(fā)明的時(shí)變因子壓縮方法的流程圖。
在步驟101,以道為單位讀取32位單精度浮點(diǎn)儲(chǔ)存格式的炮集地震數(shù)據(jù)。
在步驟102,對(duì)于每一個(gè)地震道,首先確定一定的取樣長(zhǎng)度為計(jì)算時(shí)窗。在一實(shí)施例中,對(duì)每一個(gè)地震道選取樣點(diǎn)數(shù)100為計(jì)算時(shí)窗長(zhǎng)度。即每100個(gè)樣點(diǎn)值做一個(gè)計(jì)算時(shí)窗。
在步驟103,在該時(shí)窗內(nèi)計(jì)算樣點(diǎn)值的最大值作為該時(shí)窗內(nèi)的比例因子。在一實(shí)施例中,在每個(gè)10個(gè)樣點(diǎn)的計(jì)算時(shí)窗內(nèi)取最大值作為計(jì)算因子,得到每個(gè)計(jì)算時(shí)窗內(nèi)的計(jì)算因子en,計(jì)算公式為:
en=max(|f(x)|)
式中f(x)為時(shí)間域函數(shù)n為采樣點(diǎn)數(shù)即時(shí)窗長(zhǎng)度。
如圖2所示,為十個(gè)樣點(diǎn)值的具體計(jì)算過(guò)程。第一列為32位浮點(diǎn)存儲(chǔ)的原始數(shù)值,最大值是5.475982(圖2第一列),它即是比例因子。
在步驟104,將該時(shí)窗內(nèi)的所有樣點(diǎn)值除以該時(shí)窗的比例因子,再乘以27,然后取整。
按照如下公式對(duì)時(shí)窗內(nèi)的每個(gè)樣點(diǎn)值進(jìn)行計(jì)算,
其中x為壓縮后的樣點(diǎn)值,m為壓縮前的樣點(diǎn)值,e為計(jì)算算子,n為存儲(chǔ)格式的位數(shù);
在本例中存儲(chǔ)格式為8位整型,所以n取8。如圖2所示,第三列將第二列數(shù)值乘以28-1即127,然后對(duì)第三列數(shù)值取整,得到第四列數(shù)值。然后將第四列數(shù)值按照8位整型的格式進(jìn)行存儲(chǔ)。完成壓縮過(guò)程。
在步驟105,將從新計(jì)算的樣點(diǎn)值存儲(chǔ)為8位整型數(shù)據(jù),并將每個(gè)時(shí)窗的比例因子存儲(chǔ)到道頭中,完成數(shù)據(jù)的壓縮過(guò)程。在一實(shí)施例中,將步驟104中第四列數(shù)值按照8位整型的格式進(jìn)行存儲(chǔ)。完成壓縮過(guò)程。
在步驟106,逆運(yùn)算104至105的步驟,重構(gòu)解壓后的地震數(shù)據(jù)。如圖3所示,為壓縮前和重構(gòu)后的地震單炮記錄,以及二者的差值。從圖中可以看出,壓縮重構(gòu)后視覺(jué)上與原始單炮沒(méi)有明顯區(qū)別,從差值中可以看出二者的差值也較小。所以,可以適用于海量數(shù)據(jù)的壓縮處理,提高處理的效率。
通過(guò)本發(fā)明的時(shí)變比例因子壓縮方法,可以將地震道分成等間隔的計(jì)算時(shí)窗,每個(gè)時(shí)窗取一個(gè)比例因子,完成時(shí)變比例因子的壓縮,從而可以提高數(shù)據(jù)轉(zhuǎn)存的精度,并且可以同樣對(duì)數(shù)據(jù)進(jìn)行壓縮,提高處理的效率。