ReFRACtor
reference_vmr_apriori.h
Go to the documentation of this file.
1 #ifndef REFERENCE_VMR_APRIORI_H
2 #define REFERENCE_VMR_APRIORI_H
3 
4 #include <blitz/array.h>
5 #include "fp_time.h"
6 #include "double_with_unit.h"
7 
8 namespace FullPhysics {
9 
10 /****************************************************************/
27 class ReferenceVmrApriori : public Printable<ReferenceVmrApriori> {
28 public:
29 
30  ReferenceVmrApriori(const blitz::Array<double, 1>& Model_pressure,
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,
35  const Time& Ref_time,
36  const double Ref_tropopause_altitude,
37  const double Obs_latitude,
38  const Time& Obs_time);
39 
41  const blitz::Array<double, 1> effective_altitude() const;
42  const double age_of_air(const double altitude) const;
43 
44  const blitz::Array<double, 1> resample_to_model_grid(const blitz::Array<double, 1>& vmr) 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;
48 
49  const blitz::Array<double, 1> apriori_vmr(const blitz::Array<double, 1>& vmr, const std::string& gas_name) const;
50 
51  void print(std::ostream& Os) const { Os << "ReferenceVmrApriori"; }
52 
53 private:
54 
55  blitz::Array<double, 1> model_pressure;
56  blitz::Array<double, 1> model_altitude;
57  blitz::Array<double, 1> model_temperature;
58 
59  blitz::Array<double, 1> ref_altitude;
60  double ref_latitude;
61  Time ref_time;
62  double ref_tropopause_altitude;
63 
64  double obs_latitude;
65  Time obs_time;
66 
67 };
68 }
69 
70 #endif
71 
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.
Definition: printable.h:24
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.
Definition: fp_time.h:29
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
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...

Copyright © 2017, California Institute of Technology.
ALL RIGHTS RESERVED.
U.S. Government Sponsorship acknowledged.
Generated Fri Aug 24 2018 15:44:10