MsPASS C++ API  2.4.1.dev4+g92330b7a
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/utility/Metadata.h"
8#include <string>
9#include <vector>
10
11#include <boost/archive/text_iarchive.hpp>
12#include <boost/archive/text_oarchive.hpp>
13#include <boost/serialization/vector.hpp>
14
15namespace mspass::algorithms::deconvolution {
31public:
45 ScalarDecon(const std::vector<double> &d, const std::vector<double> &w);
47 ScalarDecon(const ScalarDecon &parent);
58 int load(const std::vector<double> &wavelet, const std::vector<double> &data);
60 int loaddata(const std::vector<double> &data);
62 int loadwavelet(const std::vector<double> &wavelet);
68 virtual void process() = 0;
69 virtual ~ScalarDecon() {};
71 ScalarDecon &operator=(const ScalarDecon &parent);
73 std::vector<double> getresult() { return result; };
113
129
130protected:
137 mspass::utility::Metadata BasicQCMetrics(const std::string &operator_name,
138 const bool processed);
140 std::vector<double> data;
142 std::vector<double> wavelet;
144 std::vector<double> result;
147
148private:
149 friend boost::serialization::access;
150 template <class Archive>
151 void serialize(Archive &ar, const unsigned int version) {
152 ar & data;
153 ar & wavelet;
154 ar & result;
155 ar & shapingwavelet;
156 }
157};
158} // namespace mspass::algorithms::deconvolution
159#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: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
Type-safe metadata container used throughout MsPASS.
Definition Metadata.h:101