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 = 0; k < nlevs; ++k ) {
51 gv.
getAtLevel(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";
GeoVaLs: geophysical values at locations.
size_t nlevs(const std::string &var) const
Return number of levels for a specified variable.
void getAtLevel(std::vector< double > &, const std::string &, const int) const
Get GeoVaLs at a specified level.
void print(std::ostream &) const override
virtual ~ObsSeaIceFraction()
void simulateObs(const GeoVaLs &, ioda::ObsVector &, ObsDiagnostics &) const override
Obs Operator.
std::unique_ptr< const oops::Variables > varin_
ObsSeaIceFraction(const ioda::ObsSpace &, const eckit::Configuration &)
integer function nlocs(this)
Return the number of observational locations in this Locations object.
static ObsOperatorMaker< ObsSeaIceFraction > makerSeaIceFraction_("SeaIceFraction")