8 #include "ufo/LinearObsBiasOperator.h"
13 #include "ioda/ObsSpace.h"
14 #include "ioda/ObsVector.h"
16 #include "oops/util/Logger.h"
17 #include "oops/util/missingValues.h"
19 #include "ufo/ObsBias.h"
28 oops::Log::trace() <<
"LinearObsBiasOperator::create done." << std::endl;
35 oops::Log::trace() <<
"LinearObsBiasOperator::setTrajectory starts." << std::endl;
36 const std::vector<std::shared_ptr<const PredictorBase>> variablePredictors =
38 const std::size_t npreds = variablePredictors.size();
41 for (std::size_t p = 0; p < npreds; ++p) {
42 variablePredictors[p]->compute(
odb_, geovals, ydiags,
predData_[p]);
45 oops::Log::trace() <<
"LinearObsBiasOperator::setTrajectory done." << std::endl;
52 ioda::ObsVector & ybiasinc)
const {
53 oops::Log::trace() <<
"LinearObsBiasOperator::computeObsBiasTL starts." << std::endl;
58 for (
size_t jpred = 0; jpred < npreds; ++jpred) {
62 oops::Log::trace() <<
"LinearObsBiasOperator::computeObsBiasTL done." << std::endl;
69 const ioda::ObsVector & ybiasinc)
const {
70 oops::Log::trace() <<
"LinearObsBiasOperator::computeObsBiasAD starts." << std::endl;
74 for (std::size_t jpred = 0; jpred < npreds; ++jpred) {
78 oops::Log::trace() <<
"LinearObsBiasOperator::computeAD done." << std::endl;
84 os <<
"TL/AD bias computed as linear combination of predictors.";
GeoVaLs: geophysical values at locations.
void computeObsBiasTL(const GeoVaLs &, const ObsBiasIncrement &, ioda::ObsVector &) const
Compute TL of bias correction.
LinearObsBiasOperator(ioda::ObsSpace &)
std::vector< ioda::ObsVector > predData_
predictors values; set in setTrajectory
ioda::ObsSpace & odb_
ObsSpace used for this bias correction.
void computeObsBiasAD(GeoVaLs &, ObsBiasIncrement &, const ioda::ObsVector &) const
Compute adjoint of bias correction.
void print(std::ostream &) const override
Print used for logging.
void setTrajectory(const GeoVaLs &, const ObsBias &, ObsDiagnostics &)
Set trajectory (save predictors)
std::vector< std::shared_ptr< const PredictorBase > > variablePredictors() const
Return the vector of variable predictors.
Contains increments to bias correction coefficients.
std::vector< double > coefficients(size_t jpred) const
Return bias coefficient increments for predictor with index jpred.
void updateCoeff(size_t jpred, const std::vector< double > &coeffs)