18 #include "eckit/config/Configuration.h"
21 #include "oops/util/Logger.h"
29 if (params.
covariance.value() != boost::none) {
37 std::string strn =
"";
39 if (jj > 0) strn +=
", ";
47 if (on) {oops::Log::trace() <<
"ObsBiasIncrement created : " << strn << std::endl;}
52 : bias_(
ObsBias::ntypes, 0.0), active_(other.active_)
68 bias_[jj] = b1[jj] - b2[jj];
123 if (ii > 0) zz = std::sqrt(zz/ii);
128 size_t nn =
bias_.size();
133 vect.insert(vect.end(),
bias_.begin(),
bias_.end());
134 oops::Log::trace() <<
"ObsBiasIncrement::serialize done" << std::endl;
138 for (
unsigned int jj = 0; jj <
bias_.size(); ++jj) {
139 bias_[jj] = vect[index];
142 oops::Log::trace() <<
"ObsBiasIncrement::deserialize done" << std::endl;
147 std::string strn =
"";
149 if (jj > 0) strn +=
", ";
152 std::ostringstream strs;
159 if (on) os << std::endl <<
"ObsBiasIncrement = " << strn;
Parameters taken by the ObsBias, ObsBiasCorrection and ObsBiasCovariance classes.
oops::OptionalParameter< double > wspeed
oops::OptionalParameter< double > uwind
oops::OptionalParameter< double > stream
oops::OptionalParameter< double > vwind
Class to handle observation bias parameters.
static const unsigned int ntypes
void print(std::ostream &) const override
std::vector< bool > active_
size_t serialSize() const override
Serialization.
void deserialize(const std::vector< double > &, size_t &) override
ObsBiasIncrement()
Constructor, destructor.
void axpy(const double, const ObsBiasIncrement &)
double dot_product_with(const ObsBiasIncrement &) const
ObsBiasIncrement & operator*=(const double)
ObsBiasIncrement & operator=(const ObsBiasIncrement &)
std::vector< double > bias_
void serialize(std::vector< double > &) const override
void diff(const ObsBias &, const ObsBias &)
Linear algebra operators.
ObsBiasIncrement & operator+=(const ObsBiasIncrement &)
ObsBiasIncrement & operator-=(const ObsBiasIncrement &)
oops::OptionalParameter< ObsBiasCovarianceParameters > covariance
The namespace for the qg model.