Go to the documentation of this file.
8 #ifndef UFO_FILTERS_OBSFUNCTIONS_OBSFUNCTIONBASE_H_
9 #define UFO_FILTERS_OBSFUNCTIONS_OBSFUNCTIONBASE_H_
14 #include <boost/noncopyable.hpp>
16 #include "ioda/ObsDataVector.h"
51 static std::map < std::string, ObsFunctionFactory * > &
getMakers() {
52 static std::map < std::string, ObsFunctionFactory * > makers_;
62 {
return new T(
conf); }
72 #endif // UFO_FILTERS_OBSFUNCTIONS_OBSFUNCTIONBASE_H_
virtual const ufo::Variables & requiredVariables() const =0
geovals required to compute the function
static bool functionExists(const std::string &)
Base class for computing functions on observation data.
virtual ~ObsFunctionFactory()=default
ObsFunctionFactory(const std::string &)
virtual void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const =0
compute the result of the function
virtual ObsFunctionBase * make(const eckit::LocalConfiguration conf)=0
static std::map< std::string, ObsFunctionFactory * > & getMakers()
virtual ObsFunctionBase * make(const eckit::LocalConfiguration conf)
ObsFunctionMaker(const std::string &name)
virtual ~ObsFunctionBase()
ObsFunctionBase(const eckit::LocalConfiguration conf=eckit::LocalConfiguration())
ObsFilterData provides access to all data related to an ObsFilter.
static ObsFunctionBase * create(const Variable &)