8 #include "ioda/ObsDataVector.h"
9 #include "oops/util/missingValues.h"
41 ASSERT(out.nvars() == 1);
44 std::vector<float> satzen(
nlocs);
45 in.
get(
Variable(
"sensor_zenith_angle@MetaData"), satzen);
53 std::vector<float> bias89(
nlocs), bias150(
nlocs);
58 for (
size_t iloc = 0; iloc <
nlocs; ++iloc) {
59 bt89[iloc] -= bias89[iloc];
60 bt150[iloc] -= bias150[iloc];
66 for (
size_t iloc = 0; iloc <
nlocs; ++iloc) {
71 out[0][iloc] = bt89[iloc] - bt150[iloc] - Offset;
BennartzScatIndexParameters options_
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const
compute the result of the function
std::vector< int > channels_
BennartzScatIndex(const eckit::LocalConfiguration &=eckit::LocalConfiguration())
const ufo::Variables & requiredVariables() const
geovals required to compute the function
oops::RequiredParameter< int > ch89
Channel number corresponding to 89 GHz (or nearby frequency depending on sensor channel specification...
oops::RequiredParameter< float > coeff1
First coefficient used to compute scattering index.
oops::Parameter< std::string > applyBias
Name of the bias correction group used to apply correction to ObsValue.
oops::RequiredParameter< float > coeff2
Second coefficient used to compute scattering index.
oops::RequiredParameter< int > ch150
Channel number corresponding to 150 GHz (or nearby frequency depending on sensor channel specificatio...
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< BennartzScatIndex > makerBennartzScatIndex_("BennartzScatIndex")