1 #ifndef REFERENCE_VMR_APRIORI_H 2 #define REFERENCE_VMR_APRIORI_H 4 #include <blitz/array.h> 31 const blitz::Array<double, 1>& Model_altitude,
32 const blitz::Array<double, 1>& Model_temperature,
33 const blitz::Array<double, 1>& Ref_altitude,
34 const double Ref_latitude,
36 const double Ref_tropopause_altitude,
37 const double Obs_latitude,
38 const Time& Obs_time);
42 const double age_of_air(
const double altitude)
const;
45 const blitz::Array<double, 1>
apply_latitude_gradient(
const blitz::Array<double, 1>& vmr,
const std::string& gas_name)
const;
46 const blitz::Array<double, 1>
apply_secular_trend(
const blitz::Array<double, 1>& vmr,
const std::string& gas_name)
const;
47 const blitz::Array<double, 1>
apply_seasonal_cycle(
const blitz::Array<double, 1>& vmr,
const std::string& gas_name)
const;
49 const blitz::Array<double, 1>
apriori_vmr(
const blitz::Array<double, 1>& vmr,
const std::string& gas_name)
const;
51 void print(std::ostream& Os)
const { Os <<
"ReferenceVmrApriori"; }
55 blitz::Array<double, 1> model_pressure;
56 blitz::Array<double, 1> model_altitude;
57 blitz::Array<double, 1> model_temperature;
59 blitz::Array<double, 1> ref_altitude;
62 double ref_tropopause_altitude;
const blitz::Array< double, 1 > resample_to_model_grid(const blitz::Array< double, 1 > &vmr) const
Resamples a VMR to the effective model altitude grid that accounts for the difference in tropopause a...
const blitz::Array< double, 1 > apply_seasonal_cycle(const blitz::Array< double, 1 > &vmr, const std::string &gas_name) const
Modifies the a priori vmr profile to account for the season of the observation/model.
const blitz::Array< double, 1 > apriori_vmr(const blitz::Array< double, 1 > &vmr, const std::string &gas_name) const
Creates the a priori VMR using the various transformation methods of the class.
Creates a VMR profile for a gas using a set of dated reference VMRs with a known latitude.
DoubleWithUnit model_tropopause_altitude() const
Calculate the tropopause altitude for the model data used to initalize the class. ...
This is a Mixin for classes that can be printed.
ReferenceVmrApriori(const blitz::Array< double, 1 > &Model_pressure, const blitz::Array< double, 1 > &Model_altitude, const blitz::Array< double, 1 > &Model_temperature, const blitz::Array< double, 1 > &Ref_altitude, const double Ref_latitude, const Time &Ref_time, const double Ref_tropopause_altitude, const double Obs_latitude, const Time &Obs_time)
We frequently have a double with units associated with it.
This is a simple time class.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
const blitz::Array< double, 1 > apply_latitude_gradient(const blitz::Array< double, 1 > &vmr, const std::string &gas_name) const
Modifies the vmr profiles to account for the difference in latitude between the observation latitude ...
const blitz::Array< double, 1 > apply_secular_trend(const blitz::Array< double, 1 > &vmr, const std::string &gas_name) const
Modifies the a priori profiles on a gas-by-gas basis to account for the difference in time between t...
const blitz::Array< double, 1 > effective_altitude() const
Computes an altitude grid for resampling that takes into account a difference in the tropopause altit...
void print(std::ostream &Os) const
const double age_of_air(const double altitude) const
Computes the Age of Air at particular location (Altitude, Latitude) relative to the surface at 50N...