Beispiel #1
0
def initialise(file, memmap=False, scan=False):
    #intialise empty parameter dictionary
    #kwargs stands for keyword arguments
    kwargs = {}
    #load file
    if memmap == True:
        ns = np.fromfile(file, dtype=toolbox.su_header_dtype, count=1)['ns']
        sutype = toolbox.typeSU(ns)
        dataset = np.memmap(file, dtype=sutype)
    else:
        dataset = toolbox.read(file)

    #allocate stuff
    #~
    ns = kwargs['ns'] = dataset['ns'][0]
    dt = kwargs['dt'] = dataset['dt'][0] / 1e6

    #also add the time vector - it's useful later
    kwargs['times'] = np.arange(0, dt * ns, dt)

    dataset['trace'] /= np.amax(dataset['trace'])
    dataset['tracr'] = np.arange(dataset.size)

    kwargs['primary'] = 'cdp'
    kwargs['secondary'] = 'offset'
    kwargs['cdp'] = np.sort(np.unique(dataset['cdp']))
    kwargs['step'] = 1

    if scan:
        toolbox.scan(dataset)
    return dataset, kwargs
Beispiel #2
0
def initialise(file, memmap=False, scan=False):
        #intialise empty parameter dictionary
        #kwargs stands for keyword arguments
        kwargs = {}
        #load file
        if memmap == True:
                ns = np.fromfile(file, dtype=toolbox.su_header_dtype, count=1)['ns']
                sutype = toolbox.typeSU(ns)
                dataset = np.memmap(file, dtype=sutype)
        else:
                dataset = toolbox.read(file)
        
        
        
        #allocate stuff
        #~ 
        ns = kwargs['ns'] = dataset['ns'][0]
        dt = kwargs['dt'] = dataset['dt'][0]/1e6
        
                       
        #also add the time vector - it's useful later
        kwargs['times'] = np.arange(0, dt*ns, dt)
        
        dataset['trace'] /= np.amax(dataset['trace'])
        dataset['tracr'] = np.arange(dataset.size)
        
        kwargs['primary'] = 'cdp'
        kwargs['secondary'] = 'offset'
        kwargs['cdp'] = np.sort(np.unique(dataset['cdp']))
        kwargs['step'] = 1
        
        if scan:
                toolbox.scan(dataset)
        return dataset, kwargs
Beispiel #3
0
    x = ((panel["trace"] * scalar) + trace_centers).ravel()
    xlines = np.split(x, 284)
    ylines = np.split(y, 284)
    lines = [zip(xlines[a], ylines[a]) for a in range(len(xlines))]
    fig, ax = pylab.subplots()
    ax.fill_betweenx(y, offsets, x, where=(x > offsets), color="k")
    col1 = collections.LineCollection(lines)
    col1.set_color("k")
    ax.add_collection(col1, autolim=True)
    pylab.xlim([0, 284])
    pylab.ylim([0, 1500])
    ax.set_ylim(ax.get_ylim()[::-1])
    pylab.tight_layout()
    pylab.show()


file = "/home/sfletcher/Downloads/2d_land_data/2D_Land_data_2ms/Line_001.su"
data, params = toolbox.initialise(file)
dmap = np.memmap(file, dtype=toolbox.typeSU(1501), mode="r")
eps = np.unique(dmap["ep"])
for ep in eps[:1]:
    params["window"] = 500
    panel = dmap[dmap["ep"] == ep].copy()
    panel = toolbox.agc(panel, None, **params)
    func(panel)
    # t = Timer("""func(panel)""", setup="from __main__ import func; from __main__ import panel")
    # print t.timeit(100)


# 777.01802206
Beispiel #4
0
	return workspace
	
	
def scipy_style(wavelet, workspace):
	workspace['trace'] =  sp.convolve1d(workspace['trace'], wavelet, axis=-1)
	return workspace

def scipy_fft(wavelet, workspace):
	workspace['trace'] = np.apply_along_axis(lambda m: fftconvolve(m, wavelet, mode='same'), axis=-1, arr=workspace['trace'])
	return workspace
	
	

params = {}
wavelet = toolbox.ricker(60)
sutype = toolbox.typeSU(1000)


workspace1 = np.zeros(500, dtype=sutype)
workspace1['trace'][:,500] = 1
cProfile.run('numpy_style(wavelet, workspace1)')



workspace2 = np.zeros(500, dtype=sutype)
workspace2['trace'][:,500] = 1
cProfile.run('scipy_style(wavelet, workspace2)')



workspace3 = np.zeros(500, dtype=sutype)