12 #include "eckit/exception/Exceptions.h"
14 #include "oops/util/Logger.h"
32 checks_(options.Checks.value())
35 auto it_checks = std::find(
checks_.begin(),
checks_.end(),
"Basic");
36 if (it_checks ==
checks_.end()) {
39 }
else if (it_checks !=
checks_.begin()) {
41 std::rotate(
checks_.begin(), it_checks, it_checks + 1);
48 bool checkMode =
true;
49 std::vector <std::string> checkNames;
53 std::unique_ptr<ProfileCheckBase> profileCheck =
58 checkMode = profileCheck->runOnEntireSample();
61 if (profileCheck->runOnEntireSample() == checkMode) {
62 checkNames.push_back(
check);
66 checkNames.push_back(
check);
68 checkMode = !checkMode;
74 throw eckit::NotImplemented(
"Have not implemented a check for " +
check, Here());
86 std::unique_ptr<ProfileCheckBase> profileCheck =
94 if (profileCheck->runOnEntireSample())
97 profileCheck->runCheck(profileDataHandler);
99 if (!profileCheck->runOnEntireSample()) {
102 profileCheck->fillValidationData(profileDataHandler);
104 if (!profileCheck->getResult() &&
check ==
"Basic") {
112 throw eckit::NotImplemented(
"Have not implemented a check for " +
check, Here());
Options controlling the operation of the ConventionalProfileProcessing filter.
oops::Parameter< bool > compareWithOPS
Compare with OPS values?
static std::unique_ptr< ProfileCheckBase > create(const std::string &, const ConventionalProfileProcessingParameters &)
void runChecks(ProfileDataHandler &profileDataHandler, const CheckSubgroup &subGroupChecks)
Run all checks requested.
const ConventionalProfileProcessingParameters & options_
Configurable parameters.
oops::Variables validationGeoVaLNames_
Names of all validation GeoVaLs.
oops::Variables obsDiagNames_
Names of all required obs diagnostics.
CheckSubgroupList checkSubgroups_
Subgroups of checks with the same mode of operation.
std::vector< std::string > checks_
Checks to perform.
void setBasicCheckResult(bool result)
Set basic check result.
ProfileChecker(const ConventionalProfileProcessingParameters &options)
oops::Variables GeoVaLNames_
Names of all required GeoVaLs.
Retrieve and store data for individual profiles. To do this, first the vector of values in the entire...
void resetProfileIndices()
subroutine check(action, status)
Information on each subgroup of checks.
std::vector< std::string > checkNames
checkNames contains the names of the checks in this subgroup.