Some bad shifting og seismogram for IBM floats

This commit is contained in:
cultpenguin
2005-05-10 16:41:35 +00:00
parent 354442f780
commit f3e0e86eb5
2 changed files with 28 additions and 23 deletions
+24 -19
View File
@@ -23,15 +23,15 @@ segy.verbose : Amount of verbose information to the scree
import struct
#pref_numeric_module='numarray' # FAST ON LARGE FILES
pref_numeric_module='Numeric'
pref_numeric_module='numarray' # FAST ON LARGE FILES
#pref_numeric_module='Numeric'
if (pref_numeric_module=='Numeric'):
# IMPORT SEPCIFIC FUNCTIONS FROM Numeric
print('SegyPY : Using Numeric module')
from Numeric import transpose
from Numeric import resize
from Numeric import reshape
from Numeric import zeros
from Numeric import arange
else:
# IMPORT SEPCIFIC FUNCTIONS FROM numarray
print('SegyPY : Using numarray module')
@@ -39,6 +39,8 @@ else:
from numarray import resize
from numarray import reshape
from numarray import zeros
from numarray import arange
from numarray import *
# SOME GLOBAL PARAMETERS
version=0.2
@@ -401,18 +403,19 @@ def readSegy(filename) :
printverbose("readSegy : ndummy_samples="+str(ndummy_samples),-1)
printverbose("readSegy : ntraces=" + str(ntraces) + " nsamples="+str(SH['ns']),2)
# GET TRACE
index=3200;
# GET TRACE
index=3600;
nd=(filesize-3600)/SH['bps']
# READ ALL SEGY TRACE HEADRES
SegyTraceHeaders = getAllSegyTraceHeaders(SH,data)
SegyTraceHeaders = getAllSegyTraceHeaders(SH,data)
printverbose("readSegy : reading segy data",2)
# READ ALL DATA EXCEPT FOR SEGY HEADER
#Data = zeros((SH['ns'],ntraces))
if (SH["DataSampleFormat"]==1):
printverbose("readSegy : Assuming DSF=1, IBM FLOATS",2)
printverbose("readSegy : THERE IS A BUG SHIFTING THE SEISMOGRAM FOR OBM FLOATS",-1)
Data1 = getValue(data,index,'ibm',endian,nd)
@@ -431,19 +434,17 @@ def readSegy(filename) :
else:
printverbose("readSegy : DSF=" + str(SH["DataSampleFormat"]) + ", NOT SUPORTED",2)
Data = Data1[0]
printverbose("readSegyFast : transposing",2)
Data=transpose(reshape(Data[0:(ntraces*(SH['ns']+ndummy_samples))],(ntraces,SH['ns']+ndummy_samples)))
Data = Data1[0]
printverbose("readSegy : - reshaping",2)
Data=reshape(Data,ntraces,SH['ns']+ndummy_samples)
printverbose("readSegy : - stripping header dummy data",2)
Data=Data[:,ndummy_samples:(SH['ns']+ndummy_samples)]
printverbose("readSegy : - transposing",2)
Data=transpose(Data)
ndummy_samples=60
# STRIP THE HEADER VALUES FROM THE DATA
#
Data=Data[ndummy_samples:(SH['ns']+ndummy_samples)][:]
printverbose("readSegy : read data",2)
@@ -544,9 +545,13 @@ def getValue(data,index,ctype='l',endian='>',number=1):
index_end=index+size*number
if (ctype=='ibm'):
# ASSUME IBM FLOAT DATA
# ASSUME IBM FLOAT DATA
Value = range(number)
for i in arange(number):
index=i*4
Value[i] = ibm2ieee2(data[index:index+4])
if Value[i]>100:
Value[i]=0
if Value[i]<-100:
Value[i]=0
else:
+4 -4
View File
@@ -5,11 +5,11 @@
import struct
import segypy
#filename='mini.sgy'
filename='mini.sgy'
#filename='lyngbytst1.sgy';
filename='data_IEEE.segy';
#filename='data_IBM_REV1.segy';
filename='data_IBM_REV0.segy';
#filename='data_IEEE.segy';
filename='data_IBM_REV1.segy';
#filename='data_IBM_REV0.segy';
#filename='data_1byteINT.segy';
#filename='data_2byteINT.segy';
#filename='data_4byteINT.segy';