8 #ifndef SOCA_TRANSFORMS_ANA2MODEL_ANA2MODEL_H_
9 #define SOCA_TRANSFORMS_ANA2MODEL_ANA2MODEL_H_
15 #include "eckit/config/Configuration.h"
16 #include "oops/base/VariableChangeBase.h"
17 #include "oops/base/Variables.h"
34 class Ana2Model:
public oops::VariableChangeBase<soca::Traits> {
36 static const std::string
classname() {
return "soca::Ana2Model";}
44 std::vector<std::string>
initRotate(
const eckit::Configuration & conf,
45 const std::string & uv)
const
47 return conf.getStringVector(
"rotate."+uv);
50 std::vector<std::string>
initTrans(
const eckit::Configuration & conf,
51 const std::string & trvar)
const
53 return conf.getStringVector(
"log."+trvar);
57 void print(std::ostream &)
const override;
SOCA nonlinear change of variable.
Ana2Model(const Geometry &, const eckit::Configuration &)
std::vector< std::string > initTrans(const eckit::Configuration &conf, const std::string &trvar) const
const oops::Variables logvars_
void changeVarInverse(const State &, State &) const override
const oops::Variables vvars_
std::vector< std::string > initRotate(const eckit::Configuration &conf, const std::string &uv) const
const oops::Variables uvars_
void changeVar(const State &, State &) const override
static const std::string classname()
void print(std::ostream &) const override
Geometry handles geometry for SOCA model.