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
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
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
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)