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 supplied in a file specified by

**warp=** parameter.

The following example from

milano/taupvel/cmp shows a seismic taup-p gather flattening by predictive painting and time warping.

Coordinate mapping is a fundamental data-transformation operation, which finds many applications. The term

*warping* comes from medical imaging. See, for example,

Wolberg, G., 1990, Digital image warping: IEEE Computer Society Press.

W. Burnett and S. Fomel, 2009, Moveout analysis by time-warping: 79th Annual International Meeting, SEG, 3710-3714.

The algorithm used in sfiwarp is B-spline interpolation and inverse spline interpolation. If forward warping (

**inv=n**) is

$${\mathbf{\text{f}}}_{x}=\mathbf{\text{B}}\phantom{\rule{0.167em}{0ex}}{\mathbf{\text{f}}}_{y}$$
the the inverse transformation (

**inv=y**) is given by the regularized least-squares inverse

$${\mathbf{\text{f}}}_{y}={\left({\mathbf{\text{B}}}^{T}\phantom{\rule{0.167em}{0ex}}\mathbf{\text{B}}+{?}^{2}\phantom{\rule{0.167em}{0ex}}\mathbf{\text{D}}\right)}^{-1}\phantom{\rule{0.167em}{0ex}}{\mathbf{\text{B}}}^{T}\phantom{\rule{0.167em}{0ex}}{\mathbf{\text{f}}}_{x}$$
where

**D** is the derivative operator.

The ? parameter is supplied by

**eps=**. The sampling in y is supplied by

**n1=**,

**d1=**,

**o1=** parameters.

For 2-D and 3-D versions, try

sfiwarp2 and

sfiwarp3.

### Previous programs of the month:

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

Weblog:Madagascar development blogTracked:Oct 13, 19:46sfbandpass 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

Weblog:Madagascar development blogTracked:Nov 18, 13:45sfhalfint 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

Weblog:Madagascar development blogTracked:Jan 06, 16:58sfricker1 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

Weblog:Madagascar development blogTracked:Jan 18, 12:48sfricker1 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

Weblog:Madagascar development blogTracked:Jan 19, 12:00sfpwd 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

Weblog:Madagascar development blogTracked:Feb 09, 16:20sfpow 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

Weblog:Madagascar development blogTracked:Mar 11, 09:02sfnmo 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

Weblog:Madagascar development blogTracked:Apr 08, 06:02sfvscan implements seismic velocity analysis by scanning stacking velocities. This transformation is also known as the velocity transform or the hyperbolic Radon transform. The following example from bei/vela/vscan shows an example for transforming a C

Weblog:Madagascar development blogTracked:May 11, 12:25sfwiggle plots data using the traditional seismic method of wiggly traces. The following example from rsf/rsf/rsftour shows a typical output: Similarly to other plotting programs, there are multiple parameters that control the output. For examp

Weblog:Madagascar development blogTracked:Jun 12, 10:51sfwiggle plots data using the traditional seismic method of wiggly traces. The following example from rsf/rsf/rsftour shows a typical output: Similarly to other plotting programs, there are multiple parameters that control the output. For examp

Weblog:Madagascar development blogTracked:Jun 12, 10:59sftime2depth converts the input from vertical time to depth coordinates. The following example from rsf/su/rsflab9 shows a seismic image converted from time to depth by this transformation: The example is borrowed from John Stockwell's lecture not

Weblog:Madagascar development blogTracked:Jul 01, 22:28sftime2depth converts the input from vertical time to depth coordinates. The following example from rsf/su/rsflab9 shows a seismic image converted from time to depth by this transformation: The example is borrowed from John Stockwell's lecture not

Weblog:Madagascar development blogTracked:Jul 01, 22:29sfinttest1 performs forward interpolation from a regular grid to irregular locations (in 1-D). The following example from sep/forwd/chirp shows regularly sampled values of a variable-frequency signal and the error of its interpolation using linear and

Weblog:Madagascar development blogTracked:Jan 12, 10:55