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

📄 sconstruct

📁 国外免费地震资料处理软件包
💻
字号:
##  # GEO391 - Homework 1 (part a) ##from rsfproj import *# ------------------------------------------------------------par = {    'nt':8000,   # no of time steps    'dt':0.001,  #       time sampling    'ot':0,      #       time origing    'kt':100,    # wavelet delay    #    'ns':1,      # no of shots    'os':40000,  #       shots origin    'ds':10000,  #       shots sampling    #    'nr': 1001,  # no of receivers    'or':20000,  #       receivers origin    'dr':25,     #       receivers sampling    #    'ne':2,      # no of experiments    'nm':3,      # no of models    #    'nx':1001, 'ox':20000, 'dx':25,    'nz':801,  'oz':5000,  'dz':25    }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']par['tmin']=par['ot']par['tmax']=par['ot'] + (par['nt']-1) * par['dt']par['iratio']=(1.0*par['zmax']-par['zmin'])/(1.0*par['xmax']-par['xmin'])par['dratio']=par['iratio']# ------------------------------------------------------------# ------------------------------------------------------------# plotting functionsdef igrey(custom,par):    return '''    grey labelrot=n wantaxis=y wanttitle=n wantscalebar=n    title="" pclip=99 label1=z unit1=ft label2=x unit2=ft %s    min1=%g max1=%g min2=%g max2=%g    screenratio=%g screenht=10 labelsz=4    ''' % (custom,par['zmin'],par['zmax'],par['xmin'],par['xmax'],par['iratio'])def dgrey(custom,par):    return '''    grey labelrot=n wantaxis=y wanttitle=n    title="" pclip=97 label1=t unit1=s label2=x unit2=ft %s    min2=%g max2=%g    screenratio=%g screenht=10 labelsz=4    ''' % (custom,par['xmin'],par['xmax'],par['dratio'])def pgraph(custom,par):    return '''    graph labelrot=n  %s    yreverse=y symbolsz=4 wantaxis=n title=" " wantscalebar=n    min1=%g max1=%g min2=%g max2=%g    screenratio=%g screenht=10 labelsz=4    ''' % (custom,par['xmin'],par['xmax'],par['zmin'],par['zmax'],par['iratio'])def wgrey(custom,par):    return '''    window min1=%g max1=%g min2=%g max2=%g |    grey labelrot=n wantaxis=y wanttitle=n wantscalebar=n    title="" pclip=97 label1=z unit1=ft label2=x unit2=ft %s    screenratio=%g screenht=10 labelsz=4    ''' % (par['zmin'],par['zmax'],par['xmin'],par['xmax'],custom,par['iratio'])# ------------------------------------------------------------# modeling functiondef amodel(dat,wfl,wav,vel,sou,rec,custom):    Flow([dat,wfl],[wav,vel,sou,rec],         '''         afdm2d verb=y abc=y free=n snap=y jsnap=200 %s         nbz=250 tz=0.001         nbx=250 tx=0.001         vel=${SOURCES[1]}         sou=${SOURCES[2]}         rec=${SOURCES[3]}         wfl=${TARGETS[1]}         ''' % custom)# ------------------------------------------------------------# waveletFlow('wav',None,         '''         spike nsp=1 mag=1 n1=%(nt)d d1=%(dt)g o1=%(ot)g k1=%(kt)d |         ricker1 frequency=10 |          put label1=t label2=x label3=y          ''' % par)    Result('wav','wav','window n1=1000 | graph title=" "')# ------------------------------------------------------------# velocityvstr = 'sigsbee2a_stratigraphy.sgy'Fetch(vstr,'sigsbee')Flow('zvstr tzvstr ./shead ./bshead',vstr,     '''     segyread     tape=$SOURCE     tfile=${TARGETS[1]}     hfile=${TARGETS[2]}     bfile=${TARGETS[3]}     ''',stdin=0)Flow('vel','zvstr',     '''     put d1=%(dz)g o2=10025 d2=%(dx)g label1=z label2=x |     window f1=200 n1=%(nz)d     ''' % par )Result('vel','vel',igrey('color=j allpos=y',par))# ------------------------------------------------------------# experimentsFlow('ro',None,'math n1=%(nr)d d1=%(dr)g o1=%(or)g output=0' % par)Flow('so',None,'math n1=1      d1=0      o1=0      output=0' % par)for ie in range(par['ne']):        # receivers    if(ie==0): r_ = 6000    if(ie==1): r_ = 6000        zr = 'zr' + str(ie)    xr = 'xr' + str(ie)    rr = 'rr' + str(ie)    Flow(zr,'ro','math output="%g"' % r_)    Flow(xr,'ro','math output="x1"')    Flow(rr,[xr,zr],         '''         cat axis=2 space=n         ${SOURCES[0]} ${SOURCES[1]} | transp         ''', stdin=0)    Plot(rr,rr,'window n1=2 | dd type=complex | window j2=25 | '         + pgraph('symbol=. plotcol=5',par))    # sources    if(ie==0):        zs_ =  6000        xs_ = 35000    if(ie==1):        zs_ = 22500        xs_ = 40000    zs = 'zs' + str(ie)    xs = 'xs' + str(ie)    rs = 'rs' + str(ie)    ss = 'ss' + str(ie)        Flow(xs,'so','math output=%g' % xs_)    Flow(zs,'so','math output=%g' % zs_)    Flow(rs,'so','math output=1')    Flow(ss,[xs,zs,rs],         '''         cat axis=2 space=n         ${SOURCES[0]} ${SOURCES[1]} ${SOURCES[2]} | transp         ''', stdin=0)    Plot(ss,ss,'window n1=2 | dd type=complex | window | '         + pgraph('symbol=* plotcol=6',par))    # ------------------------------------------------------------# modelsFlow('mm0','vel',     '''     window n2=1 |     spray axis=2 n=%(nx)d o=%(ox)g d=%(dx)g     ''' % par)Flow('mm1','vel',     '''     window n2=1 min2=60000 |     spray axis=2 n=%(nx)d o=%(ox)g d=%(dx)g     ''' % par)Flow('mm2','vel','window n2=%(nx)d min2=%(ox)g' % par)# ------------------------------------------------------------# label parameterslabpar = ' xt=1.000000 yt=1.000000 lab_fat=0 lab_color=7 boxit=1 size=0.250000 pointer=1'# ml = model     label# wl = wavefield label# dl = data      labellab = {    'ml-0-0':'x0=6 y0=5 label="A"','wl-0-0':'x0=6 y0=5 label="A"','dl-0-0':'x0=6 y0=5 label="A"',    'ml-0-1':'x0=6 y0=5 label="B"','wl-0-1':'x0=6 y0=5 label="B"','dl-0-1':'x0=6 y0=5 label="B"',    'ml-1-0':'x0=6 y0=5 label="C"','wl-1-0':'x0=6 y0=5 label="C"','dl-1-0':'x0=6 y0=5 label="C"',    'ml-1-1':'x0=6 y0=5 label="D"','wl-1-1':'x0=6 y0=5 label="D"','dl-1-1':'x0=6 y0=5 label="D"',    'ml-2-0':'x0=6 y0=5 label="E"','wl-2-0':'x0=6 y0=5 label="E"','dl-2-0':'x0=6 y0=5 label="E"',    'ml-2-1':'x0=6 y0=5 label="F"','wl-2-1':'x0=6 y0=5 label="F"','dl-2-1':'x0=6 y0=5 label="F"',    }# change x0 and y0 to indicate a consistent event# ------------------------------------------------------------# loop over modelsfor im in range(par['nm']):    mm = 'mm' + str(im)    Plot(mm,igrey('allpos=y bias=4715',par))    # loop over experiments    for ie in range(par['ne']):        # labels        ml = 'ml' + '-' + str(im) + '-' + str(ie)        wl = 'wl' + '-' + str(im) + '-' + str(ie)        dl = 'dl' + '-' + str(im) + '-' + str(ie)                Plot(ml,None,'box %s' % lab[ml] + labpar)        Plot(wl,None,'box %s' % lab[wl] + labpar)        Plot(dl,None,'box %s' % lab[dl] + labpar)        ss = 'ss' + str(ie)        rr = 'rr' + str(ie)        me = 'me' + '-' + str(im) + '-' + str(ie) # model        dd = 'dd' + '-' + str(im) + '-' + str(ie) # data         ww = 'ww' + '-' + str(im) + '-' + str(ie) # wavefield        # MODELING function        amodel(dd,ww,'wav',mm,ss,rr,'free=y')                Plot(ww,'window n3=1 f3=12 min1=%(oz)g n1=%(nz)d min2=%(ox)g n2=%(nx)d |'% par             + igrey('pclip=97',par))        Plot(dd,'window j2=4 | transp |'             + dgrey('',par))        Result(ww+'-movie',ww,wgrey('gainpanel=a',par))                Result(me,[mm,ss,rr,ml],'Overlay')        Result(ww,[ww,ss,rr,wl],'Overlay')        Result(dd,[dd,      dl],'Overlay')        # ------------------------------------------------------------End()

⌨️ 快捷键说明

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