8.13 Spectrogram

SEISAN has two options for making spectrograms. The first is the built in SEISAN routines in MULPLT and the second is an ObsPy script. The first can make a spectrogram of all the traces seen in the multi trace window, while the second make of one trace with a fixed time window. A spectrogram makes a plot of the frequency content of a signal trace as a function of time and is useful to distinguish different kinds of seismic signals. It is often used to identify explosions, see examples below.

The built in program

In multi trace window, press 's' and a spectrogram appears for each trace. The signal is by default filtered before the spectrogram is made using the predefined filter in MULPLT.DEF given by parameter SPECTROGRAM FILTER. To disable the filter, put in 0.0 in the SEISAN.DEF. In spectrogram mode, the usual commands for picking phases, zoom and selecting other traces etc. is working. To return to normal plot, use replot. In order to do spectrograms with other filters, select filter (e.g. variable filter with '.') and press 's'. It is also possible to make spectrograms of instrument corrected signals. To e.g. make a spectrogram of acceleration, choose 'g' for ground motion, 's' for spectrogram and 'a' for acceleration. This can be done whether the current plot is a spectrogram or a trace plot. When a replot of the spectrogram is done, the default filter is removed like for a replot in traceplot mode.

Figure 8.12 shows an example of a a multi trace spectrogram. Note how clear the P and S-arrivals are seen on the plot. However, since the spectrograms are made doing spectral analysis in fixed time windows, the arrival times will not fit the spectrogram exactly. It would have been possible to smoothe the spectrograms (or make it contoured), see the ObsPy example. However without smoothing, we see the data as it is.

NOTE: The possible output file mulplt.eps does not contain the spectrogram. To get a plot file, use the ObsPy option.

Figure 8.12: Multi trace spectrogram. The numbers to the left indicate Nyquist frquency for each trace. The filter used is indicated at the usual place above right. Dark blue is lowest amplitude and red is the highest amplitude
\begin{figure}\centerline{\includegraphics[width=0.9\linewidth]{fig/multi-spectrogram}}\end{figure}

ObsPy spectrogram

The ObsPy SPECTROGRAM program in SEISAN is based on Python routines from ObsPy (docs.obspy.org) so both Python and ObsPy must be installed, see installation section. In MULPLT, the spectrogram is made in multitrace mode: Put the curser on the trace you want to analyse at a position where the time series for the spectrogram should start. Press E (shift e) and the spectrogram will be plotted in a separate window (close the trace window if opened first). To continue with MULPLT, close the spectrogram window. The window length is by default 80 sec and a default high pass filter (2 Hz) with 2 poles is used before calculating the spectrogram. The reason for the filter is that most spectrograms are only interesting at the higher frequencies, particularly for explosion discrimination. Optionally a window with the filtered signal can also be plotted before the spectrogram comes up, see example below. The options are set up in MULPLT.DEF and the parameters used are:

SPECTROGRAM WINDOW                      60.0
SPECTROGRAM FILTER                       2.0
SPECTROGRAM PLOT TRACE                   0.0

The window can have any value up to 300 sec (hardwired value in MULPLT). The filter is always high pass and 2 poles. If no filter is to be used, set it to 0.0. If the trace is to be plotted, the parameter must be set to 1.0.

The spectrogram program can also be operated as a free standing program. An example is:

spectrogram waveform.out 80 3 1

where the first argument is the file name, second is window length, third is filter and last is trace plotting options. All arguments must be there. In principle most waveform formats can be used (as implemented by ObsPy) but some versions of SEISAN waveform format might not work. The safest is to use MininSeed. If the waveform file contains several channels, the first one is used. Using the program independently from MULPLT, there is not the 300 s limitation.

If several tests are to be made with different window lengths and filters, the simplest way is to first make the output file waveform.out with MULPLT spectrogram option and then do the tests from the command line as the shown with the example above.

Figure 8.13 shows an example of an explosion and an earthquake at about the same location recorded at the same station . Figure 8.14 shows the corresponding spectrograms. It is clear from the seismogram which is the explosion due to the monochromatic waves (probably Rg) and the spectrograms also show more monochromatic content for the explosion than for the earthquake. Station OSL is close to the event and the explosion (epicentral distances 10-20 km). However, the same is seen for station SKAR 157-159 km away (Figure 8.15). This is a textbook example and not all explosions and earthquakes are so easily distinguished.

Figure 8.13: Top: Seismogram of an earthquake recorded at station OSL. Bottom seismogram of an explosion at the same station. Both seismograms plotted with SPECTROGRAM. The filter is 2 Hz.
\begin{figure}\centerline{\includegraphics[width=0.9\linewidth]{fig/spectrogram1}}\end{figure}

Figure 8.14: Spectrograms of the two signals from OSL, explosion left, earthquake right. Note the clear difference in frequency content.
\begin{figure}\centerline{\includegraphics[width=0.9\linewidth]{fig/spectrogram2}}\end{figure}

Figure 8.15: Spectrograms from station SKAR. Explosion to the left and earthquake to the right.
\begin{figure}\centerline{\includegraphics[width=0.9\linewidth]{fig/spectrogram3}}\end{figure}