8 #ifndef OOPS_BASE_OBSLOCALIZATIONS_H_
9 #define OOPS_BASE_OBSLOCALIZATIONS_H_
15 #include <boost/noncopyable.hpp>
20 #include "oops/util/Logger.h"
21 #include "oops/util/Printable.h"
27 template <
typename MODEL,
typename OBS>
29 private boost::noncopyable {
36 static const std::string
classname() {
return "oops::ObsLocalizations";}
44 void print(std::ostream &)
const;
45 std::vector<std::unique_ptr<ObsLocalization_> >
local_;
50 template <
typename MODEL,
typename OBS>
53 std::vector<eckit::LocalConfiguration> obsconf = config.getSubConfigurations();
54 for (
size_t jj = 0; jj < obsconf.size(); ++jj) {
55 eckit::LocalConfiguration conf(obsconf[jj],
"obs localization");
62 template <
typename MODEL,
typename OBS>
65 for (
size_t jj = 0; jj < local_.size(); ++jj) {
66 if (local_[jj]) local_[jj]->computeLocalization(point, locfactor[jj]);
72 template<
typename MODEL,
typename OBS>
74 for (
size_t jj = 0; jj < local_.size(); ++jj) {
75 if (local_[jj]) os << *local_[jj];
Difference between two observation vectors.
Container for ObsLocalizations for all observation types that are used in DA.
ObsLocalizationBase< MODEL, OBS > ObsLocalization_
Departures< OBS > Observations_
GeometryIterator< MODEL > GeometryIterator_
void print(std::ostream &) const
ObsLocalizations(const eckit::Configuration &, const ObsSpaces_ &)
std::vector< std::unique_ptr< ObsLocalization_ > > local_
void computeLocalization(const GeometryIterator_ &point, Observations_ &obsvectors) const
ObsSpaces< OBS > ObsSpaces_
static const std::string classname()
The namespace for the main oops code.