We freely offer all the software tools that are necessary to explore our electronic documents or to create electronic documents yourself.
At the Stanford Exploration Project, we have combined various software tools to an software environment for research of seismic data processing. The Figure on the left 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 comprises 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 the idea. The data set usually is already stored in our prefered, home-brewed SEPlib format. SEPlib refers to the seismic processing software package that researchers at SEP developed. An input data set would be processed by a sequence of simple, standard SEPlib routines that are governed by command line parameter specification and combined by UNIX pipes. Often a researcher's creative new idea requires a new, special processing program. If implementing this program in C or Fortran, the researcher can take advantage of a rich subroutine library that allows him to seamlessly integrate his own program in 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 husband 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 that every user needs to rewrite the same rules over and over again, every GNUmakefile includes a set of common rules and variable definitions. These standard rules comprise rules governing the reproduction of a documents results.
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 examples of processed data that are included in the document as 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 that allows a reader efficiently to inspect and reuse an author's software.
The following list gives an overview of all the software tools needed to implement the SEPlib research environment. Each item has a local link to a dedicated html page that gives more details about that that particular software and its purpose at SEP. Many of these resources you may have already on your particular system. If you do you only need to complement them with the missing tools.
We don't distribute GNU software on our site. We maintain, however, links to several ftp sites that do. You probably need to down-load gzip and gmake, if your system does support them already. Additionally, you may have to get gcc, or g77, if your system does not contain an alternative C and FORTRAN compiler.
You do need the common TeX-LaTeX setup. Additionally, you need our TeX macros, especially the macro that implements the figure caption button that issues system commands.
We distribute the Xtpanel package on our ftp site. We use the graphics scripting language Xtpanel for any simple interactions between the reader and the document. Xtpanel is, however, a full fledged language and is by far not limited to simple interfaces as we use in our documents.
We distribute on our site a debugged version of Ratfor. Ratfor allows us to use C-like syntax in our Fortran77 code. We write all our Fortran77 code in Ratfor. It frees us of esoteric Fortran features such as the strict indention rules, and the loop numbering.
We distribute SEPlib from this site. To install SEPlib you will have to compile several 100 C and Fortran routines. The installation is fully automatized. However, unexpected portability problems do pop up from time to time when we port SEPlib to new computer platforms (our traditional platforms are HP700, SUN4 (SUNOS), and RS6000). The fully installed SEPlib package occupies approximately 82 M-Bytes of disk-space (10 M-Bytes source code, 72 M-Bytes executables and object libraries). During installation the package requires another 60 M-Bytes to store temporary object files within the source code directory. To use SEPlib you will need another few 100M-Bytes for the storage of SEPlib data sets and temporary files (the default is /tmp but at SEP we use dedicated scratch disk space). To install SEPlib you will have to have a gmake, and a C and Fortran compiler.
We distribute our laboratories shared Make rules. Our laboratory shares a single set of make rules for three reasons: to have a consistent set of rules for all our applications, to collect the wisdom of our researchers about computer commands, and to avoid the re-implementation of standard methods. The rules fall into two groups: Program rules contain rules for compilation, linking, and installation of programs. ReDoc rules contain rules for the removal and re-computation of a documents figures (These later rules are invoked by the push-button in a LaTeX document). To use SEP's make rules after installation, the author needs to include the rules in the application Makefile.
We offer more than 6000 pages of SEP research on this web server (some of them are exclusively accessible to our Sponsors). All of the recent documents (since approximately 1991) are available in two forms: as a traditional article in Postscript format or as tarred and compressed directory. If you have installed the SEPlib environment as described on this page, you should be able to yield a reproducible electronic document by down-loading and untaring this directory. Since, however, these documents were organized for distribution on CD-ROM rather than the Web, you may encounter some difficulties in individual cases. I suggest to first down-load Jon Claerbout's Books
which are fully self-contained. To explore SEP's reproducible documents or to write your own reproducible documents, you will need most of the software mentioned on this page: gmake, TeX, LaTeX, Xtpanel, Ratfor, SEPlib, Make rules.
We have written a few scripts (mostly perl) that help us to manage and test our documents. If nothing else, they might serve as sample perl scripts. Have fun!
I consider the software listed above our main tools. SEP researchers use additional software sometimes. The main packages are:
The Seismic Unix (SU) processing system (by our colleagues at the Center of Wave Phenomena) is amazingly similar to SEPlib. We use SU mostly to read seismic data that is stored in some unusual format and that SEPlib's IO routines fail to read. SU's analogue routine proofs to be very robust.
We use Promax to read data of SEGY format and to write it out as SEPlib data. SEP wrote the Promax module that converts a data set from Promax' internal format to the SEPlib format. Additionally, some researcher at SEP prefer Promax' graphic user interface and its wealth of processing routines for standard processing.
We are using AVS to visualize 3-D seismic data. We have written several AVS modules, e.g. one that reads SEPlib dataset into AVS, and another one that writes a data set from AVS to a SEPlib data set.