19 #include "ioda/ObsDataVector.h"
20 #include "oops/util/missingValues.h"
50 std::vector<float> impact_parameter;
51 in.
get(
Variable(
"impact_parameter@MetaData"), impact_parameter);
52 std::vector<float> radius_curvature;
53 in.
get(
Variable(
"earth_radius_of_curvature@MetaData"), radius_curvature);
54 for (
size_t jj = 0; jj <
nlocs; ++jj) {
55 if (impact_parameter[jj] == util::missingValue(impact_parameter[jj]) ||
56 radius_curvature[jj] == util::missingValue(radius_curvature[jj])) {
57 out[0][jj] = util::missingValue(out[0][jj]);
59 out[0][jj] = impact_parameter[jj] - radius_curvature[jj];
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const
compute the result of the function
const ufo::Variables & requiredVariables() const
geovals required to compute the function
ImpactHeight(const eckit::LocalConfiguration &)
ObsFilterData provides access to all data related to an ObsFilter.
size_t nlocs() const
Returns the number of locations in the associated ObsSpace.
void get(const Variable &varname, std::vector< float > &values) const
Fills a std::vector with values of the specified variable.
integer function nlocs(this)
Return the number of observational locations in this Locations object.
static ObsFunctionMaker< ImpactHeight > makerImpactHeight_("ImpactHeight")