version  0.0.1
Defines the C++ API for MsPASS
Public Member Functions | Protected Attributes | List of all members
mspass::algorithms::deconvolution::ScalarDecon Class Referenceabstract

Base class decon operator for single station 3C decon (receiver functions). More...

#include <ScalarDecon.h>

Inheritance diagram for mspass::algorithms::deconvolution::ScalarDecon:
mspass::algorithms::deconvolution::BasicDeconOperator mspass::algorithms::deconvolution::GeneralIterDecon mspass::algorithms::deconvolution::LeastSquareDecon mspass::algorithms::deconvolution::MultiTaperSpecDivDecon mspass::algorithms::deconvolution::MultiTaperXcorDecon mspass::algorithms::deconvolution::WaterLevelDecon

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
 
ScalarDeconoperator= (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
 

Detailed Description

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.

Member Function Documentation

◆ actual_output()

virtual mspass::seismic::CoreTimeSeries mspass::algorithms::deconvolution::ScalarDecon::actual_output ( )
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.

◆ change_shaping_wavelet()

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.

67 {
68  shapingwavelet=nsw;
69 }

◆ inverse_wavelet()

virtual mspass::seismic::CoreTimeSeries mspass::algorithms::deconvolution::ScalarDecon::inverse_wavelet ( )
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.

◆ load()

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.

Returns
always returns 0
40 {
41  wavelet=w;
42  data=d;
43  result.clear();
44  return 0;
45 }

◆ loaddata()

int mspass::algorithms::deconvolution::ScalarDecon::loaddata ( const std::vector< double > &  data)

Load only the data vector.

51 {
52  data=d;
53  result.clear();
54  return 0;
55 }

◆ loadwavelet()

int mspass::algorithms::deconvolution::ScalarDecon::loadwavelet ( const std::vector< double > &  wavelet)

Load only the wavelet estimate.

57 {
58  wavelet=w;
59  result.clear();
60  return 0;
61 }

◆ QCMetrics()

virtual mspass::utility::Metadata mspass::algorithms::deconvolution::ScalarDecon::QCMetrics ( )
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.


The documentation for this class was generated from the following files: