UFO
ufo::SatName Class Reference

#include <SatName.h>

Inheritance diagram for ufo::SatName:
Collaboration diagram for ufo::SatName:

Public Types

typedef SatNameParameters Parameters_
 

Public Member Functions

 SatName (ioda::ObsSpace &, const Parameters_ &, std::shared_ptr< ioda::ObsDataVector< int > >, std::shared_ptr< ioda::ObsDataVector< float > >)
 
 ~SatName ()
 
- 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 creates a string variable that makes it simpler to identify Atmospheric Motion Vector (AMV) / Satwind observations by combining satellite and channel information. 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

Definition at line 73 of file SatName.h.

Member Typedef Documentation

◆ Parameters_

Definition at line 78 of file SatName.h.

Constructor & Destructor Documentation

◆ SatName()

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

Definition at line 62 of file SatName.cc.

◆ ~SatName()

ufo::SatName::~SatName ( )

Definition at line 71 of file SatName.cc.

Member Function Documentation

◆ applyFilter()

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

A filter that creates a string variable that makes it simpler to identify Atmospheric Motion Vector (AMV) / Satwind observations by combining satellite and channel information.

This is useful for later AMV processing where we want to apply filters to subsets of observations.

To identify the type of motion that has been tracked, AMV BUFR observations are supplied with a channel central frequency (Hz) and a wind computation method:

002023 SATELLITE DERIVED WIND COMPUTATION METHOD

  • 0 Reserved
  • 1 INFRARED MOTION OBSERVED IN THE INFRARED CHANNEL
  • 2 VISIBLE MOTION OBSERVED IN THE VISIBLE CHANNEL
  • 3 VAPOUR CLOUD MOTION OBSERVED IN THE WATER VAPOUR CHANNEL
  • 4 COMBINATION MOTION OBSERVED IN A COMBINATION OF SPECTRAL CHANNELS
  • 5 VAPOUR CLEAR MOTION OBSERVED IN THE WATER VAPOUR CHANNEL IN CLEAR AIR
  • 6 OZONE MOTION OBSERVED IN THE OZONE CHANNEL
  • 7 VAPOUR MOTION OBSERVED IN WATER VAPOUR CHANNEL (CLOUD OR CLEAR)
  • 13 Root-mean-square

The most common use of the wind computation method is to distinguish between clear-sky and cloudy water vapour targets.

This filter combines this channel information, together with the satellite name, to create a string that defines the satellite/channel combination of each observation. We also output a diagnostic variable which provides information on unidentified satellites or channels.

Required :

  • "MetaData", "sensor_central_frequency"
  • "MetaData", "satellite_identifier"
  • "MetaData", "wind_computation_method"

Outputs:

  • "MetaData", "satwind_id"
  • "Diag", "satwind_id"

Example: The following yaml will attempt to identify two infrared channels with computation method value of 1 and central frequencies falling betwen the min and max frequency bounds. If there are observations that match these conditions they are labelled with the respective "wind channel" string. If observations are identified from GOES-16 (platform number 270) they are also labelled with the respective "Sat name" string. This will fill MetaData/satwind_id with values "GOES16ir112","GOES16ir38" if these are present in the observations. If either the satellite or channel are not identified, then MetaData/satwind_id is set to "MISSING". To help track down why observations are set to missing we also output a diagnostic string variable, Diag/satwind_id. When the observation is not identified, this has the form: id<satellite identifier>_comp<cloud motion method>_freq<central frequency>. E.g. if the satellite is identified but the channel is not: "GOES16_comp3_freq0.484317e14", if the satellite is not identified but the channel is: "id270ir112".

obs filters:
- filter: satname
SatName assignments:
- min WMO Satellite id: 1
max WMO Satellite id: 999
Satellite_comp:
- satobchannel: 1
min frequency: 2.6e+13
max frequency: 2.7e+13
wind channel: ir112
- satobchannel: 1
min frequency: 7.5e+13
max frequency: 8.2e+13
wind channel: ir38
Satellite_id:
- Sat ID: 270
Sat name: GOES16

Implements ufo::FilterBase.

Definition at line 147 of file SatName.cc.

Here is the call graph for this function:

◆ classname()

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

Definition at line 79 of file SatName.h.

◆ print()

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

Implements ufo::FilterBase.

Definition at line 210 of file SatName.cc.

◆ qcFlag()

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

Implements ufo::FilterBase.

Definition at line 88 of file SatName.h.

Member Data Documentation

◆ parameters_

Parameters_ ufo::SatName::parameters_
private

Definition at line 89 of file SatName.h.


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