IODA Bundle
oops::ObsFilter< OBS, FILTER > Class Template Reference

#include <ObsFilter.h>

Inheritance diagram for oops::ObsFilter< OBS, FILTER >:
[legend]
Collaboration diagram for oops::ObsFilter< OBS, FILTER >:
[legend]

Public Types

typedef TParameters_IfAvailableElseFallbackType_t< FILTER, GenericObsFilterParametersParameters_
 

Public Member Functions

 ObsFilter (const ObsSpace_ &, const Parameters_ &, ObsDataPtr_< int >, ObsDataPtr_< float >)
 
 ObsFilter (const ObsSpace_ &, const eckit::Configuration &, ObsDataPtr_< int >, ObsDataPtr_< float >)
 
 ~ObsFilter ()
 
void preProcess () const override
 
void priorFilter (const GeoVaLs_ &) const override
 
void postFilter (const ObsVector_ &, const ObsDiags_ &) const override
 
Variables requiredVars () const override
 
Variables requiredHdiagnostics () const override
 
- Public Member Functions inherited from oops::ObsFilterBase< OBS >
 ObsFilterBase ()
 
virtual ~ObsFilterBase ()
 

Static Public Member Functions

static const std::string classname ()
 

Private Types

typedef GeoVaLs< OBS > GeoVaLs_
 
typedef ObsDiagnostics< OBS > ObsDiags_
 
typedef ObsSpace< OBS > ObsSpace_
 
typedef ObsVector< OBS > ObsVector_
 
template<typename DATA >
using ObsDataPtr_ = std::shared_ptr< ObsDataVector< OBS, DATA > >
 
template<typename DATA >
using ObsDataVec_ = typename OBS::template ObsDataVector< DATA >
 

Private Member Functions

void print (std::ostream &) const override
 

Private Attributes

const ObsSpace_obsdb_
 
const std::unique_ptr< Parameters_parameters_
 
std::unique_ptr< FILTER > ofilt_
 

Detailed Description

template<typename OBS, typename FILTER>
class oops::ObsFilter< OBS, FILTER >

Note: implementations of this interface can opt to extract their settings either from a Configuration object or from a subclass of ObsFilterParametersBase.

In the former case, they should provide a constructor with the following signature:

ObsFilter(const ObsSpace_ &, const eckit::Configuration &, ObsDataPtr_<int>, ObsDataPtr_<float>);

In the latter case, the implementer should first define a subclass of ObsFilterParametersBase holding the settings of the filter in question. The implementation of the ObsFilter interface should then typedef Parameters_ to the name of that subclass and provide a constructor with the following signature:

ObsFilter(const ObsSpace_ &, const Parameters_ &, ObsDataPtr_<int>, ObsDataPtr_<float>);

Definition at line 47 of file ObsFilter.h.

Member Typedef Documentation

◆ GeoVaLs_

template<typename OBS , typename FILTER >
typedef GeoVaLs<OBS> oops::ObsFilter< OBS, FILTER >::GeoVaLs_
private

Definition at line 48 of file ObsFilter.h.

◆ ObsDataPtr_

template<typename OBS , typename FILTER >
template<typename DATA >
using oops::ObsFilter< OBS, FILTER >::ObsDataPtr_ = std::shared_ptr<ObsDataVector<OBS, DATA> >
private

Definition at line 52 of file ObsFilter.h.

◆ ObsDataVec_

template<typename OBS , typename FILTER >
template<typename DATA >
using oops::ObsFilter< OBS, FILTER >::ObsDataVec_ = typename OBS::template ObsDataVector<DATA>
private

Definition at line 53 of file ObsFilter.h.

◆ ObsDiags_

template<typename OBS , typename FILTER >
typedef ObsDiagnostics<OBS> oops::ObsFilter< OBS, FILTER >::ObsDiags_
private

Definition at line 49 of file ObsFilter.h.

◆ ObsSpace_

template<typename OBS , typename FILTER >
typedef ObsSpace<OBS> oops::ObsFilter< OBS, FILTER >::ObsSpace_
private

Definition at line 50 of file ObsFilter.h.

◆ ObsVector_

template<typename OBS , typename FILTER >
typedef ObsVector<OBS> oops::ObsFilter< OBS, FILTER >::ObsVector_
private

Definition at line 51 of file ObsFilter.h.

◆ Parameters_

template<typename OBS , typename FILTER >
typedef TParameters_IfAvailableElseFallbackType_t<FILTER, GenericObsFilterParameters> oops::ObsFilter< OBS, FILTER >::Parameters_

Defined as FILTER::Parameters_ if FILTER defines a Parameters_ type; otherwise as GenericObsFilterParameters

Definition at line 58 of file ObsFilter.h.

Constructor & Destructor Documentation

◆ ObsFilter() [1/2]

template<typename OBS , typename FILTER >
oops::ObsFilter< OBS, FILTER >::ObsFilter ( const ObsSpace_ os,
const Parameters_ parameters,
ObsDataPtr_< int >  flags,
ObsDataPtr_< float >  obserr 
)

Definition at line 86 of file ObsFilter.h.

Here is the call graph for this function:

◆ ObsFilter() [2/2]

template<typename OBS , typename FILTER >
oops::ObsFilter< OBS, FILTER >::ObsFilter ( const ObsSpace_ os,
const eckit::Configuration &  conf,
ObsDataPtr_< int >  flags,
ObsDataPtr_< float >  obserr 
)

Definition at line 108 of file ObsFilter.h.

◆ ~ObsFilter()

template<typename OBS , typename FILTER >
oops::ObsFilter< OBS, FILTER >::~ObsFilter

Definition at line 117 of file ObsFilter.h.

Member Function Documentation

◆ classname()

template<typename OBS , typename FILTER >
static const std::string oops::ObsFilter< OBS, FILTER >::classname ( )
inlinestatic

Definition at line 60 of file ObsFilter.h.

Here is the caller graph for this function:

◆ postFilter()

template<typename OBS , typename FILTER >
void oops::ObsFilter< OBS, FILTER >::postFilter ( const ObsVector_ ov,
const ObsDiags_ dv 
) const
overridevirtual

Implements oops::ObsFilterBase< OBS >.

Definition at line 147 of file ObsFilter.h.

Here is the call graph for this function:

◆ preProcess()

template<typename OBS , typename FILTER >
void oops::ObsFilter< OBS, FILTER >::preProcess
overridevirtual

Implements oops::ObsFilterBase< OBS >.

Definition at line 127 of file ObsFilter.h.

◆ print()

template<typename OBS , typename FILTER >
void oops::ObsFilter< OBS, FILTER >::print ( std::ostream &  os) const
overrideprivatevirtual

Implements oops::ObsFilterBase< OBS >.

Definition at line 173 of file ObsFilter.h.

◆ priorFilter()

template<typename OBS , typename FILTER >
void oops::ObsFilter< OBS, FILTER >::priorFilter ( const GeoVaLs_ gv) const
overridevirtual

Implements oops::ObsFilterBase< OBS >.

Definition at line 137 of file ObsFilter.h.

Here is the call graph for this function:

◆ requiredHdiagnostics()

template<typename OBS , typename FILTER >
Variables oops::ObsFilter< OBS, FILTER >::requiredHdiagnostics
overridevirtual

Implements oops::ObsFilterBase< OBS >.

Definition at line 165 of file ObsFilter.h.

◆ requiredVars()

template<typename OBS , typename FILTER >
Variables oops::ObsFilter< OBS, FILTER >::requiredVars
overridevirtual

Implements oops::ObsFilterBase< OBS >.

Definition at line 157 of file ObsFilter.h.

Member Data Documentation

◆ obsdb_

template<typename OBS , typename FILTER >
const ObsSpace_& oops::ObsFilter< OBS, FILTER >::obsdb_
private

Definition at line 78 of file ObsFilter.h.

◆ ofilt_

template<typename OBS , typename FILTER >
std::unique_ptr<FILTER> oops::ObsFilter< OBS, FILTER >::ofilt_
private

Definition at line 80 of file ObsFilter.h.

◆ parameters_

template<typename OBS , typename FILTER >
const std::unique_ptr<Parameters_> oops::ObsFilter< OBS, FILTER >::parameters_
private

Definition at line 79 of file ObsFilter.h.


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