Go to the documentation of this file.
8 #include "ufo/Locations.h"
13 #include "eckit/config/Configuration.h"
14 #include "eckit/exception/Exceptions.h"
16 #include "oops/mpi/mpi.h"
17 #include "oops/util/DateTime.h"
18 #include "oops/util/Logger.h"
19 #include "oops/util/Random.h"
35 const util::DateTime & t1,
const util::DateTime & t2) : comm_(odb.comm()) {
60 const eckit::mpi::Comm & comm) : comm_(comm) {
61 const eckit::LocalConfiguration obsconf(
conf,
"obs space");
62 const util::DateTime bgn = util::DateTime(
conf.getString(
"window begin"));
63 const util::DateTime end = util::DateTime(
conf.getString(
"window end"));
65 ioda::ObsSpace obspace(obsconf, comm, bgn, end, oops::mpi::myself());
66 const int nlocs = obspace.nlocs();
68 std::vector<double> lats(nlocs);
69 std::vector<double> lons(nlocs);
70 obspace.get_db(
"MetaData",
"latitude", lats);
71 obspace.get_db(
"MetaData",
"longitude", lons);
106 int nobs, indx, max_indx, i(0);
109 os <<
"Locations: " <<
nobs <<
" locations: "
110 << max_indx <<
" maximum indx:";
115 for (
int i=0; i <
nobs; ++i) {
120 << std::setprecision(2) << std::fixed
121 <<
" lat = " << lat <<
", lon = " << lon << std::endl;
void ufo_locs_nobs_f90(const F90locs &, int &)
void ufo_locs_create_f90(F90locs &, const int &, const ioda::ObsSpace &, const double *, const double *)
void ufo_locs_copy_f90(F90locs &, const F90locs &)
void ufo_locs_setup_f90(F90locs &, const int &)
void ufo_locs_coords_f90(const F90locs &, int &, double &, double &)
Locations class to handle locations for UFO.
Locations & operator+=(const Locations &)
void ufo_locs_delete_f90(F90locs &)
Locations(const eckit::mpi::Comm &)
void ufo_locs_concatenate_f90(const F90locs &, const F90locs &)
void print(std::ostream &os) const
void ufo_locs_init_f90(F90locs &, const ioda::ObsSpace &, const util::DateTime &, const util::DateTime &)
Interface to Fortran UFO Locations routines.
void ufo_locs_indx_f90(const F90locs &, int &, int &, int &)