Go to the documentation of this file.
15 #include "eckit/config/Configuration.h"
17 #include "ioda/ObsDataVector.h"
18 #include "ioda/ObsSpace.h"
20 #include "oops/interface/ObsFilter.h"
21 #include "oops/util/abor1_cpp.h"
22 #include "oops/util/Logger.h"
40 (ioda::ObsSpace & obsdb,
41 const eckit::Configuration & config,
54 if (obsdb.obs_group_var().empty())
55 throw eckit::BadParameter(
"group variable is empty.", Here());
66 std::vector<std::vector<bool>> & flagged)
const
68 print(oops::Log::trace());
70 const int nlocs =
static_cast <int> (
obsdb_.nlocs());
71 const int nprofs =
static_cast <int> (
obsdb_.nrecs());
85 entireSampleDataHandler,
96 profileCheckValidator);
101 for (
int jprof = 0; jprof < nprofs; ++jprof) {
102 oops::Log::debug() <<
"Profile " << (jprof + 1) <<
" / " << nprofs << std::endl;
108 profileDataHandler.
reset();
111 if (
options_->PrintStationID.value()) {
112 const std::vector <std::string> &station_ID =
114 if (!station_ID.empty())
148 os <<
"ProfileConsistencyChecks: config = " <<
config_ << std::endl;
Retrieve and store data for individual profiles. To do this, first the vector of values in the entire...
void applyFilter(const std::vector< bool > &, const Variables &, std::vector< std::vector< bool >> &) const override
~ProfileConsistencyChecks()
Determine indices of observations making up individual profiles. The indices are computed with respec...
Profile QC check validator.
FilterBase: Base class for UFO QC filters.
ProfileConsistencyChecks(ioda::ObsSpace &, const eckit::Configuration &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
void setFinalReportFlags()
Set final report flags based on the NumAnyErrors counter.
void determineProfileIndices()
Determine indices in entire sample for this profile.
std::vector< int > nMismatches_
void updateEntireSampleData()
Retrieve and store data for entire sample. This class uses lazy loading; vectors of variables are ret...
void writeQuantitiesToObsdb()
Options controlling the operation of the ProfileConsistencyChecks filter.
void runChecks()
Run all checks requested.
ufo::Variables filtervars_
void validate()
Validate check results against OPS values.
const eckit::LocalConfiguration config_
std::unique_ptr< ProfileConsistencyCheckParameters > options_
Configurable options.
int getMismatches() const
Get number of mismatches between values produced in this code and the OPS equivalents.
std::vector< T > & get(const std::string &fullname)
void setFlagged(const size_t nvars, std::vector< std::vector< bool >> &flagged)
static constexpr const char *const station_ID
bool getBasicCheckResult()
Get basic check result.
void print(std::ostream &) const override