Go to the documentation of this file.
11 #include <Eigen/Dense>
16 #include "ioda/ObsDataVector.h"
18 #include "oops/base/Variables.h"
19 #include "oops/util/ObjectCounter.h"
20 #include "oops/util/Printable.h"
34 private util::ObjectCounter<ObsVector> {
36 static const std::string
classname() {
return "ioda::ObsVector";}
39 const std::string & name =
"",
const bool fail =
true);
61 unsigned int nobs()
const;
72 bool has(
const std::string & var)
const {
return obsvars_.has(var);}
77 void save(
const std::string &)
const;
78 void read(
const std::string &,
const bool fail =
true);
81 void print(std::ostream &)
const;
103 #endif // OBSVECTOR_H_
std::size_t nvars() const
ObsSpace & obsdb_
Associate ObsSpace object.
oops::Variables obsvars_
Variables.
const oops::Variables & varnames() const
ObsVector(ObsSpace &, const std::string &name="", const bool fail=true)
ObsVector & operator=(const ObsVector &)
void save(const std::string &) const
static const std::string classname()
const std::string & obstype() const
void mask(const ObsDataVector< int > &)
void print(std::ostream &) const
ObsVector & operator/=(const ObsVector &)
const double missing_
Missing data mark.
ObsVector class to handle vectors in observation space for IODA.
std::vector< double > values_
Vector data.
unsigned int nobs() const
const double & toFortran() const
const std::string & obsname() const
double dot_product_with(const ObsVector &) const
void axpy(const double &, const ObsVector &)
ObsVector & operator*=(const double &)
ObsVector & operator+=(const ObsVector &)
double & operator[](const std::size_t ii)
bool has(const std::string &var) const
std::size_t nvars_
Number of variables.
ObsDataVector<DATATYPE> handles vectors of data of type DATATYPE in observation space.
Eigen::VectorXd packEigen() const
const double & operator[](const std::size_t ii) const
void read(const std::string &, const bool fail=true)
std::size_t nlocs() const
ObsVector & operator-=(const ObsVector &)