13 #include "eckit/config/Configuration.h"
15 #include "ioda/ObsDataVector.h"
16 #include "ioda/ObsSpace.h"
18 #include "oops/util/Logger.h"
28 ref_(config_.getString(
"reference")), val_(config_.getString(
"value"))
30 oops::Log::trace() <<
"DifferenceCheck contructor starting" << std::endl;
38 oops::Log::trace() <<
"DifferenceCheck destructed" << std::endl;
45 std::vector<std::vector<bool>> & flagged)
const {
46 oops::Log::trace() <<
"DifferenceCheck priorFilter" << std::endl;
49 const size_t nlocs =
obsdb_.nlocs();
63 std::vector<float> ref, val;
66 ASSERT(ref.size() == val.size());
69 for (
size_t jobs = 0; jobs < nlocs; ++jobs) {
73 for (
size_t jv = 0; jv < filtervars.
nvars(); ++jv) {
74 flagged[jv][jobs] =
true;
78 float diff = val[jobs] - ref[jobs];
79 for (
size_t jv = 0; jv < filtervars.
nvars(); ++jv) {
80 if (vmin !=
missing && diff < vmin) flagged[jv][jobs] =
true;
81 if (vmax !=
missing && diff > vmax) flagged[jv][jobs] =
true;
91 os <<
"DifferenceCheck::print not yet implemented ";