20 #include "eckit/config/LocalConfiguration.h"
23 #include "oops/util/Logger.h"
24 #include "oops/util/Random.h"
30 : conf_(conf), variance_(
ObsBias::ntypes, 0.0)
32 std::vector<double> zz(4, 0.0);
33 if (conf.has(
"obs bias error")) {
34 const eckit::LocalConfiguration covconf(conf,
"obs bias error");
35 if (covconf.has(
"stream")) zz[0] = covconf.getDouble(
"stream");
36 if (covconf.has(
"uwind")) zz[1] = covconf.getDouble(
"uwind");
37 if (covconf.has(
"vwind")) zz[2] = covconf.getDouble(
"vwind");
38 if (covconf.has(
"wspeed")) zz[3] = covconf.getDouble(
"wspeed");
40 std::string strn =
"";
42 if (jj > 0) strn +=
", ";
43 if (std::abs(zz[jj]) > 1.0e-8) {
45 std::ostringstream strs;
53 oops::Log::info() <<
"ObsBiasCovariance created, variances = " << strn << std::endl;
80 static util::NormalDistribution<double> dist(
ObsBias::ntypes, 0.0, 1.0, 4);
83 dx[jj] = dist[jj] * std::sqrt(
variance_[jj]);
91 os <<
"ObsBiasCovariance::print not implemented";