23 if (sv->state_covariance().rows() == 0 or sv->state_covariance().cols() == 0)
26 firstIndex i1; secondIndex i2; thirdIndex i3; fourthIndex i4;
27 Array<double, 1> dsurf_dstate =
p->surface_pressure().value.gradient();
28 Array<double, 1> t(dsurf_dstate.rows());
29 t = sum(sv->state_covariance()(i1, i2) * dsurf_dstate(i2), i2);
30 double t2 = sum(dsurf_dstate * t);
31 return (t2 > 0 ? sqrt(t2) : 0);
35 return p->pressure_grid().convert(
units::Pa).value.value();
48 out->register_data_source(
"/RetrievalResults/surface_pressure_apriori_fph",
54 out->register_data_source(
"/RetrievalResults/vector_pressure_levels_apriori",
60 out->register_data_source(
"/RetrievalResults/surface_pressure_fph",
64 out->register_data_source(
"/RetrievalResults/surface_pressure_uncert_fph",
66 out->register_data_source(
"/RetrievalResults/vector_pressure_levels",
68 out->register_data_source(
"/RetrievalResults/num_active_levels",
virtual void register_output_apriori(const boost::shared_ptr< Output > &out) const
Register apriori portions of class.
const Unit Pa("Pa", N/(m *m))
#define REGISTER_LUA_DERIVED_CLASS(X, Y)
Apply value function to a blitz array.
double surface_pressure_value() const
Return the current surface pressure value, without the gradient.
virtual void register_output(const boost::shared_ptr< Output > &out) const
Register portions of class that will be written to output.
int number_level() const
This is the number of levels.
This registers the portions of the Pressure class that should be written as output.
PressureOutputHelper(const boost::shared_ptr< Pressure > &P, const boost::shared_ptr< StateVector > &Sv)
As described in the Output class, we have a decentralized model of producing output for L2 Full Physi...
Contains classes to abstract away details in various Spurr Radiative Transfer software.
#define REGISTER_LUA_END()
Array< double, 1 > pressure_grid_value() const
double surface_pressure_uncertainty() const