A new paper is added to the collection of reproducible documents:
Pengliang Yang from Xi’an Jiaotong University contributes A numerical tour of wave propagation
This tutorial is written for beginners as an introduction to basic wave propagation using finite difference method, from acoustic and elastic wave modeling, to reverse time migration and full waveform inversion. Most of the theoretical delineations summarized in this tutorial have been implemented in Madagascar with Matlab, C and CUDA programming, which will benefit readers’ further study.
The orange-white-purple diverging color palette was suggested in the article
Light, A. and P.J. Bartlein (2004) The end of the rainbow? Color schemes for improved data graphics. EOS Transactions of the American Geophysical Union 85(40):385
Matteo Niccoli recommends it for seismic data as a replacement for the familiar red-white-blue pallete (color=g in Madagascar). Now the Light-Bartlein palette is available to Madagascar plotting programs, such as sfgrey, as color=lb. See the following example from rsf/rsf/sfgrey:
sfhelicon performs multidimensional convolution and inverse convolution (recursive filtering) using the helix transform.
The theory behind helical convolution is explained by Jon Claerbout in the paper
Claerbout, J., 1998, Multidimensional recursive filters via a helix: Geophysics, 63, 1532-1541
and in the corresponding chapter in his book Image Estimation by Example. The following example from gee/hlx/helicon illustrates inverse convolution on a helix.
sfhelicon works in N dimensions. The filter for is supplied by filt= parameter, which points to a real-valued RSF file with filter coefficents. The filter lags on a helix can be stored in a separate integer-value RSF file specified wih lag= parameter (which can be optionally contained inside the file with filter coefficients). The dimensions used for specifying the filter lags are not necessarily the same as the dimensions of the input data and can be specified with n= parameter (which can be optionally contained inside the file with filter lags).
The choice between forward and inverse convolution is controlled by div= parameter. The adjoint flag is supplied by adj= parameter. The following figure illustrates the act of the adjoint convolution and inverse convolution on a helix.
For an example of least-squares inversion with sfhelicon using the conjugate-gradient algorithm, see the documentation for sfconjgrad.
10 previous programs of the month:
The 1.6 stable release features fifteen new reproducible papers and multiple other enhancements including the addition of the seismic migration gallery.
According to the SourceForge statistics, the previous 1.5 stable distribution has been downloaded more than 5,000 times. The record number of downloads in September 2013 is probably due to the fact that Madagascar is being used for teaching at different universities. The top country (with 40% of all downloads) was China, followed by the US, Brazil, Mexico, and Australia.
According to Ohloh.net, the year before the 1.6 release was the period of a high development activity, with 41 contributors (up 41% compared to the previous year) making 1,762 commits to the repository. Ohloh.net says that Madagascar “has a well established, mature codebase maintained by a very large development team with stable year-over-year commits” and estimated 201 man-years of effort.