UFO
RejectObs.cc
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2019 UCAR
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_(), parameters_(parameters) {
24 }
25 
26 // -----------------------------------------------------------------------------
27 
28 void RejectObs::apply(const Variables & vars,
29  const std::vector<std::vector<bool>> & flagged,
30  const ObsFilterData &,
31  int filterQCflag,
34  for (size_t jv = 0; jv < vars.nvars(); ++jv) {
35  size_t iv = flags.varnames().find(vars.variable(jv).variable());
36  for (size_t jobs = 0; jobs < flags.nlocs(); ++jobs) {
37  if (flagged[jv][jobs] && flags[iv][jobs] == QCflags::pass)
38  flags[iv][jobs] = filterQCflag;
39  }
40  }
41 }
42 
43 // -----------------------------------------------------------------------------
44 
45 } // namespace ufo
ObsFilterData provides access to all data related to an ObsFilter.
void apply(const Variables &, const std::vector< std::vector< bool >> &, const ObsFilterData &, int, ioda::ObsDataVector< int > &, ioda::ObsDataVector< float > &) const override
Definition: RejectObs.cc:28
RejectObs(const Parameters_ &)
Definition: RejectObs.cc:22
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 pass
Definition: QCflags.h:14
Definition: RunCRTM.h:27
static FilterActionMaker< RejectObs > makerRejectObs_("reject")