MsPASS C++ API  2.4.1.dev4+g92330b7a
Defines the C++ API for MsPASS
Loading...
Searching...
No Matches
TimeDomainLeastSquareDecon.h
1#ifndef __TIME_DOMAIN_LEAST_SQUARE_DECON_H__
2#define __TIME_DOMAIN_LEAST_SQUARE_DECON_H__
3#include "mspass/algorithms/deconvolution/ScalarDecon.h"
4#include "mspass/algorithms/deconvolution/ShapingWavelet.h"
5#include "mspass/seismic/CoreTimeSeries.h"
6#include "mspass/utility/Metadata.h"
7#include <boost/archive/text_iarchive.hpp>
8#include <boost/archive/text_oarchive.hpp>
9#include <boost/serialization/base_object.hpp>
10#include <vector>
11
12namespace mspass::algorithms::deconvolution {
36public:
45 const std::vector<double> &wavelet,
46 const std::vector<double> &data);
50 void process();
61
62private:
63 void read_metadata(const mspass::utility::Metadata &md);
64 int diagnostic_length() const;
65 std::vector<double> solve_for(const std::vector<double> &rhs_data) const;
66 std::vector<double> apply_wavelet(const std::vector<double> &model) const;
67 std::vector<double> apply_shaping_wavelet(
68 const std::vector<double> &model);
69 int output_length;
70 int sample_shift;
71 double damp;
72 double dt;
73 mutable double residual_norm;
74 mutable double data_norm;
75 mutable double regularization_parameter;
76
77 friend boost::serialization::access;
78 template <class Archive>
79 void serialize(Archive &ar, const unsigned int version) {
80 ar &boost::serialization::base_object<ScalarDecon>(*this);
81 ar & output_length;
82 ar & sample_shift;
83 ar & damp;
84 ar & dt;
85 ar & residual_norm;
86 ar & data_norm;
87 ar & regularization_parameter;
88 }
89};
90} // namespace mspass::algorithms::deconvolution
91#endif
Base class decon operator for single station 3C decon (receiver functions).
Definition ScalarDecon.h:30
std::vector< double > data
Data vector to be deconvolved by concrete scalar methods.
Definition ScalarDecon.h:140
std::vector< double > wavelet
Source-wavelet estimate used by concrete scalar methods.
Definition ScalarDecon.h:142
Time-domain damped least-squares deconvolution.
Definition TimeDomainLeastSquareDecon.h:35
mspass::utility::Metadata QCMetrics()
Definition TimeDomainLeastSquareDecon.cc:338
void changeparameter(const mspass::utility::Metadata &md)
Definition TimeDomainLeastSquareDecon.cc:136
TimeDomainLeastSquareDecon()
Definition TimeDomainLeastSquareDecon.cc:64
mspass::seismic::CoreTimeSeries output_shaping_wavelet()
Definition TimeDomainLeastSquareDecon.cc:233
mspass::seismic::CoreTimeSeries actual_output()
Definition TimeDomainLeastSquareDecon.cc:276
void process()
Definition TimeDomainLeastSquareDecon.cc:258
mspass::seismic::CoreTimeSeries inverse_wavelet()
Definition TimeDomainLeastSquareDecon.cc:334
Scalar time series data object.
Definition CoreTimeSeries.h:17
Type-safe metadata container used throughout MsPASS.
Definition Metadata.h:101