version
0.0.1
Defines the C++ API for MsPASS
|
Implements the Generalized Iterative Method of Wang and Pavlis. More...
#include <GeneralIterDecon.h>
Public Member Functions | |
GeneralIterDecon (mspass::utility::AntelopePf &md) | |
Create an initialize an operator for subseqquent processing. More... | |
GeneralIterDecon (const GeneralIterDecon &parent) | |
void | changeparameter (const mspass::utility::Metadata &md) |
int | load (const mspass::seismic::CoreSeismogram &d, mspass::algorithms::TimeWindow dwin) |
int | loadnoise (const mspass::seismic::CoreSeismogram &d, mspass::algorithms::TimeWindow nwin) |
int | load (const mspass::seismic::CoreSeismogram &d, mspass::algorithms::TimeWindow dwin, mspass::algorithms::TimeWindow nwin) |
Load all needed data and process. More... | |
void | process () |
mspass::seismic::CoreSeismogram | getresult () |
mspass::seismic::CoreTimeSeries | ideal_output () |
mspass::seismic::CoreTimeSeries | actual_output () |
mspass::seismic::CoreTimeSeries | inverse_wavelet () |
Return a FIR represention of the inverse filter. More... | |
mspass::seismic::CoreTimeSeries | inverse_wavelet (double t0parent) |
mspass::utility::Metadata | QCMetrics () |
Return appropriate quality measures. More... | |
Public Member Functions inherited from mspass::algorithms::deconvolution::ScalarDecon | |
ScalarDecon (const mspass::utility::Metadata &md) | |
ScalarDecon (const std::vector< double > &d, const std::vector< double > &w) | |
ScalarDecon (const ScalarDecon &parent) | |
int | load (const std::vector< double > &wavelet, const std::vector< double > &data) |
Load all data required for decon. More... | |
int | loaddata (const std::vector< double > &data) |
int | loadwavelet (const std::vector< double > &wavelet) |
ScalarDecon & | operator= (const ScalarDecon &parent) |
std::vector< double > | getresult () |
void | changeparameter (const mspass::utility::Metadata &md) |
void | change_shaping_wavelet (const ShapingWavelet &nsw) |
mspass::seismic::CoreTimeSeries | ideal_output () |
Additional Inherited Members | |
Protected Attributes inherited from mspass::algorithms::deconvolution::ScalarDecon | |
std::vector< double > | data |
std::vector< double > | wavelet |
std::vector< double > | result |
ShapingWavelet | shapingwavelet |
Implements the Generalized Iterative Method of Wang and Pavlis.
This class is an extension of the idea o the generalized iterative method described in the paper by Wang and Pavlis. Their original paper worked on scalar seismograms. This implemenation differs by iterating on the vector data effectively reducing a 3c seismogram to a sequence of 3D vectors at computed lags. The iterative reduction then iterates on the data matrix. In addition, Wang's original implementation did the iteration by repeated forward and inverse fourier transforms. This algorithm works completely in the time domain.
The class retains a concept Wang used in the original implementation. Many OOP books stress the idea of construction is initialization. That is not pruddent fo this case since construction involves some work that we do not want to repeat for each new seismogram. Hence, construction only initializes parameters required to run the algorithm. Calculation is triggered by calling one of the two overloaded load methods. The user should be warned, however, that we did not build ina test to assure the noise and signal windows are consistent. Anyone wanting to use this code outside of applications developed by the authors must recognize That the assure consistency they need to call loadnoise before load OR call only the load method that includes a signal and noise window.
mspass::algorithms::deconvolution::GeneralIterDecon::GeneralIterDecon | ( | mspass::utility::AntelopePf & | md | ) |
Create an initialize an operator for subseqquent processing.
This is the primary constructor for this object. The PfStyleMetadata object is expected to contain a suite of parameters used to define how this operator will behave along with what inverse filter is to be constructed ans applied before the iterative algorithm is applied. The pf is required to have multiple Arr sections the components.
References mspass::utility::Metadata::get(), and mspass::utility::AntelopePf::get_branch().
|
inlinevirtual |
\brif Return the actual output of the deconvolution operator.
The actual output is defined as w^-1*w and is compable to resolution kernels in linear inverse theory. Although not required we would normally expect this function to be peaked at 0. Offsets from 0 would imply a bias.
Implements mspass::algorithms::deconvolution::ScalarDecon.
References mspass::algorithms::deconvolution::ScalarDecon::actual_output().
|
inlinevirtual |
Return a FIR represention of the inverse filter.
After any deconvolution is computed one can sometimes produce a finite impulse response (FIR) respresentation of the inverse filter.
Implements mspass::algorithms::deconvolution::ScalarDecon.
References mspass::algorithms::deconvolution::ScalarDecon::inverse_wavelet().
int mspass::algorithms::deconvolution::GeneralIterDecon::load | ( | const mspass::seismic::CoreSeismogram & | d, |
mspass::algorithms::TimeWindow | dwin, | ||
mspass::algorithms::TimeWindow | nwin | ||
) |
Load all needed data and process.
This method is little more than a call to loadnoise followed immediately by a call to load that is assumed to initiate the computation.
|
virtual |
Return appropriate quality measures.
Each operator commonly has different was to measure the quality of the result. This method should return these in a generic Metadata object.
Implements mspass::algorithms::deconvolution::ScalarDecon.