Go to the documentation of this file.
14 #include "ioda/ObsVector.h"
16 #include "oops/base/Variables.h"
18 #include "ufo/GeoVaLs.h"
19 #include "ufo/ObsDiagnostics.h"
28 const eckit::Configuration & config)
31 const std::vector<std::string> vvin{
"sea_ice_category_area_fraction"};
32 varin_.reset(
new oops::Variables(vvin));
33 oops::Log::trace() <<
"ObsSeaIceFraction created." << std::endl;
39 oops::Log::trace() <<
"ObsSeaIceFraction destructed" << std::endl;
46 int nlocs = ovec.size();
47 int nlevs = gv.
nlevs(
"sea_ice_category_area_fraction");
49 std::vector<double> aicen(nlocs);
50 for ( std::size_t k = 1; k < nlevs+1; ++k ) {
51 gv.
get(aicen,
"sea_ice_category_area_fraction", k);
52 for ( std::size_t i = 0; i < nlocs; ++i ) {
56 oops::Log::trace() <<
"ObsSeaIceFraction: observation operator run" << std::endl;
62 os <<
"ObsSeaIceFraction::print not implemented";
ObsSeaIceFraction(const ioda::ObsSpace &, const eckit::Configuration &)
void print(std::ostream &) const override
virtual ~ObsSeaIceFraction()
void simulateObs(const GeoVaLs &, ioda::ObsVector &, ObsDiagnostics &) const override
Obs Operator.
void get(std::vector< float > &, const std::string &) const
Return all values for a specific 2D variable.
static ObsOperatorMaker< ObsSeaIceFraction > makerSeaIceFraction_("SeaIceFraction")
Base class for observation operators.
GeoVaLs: geophysical values at locations.
std::unique_ptr< const oops::Variables > varin_
size_t nlevs(const std::string &var) const
Return number of levels for a specified variable.