Isis Developer Reference
HapkeAtm1.h
Go to the documentation of this file.
1 #if !defined(HapkeAtm1_h)
2 #define HapkeAtm1_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */
9 
10 #include "AtmosModel.h"
11 
12 namespace Isis {
13  class Pvl;
14 
40  class HapkeAtm1 : public AtmosModel {
41  public:
42  HapkeAtm1(Pvl &pvl, PhotoModel &pmodel);
43  virtual ~HapkeAtm1() {};
44 
45  protected:
46  virtual void AtmosModelAlgorithm(double phase, double incidence, double emission);
47 
48  private:
49  double p_e2, p_e3, p_e4, p_e5;
50 
51  double p_x0, p_y0;
52  double p_wha2;
53  double p_alpha0, p_alpha1, p_alpha2;
54  double p_beta0, p_beta1, p_beta2;
55  double p_delta;
56  double p_fixcon;
57  double p_gammax, p_gammay;
58  };
59 };
60 
61 #endif
Isis::NumericalAtmosApprox::IntegFunc
IntegFunc
This enum defines function to be integrated by Romberg's method.
Definition: NumericalAtmosApprox.h:43
Isis::AtmosModel::p_atmosHga
double p_atmosHga
Definition: AtmosModel.h:263
Isis::NumericalApproximation::Extrapolate
@ Extrapolate
Evaluate() attempts to extrapolate if a is outside of the domain. This is only valid for NumericalApp...
Definition: NumericalApproximation.h:814
Isis::AtmosModel::AtmosWha
double AtmosWha() const
Return atmospheric Wha value.
Definition: AtmosModel.h:123
Isis::AtmosModel::TauOrWhaChanged
bool TauOrWhaChanged() const
Checks whether tau or wha have changed.
Definition: AtmosModel.cpp:954
Isis::HapkeAtm1::~HapkeAtm1
virtual ~HapkeAtm1()
Definition: HapkeAtm1.h:43
Isis::HapkeAtm1::HapkeAtm1
HapkeAtm1(Pvl &pvl, PhotoModel &pmodel)
Definition: HapkeAtm1.cpp:20
Isis::PhotoModel
Definition: PhotoModel.h:41
Isis::PI
const double PI
The mathematical constant PI.
Definition: Constants.h:40
Isis::AtmosModel::p_pstd
double p_pstd
Pure atmospheric-scattering term.
Definition: AtmosModel.h:258
AtmosModel.h
Isis::HapkeAtm1
Implements the Hapke Atmospheric Model.
Definition: HapkeAtm1.h:40
Isis::AtmosModel::En
static double En(unsigned int n, double x)
This routine evaluates the generalized exponential integral, En(x).
Definition: AtmosModel.cpp:370
PvlGroup.h
Isis::NumericalAtmosApprox
This class extends Isis::NumericalApproximation.
Definition: NumericalAtmosApprox.h:32
Isis::AtmosModel
Isotropic atmos scattering model.
Definition: AtmosModel.h:60
Isis::Pvl
Container for cube-like labels.
Definition: Pvl.h:119
Isis::AtmosModel::p_atmosAtmSwitch
int p_atmosAtmSwitch
Definition: AtmosModel.h:248
Isis::AtmosModel::p_atmosMunot
double p_atmosMunot
Definition: AtmosModel.h:277
NumericalApproximation.h
Isis::AtmosModel::p_atmosInc
double p_atmosInc
Definition: AtmosModel.h:275
IString.h
Isis::AtmosModel::p_trans
double p_trans
Transmission of surface reflected light through the atmosphere overall.
Definition: AtmosModel.h:259
Isis::AtmosModel::p_atmosEstTau
bool p_atmosEstTau
Estimate optical depth tau using shadows.
Definition: AtmosModel.h:269
Isis::AtmosModel::p_atmosSini
double p_atmosSini
Definition: AtmosModel.h:278
Isis::AtmosModel::p_atmosHahgsb
double p_atmosHahgsb
Definition: AtmosModel.h:272
Pvl.h
HapkeAtm1Plugin
Isis::AtmosModel * HapkeAtm1Plugin(Isis::Pvl &pvl, Isis::PhotoModel &pmodel)
Definition: HapkeAtm1.cpp:279
Isis::AtmosModel::GenerateHahgTables
void GenerateHahgTables()
This method computes the values of the atmospheric Hahg and Hahg0 tables and sets the properties of t...
Definition: AtmosModel.cpp:637
Isis::HapkeAtm1::AtmosModelAlgorithm
virtual void AtmosModelAlgorithm(double phase, double incidence, double emission)
Henyey-Greenstein atmos scattering in the 1st approximation.
Definition: HapkeAtm1.cpp:63
Isis::AtmosModel::p_transs
double p_transs
Transmission of light that must be subtracted from the flat surface model to get the shadow model.
Definition: AtmosModel.h:261
Isis::AtmosModel::p_atmosHahgtSpline
NumericalApproximation p_atmosHahgtSpline
Spline object for the atmospheric Hahg Table. Properties are set in GenerateHahgTables().
Definition: AtmosModel.h:285
Isis::AtmosModel::p_atmosTau
double p_atmosTau
Definition: AtmosModel.h:264
Isis::AtmosModel::p_atmosHnorm
double p_atmosHnorm
Atmospheric shell thickness normalized to planet radius.
Definition: AtmosModel.h:267
IException.h
Isis::AtmosModel::p_atmosHahgt0Spline
NumericalApproximation p_atmosHahgt0Spline
Spline object for the atmospheric Hahg0 Table. Properties are set in GenerateHahgTables().
Definition: AtmosModel.h:287
Isis::AtmosModel::GenerateHahgTablesShadow
void GenerateHahgTablesShadow()
This method is a modified version of the GenerateHahgTables method and is used solely for shadow mode...
Definition: AtmosModel.cpp:726
Isis::AtmosModel::SetOldTau
void SetOldTau(double tau)
Definition: AtmosModel.h:230
Isis::AtmosModel::SetOldWha
void SetOldWha(double wha)
Definition: AtmosModel.h:233
Isis::NumericalApproximation::Evaluate
double Evaluate(const double a, const ExtrapType &etype=ThrowError)
Calculates interpolated or extrapolated value of tabulated data set for given domain value.
Definition: NumericalApproximation.cpp:836
Isis::AtmosModel::p_sbar
double p_sbar
Illumination of the ground by the sky.
Definition: AtmosModel.h:262
Constants.h
Isis::AtmosModel::p_atmosWha
double p_atmosWha
Definition: AtmosModel.h:265
Isis::AtmosModel::p_trans0
double p_trans0
Transmission of surface reflected light through the atmosphere with no scatterings in the atmosphere.
Definition: AtmosModel.h:260
Isis::NumericalAtmosApprox::RombergsMethod
double RombergsMethod(AtmosModel *am, IntegFunc sub, double a, double b)
This variation on the NumericalApproximation method integrates a specified AtmosModel function rather...
Definition: NumericalAtmosApprox.cpp:52
HapkeAtm1.h
Isis::NumericalApproximation::Reset
void Reset()
Resets the state of the object.
Definition: NumericalApproximation.cpp:2251
Isis::NumericalAtmosApprox::OuterFunction
@ OuterFunction
Indicates that Romberg's method will integrate the function OutrFunc2Bint()
Definition: NumericalAtmosApprox.h:43
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16