Source code for mspasspy.algorithms.TimeDomainGIDDecon

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Python wrappers for the time-domain generalized iterative deconvolution
engine.

The underlying operator follows the generalized iterative deconvolution
interpretation of Wang and Pavlis (2016).  Iteration is performed on a sparse
three-component impulse response.  The returned receiver function is that
sparse impulse response convolved with the configured output shaping wavelet
for the requested lag window; it is not the raw sparse result itself.
"""

from mspasspy.util.decorators import mspass_func_wrapper
from mspasspy.ccore.algorithms.deconvolution import TimeDomainGIDDecon
from mspasspy.algorithms._gid_decon_wrapper import _run_gid_rf_decon


[docs] @mspass_func_wrapper def TimeDomainGIDRFDecon( seis, engine, *args, signal_window=None, noise_window=None, external_wavelet=None, external_noise=None, QCdata_key="TimeDomainGIDDecon_properties", return_wavelet=False, object_history=False, alg_name="TimeDomainGIDRFDecon", alg_id=None, dryrun=False, inplace_return=False, handles_ensembles=False, function_return_key=None, checks_arg0_type=True, handles_dead_data=True, **kwargs, ): """ Estimate a three-component receiver function with generalized iterative deconvolution. The engine first builds a configurable inverse operator for the source wavelet, applies it to the current residual to form the detection function, picks the largest vector spike, subtracts the corresponding shaped source pulse from the residual, and repeats until the residual-improvement or residual-energy convergence criteria are met. :param seis: input `Seismogram` containing signal and noise windows. :param engine: configured `TimeDomainGIDDecon` instance. :param signal_window: optional `TimeWindow` defining the full output and iterative analysis window. When omitted the input datum time range is used. The window must contain the engine's configured deconvolution window. :param noise_window: optional `TimeWindow` defining pre-event noise. When omitted the engine's parameter-file noise window is used. :param external_wavelet: optional prepared wavelet passed directly to the GID engine. If omitted, any external wavelet already loaded into ``engine`` is preserved; otherwise the engine preserves RF compatibility and derives the wavelet from component 2 of the input seismogram. Use ``engine.clear_external_wavelet()`` to force component-derived wavelets after loading an external one. :param external_noise: optional scalar noise `TimeSeries`, `CoreTimeSeries`, or `PowerSpectrum` passed to NS-GID inverse stabilization. If omitted, any external noise already loaded into ``engine`` is preserved. Use ``engine.clear_external_noise()`` to force the configured noise window only. :param QCdata_key: metadata key used to store the engine's QC metrics. :param return_wavelet: when True return `[rf, actual_output, output_shaping_wavelet]`. :return: deconvolved `Seismogram`, or the tuple described above. """ return _run_gid_rf_decon( seis, engine, TimeDomainGIDDecon, alg_name, signal_window=signal_window, noise_window=noise_window, external_wavelet=external_wavelet, external_noise=external_noise, QCdata_key=QCdata_key, return_wavelet=return_wavelet, )