10 #include "eckit/config/Configuration.h"
12 #include "oops/util/Logger.h"
20 const eckit::mpi::Comm &timeComm)
21 : ObsErrorBase(timeComm),
22 stddev_(obsgeom,
"ObsError"), inverseVariance_(obsgeom), options_(options)
27 oops::Log::trace() <<
"ObsErrorDiagonal:ObsErrorDiagonal constructed nobs = "
38 oops::Log::info() <<
"ObsErrorDiagonal covariance updated " <<
stddev_.nobs() << std::endl;
70 return std::make_unique<ioda::ObsVector>(
stddev_);
81 os <<
"UFO Diagonal observation error covariance, inverse variances: "
void randomize(ioda::ObsVector &) const override
Generate random perturbation.
std::unique_ptr< ioda::ObsVector > getInverseVariance() const override
Return inverseVariance.
void inverseMultiply(ioda::ObsVector &) const override
Multiply a Departure by .
void print(std::ostream &) const override
ObsErrorDiagonal(const Parameters_ &, ioda::ObsSpace &, const eckit::mpi::Comm &timeComm)
void update(const ioda::ObsVector &) override
Update after obs errors potentially changed.
ioda::ObsVector inverseVariance_
void multiply(ioda::ObsVector &) const override
Multiply a Departure by .
void save(const std::string &) const override
Save obs errors.
std::unique_ptr< ioda::ObsVector > getObsErrors() const override
Get obs errors std deviation.
Parameters for diagonal obs errors.
oops::Parameter< double > pert
perturbation amplitude multiplier