UFO
ufo::ProfileConsistencyChecks Class Reference

Profile QC checks. More...

#include <ProfileConsistencyChecks.h>

Inheritance diagram for ufo::ProfileConsistencyChecks:
Collaboration diagram for ufo::ProfileConsistencyChecks:

Public Member Functions

 ProfileConsistencyChecks (ioda::ObsSpace &, const eckit::Configuration &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
 
 ~ProfileConsistencyChecks ()
 
std::vector< int > getMismatches () const
 
- Public Member Functions inherited from ufo::FilterBase
 FilterBase (ioda::ObsSpace &, const eckit::Configuration &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
 
 ~FilterBase ()
 
void preProcess ()
 
void priorFilter (const GeoVaLs &)
 
void postFilter (const ioda::ObsVector &, const ObsDiagnostics &)
 
oops::Variables requiredVars () const
 
oops::Variables requiredHdiagnostics () const
 

Static Public Member Functions

static const std::string classname ()
 

Private Member Functions

void print (std::ostream &) const override
 
void applyFilter (const std::vector< bool > &, const Variables &, std::vector< std::vector< bool >> &) const override
 
int qcFlag () const override
 

Private Attributes

std::unique_ptr< ProfileConsistencyCheckParametersoptions_
 Configurable options. More...
 
std::vector< int > nMismatches_
 

Additional Inherited Members

- Protected Attributes inherited from ufo::FilterBase
ioda::ObsSpace & obsdb_
 
const eckit::LocalConfiguration config_
 
std::shared_ptr< ioda::ObsDataVector< int > > flags_
 
std::shared_ptr< ioda::ObsDataVector< float > > obserr_
 
ufo::Variables allvars_
 
ufo::Variables filtervars_
 
ObsFilterData data_
 

Detailed Description

Profile QC checks.

The temperature consistency checks available are as follows:

  1. Basic checks of pressure
  2. Check for different temperatures at the same pressure
  3. Temperature sign change test using model background
  4. Check for superadiabatic layers more than 50 hPa above surface
  5. Check of standard level temperatures against values interpolated from significant levels
  6. Check for hydrostatic consistency of standard levels (+ surface)
    1. calculation of thickness residuals
    2. decision making algorithm used where there are large residuals
  7. Junk whole report if > 8 errors There are also consistency checks for the interpolated wind speed and the relative humidity.

The sign, standard level and hydrostatic checks are largely based on methods described in the WMO Guide on the Global Data-Procesing System (1993). In general the tolerances have been relaxed slightly so that fewer 'marginal' cases are flagged. In the hydrostatic check the effect of moisture on the thickness is neglected and no special account is taken of the tropopause. Corrections are suggested for apparently simple temperature or height errors. If a height correction is within 10 m of a multiple of 100 m then the rounded correction is applied, temperature corrections are not applied. In some cases interpolation flags are switched off if the hydrostatic check is fairly clear-cut.

Inputs:

  • Arrays containing observed and background values
    • Should be in order of increasing height/decreasing pressure
    • interleaved standard and significant levels (if input is standard levels only then superadiabatic and hydrostatic checks will be performed)

Outputs:

  • QC flags
  • Some corrections to reported values (not applied by default):
    • corrections to sign of temperature
    • corrections to height (multiples of 100 m)

Definition at line 80 of file src/ufo/filters/ProfileConsistencyChecks.h.

Constructor & Destructor Documentation

◆ ProfileConsistencyChecks()

ufo::ProfileConsistencyChecks::ProfileConsistencyChecks ( ioda::ObsSpace &  obsdb,
const eckit::Configuration &  config,
std::shared_ptr< ioda::ObsDataVector< int > >  flags,
std::shared_ptr< ioda::ObsDataVector< float > >  obserr 
)

Definition at line 39 of file ProfileConsistencyChecks.cc.

◆ ~ProfileConsistencyChecks()

ufo::ProfileConsistencyChecks::~ProfileConsistencyChecks ( )

Definition at line 60 of file ProfileConsistencyChecks.cc.

Member Function Documentation

◆ applyFilter()

void ufo::ProfileConsistencyChecks::applyFilter ( const std::vector< bool > &  apply,
const Variables filtervars,
std::vector< std::vector< bool >> &  flagged 
) const
overrideprivatevirtual

Implements ufo::FilterBase.

Definition at line 64 of file ProfileConsistencyChecks.cc.

Here is the call graph for this function:

◆ classname()

static const std::string ufo::ProfileConsistencyChecks::classname ( )
inlinestatic

Definition at line 83 of file src/ufo/filters/ProfileConsistencyChecks.h.

◆ getMismatches()

std::vector<int> ufo::ProfileConsistencyChecks::getMismatches ( ) const
inline

Return the number of mismatches between values produced by the checking routines and the equivalents produced in the OPS code. The values checked are: the QC flags for each observation, intermediate values used in various calculations for each observation, and error counters for each profile.

Definition at line 95 of file src/ufo/filters/ProfileConsistencyChecks.h.

Here is the caller graph for this function:

◆ print()

void ufo::ProfileConsistencyChecks::print ( std::ostream &  os) const
overrideprivatevirtual

Implements ufo::FilterBase.

Definition at line 147 of file ProfileConsistencyChecks.cc.

Here is the caller graph for this function:

◆ qcFlag()

int ufo::ProfileConsistencyChecks::qcFlag ( ) const
inlineoverrideprivatevirtual

Implements ufo::FilterBase.

Definition at line 101 of file src/ufo/filters/ProfileConsistencyChecks.h.

Member Data Documentation

◆ nMismatches_

std::vector<int> ufo::ProfileConsistencyChecks::nMismatches_
mutableprivate

Number of mismatches between values produced in this code and their OPS equivalents (used for validation)

Definition at line 108 of file src/ufo/filters/ProfileConsistencyChecks.h.

◆ options_

std::unique_ptr<ProfileConsistencyCheckParameters> ufo::ProfileConsistencyChecks::options_
private

Configurable options.

Definition at line 104 of file src/ufo/filters/ProfileConsistencyChecks.h.


The documentation for this class was generated from the following files: