ReFRACtor
gas_vmr_apriori.h
Go to the documentation of this file.
1 #ifndef GAS_VMR_APRIORI_H
2 #define GAS_VMR_APRIORI_H
3 
4 #include <blitz/array.h>
5 
6 #include "meteorology.h"
7 #include "level_1b.h"
8 #include "altitude.h"
9 #include "hdf_file.h"
10 #include "pressure.h"
11 
12 #include "reference_vmr_apriori.h"
13 
14 namespace FullPhysics {
15 
16 /****************************************************************/
28 class GasVmrApriori : public Printable<GasVmrApriori> {
29 public:
31  const boost::shared_ptr<Level1b>& l1b_file,
32  const boost::shared_ptr<Altitude>& alt,
33  const HdfFile& hdf_static_input,
34  const std::string& hdf_group,
35  const std::string& gas_name,
36  const int temp_avg_window = 11);
37 
38  GasVmrApriori(const blitz::Array<double, 1>& pressure_levels,
39  const blitz::Array<double, 1>& temperature_levels,
40  const double& obs_latitude,
41  const Time& obs_time,
42  const boost::shared_ptr<Altitude>& altitude,
43  const HdfFile& reference_file,
44  const std::string& hdf_group,
45  const std::string& gas_name,
46  const int temp_avg_window = 11);
47 
48  const blitz::Array<double, 1> apriori_vmr() const;
49  const blitz::Array<double, 1> apriori_vmr(const Pressure& pressure) const;
50 
51  const boost::shared_ptr<ReferenceVmrApriori> reference() const { return ref_apriori; }
52 
53  const DoubleWithUnit tropopause_altitude() const { return ref_apriori->model_tropopause_altitude(); }
54  const double tropopause_pressure() const;
55 
56  void print(std::ostream& Os) const { Os << "GasVmrApriori"; }
57 
58 private:
59 
60  void initialize(const blitz::Array<double, 1>& pressure_levels,
61  const blitz::Array<double, 1>& temperature_levels,
62  const double& obs_latitude,
63  const Time& obs_time,
64  const boost::shared_ptr<Altitude>& altitude,
65  const HdfFile& reference_file,
66  const std::string& hdf_group,
67  const std::string& gas_name,
68  const int temp_avg_window);
69 
71 
72  blitz::Array<double, 1> model_alt;
73  blitz::Array<double, 1> model_press;
74  blitz::Array<double, 1> ref_vmr;
75 
76  std::string gas_name;
77 };
78 
79 }
80 
81 #endif
const boost::shared_ptr< ReferenceVmrApriori > reference() const
const double tropopause_pressure() const
This is a Mixin for classes that can be printed.
Definition: printable.h:24
This class reads and writes a HDF5 file.
Definition: hdf_file.h:39
Adapts the ReferenceVmrApriori class into a form that is easier to work with in the context of how th...
const DoubleWithUnit tropopause_altitude() const
We frequently have a double with units associated with it.
This class maintains the pressure portion of the state.
Definition: pressure.h:32
void print(std::ostream &Os) const
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
GasVmrApriori(const boost::shared_ptr< Meteorology > &met_file, const boost::shared_ptr< Level1b > &l1b_file, const boost::shared_ptr< Altitude > &alt, const HdfFile &hdf_static_input, const std::string &hdf_group, const std::string &gas_name, const int temp_avg_window=11)
const blitz::Array< double, 1 > apriori_vmr() const

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