8 #ifndef UFO_OBSBIASCOVARIANCE_H_
9 #define UFO_OBSBIASCOVARIANCE_H_
14 #include <boost/noncopyable.hpp>
16 #include "eckit/config/LocalConfiguration.h"
18 #include "oops/base/Variables.h"
19 #include "oops/util/ObjectCounter.h"
20 #include "oops/util/Printable.h"
34 class ObsBiasIncrement;
39 private boost::noncopyable,
40 private util::ObjectCounter<ObsBiasCovariance> {
44 static const std::string
classname() {
return "ufo::ObsBiasCovariance";}
58 void write(
const eckit::Configuration &);
62 void print(std::ostream &)
const {}
std::vector< std::string > prednames_
void print(std::ostream &) const
void read(const ObsBiasCovariancePriorParameters &)
std::size_t minimal_required_obs_number_
Eigen::VectorXd variances_
std::vector< std::size_t > obs_num_
static const std::string classname()
void write(const eckit::Configuration &)
std::vector< double > ht_rinv_h_
void inverseMultiply(const ObsBiasIncrement &, ObsBiasIncrement &) const
void randomize(ObsBiasIncrement &) const
ObsBiasCovariance(ioda::ObsSpace &odb, const Parameters_ ¶ms)
void multiply(const ObsBiasIncrement &, ObsBiasIncrement &) const
double smallest_variance_
std::vector< double > preconditioner_
double largest_analysis_variance_
oops::Variables vars_
variables for which bias correction coefficients will be updated
void linearize(const ObsBias &, const eckit::Configuration &)
const std::vector< std::string > predictorNames() const
std::vector< double > analysis_variances_
ObsBiasParameters Parameters_
static double defaultStepSize()
Default step size.
static double defaultSmallestVariance()
Default smallest variance value.
static double defaultLargestAnalysisVariance()
Default largest analysis error variance.
static double defaultLargestVariance()
Default largest variance value.
Contains increments to bias correction coefficients.
Parameters influencing the bias correction process.