UFO
PassivateObs.cc
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2021-2021 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_() {
24  }
25 
26 // -----------------------------------------------------------------------------
27 
28 void PassivateObs::apply(const Variables & vars,
29  const std::vector<std::vector<bool>> & flagged,
30  const ObsFilterData &,
31  int,
34  for (size_t ifiltervar = 0; ifiltervar < vars.nvars(); ++ifiltervar) {
35  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] && flags[iallvar][jobs] == QCflags::pass)
38  flags[iallvar][jobs] = QCflags::passive;
39  }
40  }
41 }
42 
43 // -----------------------------------------------------------------------------
44 
45 } // namespace ufo
ObsFilterData provides access to all data related to an ObsFilter.
PassivateObs(const Parameters_ &)
Definition: PassivateObs.cc:22
void apply(const Variables &, const std::vector< std::vector< bool >> &, const ObsFilterData &, int, ioda::ObsDataVector< int > &, ioda::ObsDataVector< float > &) const override
Definition: PassivateObs.cc:28
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
constexpr int passive
Definition: QCflags.h:15
Definition: RunCRTM.h:27
static FilterActionMaker< PassivateObs > makerPassivateObs_("passivate")