⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sconstruct

📁 国外免费地震资料处理软件包
💻
字号:
from rsfproj import *import rwezo,zomig,fdmodpar = {        'nz':1201, 'dz':0.025,  'oz':0,     'lz':'label1=z', 'uz':'km',     'nx':2133, 'dx':0.0375, 'ox':10.925,'lx':'label2=x', 'ux':'km',    'nt':30000,'dt':0.0005, 'ot':0,     'lt':'label1="\F10 t\F3 " unit1="s"', 'ut':'s',    'ng':800,  'dg':1,      'og':0,     'lg':'label2="\F10 g\F3 " unit2="."',    'kt':100,    # wavelet delay     'nT':1600, 'dT':0.004,  'oT':0,    'ow':1,    'nbz':250,'nbx':250    }par['ox']*=0.3048par['dx']*=0.3048par['oz']*=0.3048par['dz']*=0.3048# compute parametersrwezo.param(par)zomig.migpar(par)fdmod.param(par)# ------------------------------------------------------------# velocityvelo = 'sigsbee2a_migvel.sgy'Fetch(velo,'sigsbee')Flow('zvelo tzvelo',velo,     '''     segyread     tape=$SOURCE     tfile=${TARGETS[1]}     hfile=${TARGETS[2]}     bfile=${TARGETS[3]}     ''',stdin=0)# ------------------------------------------------------------par['nxcut']=1600par['nxpad']=2000par['nzpad']=799Flow('vraw','zvelo',     '''     scale rscale=0.001 |     scale rscale=0.3048 |     put d1=%(dz)g o2=%(ox)g d2=%(dx)g label1=z label2=x |     window n2=%(nxcut)d     ''' % par)par['ox']=par['ox']-par['nxpad']*par['dx']par['nx']=par['nxcut']+par['nxpad']par['nz']=par['nz']+par['nzpad']par['xmin']=par['ox']par['xmax']=par['ox'] + (par['nx']-1) * par['dx']par['zmin']=par['oz']par['zmax']=par['oz'] + (par['nz']-1) * par['dz']Flow('padx','vraw',     '''     window n2=1 |     spray axis=2 n=%(nxpad)d d=%(dx)g o=%(ox)g |     cat ${SOURCES[0]} axis=2 space=n     ''' % par)Flow('padz','padx',     '''     window n1=1 f1=1200 |     spray axis=1 n=%(nzpad)d d=%(dz)g o=0 |     math "output=input+x1*0.25"     ''' % par)Flow('velo','padx padz',     '''     cat axis=1 space=n ${SOURCES[1]}     ''')Flow('dens','velo','math output=2.5')Plot  ('velo',rwezo.cgrey('allpos=y pclip=95',par))Result('velo',rwezo.cgrey('allpos=y pclip=95',par))Flow(  'salt','velo','add add=-4.26 | clip clip=0.3048')#Result('salt',rwezo.cgrey('allpos=y pclip=100',par))# ------------------------------------------------------------Flow(  'edgez','salt','         igrad square=y')Flow(  'edgex','salt','transp | igrad square=y | transp')Flow(  'edge','edgez edgex',       'math z=${SOURCES[0]} x=${SOURCES[1]} output="z+x"')Result('edge','sfdd type=float |' + rwezo.cgrey('pclip=100',par))Flow(  'mask','edge','mask min=0.0006')Result('mask','sfdd type=float |' + rwezo.cgrey('pclip=100',par))for x in ('x1','x2'):    if(x=='x1'): o='zs'    if(x=='x2'): o='xs'    Flow(o,'edge mask',         '''         math output=%s |         put n1=1 n2=%d |         headerwindow mask=${SOURCES[1]} |         window         ''' % (x,par['nz']*par['nx']))Flow('rs','edge mask',     '''     scale axis=123 |     put n1=1 n2=%d |     headerwindow mask=${SOURCES[1]} |     window     ''' % (par['nz']*par['nx']))Flow('ss',['xs','zs','rs'],     '''     cat axis=2 space=n     ${SOURCES[0]} ${SOURCES[1]} ${SOURCES[2]} | transp |     window j2=2     ''', stdin=0)Plot('ss','window n1=2 | dd type=complex | window | '     + fdmod.cgraph('symbol=. plotcol=0 symbolsz=8',par))Result('ss',['velo','ss'],'Overlay')# ------------------------------------------------------------# ------------------------------------------------------------# receiver (flat)Flow('ro',None,'math n1=%(nx)d d1=%(dx)g o1=%(ox)g output=0' % par)Flow('zo','ro','math output="%g"' % par['oz'])Flow('xo','ro','math output="x1"')Flow('oo',['xo','zo'],     '''     cat axis=2 space=n     ${SOURCES[0]} ${SOURCES[1]} | transp     ''', stdin=0)Plot('oo','window n1=2 | dd type=complex | window j2=10 | '     + fdmod.cgraph('symbol=* plotcol=5',par))#Result('oo',['velo','oo'],'Overlay')Result('model','velo ss oo','Overlay')Flow('surf',None,     '''     spike nsp=1 mag=1 n1=%(nz)d d1=%(dz)g o1=%(oz)g k1=2 |     spray axis=2       n=%(nx)d  d=%(dx)g  o=%(ox)g     ''' % par)# ------------------------------------------------------------# waveletFlow('wav',None,     '''     spike nsp=1 mag=1 n1=%(nt)d d1=%(dt)g o1=%(ot)g k1=%(kt)d |     ricker1 frequency=20 |      put label1=t label2=x label3=y      ''' % par)    Result('wav','wav','window n1=1000 | graph title=" "')# ------------------------------------------------------------# modelingfdmod.amodel('do','wo','wav','velo','dens','ss','oo','free=n',par)# ------------------------------------------------------------Result('wo',       'window j3=20 min1=%(oz)g n1=%(nz)d min2=%(ox)g n2=%(nx)d |' % par       + rwezo.cgrey('pclip=99 gainpanel=a',par))Result('do','window j2=4 | transp |' + rwezo.dgrey('',par))for j in range(20,300,20):    par['j'] = j        Plot('wo'+str(j/20),'wo',         '''         window n3=1 f3=%(j)d         min1=%(oz)g n1=%(nz)d min2=%(ox)g n2=%(nx)d |         ''' % par         + rwezo.cgrey('pclip=99',par))    Result('wo'+str(j/20),['wo'+str(j/20),'cos1','ss'],'Overlay')Flow(  'dd','do','window f2=%(kt)d | put o2=0 d2=0.001 | window j2=4' % par)Result('dd','transp |' + rwezo.dgrey('',par))# ------------------------------------------------------------# ------------------------------------------------------------Flow('vel1','velo','smooth rect1=351 rect2=351 repeat=3')Flow('s_',None,'spike nsp=1 n1=%(ng)d d1=%(dg)g o1=%(og)g' % par)# coordinate system: rays(g,t)Flow('mzs1','s_','math output="01.0+0.009*x1"' % par)Flow('mxs1','s_','math output="17.0+0.008*x1"' % par)Flow('sou1','mxs1 mzs1',     'cat axis=2 space=n ${SOURCES[1]} | transp | dd type=complex | window')# wavefronts (by HWT)Flow('hwt1','vel1 sou1',     '''     hwtex verb=n sou=${SOURCES[1]}     nt=%(nt)d ot=%(ot)g dt=%(dt)g     ''' % par)Flow('cos1','hwt1',     '''     reverse which=2 |     put o2=0 d2=%(dt)g |     window j1=2 j2=8     ''' % par)# ------------------------------------------------------------Flow('vel2','velo','math output=2.75')# coordinate system: rays(g,t)Flow('mzs2','s_','math output="-06.5+0.025*x1"' % par)Flow('mxs2','s_','math output="-17.0-0.005*x1"' % par)Flow('sou2','mxs2 mzs2',     'cat axis=2 space=n ${SOURCES[1]} | transp | dd type=complex | window')# wavefronts (by HWT)Flow('hwt2','vel2 sou2',     '''     hwtex verb=n sou=${SOURCES[1]}     nt=%(nt)d ot=%(ot)g dt=%(dt)g     ''' % par)Flow('cos2','hwt2','window j2=4')# ------------------------------------------------------------# time data CC: (t,x)Flow  ('datCC','dd','transp')Result('datCC','grey pclip=99 wanttitle=n label1=t unit1=s label2=x unit2=km')# ------------------------------------------------------------# WEM image CC: (z,x)zomig.image('imgCC','sloCC','frqCC',par)Plot  ('imgCC','window | transp |' + rwezo.cgrey('pclip=99',par))Result('imgCC',['imgCC','cos1'],'Overlay')# loop over coordinate systems# 1 - Riemannian coordinate system# 2 - Cartesian  coordinate systemfor i in ('1','2'):    # coordinate system plot    rwezo.cos(   'cos'+i,20,100,par)    Result('cos'+i,['velo','cos'+i],'Overlay')        # slowness    rwezo.slow(  'sloCC','sloRC'+i,'velo','cos'+i,par)    Result('sloRC'+i,'transp |'           + rwezo.rgrey('pclip=99 allpos=y color=j bias=0.061',par))    # surface and salt    Result('edgeRC'+i,['edge','surf','cos'+i],           '''           add ${SOURCES[1]} | transp |           c2r rays=${SOURCES[2]} adj=n | transp | bandpass fhi=10 |           scale axis=123 |           '''+ rwezo.rgrey('pclip=99 scalebar=y',par))        # ------------------------------------------------------------    # coordinate system coefficients (A,B,M=mask) and references (A,B)    rwezo.abm(    'abmRC'+i,'abrRC'+i,'sloRC'+i,'cos'+i,par)    rwezo.abmplot('abmRC'+i,par)    # ------------------------------------------------------------    # frequency data RC: (g,w)    rwezo.frq('frqRC'+i,'frqCC','datCC','cos'+i,par)    # ------------------------------------------------------------    # RWE image    rwezo.mig('migCC'+i,'migRC'+i,'frqRC'+i,'abmRC'+i,'abrRC'+i,'cos'+i,par)# ------------------------------------------------------------# PLOTS#plots(par)# ------------------------------------------------------------zoompar = {        'nz':7,    'dz':1,      'oz':2,     'lz':'label1=z unit1=km',      'nx':10,   'dx':1,      'ox':12,    'lx':'label2=x unit2=km',    'nt':30000,'dt':0.0005, 'ot':0,     'lt':'label1="\F10 t\F3 " unit1="s"',    'ng':400,  'dg':1,      'og':0,     'lg':'label2="\F10 g\F3 " unit2="."',    'nT':1600, 'dT':0.004,  'oT':0    }rwezo.param(zoompar)Plot('zoomvel','velo',rwezo.cgrey('',zoompar))Flow('vscaleCC','sloCC',     'window | transp | math output=1/input | scale axis=123 | add add=-0.6')for i in ('1','2'):    Flow('vscaleRC'+i,'sloRC'+i,         'transp | math output=1/input | scale axis=123 | add add=-0.6')    Flow(     'zoomcos'+i,'cos'+i,'window')    rwezo.cos('zoomcos'+i,5,25,zoompar)    Result(   'zoomcos'+i,  ['zoomvel','zoomcos'+i],'Overlay')    Plot('zoomvel-ovl'+i,['zoomvel','zoomcos'+i],'Overlay')    for j in (['SSF','FFD','PSC',               'F15','F45','F60']):        sfx = i + '-' + j        Flow('iscaleCC'+sfx,'migCC'+sfx,'transp | scale axis=123')        Flow('compCC'+sfx,['vscaleCC','iscaleCC'+sfx],             'math a=${SOURCES[0]} b=${SOURCES[1]} output="0.5*a+b"')        Plot(  'compCC'+sfx,rwezo.cgrey('pclip=100',zoompar))        Result('compCC'+sfx,['compCC'+sfx,'zoomcos'+i],'Overlay')        Flow('iscaleRC'+sfx,'migRC'+sfx,'transp | scale axis=123')        Flow('compRC'+sfx,['vscaleRC'+i,'iscaleRC'+sfx],             'math a=${SOURCES[0]} b=${SOURCES[1]} output="0.5*a+b"')        Result('compRC'+sfx,rwezo.rgrey('pclip=100 min1=10',zoompar))        End()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -