10 #include "ioda/ObsSpace.h"
11 #include "oops/util/Logger.h"
18 constexpr util::NamedEnumerator<FourierTermType>
27 order_(parameters.order),
28 component_(parameters.component) {
40 ioda::ObsVector & out)
const {
41 const size_t nlocs = out.nlocs();
42 const size_t nvars = out.nvars();
45 std::vector<double> orbital_angle(
nlocs, 0.0);
46 odb.get_db(
"MetaData",
"satellite_orbital_angle", orbital_angle);
51 for (std::size_t jl = 0; jl <
nlocs; ++jl) {
53 for (std::size_t jb = 0; jb < nvars; ++jb) {
54 out[jl*nvars+jb] = cos_oa;
59 for (std::size_t jl = 0; jl <
nlocs; ++jl) {
61 for (std::size_t jb = 0; jb < nvars; ++jb) {
62 out[jl*nvars+jb] = sin_oa;
GeoVaLs: geophysical values at locations.
OrbitalAngle(const Parameters_ &, const oops::Variables &)
void compute(const ioda::ObsSpace &, const GeoVaLs &, const ObsDiagnostics &, ioda::ObsVector &) const override
compute the predictor
FourierTermType component_
Configuration parameters of the OrbitalAngle predictor.
std::string & name()
predictor name
integer function nlocs(this)
Return the number of observational locations in this Locations object.
static PredictorMaker< OrbitalAngle > makerFuncOrbitalAngle_("orbital_angle")
static constexpr double deg2rad
static constexpr char enumTypeName[]
static constexpr util::NamedEnumerator< FourierTermType > namedValues[]