1#ifndef __SIMPLE_DECON_H__
2#define __SIMPLE_DECON_H__
4#include "mspass/algorithms/deconvolution/BasicDeconOperator.h"
5#include "mspass/algorithms/deconvolution/ShapingWavelet.h"
6#include "mspass/seismic/CoreTimeSeries.h"
7#include "mspass/utility/Metadata.h"
11#include <boost/archive/text_iarchive.hpp>
12#include <boost/archive/text_oarchive.hpp>
13#include <boost/serialization/vector.hpp>
15namespace mspass::algorithms::deconvolution {
45 ScalarDecon(
const std::vector<double> &d,
const std::vector<double> &w);
58 int load(
const std::vector<double> &
wavelet,
const std::vector<double> &
data);
138 const bool processed);
149 friend boost::serialization::access;
150 template <
class Archive>
151 void serialize(Archive &ar,
const unsigned int version) {
Abstract interface for deconvolution operators configurable by Metadata.
Definition BasicDeconOperator.h:7
Base class decon operator for single station 3C decon (receiver functions).
Definition ScalarDecon.h:30
virtual mspass::seismic::CoreTimeSeries inverse_wavelet(double t0parent)=0
Return a FIR inverse filter with a specified parent time origin.
ShapingWavelet get_shaping_wavelet() const
Definition ScalarDecon.h:85
virtual mspass::seismic::CoreTimeSeries inverse_wavelet()=0
Return a FIR represention of the inverse filter.
std::vector< double > result
Deconvolved output vector produced by process.
Definition ScalarDecon.h:144
ScalarDecon()
Construct an empty scalar deconvolution operator.
Definition ScalarDecon.h:33
std::vector< double > data
Data vector to be deconvolved by concrete scalar methods.
Definition ScalarDecon.h:140
virtual void process()=0
Run the concrete scalar deconvolution algorithm.
mspass::utility::Metadata BasicQCMetrics(const std::string &operator_name, const bool processed)
Build QC Metadata fields common to scalar deconvolution operators.
Definition ScalarDecon.cc:61
virtual mspass::seismic::CoreTimeSeries actual_output()=0
Return the actual output of the deconvolution operator.
ScalarDecon & operator=(const ScalarDecon &parent)
Assign loaded wavelet, data, and result vectors from parent.
Definition ScalarDecon.cc:27
mspass::seismic::CoreTimeSeries ideal_output()
Legacy alias for output_shaping_wavelet.
Definition ScalarDecon.h:99
void changeparameter(const mspass::utility::Metadata &md)
Definition ScalarDecon.cc:55
int load(const std::vector< double > &wavelet, const std::vector< double > &data)
Load all data required for decon.
Definition ScalarDecon.cc:35
void change_shaping_wavelet(const ShapingWavelet &nsw)
Definition ScalarDecon.cc:58
mspass::seismic::CoreTimeSeries resolution_kernel()
Alias for actual_output using inverse-theory terminology.
Definition ScalarDecon.h:110
std::vector< double > wavelet
Source-wavelet estimate used by concrete scalar methods.
Definition ScalarDecon.h:142
int loadwavelet(const std::vector< double > &wavelet)
Definition ScalarDecon.cc:50
int loaddata(const std::vector< double > &data)
Definition ScalarDecon.cc:45
ShapingWavelet shapingwavelet
Output shaping wavelet applied by scalar deconvolution methods.
Definition ScalarDecon.h:146
std::vector< double > getresult()
Return the current deconvolution result vector.
Definition ScalarDecon.h:73
virtual mspass::utility::Metadata QCMetrics()=0
Return appropriate quality measures.
virtual mspass::seismic::CoreTimeSeries output_shaping_wavelet()
Return the output shaping wavelet.
Definition ScalarDecon.h:91
Frequency domain shaping wavelet.
Definition ShapingWavelet.h:21
mspass::seismic::CoreTimeSeries impulse_response()
Definition ShapingWavelet.cc:259
Scalar time series data object.
Definition CoreTimeSeries.h:17