Madagascar (software)
![]() | |
Initial release | June 12, 2006 |
---|---|
Stable release | 1.7
/ April 13, 2015 |
Preview release | Through Subversion
|
Repository | |
Written in | C, C++, Python |
Operating system | Posix |
Type | Geophysical software |
License | GNU General Public License |
Website | www.ahay.org |
Madagascar is a 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.
Features
The Madagascar environment consists of:
- Standalone programs for out-of-core data analysis;
- Standalone programs for geophysical data processing and imaging;
- A development kit for C, C++, Java, Fortran-77, Fortran-90, Python, Matlab, and Octave;
- A framework for reproducible numerical experiments, based on SCons;
- A framework for scientific publications, based on SCons and LaTeX;
- A collection of reproducible scientific articles also used as usage examples and regression tests for the standalone programs;
- A collection of datasets used as input to reproducible numerical experiments.
Example script
An example SConstruct file is shown below[1]
from rsf.proj import *
Fetch('wz.35.H','wz')
Flow('wind','wz.35.H','dd form=native | window n1=400 j1=2 | smooth rect1=3')
Plot('wind','pow pow1=2 | grey')
Flow('mute','wind','mutter v0=0.31 half=n')
Plot('mute','pow pow1=2 | grey')
Result('denmark','wind mute','SideBySideAniso')
End()
Note that SConstruct by itself does not do any job other than setting rules for building different targets. The targets get built when one executes scons on the command line.[2] Running scons produces
bash$ scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... retrieve(["wz.35.H"], []) < wz.35.H /RSF/bin/sfdd form=native | /RSF/bin/sfwindow n1=400 j1=2 | /RSF/bin/sfsmooth rect1=3 > wind.rsf < wind.rsf /RSF/bin/sfpow pow1=2 | /RSF/bin/sfgrey > wind.vpl < wind.rsf /RSF/bin/sfmutter v0=0.31 half=n > mute.rsf < mute.rsf /RSF/bin/sfpow pow1=2 | /RSF/bin/sfgrey > mute.vpl /RSF/bin/vppen yscale=2 vpstyle=n gridnum=2,1 wind.vpl mute.vpl > Fig/denmark.vpl scons: done building targets.
License
Madagascar is free software and is licensed under the GPL.
History
Madagascar was first publicly presented at the EAGE Workshop in Vienna in June 2006. The work on the package (previously named RSF) was started by Sergey Fomel in 2003. Since then, many people have contributed to it.[3]
While being written mostly from scratch, Madagascar borrows ideas from the design of SEPlib, an open-source package maintained by Bob Clapp at the Stanford Exploration Project (SEP). Generations of SEP students and researchers contributed to SEPlib. Most important contributions came from Rob Clayton, Jon Claerbout, Dave Hale, Stew Levin, Rick Ottolini, Joe Dellinger, Steve Cole, Dave Nichols, Martin Karrenbach, Biondo Biondi, and Bob Clapp.
Madagascar also borrows ideas from Seismic Unix (SU), a package maintained by John Stockwell at the Center for Wave Phenomenon (CWP) at the Colorado School of Mines (Stockwell, 1997;[4] Stockwell, 1999[5]). Main contributors to SU included Einar Kjartansson, Shuki Ronen, Jack Cohen, Chris Liner, Dave Hale, and John Stockwell. SU adopted an open-source BSD-style license starting with release 40 (April 10, 2007).
Madagascar Schools
Madagascar Schools on Reproducible Computational Geophysics are annual events, where new users get introduced to the package, and project participants meet to discuss new developments.
Here is the list of previous schools:
- School and Workshop 2006, Vancouver, BC, Canada
- Short Course 2007, Austin, TX, USA
- Implementation Workshop 2008, Golden, CO, USA
- School 2009, Delft, Netherlands, EU
- School 2009, Salvador, Bahia, Brazil
- School and Hands-On Workshop 2010, Houston, TX, USA
- School 2011, Beijing, China
- School 2012, Austin, TX, USA
- Working Workshop 2013, Austin, TX, USA
- School 2013, Melbourne, Australia
- School 2014, Saint Petersburg, Russia
- Working Workshop 2014, Houston, TX, USA
- School 2015, Harbin, China
- School for Advanced Users 2015, Qingdao, China
- Working Workshop 2015, Houston, TX, USA
- School 2016, Zürich, Switzerland
See also
References
- ^ bei/sg/denmark example https://github.com/ahay/src/blob/master/book/bei/sg/denmark/SConstruct
- ^ S. Fomel and G. Hennenfent, 2007, Reproducible computational experiments using SCons: 32nd International Conference on Acoustics, Speech, and Signal Processing (ICASSP), IV/1257-1260.
- ^ AUTHORS.txt file https://github.com/ahay/src/blob/master/AUTHORS.txt
- ^ Stockwell, J. W., 1997, Free software in education: A case study of CWP/SU: Seismic Unix: The Leading Edge, 16, 1045--1049.
- ^ --------, 1999, The CWP/SU: Seismic Un*x package: Computers and Geosciences, 25, 415--419.
External links
- Madagascar homepage
- GitHub organization
- SourceForge project
- Scientific conference presentations about Madagascar
- For reproducible research, go to Madagascar
- Sergey Fomel and Jon Claerbout, Guest Editors' Introduction: Reproducible Research: Computing in Science and Engineering, vol. 11, no. 1, pp. 5–7, Jan./Feb. 2009, doi:10.1109/MCSE.2009.14
- Sergey Fomel, Paul Sava, Ioan Vlad, Yang Liu, and Vladimir Bashkardin, 2013, Madagascar: open-source software project for multidimensional data analysis and reproducible computational experiments: Journal of Open Research Software, 1(1):e8, doi:10.5334/jors.ag
- Sergey Fomel, Reproducible Research as a Community Effort: Lessons from the Madagascar Project: Computing in Science and Engineering, vol. 17, no. 1, pp. 20-26, Jan./Feb. 2015, doi:10.1109/MCSE.2014.94
- John Holden, The genesis of Madagascar: The Leading Edge, vol. 34, no. 11, Nov. 2015, doi:10.1190/tle34111386.1