UFO
AcceptList.cc
Go to the documentation of this file.
1 /*
2  * (C) Copyright 2021 Met Office
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 <string>
11 #include <vector>
12 
13 #include "eckit/config/Configuration.h"
14 
15 #include "ioda/ObsDataVector.h"
16 #include "ioda/ObsSpace.h"
17 
18 #include "oops/base/Variables.h"
19 #include "oops/util/Logger.h"
20 
21 namespace ufo {
22 
23 // -----------------------------------------------------------------------------
24 
25 AcceptList::AcceptList(ioda::ObsSpace & obsdb, const Parameters_ & parameters,
26  std::shared_ptr<ioda::ObsDataVector<int> > flags,
27  std::shared_ptr<ioda::ObsDataVector<float> > obserr)
28  : FilterBase(obsdb, parameters, flags, obserr), parameters_(parameters)
29 {
30  oops::Log::debug() << "AcceptList: config = " << parameters_ << std::endl;
31 }
32 
33 // -----------------------------------------------------------------------------
34 
35 void AcceptList::applyFilter(const std::vector<bool> & apply,
36  const Variables & filtervars,
37  std::vector<std::vector<bool>> & flagged) const {
38  for (size_t jv = 0; jv < filtervars.nvars(); ++jv) {
39  for (size_t jobs = 0; jobs < obsdb_.nlocs(); ++jobs) {
40  flagged[jv][jobs] = apply[jobs];
41  }
42  }
43 }
44 
45 // -----------------------------------------------------------------------------
46 
47 void AcceptList::print(std::ostream & os) const {
48  os << "AcceptList: config = " << parameters_ << std::endl;
49 }
50 
51 // -----------------------------------------------------------------------------
52 
53 } // namespace ufo
void applyFilter(const std::vector< bool > &, const Variables &, std::vector< std::vector< bool >> &) const override
Definition: AcceptList.cc:35
void print(std::ostream &) const override
Definition: AcceptList.cc:47
AcceptList(ioda::ObsSpace &, const Parameters_ &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
Definition: AcceptList.cc:25
Parameters_ parameters_
Definition: AcceptList.h:73
Parameters controlling the AcceptList filter.
Definition: AcceptList.h:32
Base class for UFO QC filters.
Definition: FilterBase.h:45
ioda::ObsSpace & obsdb_
size_t nvars() const
Return the number of constituent "primitive" (single-channel) variables.
Definition: Variables.cc:104
Definition: RunCRTM.h:27