13 #include "ioda/ObsDataVector.h"
14 #include "ioda/ObsSpace.h"
15 #include "oops/util/Logger.h"
22 :
FilterBase(obsdb, parameters, flags, obserr), parameters_(parameters)
31 std::vector<std::vector<bool>> & flagged)
const {
32 oops::Log::trace() <<
"PreQC applyFilter starting " << std::endl;
46 for (
size_t jv = 0; jv < filtervars.
nvars(); ++jv) {
47 const ioda::ObsDataRow<int> ¤tPreQC = preqc[jv];
48 std::vector<bool> ¤tFlagged = flagged[jv];
49 for (
size_t jobs = 0; jobs <
obsdb_.nlocs(); ++jobs) {
51 (currentPreQC[jobs] ==
missing ||
52 currentPreQC[jobs] > qcmax ||
53 currentPreQC[jobs] < qcmin)) {
54 currentFlagged[jobs] =
true;
59 oops::Log::trace() <<
"PreQC applyFilter done" << std::endl;
65 os <<
"PreQC: config = " <<
parameters_ << std::endl;
Base class for UFO QC filters.
PreQC(ioda::ObsSpace &, const Parameters_ &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
void applyFilter(const std::vector< bool > &, const Variables &, std::vector< std::vector< bool >> &) const override
void print(std::ostream &) const override
oops::Parameter< int > minvalue
Minimum PreQC flag denoting "pass". By default, zero.
oops::Parameter< int > maxvalue
Maximum PreQC flag denoting "pass". By default, zero.
oops::Parameter< std::string > inputQC
The ObsSpace group holding PreQC flags. By default, 'PreQC'.
size_t nvars() const
Return the number of constituent "primitive" (single-channel) variables.
oops::Variables toOopsVariables() const