The following documentation explains, in chronological order, all the steps performed to construct the amplitude spectra used for the inversion.
- Traces are checked for gaps and overlaps. Traces with cumulative gap or
overlap duration larger than
gap_max
oroverlap_max
, respectively, are skipped. - The trace mean is removed (only if the configuration parameter
trace_units
is set toauto
, i.e., if the trace has not been preprocessed outside SourceSpec). - Gaps and overlaps are merged.
- Traces with RMS smaller than
rmsmin
are skipped. - Traces are optionally checked for clipping (see :ref:`clipping_detection`).
- Instrumental response is removed and trace transformed in its physical units (e.g., velocity, acceleration).
- Trace is filtered.
- Signal to noise ratio is measured as the ratio between signal RMS in the P-
or S-window (depending on the
wave_type
parameter) and the RMS of the noise window. Traces with signal to noise ratio smaller thansn_min
are skipped.
See the source code of :meth:`ssp_process_traces.process_traces` for implementation details.
A check is made to see if the signal window contains enough data. Traces with no data or more than 25% of zero values are skipped. This is typically due to a wrong specification of signal window (e.g., wrong P or S arrivals).
Traces are integrated to displacement in time domain, if
time_domain_int
isTrue
.Signal and noise windows are cut and tapered.
The noise window is checked. If the ratio between noise RMS and signal RMS is smaller than 1e-6, the noise is considered not significant and the trace is skipped.
The amplitude spectra of the signal and noise windows are computed, using :func:`numpy.fft.rfft()`. If
spectral_win_length
is notNone
, the signal is zero-padded to this length before computing the Fast Fourier Transform.Spectra are integrated to displacement in frequency domain, if
time_domain_int
isFalse
.Amplitude spectra are windowed (see config parameters
freq1_broadb
,freq2_broadb
and similar).Geometrical spreading is corrected (see :ref:`theoretical_background:Geometrical Spreading`).
Amplitude spectra are converted to seismic moment units (see :ref:`theoretical_background:Building Spectra`).
Amplitude spectra are resampled in log_{10} frequency spacing.
The resampled spectra are smoothed. The smoothing window width is defined in frequency decades (config parameter
spectral_smooth_width_decades
)The spectral signal to noise ratio is checked. Amplitude spectra with signal to noise ratio smaller than
spectral_sn_min
are skipped.The "H" component is built based on one or more spectral components, depending on the
wave_type
andignore_vertical
config parameters:if
wave_type
isP
orS
:- if
ignore_vertical
isFalse
, the two horizontals and the vertical components are combined; - if
ignore_vertical
isTrue
, only the two horizontals components are combined;
- if
if
wave_type
isSV
:- if
ignore_vertical
isFalse
, the radial and the vertical component are combined; - if
ignore_vertical
isTrue
, only the radial component is used;
- if
if
wave_type
isSH
:- only the transverse component is used;
Spectra are combined through the root sum of squares (see :ref:`theoretical_background:Overview`).
All the amplitude spectra are converted to moment magnitude units (see :ref:`theoretical_background:Building Spectra`).
Station corrections are applied, if requested (see :ref:`theoretical_background:Station Residuals`).
The weight spectrum is built, depending on the config option
weighting
.
See the source code of :meth:`ssp_build_spectra.build_spectra` for implementation details.