version
0.0.1
Defines the C++ API for MsPASS
|
Base class decon operator for single station 3C decon (receiver functions). More...
#include <ScalarDecon.h>
Public Member Functions | |
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) |
virtual void | process ()=0 |
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 () |
virtual mspass::seismic::CoreTimeSeries | actual_output ()=0 |
virtual mspass::seismic::CoreTimeSeries | inverse_wavelet ()=0 |
Return a FIR represention of the inverse filter. More... | |
virtual mspass::seismic::CoreTimeSeries | inverse_wavelet (double)=0 |
virtual mspass::utility::Metadata | QCMetrics ()=0 |
Return appropriate quality measures. More... | |
Protected Attributes | |
std::vector< double > | data |
std::vector< double > | wavelet |
std::vector< double > | result |
ShapingWavelet | shapingwavelet |
Base class decon operator for single station 3C decon (receiver functions).
A class of algorithms exist for computing so called receiver functions. Simple for this application means a method that is applied to a single station's data and computed in a scalar time series sense. Thus the interface assumes we want to always at least load an estimate of the source wavelet for deconvolution and the data to which it is to be applied.
The design of this interface was made more complicated by a design goal to allow application of different conventional methods as the first step in the generalized iterative method. The generalized method can select one of the children of this base class.
|
pure virtual |
\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.
Implemented in mspass::algorithms::deconvolution::WaterLevelDecon, mspass::algorithms::deconvolution::MultiTaperXcorDecon, mspass::algorithms::deconvolution::MultiTaperSpecDivDecon, mspass::algorithms::deconvolution::LeastSquareDecon, and mspass::algorithms::deconvolution::GeneralIterDecon.
void mspass::algorithms::deconvolution::ScalarDecon::change_shaping_wavelet | ( | const ShapingWavelet & | nsw | ) |
Change the shaping wavelet that will be applied to output.
The suite of algorithms here use the concept of a shaping wavelet thoughout. The shaping wavelet for most applications should have a zero phase impulse response. This method changes the wavelet set with the operator.
|
pure virtual |
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.
Implemented in mspass::algorithms::deconvolution::WaterLevelDecon, mspass::algorithms::deconvolution::MultiTaperXcorDecon, mspass::algorithms::deconvolution::MultiTaperSpecDivDecon, mspass::algorithms::deconvolution::LeastSquareDecon, and mspass::algorithms::deconvolution::GeneralIterDecon.
int mspass::algorithms::deconvolution::ScalarDecon::load | ( | const std::vector< double > & | wavelet, |
const std::vector< double > & | data | ||
) |
Load all data required for decon.
This method loads both the data vector and wavelet estimates as simple std::vectors. Timing must be maintained externally. This or the pair of methods loaddata and loadwavelet must be called before process. This method has a slight advantage in efficiency over successive calls to loaddata and loadwavelet for several reasons, but the difference is small.
int mspass::algorithms::deconvolution::ScalarDecon::loaddata | ( | const std::vector< double > & | data | ) |
int mspass::algorithms::deconvolution::ScalarDecon::loadwavelet | ( | const std::vector< double > & | wavelet | ) |
|
pure 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.
Implemented in mspass::algorithms::deconvolution::WaterLevelDecon, mspass::algorithms::deconvolution::MultiTaperXcorDecon, mspass::algorithms::deconvolution::MultiTaperSpecDivDecon, mspass::algorithms::deconvolution::LeastSquareDecon, and mspass::algorithms::deconvolution::GeneralIterDecon.