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 
22 RejectObs::RejectObs(const eckit::Configuration & conf)
23  : allvars_(), conf_(conf) {
24 }
25 
26 // -----------------------------------------------------------------------------
27 
28 void RejectObs::apply(const Variables & vars,
29  const std::vector<std::vector<bool>> & flagged,
30  const ObsFilterData &,
33  int flag = conf_.getInt("flag");
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) flags[iv][jobs] = flag;
38  }
39  }
40 }
41 
42 // -----------------------------------------------------------------------------
43 
44 } // namespace ufo
ufo::Variables::nvars
size_t nvars() const
Definition: Variables.cc:104
ufo::QCflags::pass
constexpr int pass
Definition: QCflags.h:14
ufo::Variables
Definition: src/ufo/filters/Variables.h:24
RejectObs.h
ufo
Definition: RunCRTM.h:27
ufo::makerRejectObs_
static FilterActionMaker< RejectObs > makerRejectObs_("reject")
ufo::FilterActionMaker
Definition: FilterActionBase.h:60
QCflags.h
ufo::RejectObs::RejectObs
RejectObs(const eckit::Configuration &)
Definition: RejectObs.cc:22
ufo::Variable::variable
const std::string & variable() const
Definition: Variable.cc:100
ioda::ObsDataVector< int >
ufo::Variables::variable
Variable variable(const size_t) const
Definition: Variables.cc:114
ufo::RejectObs::conf_
const eckit::Configuration & conf_
Definition: RejectObs.h:33
ObsFilterData.h
ufo::RejectObs::apply
void apply(const Variables &, const std::vector< std::vector< bool >> &, const ObsFilterData &, ioda::ObsDataVector< int > &, ioda::ObsDataVector< float > &) const override
compute the diagnostic
Definition: RejectObs.cc:28
ufo::ObsFilterData
ObsFilterData provides access to all data related to an ObsFilter.
Definition: src/ufo/filters/ObsFilterData.h:40
conf
Definition: conf.py:1