Editing
Documentation:system/seismic
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
Let us improve self-documentation of Madagascar programs! Listed below are selfdocs for programs in system/seismic (generated with sfdoc). Please edit the descriptions to make them more complete and/or easier to understand. ==sfaastack== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Stack with antialiasing |- ! colspan="4" | sfaastack < inp.rsf > out.rsf adj=n inv=n n2=15 n2=1 vel=1.5 antialias=1. box=n |- | ''bool '' || '''adj=n''' || [y/n] || adjoint flag |- | ''float '' || '''antialias=1.''' || || antialiasing |- | ''bool '' || '''box=n''' || [y/n] || box antialiasing |- | ''bool '' || '''inv=n''' || [y/n] || inverse flag |- | ''int '' || '''n2=1''' || || |- | ''float '' || '''vel=1.5''' || || velocity |} ==sfagmig== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Angle-gather constant-velocity time migration. |- ! colspan="4" | sfagmig < in.rsf > out.rsf vel= ng= dg= g0= na=nx a=80. |- | ''float '' || '''a=80.''' || || maximum dip angle |- | ''float '' || '''dg=''' || || reflection angle sampling |- | ''float '' || '''g0=''' || || reflection angle origin |- | ''int '' || '''na=nx''' || || number of dip angles |- | ''int '' || '''ng=''' || || number of reflection angles |- | ''float '' || '''vel=''' || || velocity |} ==sfai2refl== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 1-D convolution modeling. |- ! colspan="4" | sfai2refl < ai.rsf > mod.rsf |} ==sfavo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Compute intercept and gradient by least squares. |- ! colspan="4" | sfavo < cmp.rsf > avo.rsf offset=offset.rsf half=y |- | ''bool '' || '''half=y''' || [y/n] || if y, the second axis is half-offset instead of full offset |- | ''string '' || '''offset=''' || || auxiliary input file name |} ==sfbeamspray== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 2-D beam spraying. |- ! colspan="4" | sfbeamspray < in.rsf dip=dip.rsf cur=cur.rsf > out.rsf rect=3 type= |- | ''file '' || '''cur=''' || || auxiliary input file name |- | ''file '' || '''dip=''' || || auxiliary input file name |- | ''int '' || '''rect=3''' || || smoothing radius |- | ''string '' || '''type=''' || || beam type |} ==sfc2r== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Cartesian-Coordinates to Riemannian-Coordinates interpolation |- ! colspan="4" | sfc2r < Fi.rsf rays=Fr.rsf > Fo.rsf verb=n adj=n linear=y a2n=1 a2o=0. a2d=1. a1n=1 a1o=0. a1d=1. |- | ''float '' || '''a1d=1.''' || || |- | ''int '' || '''a1n=1''' || || |- | ''float '' || '''a1o=0.''' || || |- | ''float '' || '''a2d=1.''' || || |- | ''int '' || '''a2n=1''' || || |- | ''float '' || '''a2o=0.''' || || |- | ''bool '' || '''adj=n''' || [y/n] || |- | ''bool '' || '''linear=y''' || [y/n] || |- | ''file '' || '''rays=''' || || auxiliary input file name |- | ''bool '' || '''verb=n''' || [y/n] || |} ==sfcascade== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Velocity partitioning for cascaded migrations. |- ! colspan="4" | sfcascade < in.rsf > out.rsf ntcut= tcut= ncut=1 |- | ''int '' || '''ncut=1''' || || number of cuts |- | ''ints '' || '''ntcut=''' || || [ncut] |- | ''floats '' || '''tcut=''' || || time cuts [ncut] |} ==sfcell2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Second-order cell ray tracing with locally parabolic rays. |- ! colspan="4" | sfcell2 < vel.rsf > time.rsf shotfile=shots.rsf anglefile=angles.rsf vel=y order=4 nt=nx*nz nr= a0=0. amax=360. traj= > rays.rsf |- | colspan="4" | Rays and wavefronts can be displayed with sfplotrays. |- | ''float '' || '''a0=0.''' || || First angle in degrees (if anglefile is not specified) |- | ''float '' || '''amax=360.''' || || Maximum angle in degrees (if anglefile is not specified) |- | ''string '' || '''anglefile=''' || || file with initial angles (auxiliary input file name) |- | ''int '' || '''nr=''' || || Number of angles (if anglefile is not specified) |- | ''int '' || '''nt=nx*nz''' || || number of time steps |- | ''int '' || '''order=4''' || || Interpolation accuracy |- | ''string '' || '''shotfile=''' || || file with shot locations (auxiliary input file name) |- | ''string '' || '''traj=''' || || |- | ''bool '' || '''vel=y''' || [y/n] || If y, the input is velocity; if n, slowness |} ==sfcell3== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Second-order cell ray tracing with locally parabolic rays in 3-D. |- ! colspan="4" | sfcell3 < vel.rsf > time.rsf shotfile=shots.rsf anglefile=angles.rsf vel=y order=4 nt=nx*nz na= nb= a0=0. amax=360. b0=0. bmax=180. traj= > rays.rsf |- | colspan="4" | Rays and wavefronts can be displayed with sfplotrays. |- | ''float '' || '''a0=0.''' || || First azimuth angle in degrees (if anglefile is not specified) |- | ''float '' || '''amax=360.''' || || Maximum azimuth angle in degrees (if anglefile is not specified) |- | ''string '' || '''anglefile=''' || || file with initial angles (auxiliary input file name) |- | ''float '' || '''b0=0.''' || || First inclination angle in degrees (if anglefile is not specified) |- | ''float '' || '''bmax=180.''' || || Maximum inclination angle in degrees (if anglefile is not specified) |- | ''int '' || '''na=''' || || Number of azimuths (if anglefile is not specified) |- | ''int '' || '''nb=''' || || Number of inclinations (if anglefile is not specified) |- | ''int '' || '''nt=nx*nz''' || || number of time steps |- | ''int '' || '''order=4''' || || Interpolation accuracy |- | ''string '' || '''shotfile=''' || || file with shot locations (auxiliary input file name) |- | ''string '' || '''traj=''' || || |- | ''bool '' || '''vel=y''' || [y/n] || If y, the input is velocity; if n, slowness |} ==sfcgscan== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Hyperbolic Radon transform with conjugate-directions inversion |- ! colspan="4" | sfcgscan < in.rsf > out.rsf error=err.rsf mask=msk.rsf adj=n niter=0 miter=2 psun1=1 psun2=1 anti=1. s02=0. ncycle=0 perc=50.0 |- | ''bool '' || '''adj=n''' || [y/n] || adjoint flag |- | ''float '' || '''anti=1.''' || || antialiasing |- | ''string '' || '''error=''' || || auxiliary output file name |- | ''string '' || '''mask=''' || || auxiliary input file name |- | ''int '' || '''miter=2''' || || conjugate-direction memory |- | ''int '' || '''ncycle=0''' || || number of sharpening cycles |- | ''int '' || '''niter=0''' || || number of iterations |- | ''float '' || '''perc=50.0''' || || percentage for sharpening |- | ''int '' || '''psun1=1''' || || amplitude type for adjoint |- | ''int '' || '''psun2=1''' || || amplitude type for forward |- | ''float '' || '''s02=0.''' || || reference slowness squared (for antialiasing) |} ==sfcmp2shot== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Convert CMPs to shots for regular 2-D geometry. |- ! colspan="4" | sfcmp2shot < in.rsf > out.rsf positive=y |- | ''bool '' || '''positive=y''' || [y/n] || initial offset orientation |} ==sfconstfdmig2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 2-D implicit finite-difference migration in constant velocity. |- ! colspan="4" | sfconstfdmig2 < data.rsf > imag.rsf movie=movie.rsf nz=2*(nw-1) dz=1./(nz*dw) vel= hi=y sixth=1./12 |- | ''float '' || '''dz=1./(nz*dw)''' || || vertical time sampling |- | ''bool '' || '''hi=y''' || [y/n] || if y, use 45-degree; n, 15-degree |- | ''string '' || '''movie=''' || || auxiliary output file name |- | ''int '' || '''nz=2*(nw-1)''' || || vertical time samples |- | ''float '' || '''sixth=1./12''' || || one-sixth trick |- | ''float '' || '''vel=''' || || constant velocity |} ==sfcos2ang== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Inverse cos to angle transformation |- ! colspan="4" | sfcos2ang < Fstk.rsf > Fang.rsf velocity=velocity.rsf na=nt da=90/(nt-1) a0=0. extend=4 top=n |- | ''float '' || '''a0=0.''' || || angle origin |- | ''float '' || '''da=90/(nt-1)''' || || angle sampling |- | ''int '' || '''extend=4''' || || tmp extension |- | ''int '' || '''na=nt''' || || number of angles |- | ''bool '' || '''top=n''' || [y/n] || velocity scaling option |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sfdepth2time== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Conversion from depth to time in a V(z) medium. |- ! colspan="4" | sfdepth2time < in.rsf velocity=velocity.rsf > out.rsf nt= dt= t0= slow=n eps=0.01 |- | colspan="4" | <br>Transforms function of z to function of<br><br>tau = Integral[2/v[x,n],{n,0,z}] |- | ''float '' || '''dt=''' || || Time sampling (default is d1) |- | ''float '' || '''eps=0.01''' || || smoothness parameter |- | ''int '' || '''nt=''' || || Number of points in time (default is n1) |- | ''bool '' || '''slow=n''' || [y/n] || y: slowness, n: velocity |- | ''float '' || '''t0=''' || || Time origin (default is 0) |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sfdiffoc== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Diffraction focusing test. |- ! colspan="4" | sfdiffoc < inp.rsf > out.rsf v0=SF_EPS v= pad=nt pad2=2*kiss_fft_next_fast_size((n2+1)/2) extend=4 |- | ''int '' || '''extend=4''' || || trace extension |- | ''int '' || '''pad=nt''' || || padding for stretch |- | ''int '' || '''pad2=2*kiss_fft_next_fast_size((n2+1)/2)''' || || padding for FFT |- | ''float '' || '''v=''' || || final velocity |- | ''float '' || '''v0=SF_EPS''' || || initial velocity |} ==sfdiffraction== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Generate diffractions in zero-offset data. |- ! colspan="4" | sfdiffraction < w1.rsf w2=w2.rsf w12=w12.rsf spikes=spikes.rsf > data.rsf freq=0.2/dt |- | ''float '' || '''freq=0.2/dt''' || || peak frequency for Ricker wavelet |- | ''file '' || '''spikes=''' || || auxiliary input file name |- | ''file '' || '''w12=''' || || auxiliary input file name |- | ''file '' || '''w2=''' || || auxiliary input file name |} ==sfdimag== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Diffraction imaging in the plane-wave domain. |- ! colspan="4" | sfdimag < cmp.rsf > scan.rsf semblance=n nb=2 v0= dv= nv= extend=4 mute=12 str=0. x0= |- | ''float '' || '''dv=''' || || |- | ''int '' || '''extend=4''' || || trace extension |- | ''int '' || '''mute=12''' || || mute zone |- | ''int '' || '''nb=2''' || || semblance averaging |- | ''int '' || '''nv=''' || || |- | ''bool '' || '''semblance=n''' || [y/n] || if y, compute semblance; if n, stack |- | ''float '' || '''str=0.''' || || maximum stretch allowed |- | ''float '' || '''v0=''' || || |- | ''float '' || '''x0=''' || || |} ==sfdmo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Kirchhoff DMO with antialiasing by reparameterization. |- ! colspan="4" | sfdmo < in.rsf > out.rsf mint=2 n=32 adj=y inv=n type=1 h= half=y velhalf=0.75 |- | ''bool '' || '''adj=y''' || [y/n] || adjoint flag |- | ''float '' || '''h=''' || || |- | ''bool '' || '''half=y''' || [y/n] || if y, the third axis is half-offset instead of full offset |- | ''bool '' || '''inv=n''' || [y/n] || inversion flag |- | ''int '' || '''mint=2''' || || starting time sample |- | ''int '' || '''n=32''' || || number of offset samples |- | ''int '' || '''type=1''' || || type of amplitude (0,1,2,3) |- | ''float '' || '''velhalf=0.75''' || || half-velocity |} ==sfdsr== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Prestack 2-D VTI v(z) modeling/migration by DSR with angle gathers. |- ! colspan="4" | sfdsr < in.rsf > out.rsf velocity=vel.rsf velz=velz.rsf eta=eta.rsf inv=n eps=0.01 depth=n na=1 da=90. nt= dt= t0=0. nh= dh= nz=nt dz=dt vel= vz=v0 n=0.0 nw=nt2/2+1 rule= arule= |- | ''string '' || '''arule=''' || || angle gather rule |- | ''float '' || '''da=90.''' || || angle sampling (in degrees) |- | ''bool '' || '''depth=n''' || [y/n] || if true, depth migration |- | ''float '' || '''dh=''' || || Offset sampling (for modeling) |- | ''float '' || '''dt=''' || || Sampling of time axis (for modeling) |- | ''float '' || '''dz=dt''' || || Sampling of depth axis (for migration, if no velocity file) |- | ''float '' || '''eps=0.01''' || || Stabilization parameter |- | ''string '' || '''eta=''' || || auxiliary input file name |- | ''bool '' || '''inv=n''' || [y/n] || If y, modeling; If n, migration |- | ''float '' || '''n=0.0''' || || Constant eta (if no velocity file) |- | ''int '' || '''na=1''' || || number of angles |- | ''int '' || '''nh=''' || || Number of offsets (for modeling) |- | ''int '' || '''nt=''' || || Length of time axis (for modeling) |- | ''int '' || '''nw=nt2/2+1''' || || Maximum number of frequencies |- | ''int '' || '''nz=nt''' || || Length of depth axis (for migration, if no velocity file) |- | ''string '' || '''rule=''' || || phase-shift interpolation rule (simple, midpoint, linear, anisotropic, dti) |- | ''float '' || '''t0=0.''' || || |- | ''float '' || '''vel=''' || || Constant velocity (if no velocity file) |- | ''string '' || '''velocity=''' || || file with velocity (file with velocity (auxiliary input file name)) |- | ''string '' || '''velz=''' || || auxiliary input file name |- | ''float '' || '''vz=v0''' || || Constant vertical velocity (if no velocity file) |} ==sfdsr2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 2-D prestack modeling/migration with split-step DSR. |- ! colspan="4" | sfdsr2 < in.rsf > out.rsf slowness=vel.rsf inv=n verb=n eps=0.01 nt=1 nr=1 dt=0.004 npad=0 nw= dw= w0=0. |- | ''float '' || '''dt=0.004''' || || time error |- | ''float '' || '''dw=''' || || Frequency sampling (for modeling) |- | ''float '' || '''eps=0.01''' || || stability parameter |- | ''bool '' || '''inv=n''' || [y/n] || If y, modeling; if n, migration |- | ''int '' || '''npad=0''' || || padding on offset wavenumber |- | ''int '' || '''nr=1''' || || maximum number of references |- | ''int '' || '''nt=1''' || || taper size |- | ''int '' || '''nw=''' || || Length of frequency axis (for modeling) |- | ''file '' || '''slowness=''' || || auxiliary input file name |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |- | ''float '' || '''w0=0.''' || || Frequency origin (for modeling) |} ==sfenvelope== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Compute data envelope or phase rotation. |- ! colspan="4" | sfenvelope < in.rsf > out.rsf order=100 ref=1. hilb=n phase=90. |- | colspan="4" | <br>November 2011 program of the month:<br>http://ahay.org/rsflog/index.php?/archives/274-Program-of-the-month-sfenvelope.html |- | ''bool '' || '''hilb=n''' || [y/n] || if y, compute Hilbert transform |- | ''int '' || '''order=100''' || || Hilbert transformer order |- | ''float '' || '''phase=90.''' || || phase shift (in degrees) to use with hilb=y |- | ''float '' || '''ref=1.''' || || Hilbert transformer reference (0.5 < ref <= 1) |} ==sffincon== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Offset continuation by finite differences |- ! colspan="4" | sffincon < input.rsf > output.rsf nh= dh= h0= all=n |- | ''bool '' || '''all=n''' || [y/n] || if y, output all offsets |- | ''float '' || '''dh=''' || || Offset step size |- | ''float '' || '''h0=''' || || Initial offset |- | ''int '' || '''nh=''' || || Number of steps in offset |} ==sffindmo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | DMO without stacking by finite-difference offset continuation. |- ! colspan="4" | sffindmo < cmp.rsf > stk.rsf |} ==sffinstack== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | DMO and stack by finite-difference offset continuation. |- ! colspan="4" | sffinstack < cmp.rsf > stk.rsf |} ==sffkamo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Computes Azimuth Move-Out (AMO) operator in the f-k log-stretch domain |- ! colspan="4" | sffkamo < in.rsf > out.rsf h1= h2= f1= f2= maxe=10. |- | ''float '' || '''f1=''' || || input azimuth in degrees |- | ''float '' || '''f2=''' || || output azimuth in degrees |- | ''float '' || '''h1=''' || || input offset |- | ''float '' || '''h2=''' || || output offset |- | ''float '' || '''maxe=10.''' || || stability constraint |} ==sffkdmo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Offset continuation by log-stretch F-K operator. |- ! colspan="4" | sffkdmo < in.rsf > out.rsf h= nh=1 h0=0. |- | ''float '' || '''h=''' || || final offset |- | ''float '' || '''h0=0.''' || || initial offset |- | ''int '' || '''nh=1''' || || number of offset steps |} ==sffold== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Make a seismic foldplot/stacking chart. |- ! colspan="4" | sffold < in.rsf > out.rsf verbose=1 o1= o2= o3= n1= n2= n3= d1= d2= d3= label1= label2= label3= |- | colspan="4" | <br>This is a general 3D histogram program implemented to create foldplot or<br>stacking charts on a 3d project from trace headers. Axis1, 2 and 3 define <br>the bins for the output fold map. These are usually (offset,xline,iline), <br>but you might want to compute some other histogram. This can be done by <br>selecting other segy headers using label1, 2 and 3.<br><br>See also fold= option in sfbin for creating 2D histograms.<br><br>EXAMPLES:<br><br> To make a stacking chart movie showing fold(xline,offset) for each inline<br> from a 3d segyfile:<br><br> sfsegyread tfile=tteapot.rsf hfile=teapot.asc bfile=teapot.bin \<br> tape=npr3_field.sgy > teapot.rsf<br><br> # read the tfile, which contains the segy trace headers<br> < tteapot.rsf sfdd type=float \<br> | sffold verbose=1 \<br> o1=0 n1=96 d1=200 label1=offset \<br> o2=1 n2=188 d2=1 label2=xline \<br> o3=1 n3=345 d3=1 label3=iline \<br> >foldplot.rsf<br> <foldplot.rsf sfgrey title=foldplot pclip=100 \<br> | sfpen <br><br> # transpose this data to plot foldmaps for each offset window:<br><br> < foldplot.rsf sftransp plane=13 \<br> | sftransp plane=12 \<br> | sfgrey title=foldplot_off gainpanel=all \<br> | sfpen |- | ''float '' || '''d1=''' || || Delta label1 - usually delta offset |- | ''float '' || '''d2=''' || || Delta label2 - usually delta xline |- | ''float '' || '''d3=''' || || Delta label3 - usually delta iline |- | ''string '' || '''label1=''' || || header for axis1 - usually offset |- | ''string '' || '''label2=''' || || header for axis2 - usually xline or cdp |- | ''string '' || '''label3=''' || || header for axis3 - usually iline |- | ''int '' || '''n1=''' || || Number label1 - usually number offset |- | ''int '' || '''n2=''' || || Number label2 - usually number xline |- | ''int '' || '''n3=''' || || Number label3 - usually number iline |- | ''float '' || '''o1=''' || || Minimum label1 - usually min offset |- | ''float '' || '''o2=''' || || Minimum label2 - usually min xline |- | ''float '' || '''o3=''' || || Minimum label3 - usually min iline |- | ''int '' || '''verbose=1''' || || 0 terse, 1 informative, 2 chatty, 3 debug |} ==sffourvc== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Prestack velocity continuation. |- ! colspan="4" | sffourvc < in.rsf > out.rsf eps=0.01 pad=n1 pad2=2*kiss_fft_next_fast_size((n2+1)/2) verb=n nv= dv= extend=4 v0= |- | ''float '' || '''dv=''' || || velocity step size |- | ''float '' || '''eps=0.01''' || || regularization |- | ''int '' || '''extend=4''' || || trace extension |- | ''int '' || '''nv=''' || || velocity steps |- | ''int '' || '''pad=n1''' || || padding for stretch |- | ''int '' || '''pad2=2*kiss_fft_next_fast_size((n2+1)/2)''' || || padding for FFT |- | ''float '' || '''v0=''' || || starting velocity |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |} ==sffourvc0== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Velocity continuation after NMO. |- ! colspan="4" | sffourvc0 < in.rsf > out.rsf eps=0.01 pad=n1 pad2=2*kiss_fft_next_fast_size((n2+1)/2) verb=n nv= dv= extend=4 |- | ''float '' || '''dv=''' || || |- | ''float '' || '''eps=0.01''' || || |- | ''int '' || '''extend=4''' || || trace extension |- | ''int '' || '''nv=''' || || |- | ''int '' || '''pad=n1''' || || |- | ''int '' || '''pad2=2*kiss_fft_next_fast_size((n2+1)/2)''' || || |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |} ==sffourvc2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Velocity continuation with semblance computation. |- ! colspan="4" | sffourvc2 < in.rsf > out.rsf nb=2 eps=0.01 pad=n1 pad2=2*kiss_fft_next_fast_size((n2+1)/2) nv= dv= semblance=y extend=4 |- | ''float '' || '''dv=''' || || |- | ''float '' || '''eps=0.01''' || || |- | ''int '' || '''extend=4''' || || trace extension |- | ''int '' || '''nb=2''' || || |- | ''int '' || '''nv=''' || || |- | ''int '' || '''pad=n1''' || || |- | ''int '' || '''pad2=2*kiss_fft_next_fast_size((n2+1)/2)''' || || |- | ''bool '' || '''semblance=y''' || [y/n] || if y, compute semblance; if n, stack |} ==sffreqint== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 1-D data regularization using freqlet transform |- ! colspan="4" | sffreqint < in.rsf > out.rsf freq=w.rsf coord=coord.rsf n1= d1= o1= niter=10 ncycle=1 eps=1.0 inv=n perc=50.0 type= |- | ''file '' || '''coord=''' || || auxiliary input file name |- | ''float '' || '''d1=''' || || output sampling |- | ''float '' || '''eps=1.0''' || || regularization parameter |- | ''file '' || '''freq=''' || || auxiliary input file name |- | ''bool '' || '''inv=n''' || [y/n] || inversion flag |- | ''int '' || '''n1=''' || || output samples |- | ''int '' || '''ncycle=1''' || || number of IRLS iterations |- | ''int '' || '''niter=10''' || || number of iterations for inversion |- | ''float '' || '''o1=''' || || output origin |- | ''float '' || '''perc=50.0''' || || percentage for sharpening |- | ''string '' || '''type=''' || || [haar,linear,biorthogonal] wavelet type, the default is linear |} ==sffreqlet== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 1-D seislet frame |- ! colspan="4" | sffreqlet < in.rsf > out.rsf freq=w.rsf inv=n verb=y decomp=n ncycle=0 niter=1 perc=50.0 type= |- | ''bool '' || '''decomp=n''' || [y/n] || do decomposition |- | ''file '' || '''freq=''' || || auxiliary input file name |- | ''bool '' || '''inv=n''' || [y/n] || if y, do inverse transform |- | ''int '' || '''ncycle=0''' || || number of iterations |- | ''int '' || '''niter=1''' || || number of Bregman iterations |- | ''float '' || '''perc=50.0''' || || percentage for sharpening |- | ''string '' || '''type=''' || || [haar,linear,biorthogonal] wavelet type, the default is linear |- | ''bool '' || '''verb=y''' || [y/n] || verbosity flag |} ==sfgazdag== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Post-stack 2-D v(z) time modeling/migration with Gazdag phase-shift. |- ! colspan="4" | sfgazdag < in.rsf > out.rsf velocity=vel.rsf velz=velz.rsf eta=eta.rsf inv=n eps=0.01 verb=n depth=n nt= dt= nz= dz= vel= vz=v0 n=0.0 pad=2*kiss_fft_next_fast_size((nt+1)/2) rule= |- | ''bool '' || '''depth=n''' || [y/n] || if true, depth migration |- | ''float '' || '''dt=''' || || Sampling of time axis (for modeling) |- | ''float '' || '''dz=''' || || Sampling of depth axis (for migration, if no velocity file) |- | ''float '' || '''eps=0.01''' || || stabilization parameter |- | ''string '' || '''eta=''' || || auxiliary input file name |- | ''bool '' || '''inv=n''' || [y/n] || if y, modeling; if n, migration |- | ''float '' || '''n=0.0''' || || Constant eta (if no velocity file) |- | ''int '' || '''nt=''' || || Length of time axis (for modeling) |- | ''int '' || '''nz=''' || || Length of depth axis (for migration, if no velocity file) |- | ''int '' || '''pad=2*kiss_fft_next_fast_size((nt+1)/2)''' || || |- | ''string '' || '''rule=''' || || phase-shift interpolation rule (simple, midpoint, linear) |- | ''float '' || '''vel=''' || || Constant velocity (if no velocity file) |- | ''string '' || '''velocity=''' || || auxiliary input file name |- | ''string '' || '''velz=''' || || auxiliary input file name |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |- | ''float '' || '''vz=v0''' || || Constant vertical velocity (if no velocity file) |} ==sfhalfint== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Half-order integration or differentiation. |- ! colspan="4" | sfhalfint < in.rsf > out.rsf adj=n inv=n rho=1.-1./n1 |- | colspan="4" | <br>December 2012 program of the month:<br>http://ahay.org/rsflog/index.php?/archives/317-Program-of-the-month-sfhalfint.html |- | ''bool '' || '''adj=n''' || [y/n] || If y, apply adjoint |- | ''bool '' || '''inv=n''' || [y/n] || If y, do differentiation instead of integration |- | ''float '' || '''rho=1.-1./n1''' || || Leaky integration constant |} ==sfheaderattr== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Integer header attributes. |- ! colspan="4" | sfheaderattr < head.rsf |- | colspan="4" | <br>Only nonzero values are reported. |} ==sfheadermath== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Mathematical operations, possibly on header keys. |- ! colspan="4" | sfheadermath < in.rsf > out.rsf memsize=sf_memsize() output= |- | colspan="4" | <br>Known functions: cos, sin, tan, acos, asin, atan, <br> cosh, sinh, tanh, acosh, asinh, atanh,<br> exp, log, sqrt, abs<br><br>See also sfmath.<br><br>An addition operation can be performed by sfstack. |- | ''int '' || '''memsize=sf_memsize()''' || || Max amount of RAM (in Mb) to be used |- | ''string '' || '''output=''' || || Describes the output in a mathematical notation. |} ==sfhwt2d== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 2-D Huygens wavefront tracing traveltimes |- ! colspan="4" | sfhwt2d < Fv.rsf > Fw.rsf verb=n rays=n xsou=sf_o(ax) + nx*sf_d(ax)/2 zsou=sf_o(az) + nz*sf_d(az)/2 nt=100 ot=0 dt=0.001 ng=360 og=-180 dg=1 |- | ''float '' || '''dg=1''' || || |- | ''float '' || '''dt=0.001''' || || |- | ''int '' || '''ng=360''' || || |- | ''int '' || '''nt=100''' || || |- | ''float '' || '''og=-180''' || || |- | ''float '' || '''ot=0''' || || |- | ''bool '' || '''rays=n''' || [y/n] || velocity file |- | ''bool '' || '''verb=n''' || [y/n] || |- | ''float '' || '''xsou=sf_o(ax) + nx*sf_d(ax)/2''' || || |- | ''float '' || '''zsou=sf_o(az) + nz*sf_d(az)/2''' || || |} ==sfhwtex== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Huygens wavefront tracing traveltimes |- ! colspan="4" | sfhwtex < Fv.rsf sou=Fs.rsf > Fw.rsf verb=n nt=100 ot=0 dt=0.001 |- | ''float '' || '''dt=0.001''' || || |- | ''int '' || '''nt=100''' || || |- | ''float '' || '''ot=0''' || || |- | ''file '' || '''sou=''' || || auxiliary input file name |- | ''bool '' || '''verb=n''' || [y/n] || velocity file |} ==sfinfill== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Shot interpolation. |- ! colspan="4" | sfinfill < in.rsf > out.rsf eps=0.1 positive=y |- | ''float '' || '''eps=0.1''' || || regularization parameter |- | ''bool '' || '''positive=y''' || [y/n] || initial offset orientation |} ==sfinmo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Inverse normal moveout. |- ! colspan="4" | sfinmo < cmp.rsf velocity=velocity.rsf > nmod.rsf offset=offset.rsf half=y slowness=n h0=0. eps=0.01 |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''float '' || '''h0=0.''' || || reference offset |- | ''bool '' || '''half=y''' || [y/n] || if y, the second axis is half-offset instead of full offset |- | ''string '' || '''offset=''' || || auxiliary input file name |- | ''bool '' || '''slowness=n''' || [y/n] || if y, use slowness instead of velocity |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sfinmo3== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 3-D Inverse normal moveout. |- ! colspan="4" | sfinmo3 < cmp.rsf > nmod.rsf velocity=vel.rsf half=y eps=0.01 extend=8 |- | colspan="4" | <br>velocity file contains slowness squared with n2=3 (wx,wy,wxy) |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''int '' || '''extend=8''' || || trace extension |- | ''bool '' || '''half=y''' || [y/n] || if y, the second and third axes are half-offset instead of full offset |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sfintbin== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Data binning by trace sorting. |- ! colspan="4" | sfintbin < in.rsf > out.rsf xkey= ykey= xmin= xmax= ymin= ymax= head= xk= yk= mask= |- | colspan="4" | <br>The input is 2-D (n1 x ntr). The output is 3-D (n1 x n2 x n3), n2 and<br>n3 correspond to two selected keys from the header file. |- | ''string '' || '''head=''' || || header file |- | ''string '' || '''mask=''' || || output mask file |- | ''string '' || '''xk=''' || || x key name |- | ''int '' || '''xkey=''' || || x key number (if no xk), default is fldr |- | ''int '' || '''xmax=''' || || x maximum |- | ''int '' || '''xmin=''' || || x minimum |- | ''string '' || '''yk=''' || || y key name |- | ''int '' || '''ykey=''' || || y key number (if no yk), default is tracf |- | ''int '' || '''ymax=''' || || y maximum |- | ''int '' || '''ymin=''' || || y minimum |} ==sfintbin3== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 4-D data binning. |- ! colspan="4" | sfintbin3 < in.rsf > out.rsf xkey= ykey= zkey= xmin= xmax= ymin= ymax= zmin= zmax= head= xk= yk= zk= mask= |- | ''string '' || '''head=''' || || header file |- | ''string '' || '''mask=''' || || output mask file |- | ''string '' || '''xk=''' || || x key name |- | ''int '' || '''xkey=''' || || x key number (if no xk), default is fldr |- | ''int '' || '''xmax=''' || || x maximum |- | ''int '' || '''xmin=''' || || x minimum |- | ''string '' || '''yk=''' || || y key name |- | ''int '' || '''ykey=''' || || y key number (if no yk), default is tracf |- | ''int '' || '''ymax=''' || || y maximum |- | ''int '' || '''ymin=''' || || y minimum |- | ''string '' || '''zk=''' || || z key name |- | ''int '' || '''zkey=''' || || z key number (if no zk), default is tracf |- | ''int '' || '''zmax=''' || || z maximum |- | ''int '' || '''zmin=''' || || z minimum |} ==sfisin2ang== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | inverse sin to angle transformation |- ! colspan="4" | sfisin2ang < Fstk.rsf > Fang.rsf velocity=velocity.rsf na=nt da=90/(nt-1) a0=0. extend=4 top=n |- | ''float '' || '''a0=0.''' || || angle origin |- | ''float '' || '''da=90/(nt-1)''' || || angle sampling |- | ''int '' || '''extend=4''' || || tmp extension |- | ''int '' || '''na=nt''' || || number of angles |- | ''bool '' || '''top=n''' || [y/n] || velocity scaling option |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sfitaupmo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Inverse normal moveout in tau-p domain. |- ! colspan="4" | sfitaupmo < cmp.rsf velocity=velocity.rsf > nmod.rsf eta=eta.rsf interval=y eps=0.01 |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''string '' || '''eta=''' || || auxiliary input file name |- | ''bool '' || '''interval=y''' || [y/n] || use interval velocity |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sfitaupmo2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Inverse normal moveout in tau-p-x domain. |- ! colspan="4" | sfitaupmo2 < cmp.rsf velocity=velocity.rsf > nmod.rsf nx= dx= x0=0.0 nw=4 |- | ''float '' || '''dx=''' || || offset sampling |- | ''int '' || '''nw=4''' || || interpolator size (2,3,4,6,8) |- | ''int '' || '''nx=''' || || number of offsets |- | ''file '' || '''velocity=''' || || auxiliary input file name |- | ''float '' || '''x0=0.0''' || || first offset |} ==sfitaupmo3== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 3-D Inverse taup normal moveout. |- ! colspan="4" | sfitaupmo3 < cmp.rsf > nmod.rsf velocity=vel.rsf eps=0.01 slow=n interval=y extend=8 |- | colspan="4" | <br>velocity file contains velocity squared with n2=3 (vx,vy,vxy) |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''int '' || '''extend=8''' || || trace extension |- | ''bool '' || '''interval=y''' || [y/n] || use interval velocity |- | ''bool '' || '''slow=n''' || [y/n] || slowness [y] or velocity [n] squared |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sfitxmo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Forward and inverse normal moveout with interval velocity. |- ! colspan="4" | sfitxmo < inp.rsf > out.rsf velocity=velocity.rsf inv=n nx= dx= x0=0. np= dp= eps=0.01 |- | ''float '' || '''dp=''' || || slope sampling |- | ''float '' || '''dx=''' || || offset sampling |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''bool '' || '''inv=n''' || [y/n] || |- | ''int '' || '''np=''' || || slope samples |- | ''int '' || '''nx=''' || || offset samples |- | ''file '' || '''velocity=''' || || auxiliary input file name |- | ''float '' || '''x0=0.''' || || first offset |} ==sfiwarp== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Inverse 1-D warping. |- ! colspan="4" | sfiwarp < in.rsf > out.rsf warp=warp.rsf inv=y n1=nt eps=0.01 d1=1 o1=0 |- | colspan="4" | <br>September 2012 program of the month:<br>http://ahay.org/rsflog/index.php?/archives/304-Program-of-the-month-sfiwarp.html |- | ''float '' || '''d1=1''' || || output sampling - for inv=y |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''bool '' || '''inv=y''' || [y/n] || inversion flag |- | ''int '' || '''n1=nt''' || || output samples - for inv=y |- | ''float '' || '''o1=0''' || || output origin - for inv=y |- | ''file '' || '''warp=''' || || auxiliary input file name |} ==sfiwarp2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Inverse 2-D warping |- ! colspan="4" | sfiwarp2 < in.rsf > out.rsf warp=warp.rsf inv=y n1=nt n2=nx eps=0.01 d1=1 o1=0 |- | ''float '' || '''d1=1''' || || output sampling - for inv=y |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''bool '' || '''inv=y''' || [y/n] || inversion flag |- | ''int '' || '''n1=nt''' || || |- | ''int '' || '''n2=nx''' || || output samples - for inv=y |- | ''float '' || '''o1=0''' || || output origin - for inv=y |- | ''file '' || '''warp=''' || || auxiliary input file name |} ==sfiwarp3== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Inverse 3-D warping |- ! colspan="4" | sfiwarp3 < in.rsf > out.rsf warp=warp.rsf inv=y n1=nt n2=ny n3=nx eps=0.01 d1=1 o1=0 |- | ''float '' || '''d1=1''' || || output sampling - for inv=y |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''bool '' || '''inv=y''' || [y/n] || inversion flag |- | ''int '' || '''n1=nt''' || || |- | ''int '' || '''n2=ny''' || || |- | ''int '' || '''n3=nx''' || || output samples - for inv=y |- | ''float '' || '''o1=0''' || || output origin - for inv=y |- | ''file '' || '''warp=''' || || auxiliary input file name |} ==sfkirchinv== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Kirchhoff 2-D post-stack least-squares time migration with antialiasing. |- ! colspan="4" | sfkirchinv < in.rsf > out.rsf velocity=vel.rsf hd=y ps=y sw=0 niter=10 err= |- | colspan="4" | <br> Antialiasing by reparameterization. |- | ''string '' || '''err=''' || || output file for error |- | ''bool '' || '''hd=y''' || [y/n] || if y, apply half-derivative filter |- | ''int '' || '''niter=10''' || || number of iterations |- | ''bool '' || '''ps=y''' || [y/n] || if y, apply pseudo-unitary weighting |- | ''int '' || '''sw=0''' || || if > 0, select a branch of the antialiasing operation |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sfkirchnew== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Kirchhoff 2-D post-stack time migration and modeling with antialiasing. |- ! colspan="4" | sfkirchnew < in.rsf > out.rsf velocity=vel.rsf adj=y hd=y sw=0 v0= |- | colspan="4" | <br> Antialiasing by reparameterization. |- | ''bool '' || '''adj=y''' || [y/n] || yes: migration, no: modeling |- | ''bool '' || '''hd=y''' || [y/n] || if y, apply half-derivative filter |- | ''int '' || '''sw=0''' || || if > 0, select a branch of the antialiasing operation |- | ''float '' || '''v0=''' || || constant velocity (if no velocity=) |- | ''string '' || '''velocity=''' || || velocity file (auxiliary input file name) |} ==sfkirmod== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Kirchhoff 2-D/2.5-D modeling with analytical Green's functions. |- ! colspan="4" | sfkirmod < modl.rsf > data.rsf curv=curv.rsf refl=refl.rsf picks=picks.rsf slopes=slopes.rsf lin=n adj=n absoff=n nt= dt=0.004 t0=0. ns=nx s0=x0 ds=dx nh=nx h0=0. dh=dx verb=n r0=1. r0=1. twod=n cmp=n freq=0.2/dt vel= gradx= gradz= velz= eta= refx= refz= vel2= gradx2= gradz2= rgrad= dip= type= type2= |- | colspan="4" | <br>October 2012 program of the month:<br>http://ahay.org/rsflog/index.php?/archives/308-Program-of-the-month-sfkirmod.html |- | ''bool '' || '''absoff=n''' || [y/n] || y - h0 is not in shot coordinate system |- | ''bool '' || '''adj=n''' || [y/n] || adjoint flag |- | ''bool '' || '''cmp=n''' || [y/n] || compute CMP instead of shot gathers |- | ''file '' || '''curv=''' || || auxiliary input file name |- | ''float '' || '''dh=dx''' || || offset increment |- | ''string '' || '''dip=''' || || reflector dip file |- | ''float '' || '''ds=dx''' || || shot/midpoint increment |- | ''float '' || '''dt=0.004''' || || time sampling |- | ''float '' || '''eta=''' || || parameter for VTI anisotropy |- | ''float '' || '''freq=0.2/dt''' || || peak frequency for Ricker wavelet |- | ''float '' || '''gradx=''' || || horizontal velocity gradient |- | ''float '' || '''gradx2=''' || || converted velocity, horizontal gradient |- | ''float '' || '''gradz=''' || || vertical velocity gradient |- | ''float '' || '''gradz2=''' || || converted velocity, vertical gradient |- | ''float '' || '''h0=0.''' || || first offset |- | ''bool '' || '''lin=n''' || [y/n] || if linear operator |- | ''int '' || '''nh=nx''' || || number of offsets |- | ''int '' || '''ns=nx''' || || number of shots (midpoints if cmp=y) |- | ''int '' || '''nt=''' || || time samples |- | ''string '' || '''picks=''' || || auxiliary output file name |- | ''float '' || '''r0=1.''' || || normal reflectivity (if constant) |- | ''string '' || '''refl=''' || || auxiliary input file name |- | ''float '' || '''refx=''' || || reference x-coordinate for velocity |- | ''float '' || '''refz=''' || || reference z-coordinate for velocity |- | ''string '' || '''rgrad=''' || || AVO gradient file (B/A) |- | ''float '' || '''s0=x0''' || || first shot (midpoint if cmp=y) |- | ''string '' || '''slopes=''' || || auxiliary output file name |- | ''float '' || '''t0=0.''' || || time origin |- | ''bool '' || '''twod=n''' || [y/n] || 2-D or 2.5-D |- | ''string '' || '''type=''' || || type of velocity, 'c': constant, 's': linear sloth, 'v': linear velocity, 'a': VTI anisotropy |- | ''string '' || '''type2=''' || || type of velocity for the converted (receiver side) branch |- | ''float '' || '''vel=''' || || velocity |- | ''float '' || '''vel2=''' || || converted velocity |- | ''float '' || '''velz=''' || || vertical velocity for VTI anisotropy |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |} ==sfkirmod3== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Kirchhoff 3-D modeling with analytical Green's functions. |- ! colspan="4" | sfkirmod3 < curv.rsf > modl.rsf head=head.rsf refl=refl.rsf nt= dt=0.004 t0=0. absoff=n nsx=nx s0x=x0 dsx=dx nsy=ny s0y=y0 dsy=dy nhx=nx h0x=0. dhx=dx nhy=ny h0y=0. dhy=dy r0=1. aper=hypotf(nx*dx,ny*dy) freq=0.2/dt rgrad= dipx= dipy= type= |- | ''bool '' || '''absoff=n''' || [y/n] || y - h0x, h0y - are not in shot coordinate system |- | ''float '' || '''aper=hypotf(nx*dx,ny*dy)''' || || aperture |- | ''float '' || '''dhx=dx''' || || inline offset increment |- | ''float '' || '''dhy=dy''' || || crossline offset increment |- | ''string '' || '''dipx=''' || || |- | ''string '' || '''dipy=''' || || |- | ''float '' || '''dsx=dx''' || || inline shot increment |- | ''float '' || '''dsy=dy''' || || crossline shot increment |- | ''float '' || '''dt=0.004''' || || time sampling |- | ''float '' || '''freq=0.2/dt''' || || peak frequency for Ricker wavelet |- | ''float '' || '''h0x=0.''' || || first inline offset |- | ''float '' || '''h0y=0.''' || || first crossline offset |- | ''string '' || '''head=''' || || source-receiver geometry (optional) (auxiliary input file name) |- | ''int '' || '''nhx=nx''' || || number of inline offsets |- | ''int '' || '''nhy=ny''' || || number of crossline offsets |- | ''int '' || '''nsx=nx''' || || number of inline shots |- | ''int '' || '''nsy=ny''' || || number of crossline shots |- | ''int '' || '''nt=''' || || time samples |- | ''float '' || '''r0=1.''' || || constant reflectivity |- | ''string '' || '''refl=''' || || auxiliary input file name |- | ''string '' || '''rgrad=''' || || |- | ''float '' || '''s0x=x0''' || || first inline shot |- | ''float '' || '''s0y=y0''' || || first crossline shot |- | ''float '' || '''t0=0.''' || || time origin |- | ''string '' || '''type=''' || || type of velocity ('c': constant, 's': linear sloth, 'v': linear velocity) |} ==sflinsincos== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Solve for angle in equation vx*sin(d) + vy*cos(d) = 1/s0. |- ! colspan="4" | sflinsincos < in.rsf > out.rsf s0= na= da= oa= nt=180 dt=2. ot=0. nr=nvx/2 dr=dvx extend=4 |- | ''float '' || '''da=''' || || angle sampling. |- | ''float '' || '''dr=dvx''' || || radius sampling. |- | ''float '' || '''dt=2.''' || || polar angle sampling. |- | ''int '' || '''extend=4''' || || tmp extension |- | ''int '' || '''na=''' || || number of angle values. |- | ''int '' || '''nr=nvx/2''' || || number of radius on radial lines |- | ''int '' || '''nt=180''' || || number of polar angle for integration. |- | ''float '' || '''oa=''' || || angle origin |- | ''float '' || '''ot=0.''' || || polar angle origin |- | ''float '' || '''s0=''' || || reference slowness |} ==sfmap2coh== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | From parameter's attribute map (veltran) to coherency-like plots. |- ! colspan="4" | sfmap2coh < cmp.rsf map=map.rsf > coh.rsf nv= v0= dv= min2=o2 max2=o2+d2*(n2-1) nw=4 |- | colspan="4" | (eventually masked) |- | ''float '' || '''dv=''' || || velocity sampling |- | ''string '' || '''map=''' || || parameters map (auxiliary input file name) |- | ''float '' || '''max2=o2+d2*(n2-1)''' || || max2 |- | ''float '' || '''min2=o2''' || || min2 |- | ''int '' || '''nv=''' || || number of velocities |- | ''int '' || '''nw=4''' || || interpolator size (2,3,4,6,8) |- | ''float '' || '''v0=''' || || velocity origin |} ==sfmigsteep3== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 3-D Kirchhoff time migration for antialiased steep dips. |- ! colspan="4" | sfmigsteep3 < in.rsf hdr=head.rsf > mig.rsf n2= d2= o2= n3= d3= o3= n1= vel= |- | colspan="4" | <br>Combine with sfmig3 antialias=flat for the complete response. |- | ''float '' || '''d2=''' || || |- | ''float '' || '''d3=''' || || |- | ''file '' || '''hdr=''' || || auxiliary input file name |- | ''int '' || '''n1=''' || || |- | ''int '' || '''n2=''' || || |- | ''int '' || '''n3=''' || || |- | ''float '' || '''o2=''' || || |- | ''float '' || '''o3=''' || || |- | ''float '' || '''vel=''' || || migration velocity |} ==sfmodrefl== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Normal reflectivity modeling. |- ! colspan="4" | sfmodrefl < depth.rsf vp=vp.rsf vs=vs.rsf rho=rho.rsf > dat.rsf nt= dt= nw=4 |- | ''float '' || '''dt=''' || || time sampling |- | ''int '' || '''nt=''' || || time samples |- | ''int '' || '''nw=4''' || || interpolation length |- | ''file '' || '''rho=''' || || auxiliary input file name |- | ''file '' || '''vp=''' || || auxiliary input file name |- | ''file '' || '''vs=''' || || auxiliary input file name |} ==sfmodrefl2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Normal reflectivity modeling. |- ! colspan="4" | sfmodrefl2 < in.rsf > out.rsf nt= dt= nw=4 |- | colspan="4" | <br>In this version, the input contains Vp, Vs, and density into one file. <br>The output contains PP intercept, PP gradient, and PS gradient. |- | ''float '' || '''dt=''' || || time sampling |- | ''int '' || '''nt=''' || || time samples |- | ''int '' || '''nw=4''' || || interpolation length |} ==sfmodrefl3== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Normal reflectivity modeling. |- ! colspan="4" | sfmodrefl3 < in.rsf > out.rsf sparse=10 moveout=y nt= dt= np= dp= p0= eps=0.01 |- | colspan="4" | <br>In this version, the input contains Vp, Vs, and density into one file. <br>The output contains PP and PS tau-p seismograms. |- | ''float '' || '''dp=''' || || slope sampling |- | ''float '' || '''dt=''' || || time sampling |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''bool '' || '''moveout=y''' || [y/n] || if apply moveout |- | ''int '' || '''np=''' || || slope samples |- | ''int '' || '''nt=''' || || time samples |- | ''float '' || '''p0=''' || || slope origin |- | ''int '' || '''sparse=10''' || || sparseness of reflectivity |} ==sfmoveout== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Put spikes at an arbitrary moveout |- ! colspan="4" | sfmoveout < warp.rsf > out.rsf n1= d1=1. o1=0. eps=0.1 nw=10 |- | ''float '' || '''d1=1.''' || || time sampling |- | ''float '' || '''eps=0.1''' || || stretch regularization |- | ''int '' || '''n1=''' || || time samples |- | ''int '' || '''nw=10''' || || wavelet length |- | ''float '' || '''o1=0.''' || || time origin |} ==sfnmo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Normal moveout. |- ! colspan="4" | sfnmo < cmp.rsf velocity=velocity.rsf > nmod.rsf s=het.rsf offset=offset.rsf mask=msk.rsf half=y str=0.5 mute=12 CDPtype= slowness=n squared=n h0=0. extend=4 a= |- | colspan="4" | <br>Compatible with sfvscan. |- | ''int '' || '''CDPtype=''' || || |- | ''string '' || '''a=''' || || |- | ''int '' || '''extend=4''' || || trace extension |- | ''float '' || '''h0=0.''' || || reference offset |- | ''bool '' || '''half=y''' || [y/n] || if y, the second axis is half-offset instead of full offset |- | ''string '' || '''mask=''' || || auxiliary input file name |- | ''int '' || '''mute=12''' || || mute zone |- | ''string '' || '''offset=''' || || auxiliary input file name |- | ''string '' || '''s=''' || || auxiliary input file name |- | ''bool '' || '''slowness=n''' || [y/n] || if y, use slowness instead of velocity |- | ''bool '' || '''squared=n''' || [y/n] || if y, the slowness or velocity is squared |- | ''float '' || '''str=0.5''' || || maximum stretch allowed |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sfnmo3== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 3-D Normal moveout. |- ! colspan="4" | sfnmo3 < cmp.rsf > nmod.rsf velocity=vel.rsf offset=offset.rsf half=y eps=0.01 mute=12 extend=8 |- | colspan="4" | <br>input data has gathers along *4th* axis; <br>velocity file contains slowness squared with n2=3 (wx,wy,wxy);<br>offset file contains x,y offset pairs for input data |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''int '' || '''extend=8''' || || trace extension |- | ''bool '' || '''half=y''' || [y/n] || if y, the second and third axes are half-offset instead of full offset |- | ''int '' || '''mute=12''' || || mute zone |- | ''string '' || '''offset=''' || || auxiliary input file name |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sfnmov== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Least-squares fitting of t^2-t_0^2 surfaces for isotropic V_{nmo}. |- ! colspan="4" | sfnmov < inp.rsf > out.rsf |} ==sfnmow== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Least-squares fitting of t^2-t_0^2 surfaces for elliptical slowness matrix, W. |- ! colspan="4" | sfnmow < inp.rsf > out.rsf offset=offset.rsf half=y nw=3 |- | ''bool '' || '''half=y''' || [y/n] || if y, the second axis is half-offset instead of full offset |- | ''int '' || '''nw=3''' || || |- | ''string '' || '''offset=''' || || If offset file is provided, it must be of the form:(auxiliary input file name) |} ==sfnmow_adj== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | None |- ! colspan="4" | sfnmow_adj < inp.rsf > out.rsf gather=gather.rsf adj=n nw=3 |- | ''bool '' || '''adj=n''' || [y/n] || |- | ''file '' || '''gather=''' || || auxiliary input file name |- | ''int '' || '''nw=3''' || || |} ==sfovc== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Oriented velocity continuation. |- ! colspan="4" | sfovc < in.rsf > out.rsf eps=0.1 nv=1 lagrange=n v0=0. vmax= |- | colspan="4" | <br>Axis order: t, p, x |- | ''float '' || '''eps=0.1''' || || stretch regularization |- | ''bool '' || '''lagrange=n''' || [y/n] || Use Lagrangian method |- | ''int '' || '''nv=1''' || || number of velocity steps |- | ''float '' || '''v0=0.''' || || starting velocity |- | ''float '' || '''vmax=''' || || end velocity |} ==sfoway1== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Oriented one-way wave equation. |- ! colspan="4" | sfoway1 < in.rsf > out.rsf velocity=vel.rsf vgrad=vgrad.rsf eps=0.1 lagrange=n |- | colspan="4" | <br> Axis order: x, p, t |- | ''float '' || '''eps=0.1''' || || stretch regularization |- | ''bool '' || '''lagrange=n''' || [y/n] || Use Lagrangian method |- | ''file '' || '''velocity=''' || || auxiliary input file name |- | ''file '' || '''vgrad=''' || || auxiliary input file name |} ==sfpmig== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Slope-based prestack time migration. |- ! colspan="4" | sfpmig < cmp.rsf xdip=xdip.rsf hdip=hdip.rsf > mig.rsf half=y mzo=n eps=1.0 |- | ''float '' || '''eps=1.0''' || || stretch regularization |- | ''bool '' || '''half=y''' || [y/n] || if y, the second axis is half-offset instead of full offset |- | ''file '' || '''hdip=''' || || auxiliary input file name |- | ''bool '' || '''mzo=n''' || [y/n] || do migration to zero offset |- | ''file '' || '''xdip=''' || || auxiliary input file name |} ==sfpnmo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Slope-based normal moveout. |- ! colspan="4" | sfpnmo < cmp.rsf dip=dip.rsf > nmod.rsf vel=vel.rsf offset=offset.rsf crv=crv.rsf eta=eta.rsf half=y eps=0.01 |- | ''string '' || '''crv=''' || || auxiliary input file name |- | ''file '' || '''dip=''' || || auxiliary input file name |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''file '' || '''eta=''' || || auxiliary output file name |- | ''bool '' || '''half=y''' || [y/n] || if y, the second axis is half-offset instead of full offset |- | ''string '' || '''offset=''' || || auxiliary input file name |- | ''file '' || '''vel=''' || || auxiliary output file name |} ==sfpnmo3d== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Slope-based normal moveout for 3-D CMP geometry. |- ! colspan="4" | sfpnmo3d < cmp.rsf dipx=dipx.rsf dipy=dipy.rsf > nmod.rsf vel=vel.rsf half=y eps=0.01 extend=8 |- | ''file '' || '''dipx=''' || || auxiliary input file name |- | ''file '' || '''dipy=''' || || auxiliary input file name |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''int '' || '''extend=8''' || || trace extension |- | ''bool '' || '''half=y''' || [y/n] || if y, the second axis is half-offset instead of full offset |- | ''file '' || '''vel=''' || || auxiliary output file name |} ==sfpp2psang== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Transform PP angle gathers to PS angle gathers. |- ! colspan="4" | sfpp2psang < in.rsf > out.rsf vpvs=vpvs.rsf nw=4 inv=n |- | colspan="4" | * (designed for absolute offsets)<br> |- | ''bool '' || '''inv=n''' || [y/n] || if y, do inverse transform |- | ''int '' || '''nw=4''' || || accuracy level |- | ''file '' || '''vpvs=''' || || auxiliary input file name |} ==sfpp2psang2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Transform PP angle gathers to PS angle gathers. |- ! colspan="4" | sfpp2psang2 < in.rsf > out.rsf vpvs=vpvs.rsf dip=dip.rsf verb=n nw=4 inv=n |- | colspan="4" | * (designed for horizontal offsets)<br> |- | ''file '' || '''dip=''' || || auxiliary input file name |- | ''bool '' || '''inv=n''' || [y/n] || if y, do inverse transform |- | ''int '' || '''nw=4''' || || accuracy level |- | ''bool '' || '''verb=n''' || [y/n] || |- | ''file '' || '''vpvs=''' || || auxiliary input file name |} ==sfpp2pstsic== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Compute angle gathers for time-shift imaging condition |- ! colspan="4" | sfpp2pstsic < Fstk.rsf velocity=Fvel.rsf vpvs=Fgam.rsf dip=Fdip.rsf > Fang.rsf na=nv da=1./(nv-1) a0=0. extend=4 |- | ''float '' || '''a0=0.''' || || |- | ''float '' || '''da=1./(nv-1)''' || || |- | ''file '' || '''dip=''' || || auxiliary input file name |- | ''int '' || '''extend=4''' || || tmp extension |- | ''int '' || '''na=nv''' || || |- | ''file '' || '''velocity=''' || || auxiliary input file name |- | ''file '' || '''vpvs=''' || || auxiliary input file name |} ==sfpreconstkirch== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Prestack Kirchhoff modeling/migration in constant velocity. |- ! colspan="4" | sfpreconstkirch < in.rsf > out.rsf inv=n zero=n aal=y nh= dh= h0= vel= |- | colspan="4" | <br>Requires the input to be in (time,cmp x,cmp y,offset) |- | ''bool '' || '''aal=y''' || [y/n] || if y, apply antialiasing |- | ''float '' || '''dh=''' || || offset sampling |- | ''float '' || '''h0=''' || || offset origin |- | ''bool '' || '''inv=n''' || [y/n] || if y, modeling; if n, migration |- | ''int '' || '''nh=''' || || number of offsets |- | ''float '' || '''vel=''' || || velocity |- | ''bool '' || '''zero=n''' || [y/n] || if y, stack in migration |} ==sfprestolt== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Prestack Stolt modeling/migration. |- ! colspan="4" | sfprestolt < in.rsf > out.rsf inv=n depth=n nh= dh= stack=y vel= pad=nt extend=4 |- | ''bool '' || '''depth=n''' || [y/n] || y: depth migration, n: time migration |- | ''float '' || '''dh=''' || || offset sampling |- | ''int '' || '''extend=4''' || || trace extension |- | ''bool '' || '''inv=n''' || [y/n] || y: modeling, n: migration |- | ''int '' || '''nh=''' || || number of offsets |- | ''int '' || '''pad=nt''' || || padding on the time axis |- | ''bool '' || '''stack=y''' || [y/n] || if y: stack migrated image |- | ''float '' || '''vel=''' || || constant velocity |} ==sfptaupmo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Slope-based tau-p moveout. |- ! colspan="4" | sfptaupmo < inp.rsf dip=dip.rsf dipt=dipt.rsf > nmod.rsf vel2=vel2.rsf eps=0.01 v0=0. type= |- | ''file '' || '''dip=''' || || auxiliary input file name |- | ''file '' || '''dipt=''' || || auxiliary input file name |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''string '' || '''type=''' || || transform type |- | ''float '' || '''v0=0.''' || || initial velocity |- | ''file '' || '''vel2=''' || || auxiliary output file name |} ==sfptaupmo3== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Slope-based tau-p 3D moveout. |- ! colspan="4" | sfptaupmo3 < inp.rsf dip1=dip1.rsf dip2=dip2.rsf > nmod.rsf tau0=tau0.rsf eps=0.01 |- | ''string '' || '''dip1=''' || || slope field mesaure along dimension 2(auxiliary input file name) |- | ''string '' || '''dip2=''' || || slope field mesaure along dimension 3(auxiliary input file name) |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''string '' || '''tau0=''' || || tau0(tau,p) (auxiliary output file name) |} ==sfptaupmoVTI== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Slope-based tau-p moveout in VTI. |- ! colspan="4" | sfptaupmoVTI < inp.rsf dip=dip.rsf ddip=ddip.rsf > nmod.rsf tau0=tau0.rsf cos2=cos2.rsf eps=0.01 |- | ''file '' || '''cos2=''' || || auxiliary output file name |- | ''string '' || '''ddip=''' || || curvature field (auxiliary input file name) |- | ''string '' || '''dip=''' || || slope field (auxiliary input file name) |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''string '' || '''tau0=''' || || tau0(tau,p) (auxiliary output file name) |} ==sfpveltran== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Slope-based velocity transform. |- ! colspan="4" | sfpveltran < cmp.rsf dip=dip.rsf > vel.rsf dipt=dipt.rsf half=y nv= v0= dv= interval=n eps=0.1 |- | ''file '' || '''dip=''' || || auxiliary input file name |- | ''file '' || '''dipt=''' || || auxiliary input file name |- | ''float '' || '''dv=''' || || velocity sampling |- | ''float '' || '''eps=0.1''' || || stretch regularization |- | ''bool '' || '''half=y''' || [y/n] || if y, the second axis is half-offset instead of full offset |- | ''bool '' || '''interval=n''' || [y/n] || if y, compute interval velocity |- | ''int '' || '''nv=''' || || number of velocities |- | ''float '' || '''v0=''' || || velocity origin |} ==sfpveltran3== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Slope-based tau-p 3D velocity transform for elliptical anisotropy. |- ! colspan="4" | sfpveltran3 < input.rsf > velx.rsf vely=vely.rsf velxy=velxy.rsf cmp=cmp.rsf dipx=dipx.rsf dipy=dipy.rsf dipxy=dipxy.rsf map=n interval=n nvx= vx0= dvx= nvy=nvx vy0=vx0 dvy=dvx nvxy=101 vxy0=-0.1 dvxy=0.1 nw=4 |- | colspan="4" | * The program returns the squared velocity vx,vy,vxy spectra or maps<br> |- | ''string '' || '''cmp=''' || || auxiliary input file name |- | ''string '' || '''dipx=''' || || auxiliary input file name |- | ''string '' || '''dipxy=''' || || auxiliary input file name |- | ''string '' || '''dipy=''' || || auxiliary input file name |- | ''float '' || '''dvx=''' || || vx squared velocity sampling |- | ''float '' || '''dvxy=0.1''' || || vxy velocity sampling |- | ''float '' || '''dvy=dvx''' || || vy squared velocity sampling |- | ''bool '' || '''interval=n''' || [y/n] || interval values by 3D stripping equations |- | ''bool '' || '''map=n''' || [y/n] || output maps instead of coherency panels |- | ''int '' || '''nvx=''' || || number of vx squared velocities |- | ''int '' || '''nvxy=101''' || || number of vxy velocities |- | ''int '' || '''nvy=nvx''' || || number of vy squared velocities |- | ''int '' || '''nw=4''' || || interpolator size (2,3,4,6,8) |- | ''file '' || '''velxy=''' || || auxiliary output file name |- | ''file '' || '''vely=''' || || auxiliary output file name |- | ''float '' || '''vx0=''' || || vx squared velocity origin |- | ''float '' || '''vxy0=-0.1''' || || vxy velocity origin |- | ''float '' || '''vy0=vx0''' || || vy squared velocity origin |} ==sfpveltranVTI== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Slope-based tau-p velocity transform for VTI media. |- ! colspan="4" | sfpveltranVTI < tau0.rsf > velN.rsf velH=velH.rsf eta=eta.rsf cmp=cmp.rsf dip=dip.rsf curv=curv.rsf dipt=dipt.rsf tau0t=tau0t.rsf curvt=curvt.rsf map=n nv= v0= dv= nvh=nv vh0=v0 dvh=dv ne=101 e0=-0.5 de=0.01 nw=4 method= |- | ''file '' || '''cmp=''' || || auxiliary input file name |- | ''string '' || '''curv=''' || || curvature field (required for method=e and method=d) (auxiliary input file name) |- | ''string '' || '''curvt=''' || || time derivative of curvature field (required for method=d and method=s) (auxiliary input file name) |- | ''float '' || '''de=0.01''' || || eta sampling |- | ''string '' || '''dip=''' || || slope field (required for method=e and method=d) (auxiliary input file name) |- | ''string '' || '''dipt=''' || || time derivative of slope field(auxiliary input file name) |- | ''float '' || '''dv=''' || || velocity sampling |- | ''float '' || '''dvh=dv''' || || HOR velocity sampling |- | ''float '' || '''e0=-0.5''' || || eta origin |- | ''file '' || '''eta=''' || || auxiliary output file name |- | ''bool '' || '''map=n''' || [y/n] || output maps instead of coherency panels |- | ''string '' || '''method=''' || || method to use (stripping,dix,fowler,effective) |- | ''int '' || '''ne=101''' || || number of etas |- | ''int '' || '''nv=''' || || number of velocities |- | ''int '' || '''nvh=nv''' || || number of HOR velocities |- | ''int '' || '''nw=4''' || || interpolator size (2,3,4,6,8) |- | ''string '' || '''tau0t=''' || || tau0 tau derivative field (required for method=f) (auxiliary input file name) |- | ''float '' || '''v0=''' || || velocity origin |- | ''file '' || '''velH=''' || || auxiliary output file name |- | ''float '' || '''vh0=v0''' || || HOR velocity origin |} ==sfpyramid== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Pyramid transform |- ! colspan="4" | sfpyramid < in.rsf > out.rsf inv=n nu= du=dx u0=x0 eps=0.01 |- | ''float '' || '''du=dx''' || || |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''bool '' || '''inv=n''' || [y/n] || inversion flag |- | ''int '' || '''nu=''' || || |- | ''float '' || '''u0=x0''' || || |} ==sfradial== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Radial transform. |- ! colspan="4" | sfradial < in.rsf > out.rsf inv=n nw=2 tp=t0 nv= vmin= vmax= |- | ''bool '' || '''inv=n''' || [y/n] || if y, do inverse transform |- | ''int '' || '''nv=''' || || number of velocities (if inv=n) |- | ''int '' || '''nw=2''' || || accuracy level |- | ''float '' || '''tp=t0''' || || |- | ''float '' || '''vmax=''' || || maximum velocity (if inv=n) |- | ''float '' || '''vmin=''' || || minimum velocity (if inv=n) |} ==sfradial2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Another version of radial transform. |- ! colspan="4" | sfradial2 < in.rsf > out.rsf inv=n eps=0.01 tp=t0 nv= vmin= vmax= |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''bool '' || '''inv=n''' || [y/n] || if y, do inverse transform |- | ''int '' || '''nv=''' || || number of velocities (if inv=n) |- | ''float '' || '''tp=t0''' || || |- | ''float '' || '''vmax=''' || || maximum velocity (if inv=n) |- | ''float '' || '''vmin=''' || || minimum velocity (if inv=n) |} ==sfradon== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | High-resolution Radon transform. |- ! colspan="4" | sfradon < in.rsf > out.rsf offset=offset.rsf adj=y inv=adj spk=inv verb=n np= dp= p0= nx= eps=1. ns=1 tol=1.e-6 perc=50.0 ox= dx= parab=n x0=1. niter=100 |- | ''bool '' || '''adj=y''' || [y/n] || if y, perform adjoint operation |- | ''float '' || '''dp=''' || || p sampling (if adj=y) |- | ''float '' || '''dx=''' || || |- | ''float '' || '''eps=1.''' || || |- | ''bool '' || '''inv=adj''' || [y/n] || if y, perform inverse operation |- | ''int '' || '''niter=100''' || || |- | ''int '' || '''np=''' || || number of p values (if adj=y) |- | ''int '' || '''ns=1''' || || number of sharpening cycles |- | ''int '' || '''nx=''' || || number of offsets (if adj=n) |- | ''string '' || '''offset=''' || || auxiliary input file name |- | ''float '' || '''ox=''' || || |- | ''float '' || '''p0=''' || || p origin (if adj=y) |- | ''bool '' || '''parab=n''' || [y/n] || if y, parabolic Radon transform |- | ''float '' || '''perc=50.0''' || || percentage for sharpening |- | ''bool '' || '''spk=inv''' || [y/n] || if y, use spiking (hi-res) inversion |- | ''float '' || '''tol=1.e-6''' || || inversion tolerance |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |- | ''float '' || '''x0=1.''' || || reference offset |} ==sfrandrefl== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Simple synthetics with random reflectivity. |- ! colspan="4" | sfrandrefl > mod.rsf vpvs=vpvs.rsf fo= nr= n1=3501 d1=0.001 o1=0.0 tscale=1. func= |- | ''float '' || '''d1=0.001''' || || time sampling |- | ''floats '' || '''fo=''' || || [3] |- | ''string '' || '''func=''' || || type of vpvs function |- | ''int '' || '''n1=3501''' || || time length |- | ''int '' || '''nr=''' || || number of reflectors |- | ''float '' || '''o1=0.0''' || || time origin |- | ''float '' || '''tscale=1.''' || || maximum time |- | ''file '' || '''vpvs=''' || || auxiliary output file name |} ==sfrays2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Ray tracing by a Runge-Kutta integrator. |- ! colspan="4" | sfrays2 < vel.rsf > rays.rsf shotfile=shots.rsf anglefile=angles.rsf vel=y order=4 nt= dt= sym=y verb=y escvar=n zshot=0. yshot=o[1] + 0.5*(n[1]-1)*d[1] nr= a0=0. amax=360. > rays.rsf |- | colspan="4" | Rays can be plotted with sfplotrays. |- | ''float '' || '''a0=0.''' || || minimum angle (if no anglefile) |- | ''float '' || '''amax=360.''' || || maximum angle (if no anglefile) |- | ''string '' || '''anglefile=''' || || file with initial angles (auxiliary input file name) |- | ''float '' || '''dt=''' || || Sampling in time |- | ''bool '' || '''escvar=n''' || [y/n] || If y - output escape values, n - trajectories |- | ''int '' || '''nr=''' || || number of angles (if no anglefile) |- | ''int '' || '''nt=''' || || Number of time steps |- | ''int '' || '''order=4''' || || Interpolation order |- | ''string '' || '''shotfile=''' || || file with shot locations (auxiliary input file name) |- | ''bool '' || '''sym=y''' || [y/n] || if y, use symplectic integrator |- | ''bool '' || '''vel=y''' || [y/n] || If y, input is velocity; if n, slowness |- | ''bool '' || '''verb=y''' || [y/n] || Verbosity flag |- | ''float '' || '''yshot=o[1] + 0.5*(n[1]-1)*d[1]''' || || |- | ''float '' || '''zshot=0.''' || || shot coordinates (if no shotfile) |} ==sfrays2a== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Ray tracing in VTI media by a Runge-Kutta integrator. |- ! colspan="4" | sfrays2a < vz.rsf > rays.rsf shotfile=shots.rsf anglefile=angles.rsf vel=y order=4 nt= dt= verb=y escvar=n zshot=0. yshot=o[1] + 0.5*(n[1]-1)*d[1] nr= a0=0. amax=360. vx= eta= > rays.rsf |- | colspan="4" | Rays can be plotted with sfplotrays. |- | ''float '' || '''a0=0.''' || || minimum angle (if no anglefile) |- | ''float '' || '''amax=360.''' || || maximum angle (if no anglefile) |- | ''string '' || '''anglefile=''' || || file with initial angles (auxiliary input file name) |- | ''float '' || '''dt=''' || || Sampling in time |- | ''bool '' || '''escvar=n''' || [y/n] || If y - output escape values, n - trajectories |- | ''string '' || '''eta=''' || || eta parameter |- | ''int '' || '''nr=''' || || number of angles (if no anglefile) |- | ''int '' || '''nt=''' || || Number of time steps |- | ''int '' || '''order=4''' || || Interpolation order |- | ''string '' || '''shotfile=''' || || file with shot locations (auxiliary input file name) |- | ''bool '' || '''vel=y''' || [y/n] || If y, input is velocity; if n, slowness |- | ''bool '' || '''verb=y''' || [y/n] || Verbosity flag |- | ''string '' || '''vx=''' || || horizontal velocity or slowness |- | ''float '' || '''yshot=o[1] + 0.5*(n[1]-1)*d[1]''' || || |- | ''float '' || '''zshot=0.''' || || shot coordinates (if no shotfile) |} ==sfrays3== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Ray tracing by a Runge-Kutta integrator in 3-D. |- ! colspan="4" | sfrays3 < vel.rsf > rays.rsf shotfile=shots.rsf anglefile=angles.rsf vel=y order=4 nt= dt= sym=y escvar=n zshot=o[0] yshot=o[1] + 0.5*(n[1]-1)*d[1] xshot=o[2] + 0.5*(n[2]-1)*d[2] na= nb= a0=0. amax=360. b0=0. bmax=180. > rays.rsf |- | colspan="4" | Rays can be plotted with sfplotrays. |- | ''float '' || '''a0=0.''' || || First azimuth angle in degrees (if anglefile is not specified) |- | ''float '' || '''amax=360.''' || || Maximum azimuth angle in degrees (if anglefile is not specified) |- | ''string '' || '''anglefile=''' || || file with initial angles (auxiliary input file name) |- | ''float '' || '''b0=0.''' || || First inclination angle in degrees (if anglefile is not specified) |- | ''float '' || '''bmax=180.''' || || Maximum inclination angle in degrees (if anglefile is not specified) |- | ''float '' || '''dt=''' || || Sampling in time |- | ''bool '' || '''escvar=n''' || [y/n] || If y - output escape values, n - trajectories |- | ''int '' || '''na=''' || || Number of azimuths (if anglefile is not specified) |- | ''int '' || '''nb=''' || || Number of inclinations (if anglefile is not specified) |- | ''int '' || '''nt=''' || || Number of time steps |- | ''int '' || '''order=4''' || || Interpolation order |- | ''string '' || '''shotfile=''' || || file with shot locations (auxiliary input file name) |- | ''bool '' || '''sym=y''' || [y/n] || if y, use symplectic integrator |- | ''bool '' || '''vel=y''' || [y/n] || If y, input is velocity; if n, slowness |- | ''float '' || '''xshot=o[2] + 0.5*(n[2]-1)*d[2]''' || || shot location crossline (if shotfile is not specified) |- | ''float '' || '''yshot=o[1] + 0.5*(n[1]-1)*d[1]''' || || shot location inline (if shotfile is not specified) |- | ''float '' || '''zshot=o[0]''' || || shot location in depth (if shotfile is not specified) |} ==sfrefer== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Subtract a reference from a grid. |- ! colspan="4" | sfrefer < in.rsf > out.rsf ref=ref.rsf |- | ''file '' || '''ref=''' || || auxiliary input file name |} ==sfricker== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Ricker wavelet estimation. |- ! colspan="4" | sfricker < in.rsf > out.rsf ma=ma.rsf m=f0+0.25*(na-1)*df niter=100 verb=n |- | ''float '' || '''m=f0+0.25*(na-1)*df''' || || initial frequency |- | ''file '' || '''ma=''' || || auxiliary output file name |- | ''int '' || '''niter=100''' || || number of iterations |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |} ==sfricker1== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Convolution with a Ricker wavelet. |- ! colspan="4" | sfricker1 < in.rsf > out.rsf frequency= freq=0.2 deriv=n |- | colspan="4" | <br>January 2013 program of the month:<br>http://ahay.org/rsflog/index.php?/archives/318-Program-of-the-month-sfricker1.html |- | ''bool '' || '''deriv=n''' || [y/n] || apply a half-order derivative filter |- | ''float '' || '''freq=0.2''' || || peak frequency for Ricker wavelet (as fraction of Nyquist) |- | ''float '' || '''frequency=''' || || peak frequency for Ricker wavelet (in Hz) |} ==sfricker2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Nonstationary convolution with a Ricker wavelet. Phase and Frequency can be time-varying. |- ! colspan="4" | sfricker2 < in.rsf > out.rsf tfreq=tfre.rsf tphase=tpha.rsf frequency= freq=0.2 esp=0. norm=n hiborder=6 hibref=1. |- | ''float '' || '''esp=0.''' || || if norm=y, stable parameter |- | ''float '' || '''freq=0.2''' || || peak frequency for Ricker wavelet (as fraction of Nyquist) |- | ''float '' || '''frequency=''' || || peak frequency for Ricker wavelet (in Hz) |- | ''int '' || '''hiborder=6''' || || Hilbert transformer order |- | ''float '' || '''hibref=1.''' || || |- | ''bool '' || '''norm=n''' || [y/n] || |- | ''file '' || '''tfreq=''' || || auxiliary input file name |- | ''string '' || '''tphase=''' || || auxiliary input file name |} ==sfrweab== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Riemannian Wavefield Extrapolation: a,b coefficients |- ! colspan="4" | sfrweab < Fi.rsf slo=Fs.rsf > Fo.rsf abr=Fr.rsf verb=n naref=1 nbref=1 peps=0.01 |- | ''file '' || '''abr=''' || || auxiliary output file name |- | ''int '' || '''naref=1''' || || |- | ''int '' || '''nbref=1''' || || |- | ''float '' || '''peps=0.01''' || || |- | ''file '' || '''slo=''' || || auxiliary input file name |- | ''bool '' || '''verb=n''' || [y/n] || |} ==sfrwesrmig== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Riemannian Wavefield Extrapolation: shot-record migration. |- ! colspan="4" | sfrwesrmig abm=Fm.rsf abr=Fr.rsf < Fw_s.rsf > Fw_r.rsf img=Fi.rsf verb=n method=0 adj=n |- | ''file '' || '''abm=''' || || auxiliary input file name |- | ''file '' || '''abr=''' || || auxiliary input file name |- | ''bool '' || '''adj=n''' || [y/n] || y=modeling; n=migration |- | ''file '' || '''img=''' || || auxiliary input file name |- | ''int '' || '''method=0''' || || extrapolation method |- | ''bool '' || '''verb=n''' || [y/n] || |} ==sfrwezomig== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Riemannian Wavefield Extrapolation: zero-offset modeling/migration |- ! colspan="4" | sfrwezomig abm=Fm.rsf abr=Fr.rsf < Fi.rsf > Fd.rsf verb=n method=0 adj=n nw= dw= ow=0. |- | ''file '' || '''abm=''' || || auxiliary input file name |- | ''file '' || '''abr=''' || || auxiliary input file name |- | ''bool '' || '''adj=n''' || [y/n] || y=modeling; n=migration |- | ''float '' || '''dw=''' || || |- | ''int '' || '''method=0''' || || extrapolation method |- | ''int '' || '''nw=''' || || |- | ''float '' || '''ow=0.''' || || |- | ''bool '' || '''verb=n''' || [y/n] || |} ==sfs2ofz== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Analytical point-source traveltime in a linear slowness squared model. |- ! colspan="4" | sfs2ofz > out.rsf n= g=-6. v0=4 s=0.5 |- | ''float '' || '''g=-6.''' || || slowness squared gradient |- | ''int '' || '''n=''' || || number of samples |- | ''float '' || '''s=0.5''' || || shot location at the surface |- | ''float '' || '''v0=4''' || || initial slowness squared |} ==sfs2ofz2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Analytical plane-wave traveltime in a linear slowness squared model. |- ! colspan="4" | sfs2ofz2 > out.rsf n= gz=-6. gx=2. v0=4 |- | ''float '' || '''gx=2.''' || || slowness squared gradient |- | ''float '' || '''gz=-6.''' || || |- | ''int '' || '''n=''' || || number of samples |- | ''float '' || '''v0=4''' || || initial slowness squared |} ==sfsegyheader== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Make a trace header file for segywrite. |- ! colspan="4" | sfsegyheader < in.rsf > out.rsf n1= d1= o1=0 |- | colspan="4" | <br> Use the output for tfile= argument in segywrite. |- | ''float '' || '''d1=''' || || trace sampling |- | ''int '' || '''n1=''' || || number of samples in a trace |- | ''float '' || '''o1=0''' || || trace origin |} ==sfsegyread== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Convert a SEG-Y or SU dataset to RSF. |- ! colspan="4" | sfsegyread mask=msk.rsf > out.rsf tfile=hdr.rsf verb=n su= suxdr=n endian=y n2=0 format=segyformat (bhead) ns=segyns (bhead) key#= tape= hfile= bfile= read= |- | colspan="4" | <br>Data headers and trace headers are separated from the data.<br><br>"suread" is equivalent to "segyread su=y"<br><br>SEGY key names:<br><br>tracl: trace sequence number within line 0<br><br>tracr: trace sequence number within reel 4<br><br>fldr: field record number 8 <br><br>tracf: trace number within field record 12 <br><br>ep: energy source point number 16 <br><br>cdp: CDP ensemble number 20 <br><br>cdpt: trace number within CDP ensemble 24 <br><br>trid: trace identification code:<br>1 = seismic data<br>2 = dead<br>3 = dummy<br>4 = time break<br>5 = uphole<br>6 = sweep<br>7 = timing<br>8 = water break<br>9---, N = optional use (N = 32,767) 28 <br><br>nvs: number of vertically summed traces 30 <br><br>nhs: number of horizontally summed traces 32 <br><br>duse: data use:<br>1 = production<br>2 = test 34<br><br>offset: distance from source point to receiver<br>group (negative if opposite to direction<br>in which the line was shot) 36 <br><br>gelev: receiver group elevation from sea level<br>(above sea level is positive) 40 <br><br>selev: source elevation from sea level<br>(above sea level is positive) 44 <br><br>sdepth: source depth (positive) 48 <br><br>gdel: datum elevation at receiver group 52 <br><br>sdel: datum elevation at source 56 <br><br>swdep: water depth at source 60 <br><br>gwdep: water depth at receiver group 64 <br><br>scalel: scale factor for previous 7 entries<br>with value plus or minus 10 to the<br>power 0, 1, 2, 3, or 4 (if positive,<br>multiply, if negative divide) 68 <br><br>scalco: scale factor for next 4 entries<br>with value plus or minus 10 to the<br>power 0, 1, 2, 3, or 4 (if positive,<br>multiply, if negative divide) 70 <br><br>sx: X source coordinate 72 <br><br>sy: Y source coordinate 76 <br><br>gx: X group coordinate 80 <br><br>gy: Y group coordinate 84 <br><br>counit: coordinate units code:<br>for previous four entries<br>1 = length (meters or feet)<br>2 = seconds of arc (in this case, the<br>X values are unsigned longitude and the Y values<br>are latitude, a positive value designates<br>the number of seconds east of Greenwich<br>or north of the equator 88 <br><br>wevel: weathering velocity 90 <br><br>swevel: subweathering velocity 92 <br><br>sut: uphole time at source 94 <br><br>gut: uphole time at receiver group 96 <br><br>sstat: source static correction 98 <br><br>gstat: group static correction 100 <br><br>tstat: total static applied 102 <br><br>laga: lag time A, time in ms between end of 240-<br>byte trace identification header and time<br>break, positive if time break occurs after<br>end of header, time break is defined as<br>the initiation pulse which maybe recorded<br>on an auxiliary trace or as otherwise<br>specified by the recording system 104 <br><br>lagb: lag time B, time in ms between the time<br>break and the initiation time of the energy source,<br>may be positive or negative 106 <br><br>delrt: delay recording time, time in ms between<br>initiation time of energy source and time<br>when recording of data samples begins<br>(for deep water work if recording does not<br>start at zero time) 108 <br><br>muts: mute time--start 110 <br><br>mute: mute time--end 112 <br><br>ns: number of samples in this trace 114 <br><br>dt: sample interval, in micro-seconds 116 <br><br>gain: gain type of field instruments code:<br>1 = fixed<br>2 = binary<br>3 = floating point<br>4 ---- N = optional use 118 <br><br>igc: instrument gain constant 120 <br><br>igi: instrument early or initial gain 122 <br><br>corr: correlated:<br>1 = no<br>2 = yes 124<br><br>sfs: sweep frequency at start 126 <br><br>sfe: sweep frequency at end 128 <br><br>slen: sweep length in ms 130 <br><br>styp: sweep type code:<br>1 = linear<br>2 = cos-squared<br>3 = other 132<br><br>stas: sweep trace length at start in ms 134 <br><br>stae: sweep trace length at end in ms 136 <br><br>tatyp: taper type: 1=linear, 2=cos^2, 3=other 138 <br><br>afilf: alias filter frequency if used 140 <br><br>afils: alias filter slope 142 <br><br>nofilf: notch filter frequency if used 144 <br><br>nofils: notch filter slope 146 <br><br>lcf: low cut frequency if used 148 <br><br>hcf: high cut frequncy if used 150 <br><br>lcs: low cut slope 152 <br><br>hcs: high cut slope 154 <br><br>year: year data recorded 156 <br><br>day: day of year 158 <br><br>hour: hour of day (24 hour clock) 160 <br><br>minute: minute of hour 162 <br><br>sec: second of minute 164 <br><br>timbas: time basis code:<br>1 = local<br>2 = GMT<br>3 = other 166<br><br>trwf: trace weighting factor, defined as 1/2^N<br>volts for the least sigificant bit 168 <br><br>grnors: geophone group number of roll switch<br>position one 170<br><br>grnofr: geophone group number of trace one within<br>original field record 172<br><br>grnlof: geophone group number of last trace within<br>original field record 174<br><br>gaps: gap size (total number of groups dropped) 176 <br><br>otrav: overtravel taper code: <br>1 = down (or behind)<br>2 = up (or ahead) 178<br><br>cdpx: X coordinate of CDP 180<br><br>cdpy: Y coordinate of CDP 184<br><br>iline: in-line number 188 <br><br>xline: cross-line number 192<br><br>shnum: shotpoint number 196<br><br>shsca: shotpoint scalar 200<br><br>tval: trace value meas. 202<br><br>tconst4: transduction const 204<br><br>tconst2: transduction const 208<br><br>tunits: transduction units 210<br><br>device: device identifier 212<br><br>tscalar: time scalar 214<br><br>stype: source type 216<br><br>sendir: source energy dir. 218<br> <br>unknown: unknown 222<br><br>smeas4: source measurement 224<br><br>smeas2: source measurement 228<br><br>smeasu: source measurement unit 230 <br><br>unass1: unassigned 232<br><br>unass2: unassigned 236 |- | ''string '' || '''bfile=''' || || output binary data header file |- | ''bool '' || '''endian=y''' || [y/n] || Whether to automatically estimate endianness or not |- | ''int '' || '''format=segyformat (bhead)''' || [1,2,3,5] || Data format. The default is taken from binary header. :1 is IBM floating point :2 is 4-byte integer :3 is 2-byte integer :5 is IEEE floating point |- | ''string '' || '''hfile=''' || || output text data header file |- | ''string '' || '''key#=''' || || extra key for trace headers |- | ''string '' || '''mask=''' || || optional header mask for reading only selected traces (auxiliary input file name) |- | ''int '' || '''n2=0''' || || number of traces to read (if 0, read all traces) |- | ''int '' || '''ns=segyns (bhead)''' || || Number of samples. The default is taken from binary header |- | ''string '' || '''read=''' || || what to read: h - header, d - data, b - both (default) |- | ''bool '' || '''su=''' || [y/n] || y if input is SU, n if input is SEGY |- | ''bool '' || '''suxdr=n''' || [y/n] || y, SU has XDR support |- | ''string '' || '''tape=''' || || input data |- | ''string '' || '''tfile=''' || || output trace header file (auxiliary output file name) |- | ''bool '' || '''verb=n''' || [y/n] || Verbosity flag |} ==sfsegywrite== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Convert an RSF dataset to SEGY or SU. |- ! colspan="4" | sfsegywrite < in.rsf tfile=hdr.rsf verb=n endian=y su= suxdr=n suxdr=n tape= hfile= bfile= |- | colspan="4" | <br>Merges trace headers with data.<br><br>"suwrite" is equivalent to "segywrite su=y" |- | ''string '' || '''bfile=''' || || input binary data header file |- | ''bool '' || '''endian=y''' || [y/n] || Whether to automatically estimate endianness or not |- | ''string '' || '''hfile=''' || || input text data header file |- | ''bool '' || '''su=''' || [y/n] || y if input is SU, n if input is SEGY |- | ''bool '' || '''suxdr=n''' || [y/n] || y, SU has XDR support |- | ''string '' || '''tape=''' || || output data |- | ''file '' || '''tfile=''' || || auxiliary input file name |- | ''bool '' || '''verb=n''' || [y/n] || Verbosity flag |} ==sfshifts== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Multiple shifts. |- ! colspan="4" | sfshifts < inp.rsf > out.rsf np= dp= p0= |- | ''float '' || '''dp=''' || || slope sampling |- | ''int '' || '''np=''' || || number of slopes |- | ''float '' || '''p0=''' || || first slope |} ==sfshoot2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 2-D ray shooting. |- ! colspan="4" | sfshoot2 < vel.rsf > out.rsf shotfile=shots.rsf vel=y order=4 nt=nx*nz nr=1 r0=x0 dr=dx tol=0.01 |- | ''float '' || '''dr=dx''' || || receiver increment |- | ''int '' || '''nr=1''' || || number of recievers |- | ''int '' || '''nt=nx*nz''' || || Maximum number of time steps |- | ''int '' || '''order=4''' || || Interpolation order |- | ''float '' || '''r0=x0''' || || first receiver |- | ''string '' || '''shotfile=''' || || file with shot locations (auxiliary input file name) |- | ''float '' || '''tol=0.01''' || || Shooting tolerance (in degrees) |- | ''bool '' || '''vel=y''' || [y/n] || If y, the input is velocity; if n, slowness |} ==sfshot2cmp== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Convert shots to CMPs for regular 2-D geometry. |- ! colspan="4" | sfshot2cmp < in.rsf > out.rsf mask=msk.rsf positive=y half=y |- | colspan="4" | <br>The axes in the input are {time,offset,shot}<br>The axes in the output are {time,offset,midpoint} |- | ''bool '' || '''half=y''' || [y/n] || if y, the second axis is half-offset instead of full offset |- | ''string '' || '''mask=''' || || auxiliary output file name |- | ''bool '' || '''positive=y''' || [y/n] || initial offset orientation |} ==sfshotconstkirch== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Prestack shot-profile Kirchhoff migration in constant velocity. |- ! colspan="4" | sfshotconstkirch < inp.rsf > out.rsf aal=y nx=ns dx=ds x0=s0 offset=n vel= |- | colspan="4" | <br>Requires the input to be in (time,offset,shot) |- | ''bool '' || '''aal=y''' || [y/n] || if y, apply antialiasing |- | ''float '' || '''dx=ds''' || || |- | ''int '' || '''nx=ns''' || || |- | ''bool '' || '''offset=n''' || [y/n] || if y, the output is in offset |- | ''float '' || '''vel=''' || || velocity |- | ''float '' || '''x0=s0''' || || |} ==sfshotholes== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Remove random shot gathers from a 2-D dataset. |- ! colspan="4" | sfshotholes < in.rsf > mask.rsf perc=0.75 |- | ''float '' || '''perc=0.75''' || || how many shots to remove |} ==sfshotprop== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Shot propagation. |- ! colspan="4" | sfshotprop < in.rsf > out.rsf ns= ds= eps=0.1 positive=y |- | ''float '' || '''ds=''' || || shot sampling |- | ''float '' || '''eps=0.1''' || || regularization parameter |- | ''int '' || '''ns=''' || || number of shots |- | ''bool '' || '''positive=y''' || [y/n] || initial offset orientation |} ==sfsin== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Simple operations with complex sinusoids |- ! colspan="4" | sfsin < in.rsf > out.rsf root=root.rsf mask=mask.rsf adj=n verb=n niter=0 rect=1 perc=50. eps=1./n1 oper= type= |- | ''bool '' || '''adj=n''' || [y/n] || adjoint flag |- | ''float '' || '''eps=1./n1''' || || scaling for shaping inversion |- | ''string '' || '''mask=''' || || missing data interpolation (auxiliary input file name) |- | ''int '' || '''niter=0''' || || number of iterations |- | ''string '' || '''oper=''' || || operation to perform |- | ''float '' || '''perc=50.''' || || percentage for thresholding (used when oper=t and niter > 0) |- | ''int '' || '''rect=1''' || || |- | ''file '' || '''root=''' || || auxiliary input file name |- | ''string '' || '''type=''' || || [haar,linear,biortho] type of the seislet transform |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |} ==sfslant== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Time-space-domain Radon transform (slant stack) |- ! colspan="4" | sfslant < in.rsf > out.rsf verb=n adj=n rho=y anti=1. np= dp= p0= x0= dx= nx= p1=0. |- | ''bool '' || '''adj=n''' || [y/n] || adjoint flag |- | ''float '' || '''anti=1.''' || || antialiasing |- | ''float '' || '''dp=''' || || p sampling (if adj=y) |- | ''float '' || '''dx=''' || || offset sampling |- | ''int '' || '''np=''' || || number of p values (if adj=y) |- | ''int '' || '''nx=''' || || number of offsets |- | ''float '' || '''p0=''' || || p origin (if adj=y) |- | ''float '' || '''p1=0.''' || || reference slope |- | ''bool '' || '''rho=y''' || [y/n] || rho filtering |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |- | ''float '' || '''x0=''' || || offset origin |} ==sfsrmva== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 3-D S/R WEMVA with extended split-step |- ! colspan="4" | sfsrmva slo=Bs.rsf swf=Bw_s.rsf rwf=Bw_r.rsf < Pi.rsf > Ps.rsf verb=y eps=0.01 adj=n twoway=y nrmax=1 dtmax=0.004 pmx=0 pmy=0 tmx=0 tmy=0 |- | ''bool '' || '''adj=n''' || [y/n] || y=ADJ scat; n=FWD scat |- | ''float '' || '''dtmax=0.004''' || || max time error |- | ''float '' || '''eps=0.01''' || || stability parameter |- | ''int '' || '''nrmax=1''' || || max number of refs |- | ''int '' || '''pmx=0''' || || padding on x |- | ''int '' || '''pmy=0''' || || padding on y |- | ''file '' || '''rwf=''' || || auxiliary input file name |- | ''file '' || '''slo=''' || || auxiliary input file name |- | ''file '' || '''swf=''' || || auxiliary input file name |- | ''int '' || '''tmx=0''' || || taper on x |- | ''int '' || '''tmy=0''' || || taper on y |- | ''bool '' || '''twoway=y''' || [y/n] || two-way traveltime |- | ''bool '' || '''verb=y''' || [y/n] || verbosity flag |} ==sfsrsyn== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Synthesize shot/receiver wavefields for 3-D SR migration |- ! colspan="4" | sfsrsyn < Fr.rsf wav=Fs.rsf swf=Fsw.rsf > Frw.rsf nx= dx= ox= ny=1 dy=1 oy=0 |- | ''float '' || '''dx=''' || || x sampling |- | ''float '' || '''dy=1''' || || y sampling |- | ''int '' || '''nx=''' || || x samples |- | ''int '' || '''ny=1''' || || y samples |- | ''float '' || '''ox=''' || || x origin |- | ''float '' || '''oy=0''' || || y origin |- | ''file '' || '''swf=''' || || auxiliary output file name |- | ''file '' || '''wav=''' || || auxiliary input file name |} ==sfsstep2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 3-D post-stack modeling/migration with extended split step. |- ! colspan="4" | sfsstep2 < in.rsf > out.rsf slowness=vel.rsf inv=n verb=n eps=0.01 nt=1 nr=1 padx=0 pady=0 dt=0.004 nw= dw= w0=0. |- | ''float '' || '''dt=0.004''' || || time error |- | ''float '' || '''dw=''' || || Frequency sampling (for modeling) |- | ''float '' || '''eps=0.01''' || || stability parameter |- | ''bool '' || '''inv=n''' || [y/n] || If y, modeling; if n, migration |- | ''int '' || '''nr=1''' || || maximum number of references |- | ''int '' || '''nt=1''' || || taper size |- | ''int '' || '''nw=''' || || Length of frequency axis (for modeling) |- | ''int '' || '''padx=0''' || || cross-line padding |- | ''int '' || '''pady=0''' || || in-line padding |- | ''file '' || '''slowness=''' || || auxiliary input file name |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |- | ''float '' || '''w0=0.''' || || Frequency origin (for modeling) |} ==sfstolt== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Post-stack Stolt modeling/migration. |- ! colspan="4" | sfstolt < in.rsf > out.rsf vel= pad=nt extend=4 mute=12 minstr=0.0 |- | colspan="4" | <br>Requires the input to be cosine-transformed over the lateral axes. |- | ''int '' || '''extend=4''' || || trace extension |- | ''float '' || '''minstr=0.0''' || || minimum stretch allowed |- | ''int '' || '''mute=12''' || || mute zone |- | ''int '' || '''pad=nt''' || || padding on the time axis |- | ''float '' || '''vel=''' || || Constant velocity (use negative velocity for modeling) |} ==sfstolt2== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Post-stack Stolt modeling/migration. |- ! colspan="4" | sfstolt2 < in.rsf > out.rsf vel= pad=nt nf=2 |- | colspan="4" | <br>Requires the input to be cosine-transformed over the lateral axes. |- | ''int '' || '''nf=2''' || || Interpolation accuracy |- | ''int '' || '''pad=nt''' || || padding on the time axis |- | ''float '' || '''vel=''' || || Constant velocity (use negative velocity for modeling) |} ==sfstoltstretch== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Stolt stretch. |- ! colspan="4" | sfstoltstretch < in.rsf > st.rsf velocity=vel.rsf inv=n nstretch=1 pad=nt eps=0.01 vel= |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''bool '' || '''inv=n''' || [y/n] || if y, inverse stretch |- | ''int '' || '''nstretch=1''' || || number of steps |- | ''int '' || '''pad=nt''' || || time axis padding |- | ''float '' || '''vel=''' || || reference velocity |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sfstretch== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Stretch of the time axis. |- ! colspan="4" | sfstretch < in.rsf > out.rsf datum=dat.rsf inv=n dens=1 verb=y v0= half=y CDPtype= delay= tdelay= hdelay= scale= nout=dens*n1 extend=4 mute=0 maxstr=0 rule= |- | ''int '' || '''CDPtype=''' || || |- | ''file '' || '''datum=''' || || auxiliary input file name |- | ''float '' || '''delay=''' || || time delay for rule=lmo |- | ''int '' || '''dens=1''' || || axis stretching factor |- | ''int '' || '''extend=4''' || || trace extension |- | ''bool '' || '''half=y''' || [y/n] || if y, the second axis is half-offset instead of full offset |- | ''float '' || '''hdelay=''' || || offset delay for rule=rad |- | ''bool '' || '''inv=n''' || [y/n] || if y, do inverse stretching |- | ''float '' || '''maxstr=0''' || || maximum stretch |- | ''int '' || '''mute=0''' || || tapering size |- | ''int '' || '''nout=dens*n1''' || || output axis length (if inv=n) |- | ''string '' || '''rule=''' || || Stretch rule: :n - constant-velocity normal moveout (nmostretch), default :l - linear moveout (lmostretch) :L - logarithmic stretch (logstretch) :2 - t^2 stretch (t2stretch) :c - t^2 chebyshev stretch (t2chebstretch) :r - radial moveout (radstretch) :d - datuming (datstretch) :s - s*t scaling stretch (scalestretch) |- | ''float '' || '''scale=''' || || scaling factor for rule=scale |- | ''float '' || '''tdelay=''' || || time delay for rule=rad |- | ''float '' || '''v0=''' || || moveout velocity |- | ''bool '' || '''verb=y''' || [y/n] || verbosity flag |} ==sftan2ang== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | tangent to angle transformation |- ! colspan="4" | sftan2ang < Fstk.rsf > Fang.rsf velocity=velocity.rsf na=nt da=90/(nt-1) a0=0. extend=4 top=n |- | ''float '' || '''a0=0.''' || || |- | ''float '' || '''da=90/(nt-1)''' || || |- | ''int '' || '''extend=4''' || || tmp extension |- | ''int '' || '''na=nt''' || || |- | ''bool '' || '''top=n''' || [y/n] || |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sftaupmo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Normal moveout in tau-p domain. |- ! colspan="4" | sftaupmo < taup.rsf velocity=velocity.rsf > nmod.rsf slope=slope.rsf velx=velocityx.rsf mute=12 str=0.5 extend=4 interval=y |- | ''int '' || '''extend=4''' || || interpolation accuracy |- | ''bool '' || '''interval=y''' || [y/n] || use interval velocity |- | ''int '' || '''mute=12''' || || mute zone |- | ''string '' || '''slope=''' || || auxiliary input file name |- | ''float '' || '''str=0.5''' || || maximum stretch |- | ''file '' || '''velocity=''' || || auxiliary input file name |- | ''string '' || '''velx=''' || || auxiliary input file name |} ==sftime2depth== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Time-to-depth conversion in V(z). |- ! colspan="4" | sftime2depth < in.rsf velocity=velocity.rsf > out.rsf intime=n nz= dz= z0=0. extend=4 slow=n twoway=y eps=0.01 |- | ''float '' || '''dz=''' || || Depth sampling (default: d1) |- | ''float '' || '''eps=0.01''' || || stretch regularization |- | ''int '' || '''extend=4''' || || Interpolation accuracy |- | ''bool '' || '''intime=n''' || [y/n] || y if velocity is in time rather than depth |- | ''int '' || '''nz=''' || || Number of depth samples (default: n1) |- | ''bool '' || '''slow=n''' || [y/n] || If y, input slowness; if n, velocity |- | ''bool '' || '''twoway=y''' || [y/n] || if y, two-way traveltime |- | ''file '' || '''velocity=''' || || auxiliary input file name |- | ''float '' || '''z0=0.''' || || Depth origin |} ==sftlagtoang2d== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | SS(t-lag) to angle transformation (PP or PS waves) |- ! colspan="4" | sftlagtoang2d < Fstk.rsf > Fang.rsf vpvs=Fgam.rsf dip=Fdip.rsf vel=Fvel.rsf verb=n inv=n na=sf_n(as) da=1./(sf_n(as)-1) oa=0. extend=4 |- | ''float '' || '''da=1./(sf_n(as)-1)''' || || |- | ''file '' || '''dip=''' || || auxiliary input file name |- | ''int '' || '''extend=4''' || || tmp extension |- | ''bool '' || '''inv=n''' || [y/n] || inverse transformation flag |- | ''int '' || '''na=sf_n(as)''' || || |- | ''float '' || '''oa=0.''' || || |- | ''file '' || '''vel=''' || || auxiliary input file name |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |- | ''file '' || '''vpvs=''' || || auxiliary input file name |} ==sftshift== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Compute angle gathers for time-shift imaging condition |- ! colspan="4" | sftshift < Fstk.rsf velocity=Fvel.rsf dip=Fdip.rsf > Fang.rsf na=nv da=1./(nv-1) a0=0. extend=4 cos=n |- | ''float '' || '''a0=0.''' || || |- | ''bool '' || '''cos=n''' || [y/n] || if n, convert pseudo-v to pseudo-tan(theta); :if y, compute cos(theta) from 1/|pm| |- | ''float '' || '''da=1./(nv-1)''' || || |- | ''file '' || '''dip=''' || || auxiliary input file name |- | ''int '' || '''extend=4''' || || tmp extension |- | ''int '' || '''na=nv''' || || |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sftxpnmo== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Normal moveout in TXP domain. |- ! colspan="4" | sftxpnmo < cmp.rsf velocity=velocity.rsf > nmod.rsf str=0.5 mute=12 extend=4 |- | ''int '' || '''extend=4''' || || trace extension |- | ''int '' || '''mute=12''' || || mute zone |- | ''float '' || '''str=0.5''' || || maximum stretch allowed |- | ''file '' || '''velocity=''' || || auxiliary input file name |} ==sftxpscan== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Velocity analysis using T-X-P domain. |- ! colspan="4" | sftxpscan < cmp.rsf > scan.rsf v0= dv= nv= extend=4 mute=12 str=0.5 smin=1.0 smax=2.0 |- | ''float '' || '''dv=''' || || step in velocity |- | ''int '' || '''extend=4''' || || trace extension |- | ''int '' || '''mute=12''' || || mute zone |- | ''int '' || '''nv=''' || || number of scanned velocities |- | ''float '' || '''smax=2.0''' || || maximum heterogeneity |- | ''float '' || '''smin=1.0''' || || minimum heterogeneity |- | ''float '' || '''str=0.5''' || || maximum stretch allowed |- | ''float '' || '''v0=''' || || first scanned velocity |} ==sfvelmod== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Velocity transform. |- ! colspan="4" | sfvelmod < scan.rsf > cmp.rsf half=y extend=4 slowness=n |- | colspan="4" | <br>Inverse of sfvscan. |- | ''int '' || '''extend=4''' || || trace extension |- | ''bool '' || '''half=y''' || [y/n] || if y, the second axis is half-offset instead of full offset |- | ''bool '' || '''slowness=n''' || [y/n] || if y, use slowness instead of velocity |} ==sfveltran== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Hyperbolic Radon transform |- ! colspan="4" | sfveltran < in.rsf > out.rsf adj=n anti=1. s02=0. pull=y |- | ''bool '' || '''adj=n''' || [y/n] || adjoint flag |- | ''float '' || '''anti=1.''' || || antialiasing |- | ''bool '' || '''pull=y''' || [y/n] || pull or push operator |- | ''float '' || '''s02=0.''' || || reference slowness squared (for antialiasing) |} ==sfvoft== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | V(t) function for a linear V(Z) profile. |- ! colspan="4" | sfvoft < in.rsf > out.rsf v0=1.5 alpha=0.5 |- | ''float '' || '''alpha=0.5''' || || velocity gradient |- | ''float '' || '''v0=1.5''' || || initial velocity |} ==sfvofz== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Analytical traveltime in a linear V(z) model. |- ! colspan="4" | sfvofz > out.rsf n1= n= n2= n= g=1. v0=0.5 s=0.5 d1=0.5/(n1-1) d2=1./(n2-1) o1=0. o2=0. intime=n |- | ''float '' || '''d1=0.5/(n1-1)''' || || vertical sampling |- | ''float '' || '''d2=1./(n2-1)''' || || horizontal sampling |- | ''float '' || '''g=1.''' || || velocity gradient |- | ''bool '' || '''intime=n''' || [y/n] || if in vertical time coordinates |- | ''int '' || '''n=''' || || number of samples |- | ''int '' || '''n1=''' || || vertical samples |- | ''int '' || '''n2=''' || || horizontal samples |- | ''float '' || '''o1=0.''' || || vertical origin |- | ''float '' || '''o2=0.''' || || horizontal origin |- | ''float '' || '''s=0.5''' || || shot location at the surface |- | ''float '' || '''v0=0.5''' || || initial velocity |} ==sfvscan== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Velocity analysis. |- ! colspan="4" | sfvscan < cmp.rsf > scan.rsf offset=offset.rsf mask=msk.rsf grad=grd.rsf semblance=n diffsemblance=n avosemblance=n nb=2 weight=y half=y smax=2.0 ns=1 slowness=n squared=n v1= extend=4 mute=12 str=0.5 v0= dv= nv= v1= type= |- | colspan="4" | <br>Inverse of sfvelmod |- | ''bool '' || '''avosemblance=n''' || [y/n] || if y, compute AVO-friendly semblance |- | ''bool '' || '''diffsemblance=n''' || [y/n] || if y, compute differential semblance |- | ''float '' || '''dv=''' || || step in velocity |- | ''int '' || '''extend=4''' || || trace extension |- | ''string '' || '''grad=''' || || auxiliary input file name |- | ''bool '' || '''half=y''' || [y/n] || if y, the second axis is half-offset instead of full offset |- | ''string '' || '''mask=''' || || optional mask file (auxiliary input file name) |- | ''int '' || '''mute=12''' || || mute zone |- | ''int '' || '''nb=2''' || || semblance averaging |- | ''int '' || '''ns=1''' || || number of heterogeneity scans |- | ''int '' || '''nv=''' || || number of scanned velocities |- | ''string '' || '''offset=''' || || auxiliary input file name |- | ''bool '' || '''semblance=n''' || [y/n] || if y, compute semblance; if n, stack |- | ''bool '' || '''slowness=n''' || [y/n] || if y, use slowness instead of velocity |- | ''float '' || '''smax=2.0''' || || maximum heterogeneity |- | ''bool '' || '''squared=n''' || [y/n] || if y, the slowness or velocity is squared |- | ''float '' || '''str=0.5''' || || maximum stretch allowed |- | ''string '' || '''type=''' || || type of semblance (avo,diff,sembl,power,weighted) |- | ''float '' || '''v0=''' || || first scanned velocity |- | ''float '' || '''v1=''' || || reference velocity |- | ''bool '' || '''weight=y''' || [y/n] || if y, apply pseudo-unitary weighting |} ==sfxlagtoang2d== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | SS(x-lag) to angle transformation (PP or PS waves) |- ! colspan="4" | sfxlagtoang2d < Fstk.rsf > Fang.rsf vpvs=Fgam.rsf dip=Fdip.rsf verb=n inv=n na=sf_n(axs) da=1./(sf_n(axs)-1) oa=0. extend=4 |- | ''float '' || '''da=1./(sf_n(axs)-1)''' || || |- | ''file '' || '''dip=''' || || auxiliary input file name |- | ''int '' || '''extend=4''' || || tmp extension |- | ''bool '' || '''inv=n''' || [y/n] || inverse transformation flag |- | ''int '' || '''na=sf_n(axs)''' || || |- | ''float '' || '''oa=0.''' || || |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |- | ''file '' || '''vpvs=''' || || auxiliary input file name |} ==sfzoeppritz== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | Testing Zoeppritz equation |- ! colspan="4" | sfzoeppritz > out.rsf na=90 a0=0. da=90./na icoef=1 vp1= vp2= vs1= vs2= rho1=1. rho2=1. incp=y outp=y refl=y |- | ''float '' || '''a0=0.''' || || first angle |- | ''float '' || '''da=90./na''' || || angle increment |- | ''int '' || '''icoef=1''' || [1,2,3] || particle displacement, displacement potential, or energy |- | ''bool '' || '''incp=y''' || [y/n] || incident P (or S) |- | ''int '' || '''na=90''' || || number of angles |- | ''bool '' || '''outp=y''' || [y/n] || rellected/transmitted P (or S) |- | ''bool '' || '''refl=y''' || [y/n] || reflection or transmission |- | ''float '' || '''rho1=1.''' || || |- | ''float '' || '''rho2=1.''' || || |- | ''float '' || '''vp1=''' || || |- | ''float '' || '''vp2=''' || || |- | ''float '' || '''vs1=''' || || |- | ''float '' || '''vs2=''' || || |} ==sfzomig== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 3-D zero-offset modeling/migration with extended split-step |- ! colspan="4" | sfzomig slo=Fs.rsf < Fd.rsf > Fw.rsf < Fi.rsf verb=n incore=y eps=0.01 inv=n causal=n twoway=y nrmax=1 dtmax=0.004 pmx=0 pmy=0 tmx=0 tmy=0 nw= dw= ow=0. mode= |- | colspan="4" | To be deprecated in favor of zomig3 |- | ''bool '' || '''causal=n''' || [y/n] || y=causal; n=anti-causal |- | ''float '' || '''dtmax=0.004''' || || time error |- | ''float '' || '''dw=''' || || |- | ''float '' || '''eps=0.01''' || || stability parameter |- | ''bool '' || '''incore=y''' || [y/n] || in core execution |- | ''bool '' || '''inv=n''' || [y/n] || y=modeling; n=migration |- | ''string '' || '''mode=''' || || |- | ''int '' || '''nrmax=1''' || || maximum references |- | ''int '' || '''nw=''' || || |- | ''float '' || '''ow=0.''' || || |- | ''int '' || '''pmx=0''' || || padding on x |- | ''int '' || '''pmy=0''' || || padding on y |- | ''file '' || '''slo=''' || || auxiliary input file name |- | ''int '' || '''tmx=0''' || || taper on x |- | ''int '' || '''tmy=0''' || || taper on y |- | ''bool '' || '''twoway=y''' || [y/n] || two-way traveltime |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |} ==sfzomva== {| class="wikitable" align="center" cellspacing="0" border="1" ! colspan="4" style="background:#ffdead;" | 3-D zero-offset WEMVA |- ! colspan="4" | sfzomva slo=Bs.rsf wfl=Bw.rsf < Pi.rsf > Ps.rsf verb=n eps=0.01 inv=n twoway=y nrmax=1 dtmax=0.004 pmx=0 pmy=0 tmx=0 tmy=0 |- | ''float '' || '''dtmax=0.004''' || || time error |- | ''float '' || '''eps=0.01''' || || stability parameter |- | ''bool '' || '''inv=n''' || [y/n] || y=modeling; n=migration |- | ''int '' || '''nrmax=1''' || || maximum number of references |- | ''int '' || '''pmx=0''' || || padding on x |- | ''int '' || '''pmy=0''' || || padding on y |- | ''file '' || '''slo=''' || || auxiliary input file name |- | ''int '' || '''tmx=0''' || || taper on x |- | ''int '' || '''tmy=0''' || || taper on y |- | ''bool '' || '''twoway=y''' || [y/n] || two-way traveltime |- | ''bool '' || '''verb=n''' || [y/n] || verbosity flag |- | ''file '' || '''wfl=''' || || auxiliary input file name |}
Summary:
Please note that all contributions to Madagascar are considered to be released under the GNU Free Documentation License 1.3 or later (see
My wiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
English
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Getting Madagascar
download
Installation
GitHub repository
SEGTeX
Introduction
Package overview
Tutorial
Hands-on tour
Reproducible documents
Hall of Fame
User Documentation
List of programs
Common programs
Popular programs
The RSF file format
Reproducibility with SCons
Developer documentation
Adding programs
Contributing programs
API demo: clipping data
API demo: explicit finite differences
Community
Conferences
User mailing list
Developer mailing list
GitHub organization
LinkedIn group
Development blog
Twitter
Slack
Tools
What links here
Related changes
Special pages
Page information