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

📄 sconstruct

📁 国外免费地震资料处理软件包
💻
字号:
from rsfproj import *import osprivate = {'login':os.environ.get('BEG_LOGIN'),           'password':os.environ.get('BEG_PASSWORD'),           'server':os.environ.get('BEG_SERVER')}Fetch('cmp.hh','acig',private)Flow('cmp','cmp.hh','dd form=native | tpow tpow=2 | mutter v0=1.4 half=n')def grey(title,other=''):    return '''    grey title="%s" labelsz=10 titlesz=12    label1="Time (s)" label2="Offset (km)" %s    ''' % (title,other)Plot('cmp',grey('(a) Data','clip=228'))# Playing with amplitude gains##############################Flow('env','cmp','envelope | scale axis=2')Flow('amp','env',     '''     math output="atan(input)" |     math output="input-sin(input)" |     add mode=d $SOURCE     ''')Flow('acmp','cmp amp','add mode=p ${SOURCES[1]}')Flow('ncmp','cmp',     '''     scale axis=2 |     math output="atan(input)" |     math output="input-sin(input)"     ''')# Interpolate near offsetsFlow('cmp0','cmp','window max2=1 | pad beg2=5')Flow('cmp1','cmp0','reverse which=2 opt=n | cat axis=2 $SOURCE')Flow('mask0','cmp','math output=1 | window max2=1 | pad beg2=5')Flow('mask1','mask0','reverse which=2 opt=n | cat axis=2 $SOURCE')Flow('dip1','cmp1','math output="x2*%g/(x1+0.001)" ' % (0.05/(0.004*1.5*1.5)))Flow('dip2','cmp1 dip1 mask1',     'twodip2 eps=100 lam=10 dip1=${SOURCES[1]} mask=${SOURCES[2]} q0=0')Flow('mis','cmp1 dip2 mask1',     '''     planemis2 dip=${SOURCES[1]} mask=${SOURCES[2]} verb=y prec=0 niter=10000     ''')Flow('mis2','mis cmp','window min2=0 n2=6 | cat axis=2 ${SOURCES[1]}')Flow('mis3','mis2','window f2=1 | reverse which=2 opt=n | cat axis=2 $SOURCE')Plot('mis2','grey title="Near Offsets Interpolated" ')# Predict multiples###################Flow('ccmp','mis2','pad n1=2048 | fft1 | fft3')Flow('mult','ccmp',     'add mode=p $SOURCE | fft3 inv=y | fft1 inv=y | window n1=1000')Plot('mult','window f2=6 | ' + grey('(b) SRME-predicted Multiples'))# Mask the important part#########################Flow('mask','mult',     'math output=1 | mutter hyper=y t0=0.7 v0=2 half=n | smooth rect1=5 rect2=5')Flow('cmp2','mask mis2','add mode=p ${SOURCES[1]}')Flow('mult2','mask mult','add mode=p ${SOURCES[1]}')# Estimate dips###############Flow('mdip','mult2','dip rect1=20 rect2=10 liter=40 pmin=0')Flow('vdip','cmp2',     'math output="%g*x2/(x1+0.004)" ' % (0.05/(2.5*2.5*0.004)))Flow('mask2','mdip','mask max=5 | dd type=float | smooth rect1=5 rect2=5')Flow('mdip2','cmp2 mdip mask2 vdip',     '''     twodip2 eps=15 lam=5 dip2=${SOURCES[1]} dip1=${SOURCES[3]} mask=${SOURCES[2]} verb=y      ''')Flow('mdip0','mdip2','window n3=1 f2=6')Flow('mdip1','mdip2','window f3=1 f2=6')Plot('mdip0',     grey('(c) Signal Slope',          'color=j scalebar=y allpos=y clip=5 minval=0 maxval=6 barlabel="Slope (samples)" '))Plot('mdip1',     grey('(d) Noise Slope',          'color=j scalebar=y allpos=y clip=5 minval=0 maxval=6 barlabel="Slope (samples)" '))Result('cmp','cmp mult mdip0 mdip1','SideBySideAniso')Flow('pvel0','cmp mdip0','pveltran half=n v0=1 dv=0.02 nv=100 dip=${SOURCES[1]}')Flow('pvel1','cmp mdip1','pveltran half=n v0=1 dv=0.02 nv=100 dip=${SOURCES[1]}')Flow('pvel','pvel0 pvel1','stack | envelope')# Separate signal/noise#######################Flow('comp','cmp2 mdip2','pwdsigk dips=${SOURCES[1]} verb=y niter=10000 eps=0.01')Flow('nois','comp mask','window f3=1 | add mode=p ${SOURCES[1]}')Plot('nois','window f2=6 | ' + grey('(b) Estimated Noise','clip=228'))Flow('sign','mis2 nois','add scale=1,-1 ${SOURCES[1]}')Plot('sign','window f2=6 | ' + grey('(a) Estimated Signal','clip=228'))Flow('cmp2s','cmp2','window n2=64')Flow('mdip2s','mdip2','window n2=64')Flow('masks','mask','window n2=64')Flow('comps','cmp2s mdip2s','seisigk dips=${SOURCES[1]} verb=y niter=1000')Flow('noiss','comps masks','window f3=1 | add mode=p ${SOURCES[1]}')Plot('noiss','window f2=6 | ' + grey('(b) Estimated Noise','clip=228'))Flow('signs','mis2 noiss','window n2=64 | add scale=1,-1 ${SOURCES[1]}')Plot('signs','window f2=6 | ' + grey('(a) Estimated Signal','clip=228'))# Velocity scans before and after#################################for dat in ('cmp','sign'):    Flow('v'+dat,dat,'vscan semblance=y v0=1 nv=100 dv=0.02 half=n')    Plot('v'+dat,grey('(%s) Velocity Scan (%s)' % (('c','Data'),('d','Estimated Signal'))[dat=='sign'],                      'label2="Velocity (km/s)" color=j allpos=y'))# Final result##############Result('super','sign nois vcmp vsign','SideBySideAniso')Result('supers','signs noiss','SideBySideAniso')End()

⌨️ 快捷键说明

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