UFO
|
Observation error covariance matrix with cross-variable correlations. More...
#include <ObsErrorCrossVarCov.h>
Public Types | |
typedef ObsErrorCrossVarCovParameters | Parameters_ |
Public Member Functions | |
ObsErrorCrossVarCov (const Parameters_ &, ioda::ObsSpace &, const eckit::mpi::Comm &timeComm) | |
Initialize observation errors. More... | |
void | update (const ioda::ObsVector &stddev) override |
Update obs error standard deviations to be equal to stddev . More... | |
void | multiply (ioda::ObsVector &y) const override |
void | inverseMultiply (ioda::ObsVector &y) const override |
void | randomize (ioda::ObsVector &y) const override |
Generate y as a random perturbation. More... | |
void | save (const std::string &name) const override |
Save obs error standard deviations under name group name. More... | |
double | getRMSE () const override |
Return RMS of obs error standard deviations. More... | |
std::unique_ptr< ioda::ObsVector > | getObsErrors () const override |
Return obs errors std deviation. More... | |
std::unique_ptr< ioda::ObsVector > | getInverseVariance () const override |
Return inverse of obs error variance. More... | |
Private Member Functions | |
void | print (std::ostream &) const override |
Print covariance details (for logging) More... | |
Private Attributes | |
ioda::ObsVector | stddev_ |
Observation error standard deviations. More... | |
Eigen::MatrixXd | varcorrelations_ |
Correlations between variables. More... | |
Observation error covariance matrix with cross-variable correlations.
Correlations are the same at all locations and are read from the file specified in the configuration. Obs error standard deviations are read from ObsSpace as ObsError group. Full observation error covariance matrix is R = D^{1/2} * C * D^{1/2} where D^{1/2} is a diagonal matrix with stddev_ (ObsError group) on the diagonal, and C is the correlation matrix.
Definition at line 51 of file ObsErrorCrossVarCov.h.
The type of parameters passed to the constructor. This typedef is used by the ObsErrorFactory.
Definition at line 55 of file ObsErrorCrossVarCov.h.
ufo::ObsErrorCrossVarCov::ObsErrorCrossVarCov | ( | const Parameters_ & | options, |
ioda::ObsSpace & | obspace, | ||
const eckit::mpi::Comm & | timeComm | ||
) |
Initialize observation errors.
Definition at line 21 of file ObsErrorCrossVarCov.cc.
|
override |
Return inverse of obs error variance.
Definition at line 175 of file ObsErrorCrossVarCov.cc.
|
override |
Return obs errors std deviation.
Definition at line 169 of file ObsErrorCrossVarCov.cc.
|
inlineoverride |
Return RMS of obs error standard deviations.
Definition at line 83 of file ObsErrorCrossVarCov.h.
|
override |
Multiply y
by inverse of this observation error covariance Computed as R^{-1} * dy = D^{-1/2} * C^{-1] * D^{-1/2} * dy where D^{1/2} - diagonal matrix with stddev_ on the diagonal C - correlations
Definition at line 108 of file ObsErrorCrossVarCov.cc.
|
override |
Multiply y
by this observation error covariance Computed as R * dy = D^{1/2} * C * D^{1/2} * dy where D^{1/2} - diagonal matrix with stddev_ on the diagonal C - correlations
Definition at line 60 of file ObsErrorCrossVarCov.cc.
|
overrideprivate |
Print covariance details (for logging)
Definition at line 183 of file ObsErrorCrossVarCov.cc.
|
override |
Generate y
as a random perturbation.
Definition at line 156 of file ObsErrorCrossVarCov.cc.
|
override |
Save obs error standard deviations under name
group name.
Definition at line 163 of file ObsErrorCrossVarCov.cc.
|
override |
Update obs error standard deviations to be equal to stddev
.
Definition at line 54 of file ObsErrorCrossVarCov.cc.
|
private |
Observation error standard deviations.
Definition at line 95 of file ObsErrorCrossVarCov.h.
|
private |
Correlations between variables.
Definition at line 97 of file ObsErrorCrossVarCov.h.