ReFRACtor
merra_aerosol.h
Go to the documentation of this file.
1 #ifndef MERRA_AEROSOL_H
2 #define MERRA_AEROSOL_H
3 #include "aerosol.h"
4 #include "aerosol_extinction.h"
5 #include "aerosol_property.h"
6 #include "hdf_file.h"
7 #include "pressure.h"
9 
10 namespace FullPhysics {
11 /****************************************************************/
15 class MerraAerosol: public Printable<MerraAerosol> {
16 public:
17  MerraAerosol(const HdfFile& Merra_climatology,
18  const HdfFile& Aerosol_property,
19  DoubleWithUnit Latitude, DoubleWithUnit Longitude,
20  const boost::shared_ptr<Pressure> &Press,
22  const blitz::Array<double, 2>& Aerosol_cov,
23  double Max_aod = 0.2,
24  double Exp_aod = 0.8,
25  int Min_types = 2,
26  int Max_types = 4,
27  bool Linear_aod = false,
28  bool Relative_humidity_aerosol = false,
29  double Max_residual = 0.005,
30  double Reference_wn=1e4/0.755);
31  virtual ~MerraAerosol() {}
36 
37 //-----------------------------------------------------------------------
39 //-----------------------------------------------------------------------
40 
42 
43 //-----------------------------------------------------------------------
45 //-----------------------------------------------------------------------
46 
47  int number_merra_particle() const {return number_merra_particle_;}
48 
49  virtual void print(std::ostream& Os) const;
50 private:
51  mutable boost::shared_ptr<Aerosol> aerosol_;
52  bool linear_aod, rh_aerosol;
53  int number_merra_particle_;
54  std::vector<boost::shared_ptr<AerosolExtinction> > aext;
55  std::vector<boost::shared_ptr<AerosolProperty> > aprop;
59  double ref_wn;
60  std::string merra_fname, prop_fname;
61  DoubleWithUnit lat, lon;
62  int file_index(const HdfFile& Merra_climatology,
63  const std::string& Field_name,
64  DoubleWithUnit& V, bool Wrap_around = false);
65 };
66 }
67 #endif
boost::shared_ptr< InitialGuessBuilder > initial_guess() const
Return IntitialGuessBuilder for the Aerosol.
Definition: merra_aerosol.h:41
This class is used to create the Aerosol from a Merra climatology file.
Definition: merra_aerosol.h:15
void add_aerosol(const boost::shared_ptr< AerosolExtinction > &Aext, const boost::shared_ptr< AerosolProperty > &Aprop, const boost::shared_ptr< InitialGuessBuilder > &Ig)
Add in an aerosol that comes from some source other than Dijian&#39;s files (e.g., hardcoded aerosols to ...
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
MerraAerosol(const HdfFile &Merra_climatology, const HdfFile &Aerosol_property, DoubleWithUnit Latitude, DoubleWithUnit Longitude, const boost::shared_ptr< Pressure > &Press, const boost::shared_ptr< RelativeHumidity > &Rh, const blitz::Array< double, 2 > &Aerosol_cov, double Max_aod=0.2, double Exp_aod=0.8, int Min_types=2, int Max_types=4, bool Linear_aod=false, bool Relative_humidity_aerosol=false, double Max_residual=0.005, double Reference_wn=1e4/0.755)
Constructor.
boost::shared_ptr< Aerosol > aerosol() const
Return the aerosol setup generated from this class.
We frequently have a double with units associated with it.
Contains classes to abstract away details in various Spurr Radiative Transfer software.
Definition: doxygen_python.h:1
virtual void print(std::ostream &Os) const
Print to stream.
int number_merra_particle() const
Number of merra particles.
Definition: merra_aerosol.h:47

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