Month: October 2012

madagascar-1.4 released

October 29, 2012 Celebration No comments

The 1.4 stable release features 5 new reproducible papers and multiple other enhancements. The main new feature is the addition of the IWAVE modeling package from Bill Symes and The Rice Inversion Project.

According to the SourceForge statistics, the previous 1.3 stable distribution (released six months ago) has been downloaded more than 2,000 times. The total number of Madagascar downloads has reached 20,000. According to, the year before 1.4 release was the period of record development activity, with 27 contributors (up 35% compared to the previous year) making 1,500 commits to the repository (up 70%). says that Madagascar “has a well established, mature codebase maintained by a large development team with increasing year-over-year commits” and estimated 125 man-years of effort.

Helical Fourier transform

October 28, 2012 Documentation No comments

Another old paper is added to the collection of reproducible documents:
Multi-dimensional Fourier transforms in the helical coordinate system

Layer-stripping Kirchhoff migration

October 21, 2012 Documentation No comments

Another old paper is added to the collection of reproducible documents:
Imaging complex structures with first-arrival traveltimes

How do I convert a reproducible paper from LaTeX to HTML?

October 21, 2012 FAQ No comments

Follow the following steps:

  1. Install SEGTeX.
  2. Install LaTeX2HTML.
  3. Set LATEX2HTML environmental variable to $TEXMF/latex2html where $TEXMF is the place of your SEGTeX installation.
  4. In the reproducible paper directory, run
    sftour scons lock

    to install reproducible figures. Then run

    scons html


    scons papername.html

    (if the file name is papername.tex rather than paper.tex) to convert the paper to HTML.

  5. In the reproducible paper directory, run
    scons install


    scons papername.install

    (if the file name is papername.tex rather than paper.tex) to install the HTML paper under $RSFROOT/share/madagascar/book

  6. On the book level, you can convert a full report or book to HTML by running
    scons www

See more instructions on assembling reports from papers.

Program of the month: sfkirmod

October 3, 2012 Programs No comments

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. W., and P. W. Buchen, 1981, Use of Kirchhoff’s formula for body wave calculations in the earth: Geophys. J. Roy. Astr. Soc., 67, 587-598.

At the moment, sfkirmod can handle only asymptotic Green’s functions, analytically computed in three kinds of velocity models:

  1. Constant velocity
  2. Constant gradient of velocity
  3. Constant gradient of velocity squared

The type is specified with type= parameter, and the velocity model is specified with vel=, refx=, refz=, gradx=, and gradz=.

The following example from rsf/scons/rsf shows shot gathers modeled by sfkirmod in a medium with horizontal reflectors and a constant vertical gradient of velocity

It is also possible to model a converted (PS or SP) wave by supplying vel2=, gradx2=, and gradz2= to specify the converted velocity. The standard input file for sfkirmod contains the shape of one or more reflectors. Several other input files can be optionally provided: dip= specifies the slope of the reflector(s), refl= specifies normal-incidence reflectivity (AVA intercept), rgrad= specifies AVA gradient.

The sampling of the time axis in the output is controlled by nt=, t0=, and dt= parameters. A Ricker wavelet is used with the peak frequency specified by freq=. Factors such as the geometrical spreading and the obliquity factor are taken into account. The geometrical spreading correction is different for 2-D (cylindrical waves) or 2.5-D (spherical waves). The default behavior is 2.5_D. To switch to 2-D, use twod=y. By default, sfkirmod outputs shot gathers.

It is also possible to compute CMP gathers directly by using cmp=y. The following example from jsg/crs/dome2 shows CMP gathers computed over a hyperbolic-shape reflector.

Since Kirchhoff modeling is fundamentally a linear operation, it is easy to run sfkirmod in a data-parallel fashion, for example by using pscons with split=[1,n1] and reduce=’add’.

The 3-D version of sfkirmod is sfkirmod3.

10 previous programs of the month