You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### A package for reproducible geophysical data analysis
12
13
13
14
https://www.reproducibility.org
14
15
15
16
## What is Madagascar?
16
17
17
-
Madagascar is an open-source software package for multidimensional data
18
-
analysis and reproducible computational experiments. Its mission is to
19
-
provide
18
+
**Madagascar** is an open-source software package for multidimensional data analysis and reproducible computational experiments. Its mission is to provide
20
19
21
20
* a convenient and powerful environment
22
-
* a convenient technology transfer tool
23
-
24
-
for researchers working with digital image and data processing in
25
-
geophysics and related fields. Technology developed using the
26
-
Madagascar project management system is transferred in the form of
27
-
recorded processing histories, which become "computational recipes" to
28
-
be verified, exchanged, and modified by users of the system.
21
+
* a convenient technology transfer tool
29
22
23
+
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 the users.
30
24
31
25
## Design Principles
32
26
33
-
* Madagascar is a modern package. Started in 2003 and publicly released in 2006, it was developed entirely from scratch following 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 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.
27
+
* Madagascar is a <ins>modern</ins> package. It started in 2003 and was publicly released in 2006. It was developed almost entirely from scratch. It is a relatively new package that follows modern software engineering practices such as module encapsulation and test-driven development. The rapid growth of a project of this scope (more than 1,000 main programs and more than 5,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.
34
28
35
-
* Madagascar is a test-driven package. Test-driven development is an agile software programming practice and a way of bringing a scientific foundation to geophysical research involving numerical experiments. Bringing reproducibility and peer review, the backbone of any real science, to computational geophysics is the primary motivation for Madagascar's 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. Experience shows that high-level programming is easily mastered even by beginning students with no previous programming experience.
29
+
* Madagascar is a <ins>test-driven</ins> package. Test-driven development is not only an agile software programming practice but also a way of bringing a scientific foundation to geophysical research that involves numerical experiments. Bringing reproducibility and peer review, the backbone of any real science, to computational geophysics is the primary motivation for Madagascar's 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 using the Python programming language) that combine main programs and unambiguously document data processing histories for testing and reproducibility. Experience shows that high-level programming is easily mastered even by beginning students without any previous programming experience.
36
30
37
-
* Madagascar is an open-source package. It is distributed under the standard GPL open-source license, which does not restrict the usage and modification of the code. Moreover, access to modifying the source repository is not controlled by one organization but shared equally among developers. This setup enables an open collaboration among different groups to spread worldwide in the true spirit of the open-source movement.
31
+
* Madagascar is an <ins>open-source</ins> package. It is distributed under the standard GPL open-source license, which does not restrict the usage and modification of the code. Moreover, access to modifying the source repository is not controlled by one organization but shared equally among developers. Sharing the responsibility enables an open collaboration among different groups spread worldwide, in the true spirit of the open-source movement.
38
32
39
-
* Madagascar uses a simple, flexible, and universal data format that can handle very large datasets but is not tied specifically to seismic data or data of any particular kind. This "regularly sampled" format is borrowed from the traditional SEPlib. A universal data format allows us to share general-purpose data processing tools with scientists from other disciplines, such as petroleum engineers working on large-scale reservoir simulations.
33
+
* Madagascar uses a <ins>simple, flexible, and universal</ins> data format that can handle very large datasets but is not tied specifically to seismic data or any other particular kind. This "regularly sampled" format is borrowed from the traditional SEPlib. A universal data format allows us to share general-purpose data processing tools with scientists and engineers from other disciplines.
0 commit comments