Go to the documentation of this file.
11 #ifndef OOPS_GENERIC_OBSERRORDIAG_H_
12 #define OOPS_GENERIC_OBSERRORDIAG_H_
16 #include "eckit/config/Configuration.h"
20 #include "oops/util/Logger.h"
21 #include "oops/util/parameters/Parameter.h"
22 #include "oops/util/parameters/Parameters.h"
31 Parameter<double>
pert{
"random amplitude", 1.0,
this};
36 template<
typename OBS>
64 void print(std::ostream &)
const override;
70 template<
typename OBS>
72 : stddev_(obsgeom,
"EffectiveError"), inverseVariance_(obsgeom)
78 Log::trace() <<
"ObsErrorDiag:ObsErrorDiag constructed nobs = " <<
stddev_.
nobs() << std::endl;
83 template<
typename OBS>
85 dy /= inverseVariance_;
90 template<
typename OBS>
92 dy *= inverseVariance_;
97 template<
typename OBS>
106 template<
typename OBS>
108 os <<
"Diagonal observation error covariance, inverse variances: "
109 << inverseVariance_ << std::endl;
117 #endif // OOPS_GENERIC_OBSERRORDIAG_H_
The namespace for the main oops code.
void inverseMultiply(ObsVector_ &) const override
Multiply a Departure by .
ObsVector< OBS > ObsVector_
unsigned int nobs() const
Base class for observation error covariance matrices.
ObsSpace< OBS > ObsSpace_
ObsErrorDiagParameters options_
Parameter< double > pert
perturbation amplitude multiplier
void randomize(ObsVector_ &) const override
Generate random perturbation.
void multiply(ObsVector_ &) const override
Multiply a Departure by .
ObsVector_ inverseVariance_
Parameters for diagonal obs errors.
void print(std::ostream &) const override
const ObsVector_ & inverseVariance() const override
Return inverseVariance.
ObsErrorDiag(const eckit::Configuration &, const ObsSpace_ &)
double getRMSE() const override
Get mean error for Jo table.
Diagonal observation error covariance matrix.