Exemplo n.º 1
0
    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 ) )
Exemplo n.º 2
0
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,)
Exemplo n.º 3
0
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, )
Exemplo n.º 4
0
    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 ) )
Exemplo n.º 5
0
            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)  
Exemplo n.º 6
0
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 +';')