UFO
ufo::ProbabilityGrossErrorWholeReport Class Reference

This filter calculates the probability that an entire report is affected by gross error. More...

#include <ProbabilityGrossErrorWholeReport.h>

Inheritance diagram for ufo::ProbabilityGrossErrorWholeReport:
Collaboration diagram for ufo::ProbabilityGrossErrorWholeReport:

Public Types

typedef ProbabilityGrossErrorWholeReportParameters Parameters_
 

Public Member Functions

 ProbabilityGrossErrorWholeReport (ioda::ObsSpace &, const Parameters_ &, std::shared_ptr< ioda::ObsDataVector< int >>, std::shared_ptr< ioda::ObsDataVector< float >>)
 
 ~ProbabilityGrossErrorWholeReport ()
 
- Public Member Functions inherited from ufo::FilterBase
 FilterBase (ioda::ObsSpace &, const FilterParametersBaseWithAbstractAction &parameters, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
 
 FilterBase (ioda::ObsSpace &, const eckit::Configuration &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
 
 ~FilterBase ()
 
- Public Member Functions inherited from ufo::ObsProcessorBase
 ObsProcessorBase (ioda::ObsSpace &, bool deferToPost, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
 
 ~ObsProcessorBase ()
 
void preProcess () override
 
void priorFilter (const GeoVaLs &) override
 
void postFilter (const ioda::ObsVector &, const ioda::ObsVector &, const ObsDiagnostics &) override
 
oops::Variables requiredVars () const override
 
oops::Variables requiredHdiagnostics () const override
 

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

Parameters_ parameters_
 

Additional Inherited Members

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

Detailed Description

This filter calculates the probability that an entire report is affected by gross error.

Synoptic stations typically provide reports at regular intervals. A report is a combination of variables observed by different sensors at a single location. Reports may include some, but not necessarily all, of pressure, temperature, dew point and wind speed and direction.

The probability that the whole report is affected by gross error is calculated through the Bayesian combination of the probability of gross error of individual observations. This is based on the logic that if multiple observations within a report appear dubious based on a Bayesian Background check, it is likely that the whole report is affected by, for example, location error. This filter should be called after the Bayesian Background Check.

Variables which are to have their probability of gross error updated should be specified using the "filter variables" YAML option. All variables included in "filter variables" will be used to calculate the probability that the whole report is affected by gross error unless the option not_used_in_whole_report is set to true for that variable.

Variables can be either scalar or vector (with two Cartesian components, such as the eastward and northward wind components). In the latter case the two components need to specified one after the other in the "filter variables" list, with the second component having the second_component_of_two option set to true. For each variable, the option Probability_Density_Bad is used to set the prior probability density of that variable being "bad". The filter can also apply a specific prior probability density of bad observations for the following Met Office SubTypes:

  • Bogus
  • Synop (SynopManual, SynopAuto, MetarManual, MetarAuto, SynopMob, SynopBufr, WOW)

Example:

- filter: Bayesian Whole Report
filter variables:
- name: pressure_at_model_surface
options:
Probability_Density_Bad: 0.1
Bogus_Probability_Density_Bad: 0.1
- name: air_temperature_at_2m
options:
Probability_Density_Bad: 0.1
- name: eastward_wind
options:
Probability_Density_Bad: 0.1
Synop_Probability_Density_Bad: 0.1
Bogus_Probability_Density_Bad: 0.1
- name: northward_wind
options:
not_used_in_whole_report: true
second_component_of_two: true
- name: relative_humidity_at_2m
options:
not_used_in_whole_report: true
Probability_Density_Bad: 0.1
PGE threshold: 0.15

Definition at line 100 of file ProbabilityGrossErrorWholeReport.h.

Member Typedef Documentation

◆ Parameters_

The type of parameters accepted by the constructor of this filter. This typedef is used by the FilterFactory.

Definition at line 105 of file ProbabilityGrossErrorWholeReport.h.

Constructor & Destructor Documentation

◆ ProbabilityGrossErrorWholeReport()

ufo::ProbabilityGrossErrorWholeReport::ProbabilityGrossErrorWholeReport ( ioda::ObsSpace &  ,
const Parameters_ ,
std::shared_ptr< ioda::ObsDataVector< int >>  ,
std::shared_ptr< ioda::ObsDataVector< float >>   
)

Definition at line 27 of file ProbabilityGrossErrorWholeReport.cc.

◆ ~ProbabilityGrossErrorWholeReport()

ufo::ProbabilityGrossErrorWholeReport::~ProbabilityGrossErrorWholeReport ( )

Definition at line 39 of file ProbabilityGrossErrorWholeReport.cc.

Member Function Documentation

◆ applyFilter()

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

Implements ufo::FilterBase.

Definition at line 45 of file ProbabilityGrossErrorWholeReport.cc.

Here is the call graph for this function:

◆ classname()

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

Definition at line 107 of file ProbabilityGrossErrorWholeReport.h.

◆ print()

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

Implements ufo::FilterBase.

Definition at line 223 of file ProbabilityGrossErrorWholeReport.cc.

◆ qcFlag()

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

Implements ufo::FilterBase.

Definition at line 118 of file ProbabilityGrossErrorWholeReport.h.

Member Data Documentation

◆ parameters_

Parameters_ ufo::ProbabilityGrossErrorWholeReport::parameters_
private

Definition at line 120 of file ProbabilityGrossErrorWholeReport.h.


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