sfremap1 interpolates the input data to a different grid along the first axis. Here is an elementary example: making some data and interpolating it to a denser grid:
bash$ sfmath n1=5 o1=0 d1=1 output=x1 | sfdisfil
0: 0 1 2 3 4
bash$ sfmath n1=5 o1=0 d1=1 output=x1 | sfremap1 n1=10 d1=0.5 | sfdisfil
0: 0 0.5 1 1.5 2
5: 2.5 3 3.5 4 4.5
sfremap1 uses ENO (essentially non-oscillatory) interpolation to prevent oscillations when interpolating discontinuous data:
bash$ sergey$ sfspike n1=10 o1=0 d1=1 k1=6 | sfcausint | sfdisfil
0: 0 0 0 0 0
5: 1 1 1 1 1
bash$ sfspike n1=10 o1=0 d1=1 k1=6 | sfcausint | sfremap1 n1=20 d1=0.5 | sfdisfil
0: 0 0 0 0 0
5: 0 0 0 0 0.5
10: 1 1 1 1 1
15: 1 1 1 1 1
The ENO algorithm is described by Harten et al. (1987) and Shu and Osher (1988):
A. Harten, B. Engquist, S. Osher, and S. R. Chakravarthy, 1987, Uniformly high order accurate essentially non-oscillatory schemes, III: Journal of Computational Physics, 71(2), 231-303.
C. W. Shu and S. Osher, 1988, Efficient implementation of essentially non-oscillatory shock-capturing schemes: Journal of Computational Physics, 77(2), 439-471.
The interpolation order is controlled by the order= parameter, order=2 corresponds to linear interpolation, the default is order=3. The output grid can be specified either by n1=, o1=, d1= parameters or by providing an example file with the desired grid in pattern= parameter. Here is an example:
bash$ sfmath n1=5 o1=0 d1=1 output=x1 > data.rsf
bash$ sfspike n1=10 d1=0.5 > other.rsf
bash$ < data.rsf sfremap1 pattern=other.rsf | sfdisfil
0: 0 0.5 1 1.5 2
5: 2.5 3 3.5 4 4.5
For an alternative method (cubic spline interpolation), see sfspline.
code
more code
~~~~