8 #include "eckit/config/LocalConfiguration.h"
10 #include "ioda/ObsSpace.h"
12 #include "oops/mpi/mpi.h"
13 #include "oops/util/DateTime.h"
21 #include "ufo/GeoVaLs.h"
22 #include "ufo/Locations.h"
30 const ufo::Locations & locs,
31 const eckit::Configuration & config)
32 : locs_(locs), geom_(new
Geometry(geom)),
45 const util::DateTime & t1,
46 const util::DateTime & t2,
47 ufo::GeoVaLs & geovals)
const {
50 if (
geom_->getAtmInit())
60 std::unique_ptr<State> varChangeState;
61 const State * state_ptr;
62 if (geovals.getVars() <= state.
variables()) {
65 varChangeState.reset(
new State(*
geom_, geovals.getVars(),
68 state_ptr = varChangeState.get();
82 const oops::Variables & vars,
83 ufo::GeoVaLs & atmgom)
const {
85 eckit::LocalConfiguration conf(
geom_->getAtmConf());
88 util::DateTime bgn = util::DateTime(conf.getString(
"notocean.date_begin"));
89 util::DateTime end = util::DateTime(conf.getString(
"notocean.date_end"));
92 eckit::LocalConfiguration confatmobs(conf,
"notocean.obs space");
93 ioda::ObsTopLevelParameters paramsatmobs;
94 paramsatmobs.validateAndDeserialize(confatmobs);
95 ioda::ObsSpace atmobs(paramsatmobs,
geom_->getComm(), bgn, end,
99 eckit::LocalConfiguration confatm(conf,
"notocean");
100 atmgom.read(confatm, atmobs);
104 os <<
"GetValues" << std::endl;
Geometry handles geometry for SOCA model.
void fillGeoVaLs(const State &, const util::DateTime &t1, const util::DateTime &t2, ufo::GeoVaLs &) const
Get state values at observation locations.
std::shared_ptr< const Geometry > geom_
void getValuesFromFile(const ufo::Locations &, const oops::Variables &, ufo::GeoVaLs &) const
Read interpolated GeoVaLs at observation location.
GetValues(const Geometry &, const ufo::Locations &locs, const eckit::Configuration &config)
saves all locations locs to use during filling GeoVaLs
std::unique_ptr< Model2GeoVaLs > model2geovals_
void print(std::ostream &) const
const util::DateTime & validTime() const
const oops::Variables & variables() const
void soca_getvalues_delete_f90(F90getval &)
void soca_getvalues_fill_geovals_f90(const F90getval &, const F90geom &, const F90flds &, const util::DateTime &, const util::DateTime &, const ufo::Locations &, const F90goms &)
void soca_getvalues_create_f90(F90getval &, const F90geom &, const ufo::Locations &)