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_maxoroverlap_max, respectively, are skipped.The trace mean is removed (only if the configuration parameter
trace_unitsis set toauto, i.e., if the trace has not been preprocessed outside SourceSpec).Gaps and overlaps are merged.
Traces with RMS smaller than
rmsminare 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_typeparameter) and the RMS of the noise window. Traces with signal to noise ratio smaller thansn_minare 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_intisTrue.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_lengthis 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_intisFalse.Amplitude spectra are windowed (see config parameters
freq1_broadb,freq2_broadband 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_minare skipped.The “H” component is built based on one or more spectral components, depending on the
wave_typeandignore_verticalconfig parameters:if
wave_typeisPorS:if
ignore_verticalisFalse, the two horizontals and the vertical components are combined;if
ignore_verticalisTrue, only the two horizontals components are combined;
if
wave_typeisSV:if
ignore_verticalisFalse, the radial and the vertical component are combined;if
ignore_verticalisTrue, only the radial component is used;
if
wave_typeisSH: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.