UFO
AcceptObs.cc
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2021 Met Office UK
3  *
4  * This software is licensed under the terms of the Apache Licence Version 2.0
5  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6  */
7 
9 
10 #include "ioda/ObsDataVector.h"
12 #include "ufo/filters/QCflags.h"
13 
14 namespace ufo {
15 
16 // -----------------------------------------------------------------------------
17 
19 
20 // -----------------------------------------------------------------------------
21 
23  : allvars_() {
24 }
25 
26 // -----------------------------------------------------------------------------
27 
28 void AcceptObs::apply(const Variables & vars,
29  const std::vector<std::vector<bool>> & flagged,
30  const ObsFilterData &,
31  int /*filterQCflag*/,
34  for (size_t ifiltervar = 0; ifiltervar < vars.nvars(); ++ifiltervar) {
35  const size_t iallvar = flags.varnames().find(vars.variable(ifiltervar).variable());
36  for (size_t jobs = 0; jobs < flags.nlocs(); ++jobs) {
37  if (flagged[ifiltervar][jobs]) {
38  int &currentFlag = flags[iallvar][jobs];
39  if (currentFlag != QCflags::missing &&
40  currentFlag != QCflags::preQC &&
41  currentFlag != QCflags::Hfailed)
42  currentFlag = QCflags::pass;
43  }
44  }
45  }
46 }
47 
48 // -----------------------------------------------------------------------------
49 
50 } // namespace ufo
AcceptObs(const Parameters_ &)
Definition: AcceptObs.cc:22
void apply(const Variables &, const std::vector< std::vector< bool >> &, const ObsFilterData &, int, ioda::ObsDataVector< int > &, ioda::ObsDataVector< float > &) const override
Definition: AcceptObs.cc:28
ObsFilterData provides access to all data related to an ObsFilter.
const std::string & variable() const
Definition: Variable.cc:99
size_t nvars() const
Return the number of constituent "primitive" (single-channel) variables.
Definition: Variables.cc:104
Variable variable(const size_t) const
Return a given constituent "primitive" (single-channel) variable.
Definition: Variables.cc:114
constexpr int Hfailed
Definition: QCflags.h:25
constexpr int preQC
Definition: QCflags.h:21
constexpr int pass
Definition: QCflags.h:14
constexpr int missing
Definition: QCflags.h:20
Definition: RunCRTM.h:27
static FilterActionMaker< AcceptObs > acceptObsMaker_("accept")