sfgraph belongs to the family of plotting programs and is used for plotting explicitly defined 2-D curves.

Here are 10 basic facts about this program:

**sfgraph** shares most of its parameters with some other 2-D plotting programs (**sfgrey**, **sfcontour**, **sfwiggle**). These common parameters can be accessed by running **sfdoc stdplot**.

The following plot from rsf/rsf/sfgraph is using parameters **grid=y gridcol=5 pad=n** and some creative changes of fonts in the title.

- If the input to
**sfgraph** is real, it is understood as representing a regularly sampled 1-D function Y(X), where X is sampled according to **n1=**, **o1=**, and **d1=** parameters in the input file.

- If the input is complex, its real part is taken as X, and the imaginary part is taken as Y. If the input is real initially, it is easy to turn it into complex by using sfcmplx or sfdd.

- If the
**n2** parameter in the input is greater than 1, multiple curves are plotted.

The following plot from rsf/rsf/sfmath shows plots of closed curves defined by a complex-valued input.

- If the
**n3** or any of the larger dimensions is greater than 1, the plot becomes a movie.

- By default, the graphs are plotted with lines. One can control the line appearance with generic parameters
**dash=**, **plotcol=**, **plotfat=**.

The following plot from jsg/seislet/sin2 contained dashed lines created with **dash=1,2,0**.

- If
**symbol=** is specified, the graph is plotted with the given symbols. The size of the symbol is controlled with **symbolsz=**.

The following plot from sep/precon/oned is created with **symbol="md" symbolsz=7**.

- The displayed function can be changed from Y(X) to X(Y) by using
*transp=* parameter.

The following plot from jsg/nmo3/azimuthtest is created with **transp=y yreverse=y symbol=+ symbolsz=4**.

- The ranges of X and Y are selected automatically but can be controlled with
**min1=**, **max1=**, **min2=**, **max2=**. If you want automatic ranges, but no padding around minimum and maximum values, use **pad=n**.

**sfgraph** avoids plotting infinite or NaN (not a number) values.

sfsmooth, one of the most useful Madagascar programs, implements smoothing by triangle filtering. The idea of triangle filtering is explained in Jon Claerbout's books Processing versus Inversion and Image Estimation by Example. You can find the explan

Weblog:Madagascar development blogTracked:Jan 12, 12:33sfspectra computes spectrum, the absolute value of the 1-D Fourier transform along the fast axis. The following example from rsf/su/rsfkasper shows a seismic shot gather before and after high-pass filtering and the corresponding spectra computed with

Weblog:Madagascar development blogTracked:Mar 18, 17:16sfgrey3 generates "cube" plots from 3-D data. A cube plot displays sections from a 3-D cube as faces of the cube. Some of the options specific to this kind of display are: flat= The flat parameter tells sfgrey3 whether to display the cube as a

Weblog:Madagascar development blogTracked:Apr 09, 12:42sfderiv applies the first derivative filter. The algorithm implemented in this program is described in the paper Pei, S.-C., and P.-H. Wang, 2001, Closed-form design of maximally flat FIR Hilbert transformers, differentiators, and fractional delaye

Weblog:Madagascar development blogTracked:May 06, 08:10sfderiv applies the first derivative filter. The algorithm implemented in this program is described in the paper Pei, S.-C., and P.-H. Wang, 2001, Closed-form design of maximally flat FIR Hilbert transformers, differentiators, and fractional delaye

Weblog:Madagascar development blogTracked:May 06, 08:11sfderiv applies the first derivative filter. The algorithm implemented in this program is described in the paper Pei, S.-C., and P.-H. Wang, 2001, Closed-form design of maximally flat FIR Hilbert transformers, differentiators, and fractional delaye

Weblog:Madagascar development blogTracked:Jun 02, 06:46sfdip 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 p=tanα. The following example

Weblog:Madagascar development blogTracked:Jun 04, 05:46sffft3 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

Weblog:Madagascar development blogTracked:Jul 08, 12:34Previous programs of the month:sffft3sfdipsfderivsfgrey3sfspectrasfnoisesfgraphsfclipsfagcsfenvelopesfcontoursfsmooth

Weblog:Madagascar development blogTracked:Sep 03, 14:02sfpick 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

Weblog:Madagascar development blogTracked:Sep 08, 16:07sfiwarp 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

Weblog:Madagascar development blogTracked:Sep 09, 12:52sfpick 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

Weblog:Madagascar development blogTracked:Sep 09, 12:52sfkirmod 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:45