8 #ifndef UFO_FILTERS_OBSFUNCTIONS_DRAWVALUEFROMFILE_H_
9 #define UFO_FILTERS_OBSFUNCTIONS_DRAWVALUEFROMFILE_H_
15 #include <unordered_map>
19 #include "oops/util/parameters/OptionalParameter.h"
20 #include "oops/util/parameters/Parameter.h"
21 #include "oops/util/parameters/Parameters.h"
22 #include "oops/util/parameters/RequiredParameter.h"
39 static constexpr util::NamedEnumerator<InterpMethod>
namedValues[] = {
56 public EnumParameterTraits<ufo::InterpMethodParameterTraitsHelper>
71 oops::RequiredParameter<std::string>
name{
"name",
this};
77 oops::RequiredParameter<InterpMethod>
method{
"method",
this};
87 oops::RequiredParameter<std::string>
fpath{
"file",
this};
91 oops::RequiredParameter<std::vector<InterpolationParameters>>
interpolation{
"interpolation",
96 oops::OptionalParameter<std::set<int>>
chlist{
"channels",
this};
108 oops::RequiredParameter<std::string> group{
"group",
this};
144 template <
typename T>
Produce values by interpolating an array loaded from a file, indexed by coordinates whose names corre...
const ufo::Variables & requiredVariables() const
geovals required to compute the function
std::unordered_map< std::string, InterpMethod > interpMethod_
void compute(const ObsFilterData &, ioda::ObsDataVector< T > &) const
compute the result of the function
std::vector< int > channels_
DrawValueFromFile(const eckit::LocalConfiguration &)
DrawValueFromFileParameters options_
Options controlling the DrawValueFromFile ObsFunction.
Options controlling the DrawValueFromFile ObsFunction (excluding the group option).
oops::RequiredParameter< std::vector< InterpolationParameters > > interpolation
oops::RequiredParameter< std::string > fpath
Path to the file containing the data to interpolate.
oops::OptionalParameter< std::set< int > > chlist
How to identify the relevant elements of the interpolated array along a dimension indexed by a partic...
oops::RequiredParameter< InterpMethod > method
oops::RequiredParameter< std::string > name
Name of the indexing variable (e.g. latitude@MetaData).
ObsFilterData provides access to all data related to an ObsFilter.
InterpMethod
Method used by the DataExtractor to map the value of an ObsSpace variable to a range of slices of the...
@ LEAST_UPPER_BOUND
Select slices corresponding to the least value of the indexing coordinate greater than or equal to th...
@ GREATEST_LOWER_BOUND
Select slices corresponding to the greatest value of the indexing coordinate less than or equal to th...
@ LINEAR
Perform a piecewise linear interpolation along the dimension indexed by the ObsSpace variable.
@ NEAREST
Select slices where the indexing coordinate is closest to the value of the corresponding ObsSpace var...
@ BILINEAR
Perform a bilinear interpolation along two dimensions indexed by the ObsSpace variables.
@ EXACT
Select slices where the indexing coordinate matches exactly the value of the corresponding ObsSpace v...
static constexpr util::NamedEnumerator< InterpMethod > namedValues[]
static constexpr char enumTypeName[]