ELECTRONIC SEISMOLOGISTMarch/April 1997
The Internet has become a major research tool for seismology, and from his first column the Electronic Seismologist has primarily reviewed Internet data or information access techniques. While such access is important, seismologists still do their data analysis primarily on their own computers using specific programs developed or adapted by themselves or colleagues. Some analysis procedures are fairly standardized, while others are highly specialized. Because analysis tools are often closely associated with a particular data format, the source of data to be analyzed often strongly influences the analysis programs used. Although conversion from one data format to another is usually possible, information is often lost because of incompatible fields in the data headers. At best format conversion is a hassle, taking time and resources. The number and variety of formats currently in use by seismologists, not to mention the number of analysis tools or programs available, can be overwhelming. Even experienced seismologists may not know the best format or analysis tool for a particular task. While the Electronic Seismologist is far from expert in all seismic formats and analysis tools, he feels that a review of some of them in this column would be a service to the community. In the next several issues this column will cover some of the more common or interesting analysis programs and the formats they require for their use. In order to characterize most accurately the various programs and analysis tools provided for general use, the Electronic Seismologist encourages the authors of such programs to contribute to this column. Please send e-mail to steve@geophys.washington.edu if you would be willing to provide a short (1,000 word or less) description of your favorite program to be included in this column.
As a start to this topic a very general overview of the most common seismic data formats is appropriate. There are two major data exchange formats, Standard for the Exchange of Earthquake Data (SEED) and Group of Scientific Experts (GSE). SEED has been adopted by the Federation of Digital Seismograph Networks (FDSN) as the exchange format for the Global Seismograph Network (GSN) data, and GSE is the major exchange format for the nuclear test-detection community and is most suitable for an e-mail-based distribution system such as the AutoDRM (Kradolfer, 1996). Both formats are designed for the bulk exchange of seismic waveform data and are not really suited for use by analysis programs directly. For analysis purposes three major formats are currently used, Seismic Analysis Code (SAC), Ad Hoc (AH), and Center for Seismic Studies (CSS). There are a number of conversion programs to convert from the exchange formats into the analysis formats and also between different analysis formats.
Before boring the reader to tears with the arcane details of these and other seismic formats the Electronic Seismologist feels that at this time it is most appropriate to give a couple of examples of modern seismic analysis packages which are available over the Internet. The basis for these two packages is the interactive, matrix-based software system called MATLAB from The MathWorks (http://www.mathworks.com). While the Electronic Seismologist is not a proponent of seismologists depending on commercial software, he makes an exception in this case. Like FORTRAN or C commercial compilers, MATLAB is now available for most computers from workstations to PC's. MATLAB provides a high-level language well suited to the analysis of time series and so many seismologists are already familiar with its use. The following two seismic analysis packages are made up of sets of MATLAB scripts and functions, or a toolbox of related commands to perform operations on seismic waveform data. Both have been packaged for distribution including some documentation. While the Electronic Seismologist has used neither of these packages extensively, he is still impressed with their comparative ease of use and applicability to some very common seismological analysis tasks. The first provides a nice graphical user interface (GUI), while the second uses typed commands for control.
- Select the event by double-clicking on its ID number in the Origin Display Window. The waveforms will automatically be shifted to the correct epicentral distance in the waveform display.
- Use the Traveltime Pulldown Menu to read in and display the
*S*travel time curve if it is not already shown. - Double-click on the
*S*curve to align the display on*S*. The alignment makes it easier to compare waveforms and to zoom to a tighter time window. - Use the zoom buttons to zoom the waveform display around the
*S*curve to a good view for picking arrivals. - Use the Arrival Pulldown Menu to set the default arrival phase type to
*S*. - Pick
*S*arrivals by clicking the right mouse button on each waveform at the desired point.
If the arrivals are not obvious, the user might want to add a few more steps: - Select any ambiguous waveforms by double-clicking on each. Make spectrograms for them by choosing the Spectrogram option from the Analysis Pulldown Menu. The spectrograms can be used to check for any changes in frequency content at the predicted
*S*arrival times. - Filter the selected waveforms using the Filter option of the Signal Processing pulldown menu. Filtering is accomplished via a pop-up GUI which prompts the user for the type of filter and for band limits. By examining the spectrograms created in the previous step, optimal filter bands can be chosen. Simple plots of the frequency response, impulse response, or poles and zeros can be viewed before the filter is applied.
- Once all the arrivals are picked, write them to the database using the Write option of the Arrival Pulldown Menu.
Though many users will find the functionality in the current version of While
Sandia's
CORAL consists of a "toolbox" of about fifty documented MATLAB functions that are especially useful for seismologists and a MATLAB script called CORAL that integrates these tools and standard MATLAB tools to analyze record sections of seismic waveform data. The CORAL script allows one to read waveform data and to associate these data with events from moment tensor catalogs. Data can be windowed around any of about sixty seismic phases. Instrument responses can be deconvolved, and seismograms aligned by a variety of methods including cross-correlation. CORAL is often used as a convenient preprocessing program to bring waveform data into MATLAB, where sophisticated algorithms can be easily developed employing the wealth of graphic and signal processing tools provided by MATLAB as well as the tools in the CORAL toolbox. The CORAL toolbox includes routines to read data from the AH format into MATLAB variables (a routine to read SAC-formatted data has also been developed). Another routine calculates the travel times for about sixty phases from the radial earth models PREM, IASP91, and AK135. Travel time, ray parameter, and derivatives of ray parameter with respect to distance and time with respect to source depth are calculated by cubic-spline interpolation of tau_p tables using a MATLAB interface into a code written by R. Buland (Buland and Chapman, 1983). Access to these travel-time tables in MATLAB has proven to be extremely valuable for many purposes. One example is a graduate-level homework problem in which the student is asked to pick travel times of The toolbox also includes functions to manipulate absolute and differential times, and calculate epicentral distance, ellipticity corrections, radiation patterns, and geometric spreading. Time series tools include tapering, time- and frequency-domain filtering, instrument response deconvolution, differentiation, integration, Hilbert transforms, envelope functions, Futterman filters, cross-correlation, and linear and nonlinear slant stacking. The CORAL MATLAB script provides for the easy use of these and other tools. Like SAC, it is executed by typing commands. There is currently no GUI interface, though it would not be difficult to add one. Because CORAL is simply an ASCII script it is straightforward to add your own tools. However, for those who do not want to modify CORAL, it has the ability to execute user-supplied MATLAB scripts. We have used this method to incorporate specialized functionality such as receiver function deconvolution. A more complicated example is a script that calculates the amplitude and phase shift of a given phase due to focal mechanism and geometric spreading. The user can choose one or more phases (say
We have used CORAL to calculate and analyze receiver functions from a linear array of seismometers, align and slant-stack the P-wave coda of hundreds of seismograms to look for coherent signals that are caused by discontinuities such as the 660-km seismic discontinuity, pick absolute and differential travel times by cross-correlation of two or more observed seismograms, or between observed and synthetic seismograms, and for waveform quality control at the IRIS DMC. Record sections for four thousand earthquakes have been produced from long-period and broad-band data in the IRIS FARM and SPYDER® system (http://www.iris.washington.edu/cgi-bin/wilberII_page1.pl and http://www.iris.edu/data/spyder.htm). This is being done automatically by running CORAL in batch mode. CORAL does not represent a huge software development effort, and we do not have plans for any major changes. University of Washington graduate students T. McSweeney, J. Winchester, and J. Castle have made significant contributions to the development of this code. Anyone who wants to use it is welcome to obtain a copy from anonymous FTP at ftp://ftp.geophys.washington.edu/pub/out/coral.tar.Z.
Buland, R. and C. H. Chapman (1983). The computation of seismic travel times, Kradolfer, Urs (1996). AutoDRM: The first five years, Young, C., M. Harris, J. Beiriger, S. Moore, J. Trujillo, M. Withers, and R. Aster (1996).
Posted: 22 January 1999 |