📄 sconstruct
字号:
from rsfproj import *import zomig# get dataFetch('cmps-tp.HH','blake')# produce near-offset sectionFlow('noff','cmps-tp.HH', ''' window f2=47 | dd form=native | window n2=1024 | pad beg1=1000 | put label1=t label2=x o3=0 d3=1 label3= ''')Result('noff', ''' window f1=1000 | grey title="Near Offset Section" wheretitle=t pclip=95 label1="Time (s)" label2="Distance (km)" wherexlabel=b ''')# CMP gathersFlow('cmps','cmps-tp.HH', 'dd form=native | reverse which=2')# one CMPFlow('cmp','cmps', ''' window f3=950 n3=1 max1=6 | put o2=0.0 d2=1 ''')# offset mapsFlow('off1',None,'math n1=24 o1=0.4 d1=0.1 output=x1')Flow('off2',None,'math n1=24 o1=2.8 d1=0.05 output=x1')Flow('off','off1 off2','cat axis=1 ${SOURCES[1]}')Flow('offs','off','spray n=111')# ------------------------------------------------------------# velocity analysis# ------------------------------------------------------------# compute semblance for one CMPFlow('vscan','cmp off','vscan offset=${SOURCES[1]} v0=1.4 nv=61 dv=0.005 half=n semblance=y')Plot('vscan','grey color=j allpos=y title="Velocity Scan" label2="Velocity (km/s)" pclip=100')# pick max semblance for one CMPFlow('pick','vscan','pick rect1=30')Plot('pick','graph transp=y yreverse=y min2=1.4 max2=1.7 plotcol=7 plotfat=5 pad=n wanttitle=n wantaxis=n')Result('vscan','vscan pick','Overlay')# compute semblance for every 10th CMPFlow('vscans','cmps offs', 'window j3=10 | vscan offset=${SOURCES[1]} v0=1.4 nv=61 dv=0.005 half=n semblance=y')# pick max semblance for every 10th CMPFlow('picks0','vscans','pick rect1=30 rect2=5')# interpolate picks on original gridFlow('picks','picks0','window | transp | remap1 n1=1105 d1=0.05 o1=0 | transp')Result('picks', ''' grey color=j scalebar=y bias=1.55 title="Stacking Velocity" label1="Depth (km)" label2="Distance (km)" ''')# compute interval velocity (time)Flow('semb','vscans picks0', ''' slice pick=${SOURCES[1]} | window | transp | remap1 n1=1105 d1=0.05 o1=0 | transp ''')Flow('vel','picks semb','dix rect1=30 rect2=30 weight=${SOURCES[1]}')#Result('vel',# '''# grey color=j scalebar=y bias=1.55# title="Interval Velocity" label1="Time (s)" label2="Distance (km)"# ''')Flow('velt','vel','window n1=1 | spray axis=2 n=1000 d=0.004 o=0 | transp | cat $SOURCE axis=1')Result('velt', ''' window f1=1000 | grey color=j scalebar=y bias=1.45 allpos=y title="Interval Velocity" label1="Time (s)" label2="Distance (km)" ''')# compute interval velocity (depth)Flow('velz','velt','time2depth velocity=$SOURCE z0=0 dz=0.002 nz=2400 intime=y | put label1=z label2=x')Result('velz', ''' window f1=1400 | grey color=j scalebar=y bias=1.45 allpos=y title="Interval Velocity" label1="Depth (km)" label2="Distance (km)" ''')# ------------------------------------------------------------# MIGRATION# ------------------------------------------------------------par = { 'nx':1024,'ox':0,'dx':0.05, 'nt':1625,'ot':0,'dt':0.004,'kt':1,'ft':0, 'nz':1200,'oz':0,'dz':0.002, # 'nw':350, 'ow':4, 'jw':1, # 'verb':'y','eps':0.01,'nrmax':5,'dtmax':0.00005, 'tmx':16,'pmx':0, }par['dw']=par['jw']/((par['nt'])*par['dt'])## # slowness ##Flow('sss','velz', ''' window n2=%(nx)d | transp plane=12 | transp plane=23 | math "output=1/input" | put label1=x label2=y label3=z ''' % par)Flow('sdt','sss','window squeeze=n n3=2 j3=1400 | math output=0.666666' % par )Flow('slo','sss','window squeeze=n f3=1400' % par )## # data ##zomig.wflds ('dat','noff',par) # surface datazomig.Adttwo('dtm','dat','sdt',par) # datumed data (through water)## # migration ### migration from the surface#zomig.image('iii','sss','dat',par)#Result('iii','window | transp | grey ')# migration from the surfacezomig.image('img','slo','dtm',par)Result('img', ''' window | transp | grey wantscalebar=n title="Migrated image" label1="Depth (km)" label2="Distance (km)" ''')# ------------------------------------------------------------# Add rules for migration with constant velocity# create a new Result and compare it with the result of# migration with a laterally variable velocity# ------------------------------------------------------------# Add rules to recompute velocity scans at every CMP# adjust the "rect1= rect2=" parameters in the semblance# picking to obtain a reasonably smooth velocity model# ------------------------------------------------------------End()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -