sfdip estimates a local slope (dip) using the
plane-wave destruction algorithm.
The dip is measured in time samples. If
is the dip angle, then the output of sfdip corresponds to the dimensionless quantity
.
The following example from
jsg/flat/flat shows an input synthetic dataset and an estimated dip field
When applied to 3-D data,
sfdip outputs a 4-D file with
n4=2 and two dips (inline and crossline). To compute only the inline dip, use
n4=0. To compute only the crossline dip, use
n4=1.
The following example from
sep/plane/qint shows an input synthetic 3-D dataset and the two dip components calculated from it.
The algorithm consists of a number of non-linear Gauss-Newton iterations (specified by
niter=) with a number of linear CG-shaping iterations (specified by
liter=) inside each non-linear cycle. The convergence depends on the initial dip values, which can be specified either as constants (
p0= and
q0=) or as auxiliary input files (
idip= and
xdip=). If it is necessary to constrain the range of dip values, it can be controlled by specifying minimum or maximum parameters (
pmin=,
pmax= and
qmin=,
qmax=).
The smoothness of the dip is assured by
shaping regularization and controled by the smoothing radii
rect1=,
rect2=,
rect3=.
With default parameters, the dip estimate is accurate only up to 45 degrees. To estimate steeper (aliased) dips, increase the
order= parameter. The order of the filter corresponds to the maximum dip. Alternatively, one can use the technique of filter stretching (interlacing),
explained by Claerbout; the stretching parameters are
nj1= and
nj2=.
The following examples from
sep/pwd/alias show aliased data interpolation using (a) order=12 (b) order=3 nj1=4.
For a faster version, with only one non-linear iteration but with fewer options, try
sffdip.
To estimate two interfering dips, try
sftwodip2.
To estimate a number of constant dips, try
sfdips.
Previous programs of the month:
sffft3 implements a complex-to-complex Fast Fourier Transform (FFT) along an arbitrary axis. The FFT library that Madagascar uses is KISS FFT, created by Mark Borgerding. KISS stands for Keep it simple, Stupid! KISS FFT may not be as fast as FFTW but i
Tracked: Jul 08, 12:34
Previous programs of the month:sffft3sfdipsfderivsfgrey3sfspectrasfnoisesfgraphsfclipsfagcsfenvelopesfcontoursfsmooth
Tracked: Sep 03, 14:02
sfpick performs automatic picking from semblance-like panels. The underlying algorithm is described in Appendix B of the paper Velocity analysis using AB semblance and is inspired by the method of virtual endoscopy in medical imaging. The following
Tracked: Sep 08, 16:07
sfiwarp performs mapping between different coordinates. If you have sampled functions f(x) and y(x), sfiwarp with inv=y (the default) finds sampled f(y). If inv=n, sfiwarp takes f(y) and y(x) and finds f(x). In both cases, the sampled y(x) function is sup
Tracked: Sep 09, 12:52
sfpick performs automatic picking from semblance-like panels. The underlying algorithm is described in Appendix B of the paper Velocity analysis using AB semblance and is inspired by the method of virtual endoscopy in medical imaging. The following
Tracked: Sep 09, 12:52
sfkirmod is a program for modeling seismic reflection data using the Kirchhoff method. According to this method, the reflection response is computed by integrating over the reflector surface. For a theoretical derivation, see, for example, Haddon, R. A
Tracked: Oct 13, 19:46
sfbandpass implements bandpass filtering using the Butterworth algorithm. The desired bandwidth is specified by low and high frequencies (in Hertz) flo= and fhi=. A continuous low-pass Butterworth filter is given by The actual filtering is imp
Tracked: Nov 18, 13:45
sfhalfint implements half-order integration or differentiation, a filtering operation common in 2-D imaging operators such as as slant stacking or Kirchhoff migration. By default, sfhalfint performs half-order integration. To apply half-order different
Tracked: Jan 06, 16:58
sfricker1 implements 1-D convolution with the Ricker wavelet. The following example from rsf/rsf/wedge shows convolution modeling with a wedge model using sfricker1. The convolution is implemented in the frequency domain, where the Ricker wavele
Tracked: Jan 18, 12:49
sfricker1 implements 1-D convolution with the Ricker wavelet. The following example from rsf/rsf/wedge shows convolution modeling with a wedge model using sfricker1. The convolution is implemented in the frequency domain, where the Ricker wavele
Tracked: Jan 19, 12:00
sfpwd implements plane-wave destruction, a filter that attenuates locally plane-wave events, as described in the paper Applications of plane-wave destruction filters. The following example from jsg/diffr/gom shows a seismic section before and after an
Tracked: Feb 09, 16:19
sfpow multiplies the input data by a gain function of the form Gx1x2…,xn=x1p1x2p2⋯xnpn The powers p1,p2,…,pn are given by pow1=, pow2=, etc. parameters. For backward compatibility, sftpow tpow= is an alias for sfpow pow1=. The following examp
Tracked: Mar 11, 09:02
sfnmo implements normal moveout (NMO) correction, one of the most fundamental operations in seismic reflection data processing. The following example from jsg/avo/avo shows synthetic data before and after NMO correction. NMO transforms presta
Tracked: Apr 08, 06:02