Skip to content
Glenn Thompson edited this page May 12, 2016 · 10 revisions

GISMO is a framework for building seismic data analysis work flows and applications in MATLAB. Application areas may include event detection, b-value analysis, near-real-time seismic data visualization, receiver functions, shear wave splitting, wavefield migration, phase picking, cross correlation, synthetics, or source inversion, etc.

GISMO provides an object-oriented framework for building research codes to analyse of seismic waveform/trace data, event catalog data, apply instrument responses etc.

GISMO provides parsers for common seismic waveform (e.g. SAC, Seisan, Antelope/Datascope - Miniseed will be added soon) and catalog file formats (Seisan, Antelope/Datascope - hypoellipse and hypoinverse will be added soon), and also wraps the irisfetch.m program to fetch waveform and catalog data directly from the IRIS Data Management Center.

GISMO is a superset of "The Waveform Suite" developed by Celso Reyes and also includes Mike West's correlation class.

Motivation

The ease of programming in MATLAB makes it particularly vulnerable to impromptu or disposable coding with the consequence being that many of the resulting scripts are transient affairs that serve an immediate need. Many scripts are then discarded, while others enjoy a more celebrated existence; bolstered by quick success, users (including the authors) often decide to build out these routines into standalone packages, only to realize that the vast majority of this effort is consumed by bookkeeping, exception handling, documentation, and error checking. Though thankless, these tasks make the difference between robust reusable codes and thesis appendices.

GISMO consists of MATLAB classes that have been designed from scratch to provide a robust foundation for reading, processing and plotting seismic waveform, instrument response and catalog data. By replacing ad-hoc systems with a common framework, GISMO can provide an architecture upon which more complex programs may be created and shared. GISMO has been downloaded hundreds of times and used in dozens of scientific papers.

Though importing data into MATLAB is not necessarily difficult, choices about how to store and work with the data have a tremendous influence on a project's success. A project underpinned by the GISMO's object-oriented framework has access to tools able to retrieve data from a variety of sources, manipulate and display the same data in an intuitive manner, and develop robust applications that are easy to maintain. Several people have used GISMO as the foundation for their own processing packages, using this common, flexible framework to reduce development time and making it easy to share waveform data with other MATLAB users.

Details

GISMO includes: (1) a set of low level classes that describe types of seismic data, e.g. seismic waveform data, seismic event catalogs, etc.; (2) a set of higher level classes that describe common forms of seismic data analysis, e.g. correlation of waveform objects; and (3) an ever-evolving set of contributed codes built around these core products.

The goal of the GISMO project is to make seismology research easier:

  • GISMO knows how to get data from a variety of sources / data formats, spanning file boundaries. This is often the most time consuming part for seismologists writing their own code from scratch.
  • GISMO simplifies everything by turning data from any source into a waveform or catalog object.
  • Common types of time series plots are built-in to GISMO, e.g. record section plots, helicorder plots, spectrograms, depth-time sections, number of events per unit time, energy release per unit time. Also map view and cross-section of hypocentral data.
  • Many common processing methods are also included, e.g. GISMO includes an extensive set of tools for correlation analysis.
  • GISMO encourages community development of an integrated set of codes and accompanying documentation, eliminating the need for seismologists to "reinvent the wheel". Contributed codes are an important feature of GISMO.
  • By sharing code we also enhance the repeatability of science, in conjunction with the fact that IRIS DMC makes many datasets universally available.

The name "GISMO" was originally an abbreviation for "Geophysical Institute Seismology Matlab Objects", signifying that it is an object-oriented toolbox originally created within the University of Alaska Fairbanks' Geophysical Institute's Seismology group. However, GISMO is used and contributed to by a large number of scientists outside the Geophysical Institute, so we now think of this as "Geophysical Investigations in Seismology with Matlab Objects". The other meaning of "gismo" or "gizmo" is "a useful tool; a gadget".

GISMO does not intend to compete with ObsPy, which is a open-source toolbox for seismology written in Python. But if you are a seismologist using MATLAB rather than Python - perhaps because you are not a Python programmer, or because you are trying to integrate with other codes written in MATLAB - you will probably find GISMO helpful. For an example of how to use ObsPy and GISMO within the same workflow follow this link

Clone this wiki locally