8 #ifndef OOPS_GENERIC_GEOVALSWRITER_H_
9 #define OOPS_GENERIC_GEOVALSWRITER_H_
13 #include "eckit/config/LocalConfiguration.h"
21 #include "oops/util/dot_product.h"
22 #include "oops/util/Logger.h"
28 template <
typename OBS>
34 template <
typename DATA>
using ObsDataPtr_ = std::shared_ptr<ObsDataVector<OBS, DATA> >;
44 const double zz = sqrt(dot_product(gv, gv));
45 Log::info() <<
"GeoVaLsWriter norm = " << zz << std::endl;
55 const eckit::LocalConfiguration
conf_;
58 void print(std::ostream &)
const override;
63 template <
typename OBS>
65 os <<
"GeoVaLsWriter: " << conf_;
void write(const eckit::Configuration &) const
ObsSpace< OBS > ObsSpace_
const eckit::LocalConfiguration conf_
void postFilter(const ObsVector_ &, const ObsVector_ &, const ObsDiags_ &) override
Perform any observation processing steps that require access to outputs produced by the observation o...
ObsVector< OBS > ObsVector_
GeoVaLsWriter(const ObsSpace_ &, const eckit::Configuration &conf, ObsDataPtr_< int >, ObsDataPtr_< float >)
void print(std::ostream &) const override
Variables requiredHdiagnostics() const override
Return the list of observation diagnostics required by this filter.
std::shared_ptr< ObsDataVector< OBS, DATA > > ObsDataPtr_
ObsDiagnostics< OBS > ObsDiags_
void priorFilter(const GeoVaLs_ &gv) override
Perform any observation processing steps that require access to GeoVaLs, but not to outputs produced ...
Variables requiredVars() const override
Return the list of GeoVaLs required by this filter.
void preProcess() override
Perform any observation processing steps that do not require access to GeoVaLs or outputs produced by...
Base class for generic implementations of filters processing observations.
ObsVector class used in oops; subclass of interface class interface::ObsVector.
The namespace for the main oops code.