14 #include "ioda/ObsSpace.h"
15 #include "oops/base/Variables.h"
16 #include "oops/util/Logger.h"
17 #include "oops/util/missingValues.h"
29 oops::Log::trace() <<
"FinalCheck constructed" << std::endl;
35 oops::Log::trace() <<
"FinalCheck destructed" << std::endl;
41 oops::Log::trace() <<
"FinalCheck doFilter starts" << std::endl;
43 const oops::Variables &derived =
obsdb_.derived_obsvariables();
44 for (
size_t jv = 0; jv < derived.size(); ++jv) {
45 if (!
obsdb_.has(
"ObsValue", derived[jv]))
46 throw eckit::UnexpectedState(
47 "All filters have been run, but the derived simulated variable " + derived[jv] +
48 " can't be found either in the ObsValue or the DerivedObsValue group", Here());
54 for (
size_t jv = 0; jv <
obsdb_.obsvariables().size(); ++jv) {
55 for (
size_t jobs = 0; jobs <
obsdb_.nlocs(); ++jobs) {
62 oops::Log::trace() <<
"FinalCheck doFilter done" << std::endl;
68 os <<
"Final Check" << std::endl;
void print(std::ostream &) const override
FinalCheck(ioda::ObsSpace &obsdb, const Parameters_ ¶ms, std::shared_ptr< ioda::ObsDataVector< int >> qcflags, std::shared_ptr< ioda::ObsDataVector< float >> obserr)
void doFilter() const override
Base class for UFO observation processors (including QC filters).
std::shared_ptr< ioda::ObsDataVector< float > > obserr_
std::shared_ptr< ioda::ObsDataVector< int > > flags_