Month: July 2010

For reproducible research, go to Madagascar

July 30, 2010 Celebration No comments

A story about Madagascar is featured today on the SourceForge blog.
Among more than 230,000 software projects hosted by SourceForge, Madagascar is currently the 210th in activity (or top 0.1%) thanks to the recent release of 1.0 and to our active Subversion repository.


July 22, 2010 Celebration No comments

A big event in the Madagascar history: the first non-beta stable version (madagascar-1.0) is released! The event is celebrated at the School and Workshop in Houston.
This release features new reproducible papers, major structural improvements (thanks to Nick Vlad) and an automatic testing system (thanks to booklist, figlist, and testlist from Jim Jennings and vplotdiff from Joe Dellinger).
The cumulative number of all previous stable release downloads has exceeded 10,000.

The madagascar reference manual

July 20, 2010 Documentation No comments

SWAG (Seismic Wave Analysis Group) at KAUST is glad to introduce the Madagascar reference manual that includes description and usage information for all functions in rsf.h. These include Data types, preparing for input, operations with RSF files, error handling, linear operators, data analysis, filtering, solvers, interpolation, Smoothing, Ray tracing, General tools, Geometry, and System. The purpose behind this manual is to ease the task of searching for subroutines and understand their function. You can access the manual at book/rsf/manual.

Is there a Graphical User Interface to Madagascar?

July 19, 2010 FAQ No comments

A hardcore Madagascar user does not need anything more than a friendly editor (to edit SConstruct files) and the good old command line (to run scons commands). However, sometimes it is necessary to provide simplified GUIs (Graphical User Interfaces) for inexperienced users. Creating GUIs in Python is quite simple. An example is provided in rsf/rsf/gui. In this example, we obtain a compressed approximation of a piecewise-regular signal with by a wavelet transform. The figure using default parameters is shown below:

There are two main parameters in this experiment: the type of the wavelet transform (type= parameter in sfdwt) and the thresholding percentile (pclip= parameter in sfthreshold). The first step is to expose these parameters to CLI (Command Line Interface) by using ARGUMENTS.get construct in SConstruct:

# Wavelet transform type 
type = ARGUMENTS.get('type','b') 
# Thresholding percentile 
pclip = int(ARGUMENTS.get('pclip',50))

Now one can select parameters on the command line by launching something like

scons type=b pclip=50 view

Next, we build the GUI by using one of the Python interfaces. The script provides an interface using Tkinter, the most standard Python GUI package. It allows the user to select the parameter values graphically. Clicking the Run button would then launch scons with the selected parameters in the background.

An alternative, both simple and powerful GUI package is Traits from Enthought Inc. An example Traits-based interface interface is provided by

For full-featured GUIs exposing all program parameters, one can use the Madagascar interface to TKSU or OpendTect.

Dip-constrained transversely-isotropic medium

July 12, 2010 Documentation No comments

A new paper is added to the collection of reproducible documents:
A transversely isotropic medium with a tilted symmetry axis normal to the reflector

This paper is the first reproducible paper contributed by Seismic Wave Analysis Group from KAUST.