October 20 2011
For geophysical data processing and reproducible numerical experiments.
Madagascar is an open-source software package for multidimensional data Analysis and reproducible computational experiments. Its mission is to provide
a convenient and powerful environment
a convenient technology transfer tool
for researchers working with digital image and data processing in geophysics and related fields. Technology developed using the Madagascar Project Management System is transferred in the form of recorded processing histories, which become "computational recipes" to be verified, exchanged, and modified by users of the system.
Madagascar is a Modern package. Started in 2003, and publicly released in 2006 it was developed almost entirely from scratch. Being a relatively new package, it follows modern software engineering practices such as module encapsulation and test-driven development. A rapid development of a project of this scope (more than 300 main programs and more than 3,000 tests) would not be possible without standing on the shoulders of giants and learning from the 30 years of previous experience in open packages such as SEPlib and Seismic Unix. We have borrowed and reimplemented functionality and ideas from these other packages.
Madagascar is a test-driven package. Test-driven development is not only an agile software programming practice but also a way of bringing scientific foundation to geophysical research that involves numerical experiments. Bringing reproducibility and peer review, the backbone of any real science, to the field of computational geophysics is the main Motivation for Madagascar development. The package consists of two levels: low-level main programs (typically developed in the C programming language and working as data filters) and high-level processing flows (described with the help of the Python programming language) that Combine main programs and completely document data processing histories for testing and reproducibility.