salvus.modules.source_inversion.source_inversion
Functions for estimating a source time function from a set of observed data.
Functions
invert_wavelet()
invert_wavelet()def invert_wavelet(
observed: numpy.ndarray,
synthetic: numpy.ndarray,
weights: Optional[numpy.ndarray] = None,
epsilon: float = 0.0,
) -> numpy.ndarray:
...Invert for a given source wavelet.
Estimates a source wavelet for a set of observed data. The coefficients for the source-wavelet correction filter are estimated as described in Appendix A from the following paper:
Groos, L., Schäfer, M., Forbriger, T., & Bohlen, T. (2014). The role of
attenuation in 2D full-waveform inversion of shallow-seismic body and
Rayleigh waves. Geophysics, 79(6), R247-R261.
https://doi.org/10.1190/geo2013-0462.1Parameters
observednumpy.ndarray — Observed data.syntheticnumpy.ndarray — Synthetically generated data.weightsOptional[numpy.ndarray] — Weights to be applied to each receiver.epsilonfloat — Damping parameter.
Returns numpy.ndarray — Inverted source time function for the wavelet of each component.
invert_wavelet_from_event_data()
invert_wavelet_from_event_data()def invert_wavelet_from_event_data(
observed: salvus.flow.collections.event_data.EventData,
synthetic: salvus.flow.collections.event_data.EventData,
receiver_field: str,
weights: Optional[numpy.ndarray] = None,
epsilon: float = 0.0,
) -> salvus.flow.simple_config.stf._Base:
...Invert for a source wavelet given some Salvus EventData.
Functionally identical to the invert_wavelet function, but accepts
EventData objects instead of NumPy arrays. For details on the
implementation of the source inversion, see the documentation for
invert_wavelet.
Parameters
observedsalvus.flow.collections.event_data.EventData — Observed data.syntheticsalvus.flow.collections.event_data.EventData — Synthetically generated data.receiver_fieldstr — Receiver field.weightsOptional[numpy.ndarray] — Weights to be applied to each receiver. This is useful for cases where certain receivers contain little information that would contribute to the source inversion. If unspecified, equal weighting will be used for all receivers. Note that the weights must be specified in the same order as the receivers within the observed data. Defaults to None.epsilonfloat — Damping parameter used for noisy data. A higher damping parameter helps to reduce the noise level within the recorded data. Defaults to 0.2.
Returns salvus.flow.simple_config.stf._Base — Inverted source time function.