def test_do_convolve( self ): # Make a spike dataset [samp, trace, theta] data = np.zeros( (1000,100,10) ) data[500,50,:] = 1.0 dt = 0.001 duration = .2 f = (20,40,60) wavelets = ricker( duration, dt, f ) con = do_convolve( wavelets, data ) truth = np.zeros( (1000,100,10,3) ) for i in range(10): truth[:wavelets.shape[0], 50, i, :] += wavelets truth = np.roll( truth, 401, axis=0 ) self.assertTrue( np.allclose( truth, con ) )
def run_script(args): # ## Make a new string buffer # in_buf = StringIO.StringIO() # ## Write the decoded string into the buffer # buf.write(base64.b64decode(args.wireframe)) # ## Move to the start of the buffer # in_buf.seek(0) ## Open the image in PIL #image = Image.open(buf) processed_data = image_segment(args.wireframe) #plt.imshow(processed_data) #image = get_figure_data() dt = .01 t = 1.0 f= 1. wave = ricker(t,dt,f) seismic = [np.convolve(wave, i, mode='same') for i in np.transpose(processed_data)] plt.imshow(seismic) image = get_figure_data() return (image,)
def run_script(args): # ## Make a new string buffer # in_buf = StringIO.StringIO() # ## Write the decoded string into the buffer # buf.write(base64.b64decode(args.wireframe)) # ## Move to the start of the buffer # in_buf.seek(0) ## Open the image in PIL #image = Image.open(buf) processed_data = image_segment(args.wireframe) #plt.imshow(processed_data) #image = get_figure_data() dt = .01 t = 1.0 f = 1. wave = ricker(t, dt, f) seismic = [ np.convolve(wave, i, mode='same') for i in np.transpose(processed_data) ] plt.imshow(seismic) image = get_figure_data() return (image, )
def test_wavelet(self): # Make a dipping reflectivity field data = np.zeros( ( 150,100 ) ) data[0,:] = np.arange( 100 ) / 10.0 dips = np.arange( 0,100,2) dips = np.concatenate( [dips, dips[::-1] ] ) window_size = 10 freq = 20.0 duration = .2 wavelet = ricker( window_size, 1, freq ) for i in range( dips.size ): data[:,i]= np.convolve( wavelet, np.roll( data[:,i], dips[i] ), mode = 'same' ) stepout=1 maxlag=2 dip = dipsteer( data, window_size, stepout=stepout, maxlag=maxlag, overlap=0.5 ) undipped = np.zeros( dips.shape ) for i in range ( dips.size ): undipped[i] = ( dip[dips[i],i] ) check = undipped[ maxlag*stepout:-maxlag*stepout ] test = np.zeros( check.shape ) test[0 : test.size/2 -1] = -2.0 test[ (test.size/2) - 1 ] = -1 test[(test.size/2) ] = 1 test[ (test.size/2)+1 : ] = 2 """fig = pl.figure() pl.imshow( dip ) fig.show() fig2 = pl.figure() pl.imshow( data) fig2.show()""" self.assertTrue( np.allclose( test, check ) )
tick.label.set_fontsize(fs) for tick in axarr[1,p].yaxis.get_major_ticks(): tick.label.set_fontsize(fs) #plot horizontal green line on model image, and steady state axarr[0,p].axhline(y=t, alpha=0.5, lw=2, color = 'g') fig.tight_layout() return get_figure_data() if __name__ == '__main__': dt =0.001 gain = 1 temp = ricker(0.256,dt,25) ntraces=50 data =np.zeros((temp.shape[0],ntraces)) for i in range(ntraces): temp = ricker(0.256,dt,25+10*i) data[:,i] = temp wiggle(data,dt,skipt=1,gain=gain)
from agilegeo.wavelet import ricker import numpy as np import json outfile = 'www/seismic.seis' dt = .001 f1 = 15.0 f2 = 150.0 wavelet = ricker(0.2,dt, 25) reflect = np.random.randn(1000) seis = np.convolve(wavelet, reflect, mode='same') z = np.linspace(1000, 6000, seis.size) j_dict = {'z':z.tolist(), 'seis':seis.tolist()} j_out = json.dumps(j_dict) with open(outfile, 'w') as output: output.write('var seisData =' + j_out +';')