salvus.opt.misfits.phase_misfit
Phase misfit and adjoint sources.
Functions
phase_misfit_and_adjoint_source()
phase_misfit_and_adjoint_source()def phase_misfit_and_adjoint_source(
data_synthetic: numpy.ndarray,
data_observed: numpy.ndarray,
sampling_rate_in_hertz: float,
frequency_limits: Sequence[float],
absolute_value_threshold: float = 0.001,
taper_type: str = "hanning",
plot: bool = False,
) -> Tuple[float, numpy.ndarray]: ...Compute a phase difference misfit and associated adjoint source.
Parameters
data_syntheticnumpy.ndarray — Synthetic waveforms.data_observednumpy.ndarray — Observed waveforms.sampling_rate_in_hertzfloat — Sampling rate.frequency_limitsSequence[float] — Either(f1, f2, f3, f4)or(f2, f3). In the latter case it will setf1 = 0.5 * f2andf4 = 2 * f3. These are frequency limits for a Fourier domain bandpass filter. Every frequency smaller thanf1and larger thanf4will be completely filtered out, frequencies betweenf2andf3will be fully retained with them being tapered forf1 < f < f2andf3 < f < f4.absolute_value_thresholdfloat — Only perform the phase difference measurement for frequencies whose absolute value is at least this fraction of the maximum absolute value of all frequencies. This is important because phase measurements for frequencies with little energy would otherwise distort the result and could potentially even dominate it. Frequencies with absolute values smaller than0.5 * absolute_value_threshold * max_abs_valuewill be fully muted, those in between both bounds will be tapered.taper_typestr — Tapering function to use for the frequency and thresholding tapers. Currently supported are"hanning","tanh", and"linear".plotbool — Optionally plot some details about the computation. Useful for debugging and tuning.
Returns Tuple[float, numpy.ndarray] — Tuple of misfit value and adjoint source.