''' Description: henggao_note version: v1.0.0 Date: 2022-08-08 18:04:47 LastEditors: henggao LastEditTime: 2022-09-14 18:59:39 ''' import matplotlib.pyplot as plt import segyio # demo1 # # segyfile = '.\data\LX_SEGY005.segy' # segyfile = '.\data\LX_SEGY2.segy' # f = segyio.open(segyfile, ignore_geometry=True) # clip = 1e+2 # vmin, vmax = -clip, clip # # Figure # figsize=(20, 20) # fig, axs = plt.subplots(nrows=1, ncols=1, figsize=figsize, facecolor='w', edgecolor='k', # squeeze=False, # sharex=True) # axs = axs.ravel() # im = axs[0].imshow(f.trace.raw[0:800].T, cmap=plt.cm.seismic, vmin=vmin, vmax=vmax) # plt.show() # demo2 # with open(".\data\LX_SEGY005.segy",'rb+') as f: # i = 0 # for line in f: # i+=1 # print("line"+str(i),line) # with open(".\data\LX_SEGY005.segy",'rb') as f: # print(f.readlines()) # demo3 with segyio.open(".\data\LX_SEGY005.segy") as f: # with segyio.open(".\data\LX_SEGY2.segy") as f: # print(f.format) # 4-byte IBM float # print(f.ilines) # print(f.header[0]) #道头 # print(f.tracecount) # print(len(f.trace[0])) print(f.trace[1]) # print(len(f.ilines)) # print(len(f.xlines)) # demo4 # with open(".\data\demo.txt",'r',c) as f: # print(f.readlines()) # f = open(".\data\LX_SEGY005.segy",'rb+') # print(f.readlines()) # segyio.open(f) as f1: # f1 = segyio.open(".\data\LX_SEGY2.segy") # print(f1) # print(f1.ilines) # print(f1.trace[100]) # print(f1.trace[100][1800]) # print(f1.trace[500][1200]) # i = 800 # list_tmp = [] # for i in range(0,2000): # i+=1 # list_tmp.append(f1.trace[100][i]) # # list_tmp.append(abs(f1.trace[100][i])) # print(list_tmp.sort()) # print(list_tmp) # with open(".\data\LX_SEGY2.segy",'rb+') as f: # with open(".\data\LX_SEGY005.segy",'rb+') as f: # print(f.read()) # print(f.read().decode()) # demo4 # import matplotlib.pyplot as mp # import numpy as np # import sys # import struct # import binascii # fileName = "BAOFU_amp.segy" # nTrace = 4 # nSample = 3001 # fSegy = open(fileName,"rb") # fSegyHeader = {'tracr':[5,8] ,'ep':[17,20] , 'cdp':[21,24] , 'offset':[37,40], # 'gelev':[41,44] , 'selev': [45,48] , 'sdepth':[49,52], 'scalel':[69,70], # 'scalco':[71,72], 'sx':[73,76] , 'sy':[77,80] , 'gx':[81,84] , 'gy':[85,88]} # for iTrace in range(nTrace): # fSegy.seek(240*iTrace+3600+nSample*4*iTrace,0) # 每一道都跳过240字节道头 # traceHeader = fSegy.read(240) # for key in fSegyHeader.keys(): # tempValue = traceHeader[fSegyHeader[key][0]:fSegyHeader[key][1]] # hexValue = tempValue.hex() # decValue = int(hexValue,16) # print(key,decValue) #demo 5 # code for read IBM segy format seismic data files # import matplotlib.pyplot as mp # import numpy as np # import sys # import struct # import binascii # def ibm2ieee(ibm): # if ibm == 0: # return 0.0 # sign = ibm >> 31 & 0x01 # exponent = ibm >> 24 & 0x7f # mantissa = (ibm & 0x00ffffff) / float(pow(2, 24)) # return (1 - 2 * sign) * mantissa * pow(16, exponent - 64) # fileName = ".\data\LX_SEGY2.segy" # nTrace = 241 # nSample = 2001 # fSegy = open(fileName,"rb") # print(fSegy) # print(type(fSegy)) # data = np.zeros((nSample,nTrace)) # fSegy.seek(3600,0) # 跳过3600字节卷头 # for iTrace in range(nTrace): # fSegy.seek(240,1) # 每一道都跳过240字节道头 # for iSample in range(nSample): # tempValue = fSegy.read(4) # hexValue = tempValue.hex() # decValue = int(hexValue,16) # unintValue = struct.unpack('>L',struct.pack('>I', decValue))[0] # < > 用于控制大小端转换 # floatValue = ibm2ieee(unintValue) # data[iSample][iTrace] = floatValue # fSegy.close() # print(data) # mp.matshow(data, cmap=mp.cm.gray) # mp.show() # fileName = ".\data\LX_SEGY005.segy" # nTrace = 1 # nSample = 783 # fSegy = open(fileName,"rb") # # print(fSegy) # print(type(fSegy)) # print(type(fSegy.read()))