Skip to content
Glenn Thompson edited this page Jan 3, 2017 · 70 revisions

1. Seismic waveform data in GISMO: The Waveform Suite

So how do you read a SEED, MiniSEED, SAC or Seisan file into MATLAB using GISMO? It is as simple as this:

w = waveform('/path/to/waveform-data-file', 'filetype')

where 'filetype' is 'sac', 'seed', 'miniseed' or 'seisan'.

GISMO will simply load all the waveform data for all the network-station-location-channel combinations in the waveform data file.

Examples:

% load a seisan file
w = waveform('/Users/glennthompson/seisan/WAV/1996-06-03-1917-52S.TEST__002','seisan');

% load a sac file
w = waveform('/Users/glennthompson/Dropbox/Professional/Fieldwork/WFDATA/SACdata/rocketabort01.sac','sac');

% load a seed file
w = waveform('/Users/glennthompson/Desktop/BCHH_centaur-6_0371_20160901_120000.seed','seed');

Overview:

The first task is to read your seismic data into a waveform object. The steps are to tell GISMO:

  • where to get the data from (datasource)
  • which stations/channels/networks & locations to get data for (scnlobject)
  • the start and end of the time window you wish to get data for (waveform)

For example, to load data from a SAC file:

ds = datasource('sac', '/path/to/mysacfile.sac');
scnl = scnlobject('REF', 'EHZ', 'AV', '--');
startTime = '2009/03/23 06:00:00';
endTime = '2009/03/23 07:00:00';
w = waveform(ds, scnl, startTime, endTime);

To load from other data sources, all that changes is the datasource call, e.g. IRIS DMC webservices:

ds = datasource('irisdmcws');

e.g. Antelope/CSS3.0 database:

ds = datasource('antelope', '/path/to/mydatabase');

e.g. Earthworm/Winston waveserver:

ds = datasource('winston', 'host/ip address', port-number); 

e.g. Miniseed file:

ds = datasource('miniseed', '/path/to/myminiseedfile.mseed');

e.g. Seisan file:

ds = datasource('seisan', '/path/to/myseisanfile');

It is also possible to load from multiple files at once with more complex datasource commands.

Similarly, more than one station/channel/network/location can be loaded at once with more complex scnlobject calls.

Processing / Analyzing waveform data

Once you have loaded your data into a waveform object (or into an array of waveform objects), you can do common tasks like make a time series plot, detrend or filter, plot an amplitude spectrum, a spectrogram or a helicorder. Here are some simple examples:

plot(w);
w = detrend(w);
f = filterobject('b', [0.5 10], 2); % define a filter, bandpass 0.5-10 Hz, 2 poles
w = filtfilt(f,w); % apply two-way filter
plot_spectrum(w);
spectrogram(w);
plot_helicorder(w);

As you can see, the commands are self-explanatory. These are just a few of the built-in functions ("methods") that can be applied to waveform objects.

For more detailed/advanced examples, consult these pages:

2. Seismic event catalogs

Classes:

3. Instrument response data

Classes:

Example:

4. RSAM data

Classes:

5. Helicorder plots (drum plots)

Classes:

6. STA/LTA Detector

7. Correlation analysis

8. Interfacing GISMO with other tools

8.1 ObsPy

8.2 SAC

8.3 Seisan

8.4 Earthworm and Winston waveservers

8.5 Antelope

8.6 CSS3.0 databases (without Antelope)

8.7 Excel


Guide on writing tutorial pages
Clone this wiki locally