Esempio n. 1
0
File: pot.py Progetto: jcapriot/src
def cliptogetherK(plot,file1,file2,title1,title2,axis,custom,par):

    Flow(plot+'-all',[file1,file2],
         '''
         cat axis=3 space=n ${SOURCES[1]} |
         byte gainpanel=a pclip=100|
         put label1=%(lkz)s label2=%(lkx)s
             unit1=%(ukz)s unit2=%(lkx)s
             o1=%(okz)f d1=%(dkz)f o2=%(okx)f d2=%(dkx)f
         ''' %par)



    if(axis==1):
        if('ys' not in par): par['ys']=0.75
        if('xs' not in par): par['xs']=0.75
        if('xc' not in par): par['xc']=-8.25
        Plot(file1,plot+'-all','window n3=1 f3=0 |' + fdmod.cgrey(custom+' title=%s'%title1,par))
        Plot(file2,plot+'-all','window n3=1 f3=1 |' + fdmod.cgrey(custom+' title=%s label1=  unit1= '%title2,par))
        pplot.p1x2(plot,file1,file2,par['ys'],par['xs'],par['xc'])
    else:
        if('ys' not in par): par['ys']=.75
        if('xs' not in par): par['xs']=.75
        if('xc' not in par): par['xc']=-10
        Plot(file1,plot+'-all','window n3=1 f3=1 |' + fdmod.cgrey(custom+' title=%s wantaxis2=n label2= unit2='%title1,par))
        Plot(file2,plot+'-all','window n3=1 f3=0 |' + fdmod.cgrey(custom+' title=%s '%title2,par))
        p2x1(plot,file1,file2,par['ys'],par['xs'],par['xc'])
Esempio n. 2
0
def plots(par):
    pplot.p3x2(par['prefix'] + 'iCCall', 'migCC-SSF', 'migCC-PSC', 'migCC-FFD',
               'migCC-F15', 'migCC-F45', 'migCC-F60', 0.3, 0.3, -8, -12)
    pplot.p3x2(par['prefix'] + 'iRCall', 'migRC-SSF', 'migRC-PSC', 'migRC-FFD',
               'migRC-F15', 'migRC-F45', 'migRC-F60', 0.3, 0.3, -10, -12)

    Result(par['prefix'] + 'icomp', ['imgCC', 'migCC-FFD', 'migCC-F60'],
           'Movie')
    Result(par['prefix'] + 'imgCC', ['imgCC', 'cos'], 'Overlay')

    Plot('imgCC', 'window | transp |' + fdmod.cgrey('pclip=100', par))
    Plot('imgRC', 'migCC-FFD',
         '         transp |' + fdmod.cgrey('pclip=100', par))
    Plot('imgRC-ovl', ['imgRC', 'cos'], 'Overlay')
    pplot.p2x1(par['prefix'] + 'CCvsRC', 'imgRC-ovl', 'imgCC', 0.5, 0.5, -9)
Esempio n. 3
0
 def cgrey(self,custom,scalar=None,horizontal=True):
   '''
   This is equivalent to fdmod.cgrey('',par) 
   scalar:  horizontal scalar for the figure space
   '''
   self._scale(scalar,horizontal)
   return fdmod.cgrey(custom,self.par)
Esempio n. 4
0
def simulateddata(sdat,rdat,slo,sd,ss,par):

    # single reflector
    par['kxref']=50
    par['lxref']=par['nximg']-par['kxref']
    par['kzref']=par['nzimg']-par['nzpad']/par['jzimg']-10
    Flow('ref',None,
         '''
         spike nsp=1 mag=1
         n1=%(nximg)d d1=%(dximg)g o1=%(oximg)g k1=%(kxref)d l1=%(lxref)d
         n2=%(nzimg)d d2=%(dzimg)g o2=%(ozimg)g k2=%(kzref)d |
         smooth rect1=25 repeat=3 |
         spray axis=2 n=1 o=0 d=1 |
         put label1=x label2=y label3=z
         ''' % par )
    Plot('ref','window | transp | smooth rect1=3 |'
         + fdmod.cgrey('pclip=100',par))
    Result('ref',['ref',ss],'Overlay')

    # source wavelet
    par['frq']=5
    par['kt']=50
    Flow('wvl',None,
         '''
         spike nsp=1 mag=1
         n1=%(nt)d d1=%(dt)g o1=0   k1=%(kt)d |
         ricker1 frequency=%(frq)g |
         scale axis=123 |
         fft1 |
         window squeeze=n n1=%(nw)d min1=%(ow)g
         ''' % par)

    # source data on the surface
    for iexp in range(par['ns']):
        etag = "-e%03d" % iexp

        xsou = par['os'] + (par['fs'] + iexp * par['js']) * par['ds']
        isou = (xsou-par['oximg'])/par['dximg']
        Flow('spk'+etag,'wvl',
             '''
             pad beg2=%d n2out=%d |
             put label1=w label2=x label3=y o2=%g d2=%g |
             transp memsize=250 plane=12 |
             transp memsize=250 plane=23
             ''' % (isou,
                    par['nximg'],
                    par['oximg'],
                    par['dximg'],) )
    Flow('spk',
         ['spk-e%03d'  % x for x in range(par['ns'])],
         'cat space=n axis=4 ${SOURCES[1:%d]}'%par['ns'])

    # datumed source data
    zomig.Cdtone3(sdat,'spk',sd,par)
    Result(sdat,fdmod.fgrey('',par))

    # datumed receiver data
    spmig.modelPW3(rdat,slo,sdat,'ref',par)
    Result(rdat,fdmod.fgrey('',par))
Esempio n. 5
0
def debug(par):
    proj = Project()
    proj.Program('SICt.x', Split('SICt.c intutil.c'))

    Flow(
        'k1', ['qs', 'qr'], '''
         sic ur=${SOURCES[1]} nbuf=500 verb=y
         oa=%(oa)g na=%(na)d da=%(da)g
         nl=%(nl)d dl=%(dl)g
         sig=%(sig)g
         ''' % par)

    Flow(
        'k2', ['ps', 'pr'], '''
         sic3d
         ur=${SOURCES[1]} verb=y
         oanga=%(oanga)g nanga=%(nanga)d danga=%(danga)g
         oangb=%(oangb)g nangb=%(nangb)d dangb=%(dangb)g
         nl=%(nl)d dl=%(dl)g
         sig=%(sig)g
         ''' % par)
    Flow(
        'k3', ['qs', 'qr', 'SICt.x'], '''
         ./SICt.x
         ur=${SOURCES[1]} verb=y
         oanga=%(oanga)g nanga=%(nanga)d danga=%(danga)g
         oangb=%(oangb)g nangb=%(nangb)d dangb=%(dangb)g
         nl=%(nl)d dl=%(dl)g
         sig=%(sig)g
         ''' % par)
    Flow(
        'k4', ['qs', 'qr', 'SICt.x'], '''
         ./SICt.x
         ur=${SOURCES[1]} verb=y
         oa=%(oa)g na=%(na)d da=%(da)g
         nl=%(nl)d dl=%(dl)g
         sig=%(sig)g
         ''' % par)

    Plot('k1', 'transp |' + fdmod.cgrey('pclip=100', par))
    Plot('k2', fdmod.cgrey('pclip=100', par))
    Plot('k3', 'transp |' + fdmod.cgrey('pclip=100', par))
    Plot('k4', 'transp |' + fdmod.cgrey('pclip=100', par))

    for id in ('4', '3'):
        Result('k' + id, ['k' + id, 'ss', 'sx'], 'Overlay')
Esempio n. 6
0
def test(par):

    for i in ('s', 'r'):
        Flow('v' + i, 'u' + i, 'window n3=1 f3=400')
        Result('v' + i, fdmod.cgrey('', par))

        Flow(
            'k' + i, 'f' + i, '''
               lstk verb=y
               oa=%(oa)d na=%(na)d da=%(da)g
               nl=%(nl)d dl=%(dl)g sig=%g
               ''' % par)
        Result('k' + i, fdmod.dgrey('gainpanel=a pclip=100', par))

        jx = 20
        Result(
            'k' + i + 'all', 'k' + i, '''
               window j2=%d |
               transp plane=23 |
               put n3=1 n2=%d |
               grey pclip=100
               ''' % (jx, par['nx'] / 2 / jx * na))

        Flow('t' + i, 'k' + i,
             'byte gainpanel=a pclip=100 | put label1=x label2=t label3=a')

        Result(
            'ff', 'fs fr',
            'cat axis=3 space=n ${SOURCES[1]} | transp | grey pclip=100 gainpanel=e'
        )
        Result(
            'tt', 'ts tr', '''
               cat axis=3 space=n ${SOURCES[1]} |
               window j1=10 |
               transp plane=12 |
               transp plane=23 |
               grey title=""
               ''')

        #        for i in ('s','r'):
        #            Flow(['t'+i+'plt','t'+i+'bar'],'k'+i,'byte bar=${TARGETS[1]} gainpanel=a pclip=99.9')
        #            for k in range(20):
        #                Result('t'+i+'plt'+str(k),['t'+i+'plt','t'+i+'bar'],
        #                       'window n1=1 f1=%d | transp |' % (20*k) +
        #                       'grey title="" screenratio=0.2 screenht=3 label2=x unit2=m label1=p unit1="#" ')

        Flow('fi', 'fs fr', 'add mode=p ${SOURCES[1]}')
        Flow(
            'ki', 'ks kr', '''
             add mode=p ${SOURCES[1]} |
             transp plane=23 memsize=1000 |
             stack
             ''')

        Result('fi', fdmod.dgrey('', par))
        Result('ki', fdmod.dgrey('', par))
Esempio n. 7
0
def stereo2d(par):
    # 2D stereographic IC
    Flow(
        'jj', ['qs', 'qr'], '''
         sic ur=${SOURCES[1]} nbuf=500 verb=y
         oa=%(oa)g na=%(na)d da=%(da)g
         nl=%(nl)d dl=%(dl)g
         sig=%(sig)g
         ''' % par)
    Plot('jj', 'transp | ' + fdmod.cgrey('pclip=99.9', par))
    Result('jj', ['jj', 'jj', 'ss', 'sx'], 'Overlay')
Esempio n. 8
0
File: wefd.py Progetto: jcapriot/src
def eimage(plot, imag, clip, par):
    print(clip)
    title = ['pp', 'ps', 'sp', 'ss']
    for i in range(4):
        if (i != 0):
            flag = ' wantaxis2=n'
        else:
            flag = ' wantaxis2=y'

        Flow([plot + '_plt' + str(i), plot + '_bar' + str(i)], imag,
             'scale axis=123 | byte bar=${TARGETS[1]} gainpanel=a pclip=%g' %
             clip[i])

        Plot(
            plot + str(i), [plot + '_plt' + str(i), plot + '_bar' + str(i)],
            'window n3=1 f3=%d bar=${SOURCES[1]} |' % i +
            fdmod.cgrey(flag, par))
        Result(
            plot + str(i), [plot + '_plt' + str(i), plot + '_bar' + str(i)],
            'window n3=1 f3=%d bar=${SOURCES[1]} |' % i +
            fdmod.cgrey(flag + ' wantaxis2=y title=%s' % (title[i]), par))
Esempio n. 9
0
def model(vp, vs, rx, epsilon, delta, nu, par):
    label = ''
    barattr = ''' xll=2 yll=1.3
         wantscalebar=y bartype=h
         wherebartic=top wherebarlabel=top barlabelsz=8
         labelsz=8 color=j'''
    Result(
        vp,
        fdmod.cgrey('bias=1.6 min1=.5  barlabel="V\_P0\^ (km/s)" ' + barattr,
                    par))
    Result(
        vs,
        fdmod.cgrey('bias=0.0 min1=.5  barlabel="V\_S0\^ (km/s)" ' + barattr,
                    par))
    Result(
        rx,
        fdmod.cgrey(
            'bias=1.72 min1=.5 barlabel="\s140 \F9 r \F4 (g/cm\^3) " ' +
            barattr, par))
    Result(
        epsilon,
        fdmod.cgrey(
            'bias=.1 min1=.5 barlabel="\s150 \F9 e " formatbar=%4.2f' +
            barattr, par))
    Result(
        delta,
        fdmod.cgrey(
            'bias=0.1 min1=.5  barlabel="\s150 \F9 d " formatbar=%4.2f' +
            barattr, par))
    Result(
        nu,
        fdmod.cgrey(
            'bias=0 color=e allpos=n min1=.5 formatbar=%3.0f barlabel="\s150 \F10 n \s100 (\^o\_)" '
            + barattr + ' color=e', par))
Esempio n. 10
0
def importvels(par):
    # prepare velocity
    sigsbee.getmigvel('velo',par)
    sigsbee.getstrvel('vstr',par)
    Result('vstr',fdmod.cgrey('color=j allpos=y bias=1.5',par))
    Result('velo',fdmod.cgrey('color=j allpos=y bias=1.5',par))

    # padding in z
    Flow('vpad','vstr',
         '''
         window n1=1 f1=1200 |
         spray axis=1 n=143 |
         smooth rect2=250 repeat=5
         ''' )

    Flow('vsed','vstr','window n1=1180' )

    Flow('velC','vsed vpad','cat axis=1 ${SOURCES[1]}')
    Flow('velCt','velC','transp')

    # masks
    sigsbee.makemask('velC','smask','wmask','lmask',par)
Esempio n. 11
0
def adjoint(bsl,dim,swfl,rwfl,slo,ss,par):

    for iexp in range(par['ns']):
        etag = "-e%03d" % iexp

        Flow(bsl+etag,
             [dim,swfl+etag,rwfl+etag,slo],
             '''
             rtoc |
             ../Code/srmvatau.x
             adj=y nht=%g oht=%g dht=%g %s
             swf=${SOURCES[1]}
             rwf=${SOURCES[2]}
             slo=${SOURCES[3]} |
             real
             ''' % (par['nht'],par['oht'],par['dht'],spmig.param(par)))

    Flow(bsl+'-all',
         [bsl+'-e%03d'  % x for x in range(par['ns'])],
         'cat space=n axis=2 ${SOURCES[1:%d]}'%par['ns'])
    Flow(bsl,bsl+'-all','stack | spray axis=2 n=1 o=0 d=1')

    # plot complete slowness backprojection
    Plot(bsl,
         'window | transp |' + fdmod.cgrey('color=e pclip=97',par))
    Result(bsl,[bsl,ss],'Overlay')

    # clip slowness perturbation
    Flow(bsl+'-byt',
         bsl+'-all','byte gainpanel=a pclip=97')

    for iexp in range(par['ns']):
        etag = "-e%03d" % iexp

        # plot partial slowness backprojection
        Plot(bsl+etag,bsl+'-byt',
             'window n2=1 f2=%d | transp |' % iexp + fdmod.cgrey('color=e',par))
        Result(bsl+etag,[bsl+etag,ss+etag],'Overlay')
Esempio n. 12
0
def stereo3d(par):
    # 3D stereographic IC
    Flow(
        'kk', ['qs', 'qr'], '''
         sic3d ur=${SOURCES[1]} nbuf=500 verb=y stack=n
         oanga=%(oanga)g nanga=%(nanga)d danga=%(danga)g
         oangb=%(oangb)g nangb=%(nangb)d dangb=%(dangb)g
         nl=%(nl)d dl=%(dl)g
         sig=%(sig)g
         ''' % par)
    Plot(
        'kk',
        'transp plane=23 | stack | transp | ' + fdmod.cgrey('pclip=99.9', par))
    Result('kk', ['kk', 'ss', 'sx'], 'Overlay')
Esempio n. 13
0
def forward(dsl,dim,swfl,rwfl,slo,ss,par):

    for iexp in range(par['ns']):
        etag = "-e%03d" % iexp

        Flow(dim+etag,
             [dsl,swfl+etag,rwfl+etag,slo],
             '''
             rtoc |
             ../Code/srmvatau.x
             adj=n nht=%g oht=%g dht=%g %s
             swf=${SOURCES[1]}
             rwf=${SOURCES[2]}
             slo=${SOURCES[3]} |
             real
             ''' % (par['nht'],par['oht'],par['dht'],spmig.param(par)))

    Flow(dim+'-all',
         [dim+'-e%03d'  % x for x in range(par['ns'])],
         'cat space=n axis=2 ${SOURCES[1:%d]}'%par['ns'])
    Flow(dim,dim+'-all','stack | spray axis=2 n=1 o=0 d=1')

    # plot complete image perturbation
    Plot(dim,
         'window n4=1 min4=0 | transp |' + fdmod.cgrey('pclip=97',par))
    Result(dim,[dim,ss],'Overlay')

    # plot DIM tiles
    Result(dim+'-tile',
           dim,
           '''
           window j1=%(jcig)d f1=%(fcig)d |
           transp plane=12 |
           transp plane=23 |
           put n2=%(nxtile)d o2=%(oxtile)g d2=%(dxtile)g n3=1 |
           ''' % par
           + fdmod.cgrey('wantaxis2=n pclip=97',par))
Esempio n. 14
0
File: pot.py Progetto: jcapriot/src
def cliptogether(plot,file1,file2,title1,title2,axis,custom,par):

    Flow(plot+'-all',[file1,file2],
         '''
         cat axis=3 space=n ${SOURCES[1]} |
         byte gainpanel=a %s
         ''' %custom)



    if(axis==1):
        if('ys' not in par): par['ys']=0.75
        if('xs' not in par): par['xs']=0.75
        if('xc' not in par): par['xc']=-8.25
        Plot(file1,plot+'-all','window n3=1 f3=0 |' + fdmod.cgrey(custom+' title=%s'%title1,par))
        Plot(file2,plot+'-all','window n3=1 f3=1 |' + fdmod.cgrey(custom+' title=%s wantaxis1=n label1= unit1= '%title2,par))
        pplot.p1x2(plot,file1,file2,par['ys'],par['xs'],par['xc'])
    else:
        if('ys' not in par): par['ys']=.75
        if('xs' not in par): par['xs']=.75
        if('yc' not in par): par['yc']=-5
        Plot(file1,plot+'-all','window n3=1 f3=1 |' + fdmod.cgrey(custom+' title=%s wantaxis2=n label2= unit2='%title1,par))
        Plot(file2,plot+'-all','window n3=1 f3=0 |' + fdmod.cgrey(custom+' title=%s '%title2,par))
        p2x1(plot,file1,file2,par['ys'],par['xs'],par['yc'])
Esempio n. 15
0
def importref(par):
    # prepare reflectivity
    sigsbee.getreflect('ref_',par)
    Result('ref',fdmod.cgrey('pclip=99',par))

    # padding in z
    Flow('rpad','ref_',
         '''
         window n1=1 f1=1200 |
         spray axis=1 n=143 |
         smooth rect2=250 repeat=5
         ''' )

    Flow('sub',None,
         '''
         spike nsp=1 mag=1
         n1=3201 d1=0.00762 o1=3.048 k1=0 l1=%(nx)d
         n2=1180 d2=0.00762 o2=0     k2=1179 l2=1179 |
         put label1=x label2=z unit1=km unit2=km | transp
         ''' % par)

    Flow('rsed','ref_','window n1=1180' )
    Flow('rsed_','sub rsed','add ${SOURCES[1]}')
    Flow('ref','rsed_ rpad','cat axis=1 ${SOURCES[1]}')
Esempio n. 16
0
def mig(migCC, migRC, frqRC, abmRC, abrRC, cos, par):
    par['j2'] = par.get('j2', 1)
    for i in (['SSF', 'FFD', 'PSC', 'F15', 'F45', 'F60']):
        sfx = '-' + i

        if (i == 'F15'): method = 'method=0 c1=0.50   c2=0.00'
        if (i == 'F45'): method = 'method=0 c1=0.50   c2=0.25'
        if (i == 'F60'): method = 'method=0 c1=0.4761 c2=0.3767'
        if (i == 'SSF'): method = 'method=1'
        if (i == 'FFD'): method = 'method=2 c1=0.50   c2=0.25'
        if (i == 'PSC'): method = 'method=3 c1=0.50   c2=0.25'

        Flow(
            migRC + sfx, [frqRC, abmRC, abrRC], '''
             rwezomig ntap=%d adj=n verb=y %s
             abm=${SOURCES[1]}
             abr=${SOURCES[2]} |
             put label1=g label2=t
             ''' % (par['ntap'], method))

        Flow(
            migCC + sfx, [migRC + sfx, cos], '''
             c2r rays=${SOURCES[1]} adj=y linear=n nsz=%(nsz)d nsx=%(nsx)d
             a2n=%(nz)d a2o=%(oz)g a2d=%(dz)g
             a1n=%(nx)d a1o=%(ox)g a1d=%(dx)g |
             put label1=z label2=x
             ''' % par)

        Plot(migRC + sfx, 'window | transp |' + rgrey('pclip=99.9', par))
        Result(par['prefix'] + migRC + sfx, migRC + sfx,
               'window j2=%(j2)d | transp |' % par + rgrey('pclip=99.9', par))

        Plot(migCC + sfx,
             'window j1=2 j2=2 | transp |' + fdmod.cgrey('pclip=100', par))
        Result(par['prefix'] + migCC + sfx, [migCC + sfx, cos],
               'Overlay' % par)
Esempio n. 17
0
def inimodel(ss, rr, par):

    Result('vwin', fdmod.cgrey('color=j allpos=y wantscalebar=y', par))

    # ------------------------------------------------------------
    sigs.saltmask('mask', 'vwin', par)
    Result('mask', fdmod.cgrey('wantscalebar=y', par))

    Flow(
        'vo', ['vwin', 'mask'],
        'math m=${SOURCES[1]} output="input*(1-m)+m*0.85*14.76*%g"' %
        par['ft2km'])

    # ------------------------------------------------------------
    Flow('vp', 'vwin', 'scale rscale=1')
    Flow('nu', 'vp', 'math output=0.0')

    # vp/vs
    Flow('vsvpratio', 'vwin', '''
         math output="0.40+0.25*(x1-2.)/9."
         ''')
    Flow(
        'vs', 'vp vsvpratio mask', '''
         math r=${SOURCES[1]} output="input*r" |
         math m=${SOURCES[2]} output="input*(1-m)+m*8*%g"
         ''' % par['ft2km'])

    # epsilon and delta
    Flow('amask', 'vp', 'mask min=2.0 max=4 | dd type=float')
    Result('amask', fdmod.cgrey('allpos=y', par))
    Flow('bmask', 'vp', 'mask min=2.5 max=3.0 | dd type=float')
    Result('bmask', fdmod.cgrey('allpos=y', par))

    Flow('cmask', 'vp', 'mask min=2.5 max=4 | dd type=float')
    Result('cmask', fdmod.cgrey('allpos=y', par))

    Flow('denmask', 'vp', 'mask max=4 | dd type=float')
    Result('denmask', fdmod.cgrey('allpos=y', par))

    #    Flow('ro','vp','math output="-input*0.27+3.3" ')
    # ro
    Flow(
        'ro', ['mask', 'vp'], '''
         math output="-a "      a=${SOURCES[0]}  |
         math output="input+v*0.8-.2"   v=${SOURCES[1]}
         ''')
    # epsilon
    Flow(
        'epsilon', ['amask', 'bmask', 'vp'], '''
         math output="a*0.28+b*0.2"
         a=${SOURCES[0]} b=${SOURCES[1]} |
         math output="input*v/3.0"
         v=${SOURCES[2]}
         ''')

    # delta
    Flow(
        'delta', ['amask', 'bmask', 'cmask', 'vp'], '''
         math output="a*0.0+b*0.05+c*0.05"
         a=${SOURCES[0]} b=${SOURCES[1]} c=${SOURCES[2]} |
         math output="input*v/3.0"
         v=${SOURCES[3]}
         ''')
    labelattr = 'labelsz=11 wantscalebar=y bartype=h yll=1.5 screenht=9.5 wherebarlabel=top wherebartics=top wherebar=top '
    Plot(
        'vp',
        fdmod.cgrey(
            'allpos=y bias=1.43 color=j barunit="km/s" barlabel="V\_P\^" ' +
            labelattr, par))
    Plot(
        'vs',
        fdmod.cgrey(
            'allpos=y bias=0.72 color=j barunit="km/s" barlabel="V\_S\^" ' +
            labelattr, par))
    Plot(
        'ro',
        fdmod.cgrey(
            'allpos=y bias=1.0 color=j barunit="\F4 g/cm\^3" barlabel="\F9 r" '
            + labelattr, par))
    Plot(
        'epsilon',
        fdmod.cgrey(
            'allpos=y color=iC color=j formatbar=%4.2f  barlabel="\s150 \F9 e" '
            + labelattr, par))
    Plot(
        'delta',
        fdmod.cgrey(
            'allpos=y color=iC color=j formatbar=%4.2f barlabel="\s150 \F9 d" '
            + labelattr, par))

    Plot(
        'vpvsratio', 'vsvpratio', 'math output="1/input" |' +
        fdmod.cgrey('allpos=y color=iC color=j', par))
    for i in (['vp', 'vs', 'ro', 'epsilon', 'delta', 'vpvsratio']):
        Result(i, [i], 'Overlay')
Esempio n. 18
0
def slownesses(amask,magn,s,ds,ss,par):

    # anomaly shape
    Flow('shapex',amask,'transp')

    Flow('shape1',[amask,'velC'],         'remap1 pattern=${SOURCES[1]}')
    Flow('shape2','shape1 velCt','transp | remap1 pattern=${SOURCES[1]} | transp')
    Flow('anom','shape2 lmask',
         '''
         smooth rect1=100 rect2=100 repeat=2 |
         scale axis=123 |
         math s=${SOURCES[1]} output="input*s"
         ''')
    Result('anom',fdmod.cgrey('allpos=y',par))

    # incorrect velocity
    Flow('velL',['velC','anom'],
         'math v=${SOURCES[0]} a=${SOURCES[1]} output="v*(1.0-(%g)*a)"' % magn)
    Flow('velH',['velC','anom'],
         'math v=${SOURCES[0]} a=${SOURCES[1]} output="v*(1.0+(%g)*a)"' % magn)
    # velocity plots
    for i in ('velC','velL','velH'):
        Result(i,fdmod.cgrey('color=j allpos=y bias=1.5',par))

    # ------------------------------------------------------------
    # prepare slowness
    spmig.slowness('svelC','velC',par)
    spmig.slowness('svelL','velL',par)
    spmig.slowness('svelH','velH',par)
    Flow('sdt','svelC','window squeeze=n n3=2 j3=%(nzdtm)d' %par)

    Flow(s+'C','svelC','window squeeze=n      f3=%(nzdtm)d j3=%(jzimg)d'%par) # correct velocity
    Flow(s+'L','svelL','window squeeze=n      f3=%(nzdtm)d j3=%(jzimg)d'%par) # low     velocity
    Flow(s+'H','svelH','window squeeze=n      f3=%(nzdtm)d j3=%(jzimg)d'%par) # high    velocity

    Flow('slows',[s+'C',s+'L',s+'H'],
         '''
         cat axis=2 space=n ${SOURCES[1:3]} |
         byte pclip=100 allpos=y gainpanel=a bias=0.221
         ''')

    Plot(s+'C','slows','window n2=1 f2=0 | transp |'+ fdmod.cgrey('color=j',par))
    Plot(s+'L','slows','window n2=1 f2=1 | transp |'+ fdmod.cgrey('color=j',par))
    Plot(s+'H','slows','window n2=1 f2=2 | transp |'+ fdmod.cgrey('color=j',par))

    for stag in (['L','H','C']):
        Result(s+stag,[s+stag,ss],'Overlay')

    for stag in (['L','H']):
        Flow(ds+stag,[s+stag,s+'C',amask,'shapex'],
             '''
             add scale=-1,1 ${SOURCES[1]} | window | transp |
             remap1 pattern=${SOURCES[2]} |
             transp |
             remap1 pattern=${SOURCES[3]} |
             window n2=%(nz)d min2=%(oz)g j2=%(jzimg)d |
             spray axis=2 n=1 o=0 d=1 |
             window squeeze=n min1=%(ox)g n1=%(nx)d d1=%(dx)g | rtoc
             ''' % par)
        Plot(  ds+stag,'real | window | transp |'+ fdmod.cgrey('color=e',par))
        Result(ds+stag,[ds+stag,ss],'Overlay')
Esempio n. 19
0
def migration(img,cig,drv,sdat,rdat,swfl,rwfl,slo,ss,par):

    for iexp in range(par['ns']):
        etag = "-e%03d" % iexp

        # select datumed data for individual shots
        Flow(sdat+etag,sdat,'window n4=1 f4=%d squeeze=n' %iexp)
        Flow(rdat+etag,rdat,'window n4=1 f4=%d squeeze=n' %iexp)

        # window frequency slices for MVA
        Flow(sdat+etag+'-win',
             sdat+etag,'window squeeze=n n3=%(nwmva)d f3=%(fwmva)d j3=%(jwmva)d' % par)
        Flow(rdat+etag+'-win',
             rdat+etag,'window squeeze=n n3=%(nwmva)d f3=%(fwmva)d j3=%(jwmva)d' % par)

        # wavefields for individual shots
        zomig.Cwfone3(swfl+etag,sdat+etag+'-win',slo,par) #   source
        zomig.Awfone3(rwfl+etag,rdat+etag+'-win',slo,par) # receiver

        # migrate
        Flow([img+etag,cig+etag,drv+etag],
             [sdat+etag,rdat+etag,slo],
             '''
             ../Code/srmig3.x
             %s
             rwf=${SOURCES[1]}
             slo=${SOURCES[2]}
             cig=${TARGETS[1]}
             drv=${TARGETS[2]}
             ''' % spmig.param(par))

    # concatenate images and CIGs
    for k in ([img,drv,cig]):
        Flow(k+'-all',
             [k+'-e%03d'  % x for x in range(par['ns'])],
             'cat space=n axis=2 ${SOURCES[1:%d]}'%par['ns'])
        Flow(k,k+'-all','stack | spray axis=2 n=1 o=0 d=1')

    # plot complete images
    Plot(  img,'window | transp |'+ fdmod.cgrey('pclip=97',par))
    Result(img,[img,ss],'Overlay')

    for k in ([drv,cig]):
        # plot complete CIGs
        Result(k,'window n1=1 f1=%d |' % (par['nximg']/4)
               + adcig.tgrey('',par))

        # plot CIG tiles
        Result(k+'-tile',
               k,
               '''
               window j1=%(jcig)d f1=%(fcig)d |
               transp plane=12 |
               transp plane=23 |
               put n2=%(nxtile)d o2=%(oxtile)g d2=%(dxtile)g n3=1 |
               ''' % par
               + fdmod.cgrey('wantaxis2=n pclip=97',par))

    # clip image
    Flow(img+'-byt',
         img+'-all','byte gainpanel=a pclip=97')
    # clip CIGs
    Flow(cig+'-byt',
         cig+'-all','byte gainpanel=a pclip=97')

    for iexp in range(par['ns']):
        etag = "-e%03d" % iexp

        # plot partial images
        Plot(img+etag,img+'-byt',
             'window n2=1 f2=%d | transp |' % iexp + fdmod.cgrey('',par))
        Result(img+etag,[img+etag,ss+etag],'Overlay')

        # plot partial CIGs
        Result(cig+etag,
               cig+'-byt',
               'window n1=1 f1=%d n2=1 f2=%d |' % (par['nximg']/4,iexp)
               + adcig.tgrey('',par))
Esempio n. 20
0
def deltaimage(dim,cig,drv,slo,ss,par):

    # CIG envelope
    Flow(cig+'-env',
         cig,
         '''
         window |
         transp plane=12 |
         transp plane=23 |
         envelope |
         smooth rect1=50 rect2=50 repeat=1 |
         scale axis=123 |
         clip clip=0.75
         ''')

    # pick tau
    Flow(cig+'-pck',
         cig+'-env',
         '''
         pick rect1=%(npck1)d rect2=%(npck2)d rect3=1 vel0=0.0 |
         scale rscale=%(scpck)g |
         transp plane=13
         ''' % par)
    Result(cig+'-pck',
           'window | transp |' + fdmod.cgrey('color=j',par))

    # plot picked tau on CIG
    Flow(cig+'-sbt',
         cig,'byte gainpanel=a pclip=90')
    for ipos in range(0,par['nximg'],10):
        ptag = "-x%03d" % ipos

        Plot(cig+'-pck'+ptag,
             cig+'-pck',
             'window n1=1 f1=%d |' % ipos + tauplot(6,4,'screenratio=3',par) )
        Plot(cig+ptag,
             cig+'-sbt',
             'window n1=1 f1=%d |' % ipos + adcig.tgrey('screenratio=3',par))
        Result(cig+ptag,[cig+ptag,cig+'-pck'+ptag],'Overlay')

    # velocity for tau spreading
    Flow(cig+'-vel',
         slo,
         '''
         window squeeze=n min1=%(oximg)g n1=%(nximg)d j1=%(jximg)d |
         math output="1/input"
         ''' % par)
    # tau spreading
    Flow(cig+'-tau',[drv,cig+'-pck',cig+'-vel'],
         '''
         ../Code/tauspread.x
         fit=${SOURCES[1]}
         vel=${SOURCES[2]} zmin=2.5
         ''')

    # delta image
    Flow(dim,[drv,cig+'-tau'],'add mode=p ${SOURCES[1]}')

    # plot complete image perturbation
    Plot(dim,
         'window n4=1 min4=0 | transp |' + fdmod.cgrey('pclip=97',par))
    Result(dim,[dim,ss],'Overlay')

    # plot DIM tiles
    Result(dim+'-tile',
           dim,
           '''
           window j1=%(jcig)d f1=%(fcig)d |
           transp plane=12 |
           transp plane=23 |
           put n2=%(nxtile)d o2=%(oxtile)g d2=%(dxtile)g n3=1 |
           ''' % par
           + fdmod.cgrey('wantaxis2=n pclip=97',par))
Esempio n. 21
0
def run(par):
    # experiments
    fdmod.horizontal('rr', 0, par)

    Plot('rr', 'window j2=10|' + fdmod.rrplot('', par))
    Plot('ss', 'window      |' + fdmod.ssplot('', par))
    Plot('sx', 'window      |' + fdmod.ssplot('plotcol=5', par))

    # wavelet
    fdmod.wavelet('wav_', par['frq'], par)
    Flow('wav', 'wav_', 'transp')
    Result('wav', 'window n2=200 |' + fdmod.waveplot('', par))

    # velocity
    Flow(
        'vbck', None, '''
         math n1=%(nz)d o1=%(oz)g d1=%(dz)g output="2000" |
         spray axis=2 n=%(nx)d o=%(ox)g d=%(dx)g
         ''' % par)
    Flow(
        'vprt', None, '''
         spike nsp=1 mag=1
         n1=%(nz)d o1=%(oz)g d1=%(dz)g k1=%(kz)d l1=%(mz)d
         n2=%(nx)d o2=%(ox)g d2=%(dx)g k2=%(kx)d l2=%(mx)d |
         smooth rect1=25 rect2=25 repeat=3 |
         scale axis=123 |
         scale rscale=%(vprt)g
         ''' % par)
    Flow('velo', 'vbck vprt', 'add ${SOURCES[1]}')
    Plot('velo', fdmod.cgrey('allpos=y bias=1200 pclip=100 color=F', par))
    Result('velo', ['velo', 'ss', 'sx'], 'Overlay')

    # density
    Flow('dens', 'velo', 'math output=1')

    # reflector
    Plot(
        'refl', 'refl velo', '''
         depth2time velocity=${SOURCES[1]} dt=%(dt)g nt=%(nt)d |
         scale rscale=-1 |
         ricker1 frequency=%(frq)g |
         time2depth velocity=${SOURCES[1]} dz=%(dz)g nz=%(nz)d |
         ''' % par + fdmod.cgrey('pclip=100', par))
    Result('refl', ['refl', 'ss', 'sx'], 'Overlay')

    # mask
    Flow(
        'mask', None, '''
         spike nsp=1 mag=1
         n1=%(nx)d o1=%(ox)g d1=%(dx)g k1=101 l1=900
         n2=%(nt)d o2=%(ot)g d2=%(dt)g |
         smooth rect1=100 |
         scale axis=123
         ''' % par)
    Result('mask', 'transp |' + fdmod.dgrey('allpos=y pclip=100', par))

    # F-D modeling (born)
    fdmod.lwefd1('do', 'wo', 'dd', 'wd', 'wav', 'velo', 'dens', 'refl', 'ss',
                 'rr', 'jsnap=100', par)
    Result(
        'do', 'transp | window min1=0.25 |' +
        fdmod.dgrey('min1=0.25 pclip=100', par))
    Result(
        'dd', 'transp | window min1=0.25 |' +
        fdmod.dgrey('min1=0.25 pclip=100', par))
    Result('wo', fdmod.wgrey('', par))
    Result('wd', fdmod.wgrey('', par))

    # source data and wavefield
    fdmod.awefd1('ds', 'ws', 'wav', 'velo', 'dens', 'sx', 'rr', '', par)
    Result('ws', 'window j3=20 |' + fdmod.wgrey('', par))

    # receiver wavefield
    Flow('du', 'dd mask',
         'add mode=p ${SOURCES[1]} | reverse which=2 opt=i verb=y')
    fdmod.awefd('dx', 'wx', 'du', 'velo', 'dens', 'rr', 'rr', '', par)
    Flow('dr', 'dx', 'reverse which=2 opt=i verb=y')
    Flow('wr', 'wx', 'reverse which=4 opt=i verb=y')
    Result('wr', 'window j3=20 |' + fdmod.wgrey('', par))

    for i in range(0, par['nt'] / 100, 1):
        fdmod.wframe('wo' + '-' + str(i), 'wo', i, 'pclip=99.9', par)
        fdmod.wframe('wd' + '-' + str(i), 'wd', i, 'pclip=100', par)

    for i in range(0, par['nt'] / 100, 1):
        fdmod.wframe('wx' + '-' + str(i), 'wx', i * 25, 'pclip=99.9', par)

    # ------------------------------------------------------------
    minx = 500
    maxx = 1500
    minz = par['oz'] + par['nz'] * par['dz'] / 2
    numz = par['nz'] / 2

    mint = 0.1
    numt = 150
    maxt = mint + numt * par['dt'] * par['jsnap']

    # wavefield
    for i in ('s', 'r'):
        Flow(
            'u' + i, 'w' + i, '''
             window min1=%(zmin)g max1=%(zmax)g min2=%(xmin)g max2=%(xmax)g |
             scale axis=123
             ''' % par)
        Result('u' + i, 'window j3=10 |' + fdmod.wgrey('pclip=99', par))

        for k in range(0, par['nt'] / par['jsnap'], 25):
            fdmod.wframe('u' + i + '-' + str(k / 25), 'u' + i, k, 'pclip=99',
                         par)

        # windowed wavefields
        Flow(
            'p' + i, 'u' + i, '''
             window min1=%g n1=%g min2=%g max2=%g min3=%g n3=%g
             ''' % (minz, numz, minx, maxx, mint, numt))
        Flow('q' + i, 'p' + i, 'transp plane=13 memsize=500')
        Flow('o' + i, 'q' + i, 'transp plane=23 memsize=500')

    Flow('qi', 'qs qr', 'add mode=p ${SOURCES[1]}')
    Flow('oi', 'os or', 'add mode=p ${SOURCES[1]}')

    for i in ('s', 'r', 'i'):
        Result('q' + i,
               'window j3=10 |' + fdmod.dgrey('gainpanel=a pclip=100', par))
        Result(
            'o' + i, 'window j3=10 | transp |' +
            fdmod.egrey('gainpanel=a pclip=100', par))

        Flow(['q' + i + 'plt', 'q' + i + 'bar'], 'q' + i,
             'byte bar=${TARGETS[1]} gainpanel=a pclip=100')
        for k in range(10):
            Result(
                'q' + i + 'plt' + str(k), ['q' + i + 'plt', 'q' + i + 'bar'],
                'window n3=1 f3=%d |' % (10 * k) + fdmod.dgrey(
                    '''
                bar=${SOURCES[1]} min1=%g max1=%g min2=%g max2=%g
                labelsz=8 labelfat=3 screenratio=1.5
                ''' % (mint, maxt, minx, maxx), par))

    # cut along the reflectors
    Flow(
        'cut', 'refl', '''
         window min1=%g n1=%g min2=%g max2=%g |
         spray axis=3 n=%d o=%g d=%g |
         transp plane=13 memsize=500
         ''' % (minz, numz, minx, maxx, numt, 0.1, par['dt'] * 4))

    for i in ('s', 'r'):
        Flow(
            'c' + i, ['q' + i, 'cut'], '''
             add mode=p ${SOURCES[1]} |
             transp plane=23 |
             stack
             ''')
        Result('c' + i, fdmod.dgrey('', par))

        Flow('f' + i, 'q' + i, 'window n3=1 min3=300')
        Result('f' + i, fdmod.dgrey('', par))

    # ------------------------------------------------------------
    # conventional IC
    Flow('ii', ['ps', 'pr'], 'ic ur=${SOURCES[1]} version=0 nbuf=500 verb=y')
    Plot('ii', fdmod.cgrey('pclip=99.9', par))
    Result('ii', ['ii', 'ss', 'sx'], 'Overlay')
Esempio n. 22
0
def test(vp, vs, ro, epsilon, delta, ss, rr, par):
    # ------------------------------------------------------------
    # source/receiver coordinates
    Plot(
        rr, 'window n1=2 | dd type=complex | window j2=10 | ' +
        fdmod.cgraph('wantscalebar=y symbol=o plotcol=1', par))
    Plot(
        ss, 'window n1=2 | dd type=complex | window | ' +
        fdmod.cgraph('wantscalebar=y symbol=x plotcol=2', par))

    # ------------------------------------------------------------
    # acoustic source
    fdmod.wavelet('wava0', par['frq'], par)
    Flow('wava', 'wava0', 'transp')
    Result(
        'wava', 'transp | window n1=500 |' +
        fdmod.waveplot('title="Acoustic source"', par))

    # ------------------------------------------------------------
    # elastic source
    fdmod.wavelet('hor0', par['frq'], par)
    fdmod.wavelet('ver0', par['frq'], par)
    Flow('hor', 'hor0', 'math output=input*%(hscale)g' % par)
    Flow('ver', 'ver0', 'math output=input*%(vscale)g' % par)

    Flow('wave0', 'ver hor', 'cat axis=2 space=n ${SOURCES[1:2]}')
    Flow(
        'wave', 'wave0', '''
         transp plane=12 |
         transp plane=23 |
         transp plane=12
         ''')

    Plot(
        'ver', 'wave', 'window n2=1 f2=0 | window n1=500 |' +
        fdmod.waveplot('title="Elastic vertical source"', par))
    Plot(
        'hor', 'wave', 'window n2=1 f2=1 | window n1=500 |' +
        fdmod.waveplot('title="Elastic horizontal source"', par))
    Result('wave', 'hor ver', 'Movie')

    # ------------------------------------------------------------
    Plot(vp, fdmod.cgrey('wantscalebar=y allpos=y bias=1.0    pclip=100', par))
    Plot(vs, fdmod.cgrey('wantscalebar=y allpos=y bias=1.0    pclip=100', par))
    Plot(ro, fdmod.cgrey('wantscalebar=y allpos=y bias=100000 pclip=100', par))
    Plot(epsilon,
         fdmod.cgrey('wantscalebar=y allpos=y             pclip=100', par))
    Plot(delta,
         fdmod.cgrey('wantscalebar=y allpos=y             pclip=100', par))

    Result(vp, [vp, ss, rr], 'Overlay')
    Result(vs, [vs, ss, rr], 'Overlay')
    Result(ro, [ro, ss, rr], 'Overlay')
    Result(epsilon, [epsilon, ss, rr], 'Overlay')
    Result(delta, [delta, ss, rr], 'Overlay')

    fdmod.anisotropic('cc', 'vp', 'vs', 'ro', 'epsilon', 'delta', par)

    # ------------------------------------------------------------
    # acoustic modeling
    amodel('da', 'wa', 'wava', vp, ro, ss, rr, '', par)

    Flow(
        'waw', 'wa', '''
         window min1=%g max1=%g min2=%g max2=%g |
         scale axis=123
         ''' % (par['zmin'], par['zmax'], par['xmin'], par['xmax']))

    Result('wa', fdmod.wgrey('pclip=99 title="Acoustic wavefield"', par))
    Result(
        'da',
        'transp | window f1=%(kt)d | put o1=%(ot)g | pad end1=%(kt)d |' % par +
        fdmod.dgrey('pclip=99 title="Acoustic data" grid=y', par))

    # elastic modeling
    emodel('de', 'we', 'wave', 'cc', ro, ss, rr, 'ssou=%(ssou)s opot=n' % par,
           par)

    for i in range(2):
        Flow(
            'we' + str(i + 1), 'we', '''
             window n3=1 f3=%d |
             window min1=%g max1=%g min2=%g max2=%g |
             scale axis=123
             ''' % (i, par['zmin'], par['zmax'], par['xmin'], par['xmax']))

        Result('we' + str(i + 1),
               fdmod.wgrey('title=u%s pclip=99' % str(i + 1), par))
        Result(
            'de' + str(i + 1), 'de', '''
               window n2=1 f2=%d |
               transp |
               window f1=%d | put o1=%g | pad end1=%d |
               ''' % (i, par['kt'], par['ot'], par['kt']) +
            fdmod.dgrey('title=u%s pclip=99 grid=y' % str(i + 1), par))

    Flow('weall', 'we1 we2', 'cat axis=1 space=n ${SOURCES[1]}')
    Result(
        'weall', '''
           grey title="Elastic Wavefields" wantaxis=y screenratio=%f screenht=8
           gainpanel=a pclip=99
           grid1=y grid2=y g1num=0.25 g2num=0.25
           ''' % (2 * par['ratio']))

    Flow('wall', 'waw we1 we2', 'cat axis=1 space=n ${SOURCES[1:3]}')
    Result(
        'wall', '''
           grey title="" wantaxis=y screenratio=%f screenht=10
           gainpanel=a pclip=99
           grid1=y grid2=y g1num=0.1 g2num=0.1
           ''' % (3 * par['ratio']))

    # wavefield movie frames
    for j in range(0, par['nt'] / par['jsnap'], 1):
        fdmod.wframe('wa-' + str(j), 'wa', j, 'pclip=99.9', par)
        fdmod.wframe('we1-' + str(j), 'we1', j, 'pclip=99.9', par)
        fdmod.wframe('we2-' + str(j), 'we2', j, 'pclip=99.9', par)