12 #ifndef QG_MODEL_OBSSPACEQG_H_
13 #define QG_MODEL_OBSSPACEQG_H_
21 #include "eckit/geometry/Point2.h"
22 #include "eckit/mpi/Comm.h"
26 #include "oops/util/DateTime.h"
27 #include "oops/util/parameters/OptionalParameter.h"
28 #include "oops/util/parameters/Parameters.h"
29 #include "oops/util/parameters/RequiredParameter.h"
31 #include "oops/qg/LocationsQG.h"
32 #include "oops/qg/ObsIteratorQG.h"
33 #include "oops/qg/QgFortran.h"
44 oops::RequiredParameter<std::string>
obsfile{
"obsfile",
this};
52 oops::RequiredParameter<util::Duration>
begin{
"begin",
this};
53 oops::RequiredParameter<util::Duration>
obsPeriod{
"obs_period",
this};
55 oops::RequiredParameter<int>
obsDensity{
"obs_density",
this};
56 oops::RequiredParameter<int>
nval{
"nval",
this};
57 oops::RequiredParameter<double>
obsError{
"obs_error",
this};
66 oops::RequiredParameter<std::string>
obsType{
"obs type",
this};
68 oops::OptionalParameter<ObsDataParameters>
obsdatain{
"obsdatain",
this};
70 oops::OptionalParameter<ObsDataParameters>
obsdataout{
"obsdataout",
this};
72 oops::OptionalParameter<ObsGenerateParameters>
generate{
"generate",
this};
87 const util::DateTime &,
const util::DateTime &,
const eckit::mpi::Comm &);
94 void getdb(
const std::string &,
int &)
const;
96 void putdb(
const std::string &,
const int &)
const;
99 std::unique_ptr<LocationsQG>
locations()
const;
119 void print(std::ostream &)
const;
Base class for observation spaces.
Base class for configuration parameters of observation spaces.
Contents of the obsdatain or obsdataout YAML section.
oops::RequiredParameter< std::string > obsfile
File path.
Options controlling generation of artificial observations.
oops::RequiredParameter< double > obsError
oops::RequiredParameter< util::Duration > obsPeriod
oops::RequiredParameter< int > nval
oops::RequiredParameter< util::Duration > begin
oops::RequiredParameter< int > obsDensity
Number of observations to generate in each time slot.
Iterator over all observations.
const F90odb & toFortran() const
interface with Fortran
void print(std::ostream &) const
const std::string obsname_
const std::string & obsname() const
observation type
ObsSpaceQGParameters Parameters_
const util::DateTime winend_
const util::DateTime winbgn_
void getdb(const std::string &, int &) const
read data or metadata
const oops::Variables & obsvariables() const
return variables simulated by ObsOperators
static int theObsFileCount_
std::unique_ptr< LocationsQG > locations() const
create locations for the whole time window
ObsIteratorQG end() const
iterator to the observation past-the-last
void putdb(const std::string &, const int &) const
save data or metadata
void save() const
save and close file
ObsIteratorQG begin() const
iterator to the first observation
ObsSpaceQG(const Parameters_ &, const eckit::mpi::Comm &, const util::DateTime &, const util::DateTime &, const eckit::mpi::Comm &)
create full ObsSpace (read or generate data)
static std::map< std::string, F90odb > theObsFileRegister_
int nobs() const
return number of observations (unique locations)
Configuration parameters for the QG model's ObsSpace.
oops::OptionalParameter< ObsDataParameters > obsdataout
File to which to save observations and analysis.
oops::RequiredParameter< std::string > obsType
Type of observations.
oops::OptionalParameter< ObsDataParameters > obsdatain
File from which to load observations.
oops::OptionalParameter< ObsGenerateParameters > generate
Options controlling generation of artificial observations.
The namespace for the qg model.