Signal Processing
The following documentation explains, in chronological order, all the steps performed to construct the amplitude spectra used for the inversion.
Trace Processing
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 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 ssp_process_traces.process_traces()
for
implementation details.
Spectral Processing
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
numpy.fft.rfft()
. Ifspectral_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 Geometrical spreading).
Amplitude spectra are converted to seismic moment units (see 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
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
wave_type
isSH
:only the transverse component is used;
Spectra are combined through the root sum of squares (see Overview).
All the amplitude spectra are converted to moment magnitude units (see Building spectra).
Station corrections are applied, if requested (see Station Residuals).
The weight spectrum is built, depending on the config option
weighting
.
See the source code of ssp_build_spectra.build_spectra()
for
implementation details.