-
Notifications
You must be signed in to change notification settings - Fork 46
Tutorials
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');
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.
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:
Classes:
Classes:
Example:
Classes:
Classes:
8.1 ObsPy
Guide on writing tutorial pages
Code | Wiki | Tutorials | Website | Mailing list | Getting started | Reporting problems
- What is GISMO?
- Who uses it?
- Historical Development
- Getting started
- Getting and using the develop branch
- GISMO data types
- * Tutorials *
- * Workflow examples *
- * Applications *
- The GISMO Users Group
- Reporting errors, bugs, issues
- Contributing to GISMO
- * SUGGESTED CITATION *
- News
- Future Development
- Links