8 #ifndef OOPS_BASE_OBSFILTER_H_ 9 #define OOPS_BASE_OBSFILTER_H_ 13 #include <boost/shared_ptr.hpp> 19 #include "oops/util/Printable.h" 27 template<
typename MODEL>
45 void print(std::ostream &)
const;
46 std::vector< boost::shared_ptr<FilterBase_> >
filters_;
52 template<
typename MODEL>
55 boost::shared_ptr<FilterBase_>
sp(pp);
56 filters_.push_back(
sp);
62 template<
typename MODEL>
64 if (pp != 0) filters_.push_back(pp);
69 template<
typename MODEL>
72 for (std::size_t jf = 0; jf < filters_.size(); ++jf) {
73 filters_.at(jf)->postFilter(gv, ovec, obsdb);
79 template <
typename MODEL>
81 os <<
"ObsFilter " << filters_.size() <<
" filters:" << std::endl;
82 for (std::size_t jj = 0; jj < filters_.size(); ++jj) {
83 os << *filters_[jj] << std::endl;
91 #endif // OOPS_BASE_OBSFILTER_H_ Base class for QC filters applied to observations.
real(r8), dimension(cast_m, cast_n) sp
GeoVaLs< MODEL > GeoVaLs_
ObsFilter operator=(const ObsFilter &)
ObservationSpace< MODEL > ObsSpace_
FilterBase< MODEL > FilterBase_
The namespace for the main oops code.
void postFilter(const GeoVaLs_ &, const ObsVector_ &, const ObsSpace_ &) const
ObsVector< MODEL > ObsVector_
std::vector< boost::shared_ptr< FilterBase_ > > filters_
void enrollFilter(FilterBase_ *)
ObsFilter(const ObsFilter &pp)
void print(std::ostream &) const
Controls application of QC filters to observations.