MsPASS C++ API  2.4.3.dev1+g61b06b96
Defines the C++ API for MsPASS
Loading...
Searching...
No Matches
ScalarDecon.h
1#ifndef __SIMPLE_DECON_H__
2#define __SIMPLE_DECON_H__
3
4#include "mspass/algorithms/deconvolution/BasicDeconOperator.h"
5#include "mspass/algorithms/deconvolution/ShapingWavelet.h"
6#include "mspass/seismic/CoreTimeSeries.h"
7#include "mspass/seismic/TimeSeries.h"
8#include "mspass/utility/Metadata.h"
9#include <string>
10#include <vector>
11
12#include <boost/archive/text_iarchive.hpp>
13#include <boost/archive/text_oarchive.hpp>
14#include <boost/serialization/vector.hpp>
15
16namespace mspass::algorithms::deconvolution {
32public:
46 ScalarDecon(const std::vector<double> &d, const std::vector<double> &w);
48 ScalarDecon(const ScalarDecon &parent);
59 int load(const std::vector<double> &wavelet, const std::vector<double> &data);
61 int loaddata(const std::vector<double> &data);
63 int loadwavelet(const std::vector<double> &wavelet);
69 virtual void process() = 0;
70 virtual ~ScalarDecon() {};
72 ScalarDecon &operator=(const ScalarDecon &parent);
74 std::vector<double> getresult() { return result; };
115
131
132protected:
139 mspass::utility::Metadata BasicQCMetrics(const std::string &operator_name,
140 const bool processed);
142 std::vector<double> data;
144 std::vector<double> wavelet;
146 std::vector<double> result;
149
150private:
151 friend boost::serialization::access;
152 template <class Archive>
153 void serialize(Archive &ar, const unsigned int version) {
154 ar & data;
155 ar & wavelet;
156 ar & result;
157 ar & shapingwavelet;
158 }
159};
160} // namespace mspass::algorithms::deconvolution
161#endif
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:31
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:86
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:146
virtual mspass::seismic::TimeSeries actual_output()=0
Return the actual output of the deconvolution operator.
ScalarDecon()
Construct an empty scalar deconvolution operator.
Definition ScalarDecon.h:34
std::vector< double > data
Data vector to be deconvolved by concrete scalar methods.
Definition ScalarDecon.h:142
mspass::seismic::TimeSeries ideal_output()
Legacy alias for output_shaping_wavelet.
Definition ScalarDecon.h:101
virtual mspass::seismic::TimeSeries output_shaping_wavelet()
Return the output shaping wavelet.
Definition ScalarDecon.h:92
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:69
ScalarDecon & operator=(const ScalarDecon &parent)
Assign loaded wavelet, data, and result vectors from parent.
Definition ScalarDecon.cc:27
void changeparameter(const mspass::utility::Metadata &md)
Definition ScalarDecon.cc:63
int load(const std::vector< double > &wavelet, const std::vector< double > &data)
Load all data required for decon.
Definition ScalarDecon.cc:43
void change_shaping_wavelet(const ShapingWavelet &nsw)
Definition ScalarDecon.cc:66
std::vector< double > wavelet
Source-wavelet estimate used by concrete scalar methods.
Definition ScalarDecon.h:144
int loadwavelet(const std::vector< double > &wavelet)
Definition ScalarDecon.cc:58
int loaddata(const std::vector< double > &data)
Definition ScalarDecon.cc:53
ShapingWavelet shapingwavelet
Output shaping wavelet applied by scalar deconvolution methods.
Definition ScalarDecon.h:148
std::vector< double > getresult()
Return the current deconvolution result vector.
Definition ScalarDecon.h:74
mspass::seismic::TimeSeries resolution_kernel()
Alias for actual_output using inverse-theory terminology.
Definition ScalarDecon.h:112
virtual mspass::utility::Metadata QCMetrics()=0
Return appropriate quality measures.
Frequency domain shaping wavelet.
Definition ShapingWavelet.h:22
mspass::seismic::CoreTimeSeries impulse_response()
Definition ShapingWavelet.cc:268
Scalar time series data object.
Definition CoreTimeSeries.h:17
Implemntation of TimeSeries for MsPASS.
Definition TimeSeries.h:14
Type-safe metadata container used throughout MsPASS.
Definition Metadata.h:101