mirror of
https://github.com/wassname/segpy.git
synced 2026-06-27 19:00:53 +08:00
Some bad shifting og seismogram for IBM floats
This commit is contained in:
@@ -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
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user