Madagascar (software)

Last updated
Madagascar
Initial releaseJune 12, 2006
Stable release
4.0 / March 7, 2023;8 months ago (2023-03-07)
Preview release
Through Github
Written in C, C++, Python
Operating system Posix
Type Geophysical software
License GNU General Public License
Website ahay.org

Madagascar is a software package for multidimensional data analysis and reproducible computational experiments.

Contents

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:

  1. Standalone programs for out-of-core data analysis;
  2. Standalone programs for geophysical data processing and imaging;
  3. A development kit for C, C++, Java, Fortran-77, Fortran-90, Python, Matlab, and Octave;
  4. A framework for reproducible numerical experiments, based on SCons;
  5. A framework for scientific publications, based on SCons and LaTeX;
  6. A collection of reproducible scientific articles also used as usage examples and regression tests for the standalone programs;
  7. A collection of datasets used as input to reproducible numerical experiments.

Example script

An example SConstruct file is shown below [1]

fromrsf.projimport*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).

See also

Related Research Articles

<span class="mw-page-title-main">Seismology</span> Scientific study of earthquakes and propagation of elastic waves through a planet

Seismology is the scientific study of earthquakes and the propagation of elastic waves through the Earth or other planetary bodies. It also includes studies of earthquake environmental effects such as tsunamis as well as diverse seismic sources such as volcanic, tectonic, glacial, fluvial, oceanic, atmospheric, and artificial processes such as explosions. A related field that uses geology to infer information regarding past earthquakes is paleoseismology. A recording of Earth motion as a function of time is called a seismogram. A seismologist is a scientist who does research in seismology.

Reproducibility, closely related to replicability and repeatability, is a major principle underpinning the scientific method. For the findings of a study to be reproducible means that results obtained by an experiment or an observational study or in a statistical analysis of a data set should be achieved again with a high degree of reliability when the study is replicated. There are different kinds of replication but typically replication studies involve different researchers using the same methodology. Only after one or several such successful replications should a result be recognized as scientific knowledge.

<span class="mw-page-title-main">DNA computing</span> Computing using molecular biology hardware

DNA computing is an emerging branch of unconventional computing which uses DNA, biochemistry, and molecular biology hardware, instead of the traditional electronic computing. Research and development in this area concerns theory, experiments, and applications of DNA computing. Although the field originally started with the demonstration of a computing application by Len Adleman in 1994, it has now been expanded to several other avenues such as the development of storage technologies, nanoscale imaging modalities, synthetic controllers and reaction networks, etc.

<span class="mw-page-title-main">Folding@home</span> Distributed computing project simulating protein folding

Folding@home is a distributed computing project aimed to help scientists develop new therapeutics for a variety of diseases by the means of simulating protein dynamics. This includes the process of protein folding and the movements of proteins, and is reliant on simulations run on volunteers' personal computers. Folding@home is currently based at the University of Pennsylvania and led by Greg Bowman, a former student of Vijay Pande.

In computer programming, an entry point is the place in a program where the execution of a program begins, and where the program has access to command line arguments.

<span class="mw-page-title-main">Linux</span> Family of Unix-like operating systems

Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution (distro), which includes the kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses and recommends the name "GNU/Linux" to emphasize the use and importance of GNU software in many distributions, causing some controversy.

<span class="mw-page-title-main">SymPy</span>

SymPy is an open-source Python library for symbolic computation. It provides computer algebra capabilities either as a standalone application, as a library to other applications, or live on the web as SymPy Live or SymPy Gamma. SymPy is simple to install and to inspect because it is written entirely in Python with few dependencies. This ease of access combined with a simple and extensible code base in a well known language make SymPy a computer algebra system with a relatively low barrier to entry.

<span class="mw-page-title-main">Seismic Unix</span>

Seismic Unix is an open source seismic utilities package which was supported by the Center for Wave Phenomena (CWP) at the Colorado School of Mines (CSM). Currently it is supported by John Stockwell.

Agent-based models have many applications in biology, primarily due to the characteristics of the modeling method. Agent-based modeling is a rule-based, computational modeling methodology that focuses on rules and interactions among the individual components or the agents of the system. The goal of this modeling method is to generate populations of the system components of interest and simulate their interactions in a virtual world. Agent-based models start with rules for behavior and seek to reconstruct, through computational instantiation of those behavioral rules, the observed patterns of behavior.

The index of physics articles is split into multiple pages due to its size.

<span class="mw-page-title-main">Julia (programming language)</span> Dynamic programming language

Julia is a high-level, general-purpose dynamic programming language, most commonly used for numerical analysis and computational science. Distinctive aspects of Julia's design include a type system with parametric polymorphism and the use of multiple dispatch as a core programming paradigm, efficient garbage collection, and a just-in-time (JIT) compiler.

Open energy system models are energy system models that are open source. However, some of them may use third party proprietary software as part of their workflows to input, process, or output data. Preferably, these models use open data, which facilitates open science.

<span class="mw-page-title-main">Gene set enrichment analysis</span> Bioinformatics method

Gene set enrichment analysis (GSEA) (also called functional enrichment analysis or pathway enrichment analysis) is a method to identify classes of genes or proteins that are over-represented in a large set of genes or proteins, and may have an association with different phenotypes (e.g. different organism growth patterns or diseases). The method uses statistical approaches to identify significantly enriched or depleted groups of genes. Transcriptomics technologies and proteomics results often identify thousands of genes which are used for the analysis.

Since the advent of differential privacy, a number of systems supporting differentially private data analyses have been implemented and deployed. This article tracks real-world deployments, production software packages, and research prototypes.

CovidSim is an epidemiological model for COVID-19 developed by Imperial College COVID-19 Response Team, led by Neil Ferguson. The Imperial College study addresses the question: If complete suppression is not feasible, what is the best strategy combining incomplete suppression and control that is feasible and leads to acceptable outcomes?

References

  1. bei/sg/denmark example https://github.com/ahay/src/blob/master/book/bei/sg/denmark/SConstruct
  2. S. Fomel and G. Hennenfent, 2007, Reproducible computational experiments using SCons: 32nd International Conference on Acoustics, Speech, and Signal Processing (ICASSP), IV/1257-1260.
  3. AUTHORS.txt file https://github.com/ahay/src/blob/master/AUTHORS.txt
  4. Stockwell, J. W., 1997, Free software in education: A case study of CWP/SU: Seismic Unix: The Leading Edge, 16, 1045--1049.

  5. , 1999, The CWP/SU: Seismic Un*x package: Computers and Geosciences, 25, 415--419.