def cos(cos,jray,jwft,custom,par): wft = cos + '-wft' ray = cos + '-ray' par['jray']=jray par['jwft']=jwft par['jray2']=jray//5 par['jwft2']=jwft//5 Plot(ray,cos,'window j1=%(jray)d j2=%(jwft2)d | transp |' % par + fdmod.cgraph('plotcol=1 '+custom,par)) Plot(wft,cos,'window j2=%(jwft)d j1=%(jray2)d |' % par + fdmod.cgraph('plotcol=2 '+custom,par)) Plot(cos,[ray,wft],'Overlay')
def beam(vel, hwt, xsou, zsou, sou, par): Flow( hwt, vel, ''' smooth rect1=20 rect2=20 | hwt2d verb=n xsou=%g zsou=%g nt=%d ot=%g dt=%g ng=%d og=%g dg=%g ''' % (xsou, zsou, par['nt'], par['ot'], par['dt'], 21, -25, .125)) Plot( hwt + '_ray', hwt, 'transp | window f1=00 j1=25 n2=10 |' + fdmod.cgraph('plotcol=4 plotfat=5', par)) Result(hwt, [vel, hwt + '_ray', sou], 'Overlay')
def beam(vel,hwt,xsou,zsou,sou,par): Flow(hwt,vel, ''' smooth rect1=20 rect2=20 | hwt2d verb=n xsou=%g zsou=%g nt=%d ot=%g dt=%g ng=%d og=%g dg=%g ''' % ( xsou,zsou, par['nt'],par['ot'],par['dt'], 21,-25,.125) ) Plot(hwt+'_ray',hwt,'transp | window f1=00 j1=25 n2=10 |' + fdmod.cgraph('plotcol=4 plotfat=5',par)) Result(hwt,[vel,hwt+'_ray',sou],'Overlay')
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)
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)