13 #include "ioda/ObsDataVector.h"
25 std::vector<int> channels{1, 2, 15};
39 std::vector<float> bt1, bt2, bt15;
40 input.
get(
Variable(
"brightness_temperature_1@ObsValue"), bt1);
41 input.
get(
Variable(
"brightness_temperature_2@ObsValue"), bt2);
42 input.
get(
Variable(
"brightness_temperature_15@ObsValue"), bt15);
43 for (
size_t jj = 0; jj <
nlocs; ++jj) {
44 out[0][jj] = -113.2+(2.41-0.0049*bt1[jj])*bt1[jj]+0.454*bt2[jj]-bt15[jj];
45 oops::Log::debug() <<
"Tb1, Tb2, Tb15: " << bt1[jj] <<
", " << bt2[jj] <<
", " << bt15[jj]
46 <<
", scattering=" << out[0][jj] << std::endl;
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.
ObsFunctionScattering(const eckit::LocalConfiguration conf=eckit::LocalConfiguration())
const ufo::Variables & requiredVariables() const
geovals required to compute the function
void compute(const ObsFilterData &, ioda::ObsDataVector< float > &) const
compute the result of the function
integer function nlocs(this)
Return the number of observational locations in this Locations object.
static ObsFunctionMaker< ObsFunctionScattering > makerObsFuncScattering_("Scattering")