Get from Ico-github-logo

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
The Waveform Suite for MATLAB

  • Catalog.binning.autobinsi...
  • Catalog.binning.bin_irreg...
    BIN_IRREGULAR bin an irregularly-sampled timeseries (like earthquake origin times).
  • Catalog.binning.binsizela...
  • Catalog.bvalue_lib.bmemag...
  • Catalog.bvalue_lib.calc_M...
  • Catalog.bvalue_lib.calc_M...
  • Catalog.bvalue_lib.calc_M...
  • Catalog.bvalue_lib.calc_b...
  • Catalog.plotEarthquakes.i...
    IMPORTPLATES Import numeric data from a text file as column vectors.
  • Catalog.read_catalog.aef(...
  • Catalog.read_catalog.ante...
    READ_CATALOG.ANTELOPE load events from a CSS3.0 database using Antelope.
  • Catalog.read_catalog.ensu...
    stolen from waveform
  • Catalog.read_catalog.iris...
  • Catalog.read_catalog.seis...
    % SCAFFOLD: might have deleted something here. These 2 lines might not
  • Catalog.read_catalog.sru(...
    readEvents.sru read a catalog sent by Seismic Research Unit, University of West
  • Catalog.read_catalog.usgs...
    READEVENTS.USGSREALTIME Read last week or month of data from USGS
  • Catalog.read_catalog.vdap...
    readEvents.vdap read Hypoellipse summary files and PHA pickfiles
  • Catalog.read_catalog.zmap...
    readEvents.zmap Translate a ZMAP-format data matrix into a Catalog object
  • Catalog.subclass2longname...
  • Catalog_test()
    Main function to generate tests
  • Detection.sta_lta(wave,va...
    STA_LTA: Short-Time-Average/Long-Time-Average event detector.
  • ReadMSEEDFast(fileName)
    ReadMSEEDFast( fileName )
  • add_spectral_data(w)
  • admin.about
    Tools for maintaining and programming in the GISMO environment.
  • admin.antelope_exists()
    ANTELOPE_EXISTS check for Antelope Toolbox for Matlab
  • admin.deprecated(currentM...
    DEPRECATED issue a deprication warning
  • admin.getpath(varargin)
    GETPATH returns a path to GISMO toolbox(es)
  • admin.refresh()
    REFRESH refresh all paths in GISMO
  • admin.remove
    REMOVE remove all paths to GISMO
  • admin.rmgismo()
    RMGISMO(SOURCE) removes all existing paths containing the phrase
  • admin.which(sourceLocation)
    WHICH manage and switch between multiple GISMO archives
  • aeic_catalog.about
    Tools for interfacing with the AEIC earthquake catalog.
  • aeic_catalog.get_total(va...
    GET_TOTAL Read in the complete AEIC Total earthquake catalog
  • aeic_total_catalog(varargin)
    AEIC_TOTAL_CATALOG Read in the complete AEIC Total earthquake catalog
  • amplitude_spectrum_test()
    Main function to generate tests
  • antelope.antelope2wavefor...
    ANTELOPE2WAVEFORM Load waveform objects from Antelope database
  • antelope.arrivals2wavefor...
    ARRIVALS2WAVEFORMS Load waveform objects corresponding to an arrivals structure
  • antelope.dbcreate(filepat...
    DBCREATE Create an Antelope database descriptor file
  • antelope.dbget_closest_si...
    DBGET_CLOSEST_SITES Get closest sites from an Antelop database to a given [lon, lat]
  • antelope.dbgetarrivals(da...
  • antelope.dbgetorigins(dbp...
  • antelope.dbtable_present(...
    DBTABLE_PRESENT Check if a Datascope database table exists and has more than 0 rows.
  • antelope.listMiniseedFile...
    LISTMINISEEDFILES retrieve a list of the Miniseed files referenced by a datasource, ChannelTag object and start/end times.
  • antelope2waveform_test()
  • arrivals_rearrange(arriva...
    Arrange info from earthquake catalogue into a more useful format
  • catmatrices(matrix2,matrix1)
    CATMATRICES - concatenate 2D matrices of arbitrary size
  • ceilminute(dnum, nummins)
    CEILMINUTE round up datenum to next minute mark
  • check.about
    Tools for checking various types of data integrity.
  • check.crossfeed(varargin)
    CROSSFEED Checks for crossfeeding and duplicate data channels
  • contiguous(A)
    CONTIGUOUS find contiguous sequences in an input vector of integers
  • corrderived_plot_swarm_hi...
    CORRDERIVED_PLOT_SWARM_HISTORY plots relevent details of seismic swarms
  • correlation_diagnostics(v...
    Test correlation toolbox
  • datenum2epoch(time)
    EPOCH = DATENUM2EPOCH(TIME) translates Matlab numeric
  • db_get_arrival_info(arid,...
  • db_get_net_info(stalist,d...
  • db_get_origin_info(INorig...
  • db_get_site_info(stalist,...
  • db_get_sitechan_info(stal...
  • dd_collate(eventdat,varar...
  • dd_make_scp(dbname,varargin)
    DD_MAKE_SCP Create a draft control file for the correlation process
  • dd_process_scp(dbname,scp...
    DD_PROCESS_SCP Process correlations by station and channel
  • debug.get_debug()
    GET_DEBUG get the debug level.
  • debug.print_debug(level, ...
    PRINT_DEBUG optionally display text based on the debug level.
  • debug.printfunctionstack(...
    PRINTFUNCTIONSTACK print the list of functions in the stack
  • debug.set_debug(debuglevel)
  • demodb(name)
  • dmc_cookbook
  • dmc_station_meta(w,varargin)
    DMC_STATION_META adds station metadata to a waveform
  • dmc_xml2struct(file)
    Convert xml file into a MATLAB structure
  • epoch2datenum(epoch)
    TIME = EPOCH2DATENUM(EPOCH) translates Unix epoch date format into Matlab
  • floorminute(dnum,nummins)
    FLOORMINUTE round up datenum to next minute mark
  • hankelq(dbpath, expr, f1,...
    HANKELQ Compute spectral ratio in two frequency bands
  • iceweb.apply_calib(w, sites)
  • iceweb.apply_filter(w, PA...
  • iceweb.calculatePanelPosi...
  • iceweb.datenum2julday(dnum)
  • iceweb.extended_spectralo...
  • iceweb.get_channeltags_ac...
  • iceweb.get_spectrogram_fi...
  • iceweb.get_timewindow(utd...
  • iceweb.iceweb(ds, varargin)
  • iceweb.makespectrogramthu...
    print_debug('> makespectrogramthumbnails', 2);
  • iceweb.montserrat_remove_...
  • iceweb.saveImageFile(arg1...
    saveImageFile(IMGDIR, fname, res);
  • iceweb.setup(subnet, snum...
    %gismo_datasource = datasource('antelope', dbwfdata);
  • iceweb.show_sites(sites)
  • iceweb.spectrogram_iceweb...
    SPECTROGRAM_ICEWEB produce an multi-channel spectrogram plot in the style of
  • iceweb.waveform_remove_em...
    WAVEFORM_REMOVE_EMPTY remove empty waveform objects from a vector of waveform objects
  • iceweb.waveform_wrapper(d...
    WAVEFORM_WRAPPER try multiple datasource objects in
  • ideas2waveform(fileName)
    OPEN_INFRASOUND Open UAF/GI infrasound data as a waveform object.
  • ie_readchans(chanfile)
    IE_READCHANS Read and parse station/channel list from file
  • import_events(dbname, cha...
    IMPORT_EVENTS Import waveforms associated with earthquake events.
  • irisdmc.about
    Tools for interacting with the IRIS DMC web services.
  • irisdmc.cookbook
    COOKBOOK example program using the IRIS DMC web services
  • irisdmc.station_meta(w,va...
    station_meta adds station metadata to a waveform
  • irisdmc.xml2struct(file)
    Convert xml file into a MATLAB structure
  • lookupunits(w,station,com...
    LOOKUPUNITS checks the antelope database to find out what units are
  • magnitude.Mlrichter(amax,...
    MLRICHTER Compute a Richter local magnitude
  • magnitude.eng2mag(eng)
    ENG2MAG Convert a (vector of) magnitude(s) into a (vector of) equivalent energy(/ies).
  • magnitude.mag2eng(mag)
    MAG2ENG Convert (a vector of) magnitude into (a vector of) equivalent energy(ies).
  • mastercorr.about
    Tools for master event cross correlation against long time series.
  • mastercorr.extract(W,vara...
    EXTRACT extract matches to the master waveform
  • mastercorr.load_cookbook_...
  • mastercorr.plot_stats(W)
    PLOT_STATS plot statistics from master correlation algorithm
  • mastercorr.scan(WW,WWsnip...
    SCAN scans a waveform for events which match a master.
  • mastercorr_extract(W,vara...
    MASTERCORR_EXTRACT extract matches to the master waveform
  • mastercorr_plot_stats(W)
    MASTERCORR_PLOT_STATS plot statistics from master correlation algorithm
  • mastercorr_scan(WW,WWsnip...
    MASTERCORR_SCAN scans a waveform for events which match a master.
  • messitup(w)
  • obspy.stream2waveform(pat...
    OBSPY.STREAM2WAVEFORM Use ObsPy to read a stream object and then convert
  • obspy.stream2waveform(pat...
    OBSPY.STREAM2WAVEFORM Use ObsPy to read a stream object and then convert
  • obspy.stream_matfile2wave...
    OBSPY.STREAM2WAVEFORM Use ObsPy to read a stream object and then convert
  • reducedisp_calc(w,dist,va...
    WAVEFORM = REDUCEDISP(WAVEFORM,DISTANCE) This function calculates the
  • reducedisp_plot(dbname)
    REDUCEDISP_PLOT plot reduced displacement data.
  • reducedisp_wfmeas(varargin)
  • reducedisp_write_wfmeas(d...
    Opens DBNAME and inserts new reduced dispacement rows, one
  • response_apply(w,filterOb...
    RESPONSE_APPLY Deconvolve an instrument response from a waveform object.
  • response_demo_database
    RESPONSE_DEMO_DATABASE returns the absolute path to the demo database
  • response_demo_waveforms
    RESPONSE_DEMO_WAVEFORMS returns the absolute path to the demo database
  • response_get_from_db(stat...
    RESPONSE_GET_FROM_DB Get instrument response from database.
  • response_get_from_polezer...
    RESPONSE_GET_FROM_POLEZERO Create response structure from poles/zeros
  • response_plot(response,xL...
    RESPONSE_PLOT plot an instrument response
  • response_polezero_demo
    RESPONSE_POLEZERO_DEMO Create a polezero structure
  • response_structure_descri...
    RESPONSE_STRUCTURE_DESCRIPTION Describe response structure fields
  • startup_GISMO(gismopath)
    STARTUP_GISMO recursively adds paths for contributed codes that build on
  • trloadcss_test()
    Main function to generate tests
  • ttimes.about
    Tools for exploring travel time and ray coverage.
  • ttimes.arrival_histogram(...
    ARRIVAL_HISTOGRAM compare the number of arrivals to each station.
  • ttimes.dbload(dbName)
    DBLOAD extracts travel times from a database
  • ttimes.depth_section(dbName)
    DEPTH_SECTION plot depth sections of ray coverage.
  • ttimes.do_all(dbName)
    DO_ALL execute all codes in the ttimes package.
    MAP plot a map of ray coverage.
  • ttimes.traveltime(dbName,...
    TRAVELTIME make travel time plots.
  • ttimes.write_lotos(dbName)
    WRITE_LOTOS write files for LOTOS tomography codes.
  • uispecgram(varargin)
    UISPECGRAM M-file for uispecgram.fig
  • utnow()
  • waveform2threecomp(eqwf,n...
    Convert waveforms to threecomp objects where appropriate
  • waveform_antelope_test()
    Main function to generate tests
  • waveform_extensions.load(...
    SACLOAD Load SAC files into MATLAB as waveform objects
  • waveform_extensions.sta_l...
    STA_LTA: Short-Time-Average/Long-Time-Average event detector.
  • wf_fft(w)
    WAVEFORM = WF_FFT(WAVEFORM) calculate frequency spectrum of a waveform.
  • wf_fft.about
    Miscellaneous tools for working with waveforms.
  • wf_fft.compute(w)
    COMPUTE calculates the fast fourier transform of a waveform object
  • wf_fft.freqindex(W,varargin)
    WAVEFORM = FREQINDEX(WAVEFORM) calculates the frequency index of a waveform.
  • wf_fft.plot(w)
    PLOT plot fourier transform of a waveform
  • wf_fftplot(w)
    WF_FFTPLOT(WAVEFORM) plot fourier transform of the data.
  • wf_fi(W,varargin)
    WAVEFORM = WF_FI(WAVEFORM) calculates the frequency index of a waveform.
  • whichgismo(sourceLocation)
    WHICHGISMO Select from multiple GISMO archives.
  • datasource.m
  • helicorder.m
    HELICORDER: Helicorder generates a multi-line display of input waveform
  • spectralobject.m
    SPECTRALOBJECT - spectralobject class constructor
  • correlation.m
  • waveform.m
  • scnlobject.m
  • filterobject.m
    FILTEROBJECT constructor for a filter object
  • Arrival
    Arrival the blueprint for Arrival objects in GISMO
  • Catalog
    CATALOG the blueprint for Catalog objects in GISMO
  • ChannelDetails
  • ChannelTag
  • EventRate
    EventRate Event Rate class constructor.
  • NewCorrelation
  • SeismicTrace
  • Sfile
    Class that describes data in a Seisan S-file
  • TraceData
  • TraceFilter
  • TraceSpectra
  • antelopesource
  • dataretrieval.iriswebserv...
  • dataretrieval.matsource
  • dataretrieval.obspysource
  • dataretrieval.sacsource
  • dataretrieval.seisansource
  • dataretrieval.spatiotempo...
  • dataretrieval.spatiotempo...
  • dataretrieval.spatiotempo...
  • dataretrieval.winstonsource
  • drumplot
    DRUMPLOT the blueprint for drumplot objects in GISMO
  • irisFetch
  • rsam
    RSAM Seismic Amplitude Measurement class constructor, version 1.0.
  • sacpz
    SACPZ Class for reading SAC pole-zero files downloaded from IRIS
  • testChanneltag
  • testScnlobject
  • testWaveform
  • test_ChanDetails
  • test_Correlation
  • test_Trace
  • test_TraceData
  • threecomp
    THREECOMP Object for three component waveform data
  • synthb_aut.m
    This is synthetic219
  • test_waveform_constructor.m
    test waveform creation
  • cookbook.m
    COOKBOOK demonstrate the features of the mastercorr package.
  • response_cookbook.m
    Instrument response cookbook
  • gismo_examples.m
    Standard clearing MATLAB workspace & command window, closing figures
  • medfilt1_test.m
  • separating_tremor_and_eve...
    Tremor range is 1-5 Hz
  • mastercorr_cookbook.m
    Demonstration of the major features of the master waveform correlation
  • Contents.m
    Reduced displacement toolbox
  • dd_cookbook.m
    HypoDD cross correlation toolbox
  • unrest.m
  • testday.m
  • cookbook.m
    The SCNLOBJECT cookbook
  • whichgismo_paths.m
    Configuration file containing preset paths for whichgismo. See
  • demo_plutons.m
    dbName = '/home/admin/databases/PLUTONS/wf/plutons';
  • View all files

Join the 15-year community celebration.

Play games and win prizes!

» Learn more

5.0 | 4 ratings Rate this file 37 Downloads (last 30 days) File Size: 133 MB File ID: #23809 Version: 1.13
image thumbnail

The Waveform Suite for MATLAB



16 Apr 2009 (Updated )

The Waveform Suite is now developed as part of the geoscience community codes, linked below.

| Watch this File

File Information

MATLAB Toolbox for Seismic Data Analysis


This file inspired Geoscience Community Codes/Gismo.

Required Products Signal Processing Toolbox
MATLAB release MATLAB 7.10 (R2010a)
Other requirements Access to Antelope databases, Winston Wave-Servers, and the IRIS-DMC archive all require additional libraries (see docs). MATLAB exchange File ID:11368, for log-scaled spectrograms. Signal processing toolbox required for spectralobject and filtfilt.
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (8)
06 Nov 2015 Glenn Thompson  
06 Nov 2015 Glenn Thompson

GISMO (of which The Waveform Suite is the core component) has now moved to:

We are building a wiki at:

- Glenn & Celso

Comment only
06 Nov 2015 Glenn Thompson

GISMO (of which The Waveform Suite is the core component) has now moved to:

We are building a wiki at:

- Glenn & Celso

Comment only
25 Sep 2015 Celso Reyes

With the closing of google code, development continues on the waveform suite on GitHub , where the waveform suite underpins GISMO. Right now the entire suite is undergoing renovation. The next stable version will be posted here. Then, I will split off a newer version which takes advantage of MATLAB's current object-oriented methods.

The next (NEW) version will very likely break backwards compatibility, but should be even easier to use.

Thanks for your support, and come visit on GitHub as well.
- Celso

Comment only
29 May 2015 thabangke  
25 Sep 2014 Andre

Andre (view profile)

This toolbox is very useful to me, for my school works, but, i'm new in Matlab, can you tell me how i can use this toolbox?

17 Jan 2012 Tim

Tim (view profile)

03 Jan 2011 Celso Reyes

Waveform Suite News: An article describing the Waveform Suite appears in the Jan/Feb 2011 edition of Seismological Research Letters, in the Electronic Seismologist column.

Reyes, C. G. and West, M. E., 2011. "The Waveform Suite: A Robust Platform for Manipulating Waveforms in MATLAB", SRL 82 (1) 104-110.

Please, feel free to reference that if you find this program helpful to your research.
Thank you,

Comment only
17 Apr 2009 1.1

README file has been updated (4/17), located in @waveform/
It is also available to view online from the download page:

02 Sep 2009 1.2

Mostly, many fixes and modifications to how SAC files are treated. Data that is derivable from waveform is no longer duplicated in user fields. waveform/private sac-related m-files were updated and renamed. GISMO revision 136

19 Oct 2009 1.3

no software update at this time, only updating info about my AGU poster session (S11B-1704)

16 Feb 2010 1.4

Improved: speed, error handling, NaN support, help text; Added log specgram plots , cumtrapz integration; Upgraded NxM waveform (./,.*,-,+) NxM numeric (see help); Removed: outdated user doc outdated, lookupunits(antelope dependent)

17 Feb 2010 1.5

updated the waveform/readme.txt to reflect the great many changes that occurred in r206.

18 Feb 2010 1.6

fixed issue where saved waveforms were not successfully loaded. made history a field (instead of being stored in misc_fields).

13 Mar 2010 1.7

removed dependence upon statistics toolbox, (fixes mean/median/std/var issue), fixed where demean turns off history, overhauled specgram & specgram2 to allow multiple plots with additional options (see help), updated uispecgram.

02 Apr 2010 1.8

Improved waveform's handling of multi-dimensional cell dates,
added a waveform/legend function, added "builtin" resample method, fixed a datasource/getfilename issue, and fixed a cell vs string problem with load_seisan.

27 Apr 2010 1.9

Corrected an issue where the waveform constructor might not be able to parse dates.

03 May 2010 1.10

updated the "Other requirements" to reflect spectralobject's and filterobject's dependence upon the hanning.m and butter.m from the signal processing toolbox

03 Jan 2011 1.11

r258 includes fixes to dates, history, extract (eliminating possible 1-extra datapoint at end of timeseries), and an error generated when creating a specgram from a single waveform.

06 Feb 2012 1.12

Variety of bug fixes and improvements (see @waveform/readme). Details of changes are available at the GISMO development site,

06 Feb 2012 1.13

This version also can access waveforms from the IRIS-DMC, using the IRIS-WS java library. More information is available from:

23 Jun 2016 1.13

The Waveform Suite is no longer maintained at this page. It is now accessible as a core component of GISMO and is available at

13 Oct 2016 1.13


Contact us