UFO
ufo::SatwindInversionCorrection Class Reference

A filter that modifies the assigned pressure of AMV observations if a temperature inversion is detected in the model profile and defined criteria are met. More...

#include <SatwindInversionCorrection.h>

Inheritance diagram for ufo::SatwindInversionCorrection:
Collaboration diagram for ufo::SatwindInversionCorrection:

Public Types

typedef SatwindInversionCorrectionParameters Parameters_
 

Public Member Functions

 SatwindInversionCorrection (ioda::ObsSpace &, const Parameters_ &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
 
 ~SatwindInversionCorrection ()
 
- 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
 A filter that modifies the assigned pressure of AMV observations if a temperature inversion is detected in the model profile and defined criteria are met. More...
 
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

A filter that modifies the assigned pressure of AMV observations if a temperature inversion is detected in the model profile and defined criteria are met.

See SatwindInversionCorrectionParameters for the documentation of the parameters controlling this filter.

Definition at line 70 of file SatwindInversionCorrection.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 75 of file SatwindInversionCorrection.h.

Constructor & Destructor Documentation

◆ SatwindInversionCorrection()

ufo::SatwindInversionCorrection::SatwindInversionCorrection ( ioda::ObsSpace &  obsdb,
const Parameters_ parameters,
std::shared_ptr< ioda::ObsDataVector< int > >  flags,
std::shared_ptr< ioda::ObsDataVector< float > >  obserr 
)

Definition at line 27 of file SatwindInversionCorrection.cc.

◆ ~SatwindInversionCorrection()

ufo::SatwindInversionCorrection::~SatwindInversionCorrection ( )

Definition at line 44 of file SatwindInversionCorrection.cc.

Member Function Documentation

◆ applyFilter()

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

A filter that modifies the assigned pressure of AMV observations if a temperature inversion is detected in the model profile and defined criteria are met.

The model profile is searched for the presence of a temperature inversion. Where there are multiple temperature inversions, only the lowest one is found. This is intended only for use on low level AMVs, typically below 700 hPa height.

The pressure of the AMV is corrected downwards in height if the following conditions are true: a) Originally assigned pressure is greater than or equal to min_pressure (Pa). b) AMV derived from IR and visible channels only. c) Temperature inversion is present in the model profile for pressures less than or equal to max_pressure (Pa). d) In order to be considered significant, the temperature difference across the top and base of the inversion must be greater than or equal to the inversion_temperature (K) value. e) Relative humidity at the top of the inversion is less than the rh_threshold value. f) AMV has been assigned above the height of the inversion base.

The AMV is then re-assigned to the base of the inversion.

Reference for initial implementation: Cotton, J., Forsythe, M., Warrick, F., (2016). Towards improved height assignment and quality control of AMVs in Met Office NWP. Proceedings for the 13th International Winds Workshop 27 June - 1 July 2016, Monterey, California, USA.

Example:

obs filters:
- filter: Satwind Inversion Correction
observation pressure:
name: air_pressure_levels@MetaData
RH threshold: 50
maximum pressure: 96000
Author
J.Cotton (Met Office)
Date
07/05/2021: Created

Implements ufo::FilterBase.

Definition at line 89 of file SatwindInversionCorrection.cc.

Here is the call graph for this function:

◆ classname()

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

Definition at line 77 of file SatwindInversionCorrection.h.

◆ print()

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

Implements ufo::FilterBase.

Definition at line 234 of file SatwindInversionCorrection.cc.

Here is the caller graph for this function:

◆ qcFlag()

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

Implements ufo::FilterBase.

Definition at line 88 of file SatwindInversionCorrection.h.

Member Data Documentation

◆ parameters_

Parameters_ ufo::SatwindInversionCorrection::parameters_
private

Definition at line 90 of file SatwindInversionCorrection.h.


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