At the Stanford Exploration Project, we have combined various software tools into a software environment for research of seismic data processing. Figure 1 shows the electronic version of a reproducible research document. Such an electronic document represents a directory that contains the traditional document and all the software needed to compute the included results.
The window at the left displays a TeX document. Any figure caption in that document includes a push-button that, when pressed, issues a system command to the displaying computer. By default, that system call starts the graphical user interface that is shown to the bottom right of the screen-dump. The graphics interface allows a reader to choose several actions: by default the reader can remove, build, and view the figure. Additionally, a reader can clean the directory of all unnecessary, intermediate files or individually inspect the files underlying the document.
A typical project at SEP starts with an idea and a seismic data set to test that idea. Usually, the data set is already stored in our preferred, home-brewed SEPlib format. An input data set is processed by a sequence of simple, standard SEPlib routines that are governed by command line parameters and combined by UNIX pipes. A researcher's new process idea usually requires a new program. If implementing this program in C or Fortran, the researcher can take advantage of a rich subroutine library that allows him to integrate his own program seamlessly into the SEPlib processing sequence.
The author stores the commands that constitute such a processing sequence in a GNUmakefile. The GNUmakefile includes all the rules to manage the resources the author needs. These resources may include a C or Fortran compiler, Perl interpreter, or various preprocessing programs such as Ratfor. To avoid rewriting the same rules over and over again, every researcher includes a set of SEP-wide rules and variable definitions into his GNUmakefile.
Additionally, authors write a LaTeX document that describes their research and their findings. As in many fields of computational sciences, the results in seismic processing are illustrated by figures. At SEP, special TeX macros include a push-button in any figure caption. That push-button, when pressed, issues commands to the GNUmakefile of the document's underlying software directory. It is that connection which allows a reader to inspect and reuse an author's software efficiently.