Go to the documentation of this file.
18 entireSampleDataHandler_(entireSampleDataHandler),
19 profileIndices_(profileIndices)
33 if (entriesPerProfile == 0) {
47 std::string fullname = it_profile.first;
49 std::string groupname;
54 const std::vector <int>& profileData = get<int>(fullname);
61 }
else if (groupname ==
"Corrections") {
63 const std::vector <float>& profileData = get<float>(fullname);
80 <<
" errors detected, whole profile rejected" << std::endl;
81 for (
size_t jlev = 0; jlev < ReportFlags.size(); ++jlev) {
88 std::vector<std::vector<bool>> &flagged)
93 std::string fullname = it_profile.first;
95 std::string groupname;
98 if (groupname ==
"QCFlags") {
101 const std::vector <int> &Flags = get<int>(fullname);
111 if (!Flags.empty() &&
116 for (
size_t jv = 0; jv < nvars; ++jv)
117 flagged[jv][profileIndex] =
true;
static constexpr const char *const counter_NumAnyErrors
void updateValueIfPresent(const std::vector< T > &vecIn, const size_t &idxIn, std::vector< T > &vecOut, const size_t &idxOut)
Transfer values from one vector to another (as long as neither is empty).
std::vector< size_t > profileIndicesInEntireSample_
Indices in the entire data sample that correspond to the current profile.
Determine indices of observations making up individual profiles. The indices are computed with respec...
void splitVarGroup(const std::string &vargrp, std::string &var, std::string &grp)
oops::Parameter< int > nErrorsFail
Number of errors, accumulated over checks, that cause the observation to have failed.
EntireSampleDataHandler & entireSampleDataHandler_
Class that handles the entire data sample.
static constexpr const char *const qcflags_observation_report
const std::vector< size_t > & getProfileIndices() const
Return indices for the current profile.
const DataHandlerParameters & options_
Configurable parameters.
size_t getProfileNumCurrent() const
Get number of current profile.
void setFinalReportFlags()
Set final report flags based on the NumAnyErrors counter.
const ProfileIndices & profileIndices_
Class that handles profile indices.
Options controlling the operation of the EntireSampleDataHandler and ProfileDataHandler classes.
void updateEntireSampleData()
Retrieve and store data for entire sample. This class uses lazy loading; vectors of variables are ret...
void getProfileIndicesInEntireSample(const std::string &groupname)
Get indices in entire sample corresponding to current profile.
@ FinalRejectReport
One of flags 1-6 set.
size_t getEntriesPerProfile(const std::string &groupname) const
Determine number of entries per profile for a variable group.
@ FinalRejectFlag
Final QC flag.
std::unordered_map< std::string, boost::variant< std::vector< int >, std::vector< float >, std::vector< std::string > > > profileData_
Container of each variable in the current profile.
std::vector< T > & get(const std::string &fullname)
ProfileDataHandler(ioda::ObsSpace &obsdb, const DataHandlerParameters &options, EntireSampleDataHandler &entireSampleDataHandler, const ProfileIndices &profileIndices)
void setFlagged(const size_t nvars, std::vector< std::vector< bool >> &flagged)