Mondaic
This API reference is not for the latest stable Salvus version.

salvus.modules.source_inversion.source_inversion

Functions for estimating a source time function from a set of observed data.

Functions

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.1
Parameters
  • observed numpy.ndarray — Observed data.
  • synthetic numpy.ndarray — Synthetically generated data.
  • weights Optional[numpy.ndarray] — Weights to be applied to each receiver.
  • epsilon float — Damping parameter.
Returns numpy.ndarray — Inverted source time function for the wavelet of each component.

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
  • observed salvus.flow.collections.event_data.EventData — Observed data.
  • synthetic salvus.flow.collections.event_data.EventData — Synthetically generated data.
  • receiver_field str — Receiver field.
  • weights Optional[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.
  • epsilon float — 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.