12#include "PhotoModel.h" 
   13#include "NumericalApproximation.h" 
   14#include "NumericalAtmosApprox.h" 
   68      static double Ei(
double x);
 
   69      static double En(
unsigned int n, 
double x);
 
   71      void CalcAtmEffect(
double pha, 
double inc, 
double ema, 
double *pstd,
 
   72                         double *trans, 
double *trans0, 
double *sbar, 
double *transs);
 
  101        return p_atmosAlgorithmName;
 
 
  132        return p_atmosTauref;
 
 
  136        return p_atmosNulneg;
 
 
  144        return p_atmosHahgsb;
 
 
  157        return p_atmosIncTable;
 
 
  161        return p_atmosAhTable;
 
 
  165        return p_atmosHahgtTable;
 
 
  169        return p_atmosHahgt0Table;
 
 
  216      virtual void AtmosModelAlgorithm(
double phase, 
double incidence, 
double emission) = 0;
 
  218      void SetAlgorithmName(
string name) {
 
  219        p_atmosAlgorithmName = name;
 
  222        p_atmosNulneg = nulneg;
 
  230      void SetOldTau(
double tau) {
 
  233      void SetOldWha(
double wha) {
 
  237      PhotoModel *GetPhotoModel()
 const {
 
  240      bool StandardConditions()
 const {
 
  241        return p_standardConditions;
 
  244      double Eulgam()
 const {
 
  245        return p_atmosEulgam;
 
  248      int p_atmosAtmSwitch;
 
  252      double p_atmosBhasave;
 
  253      double p_atmosHgasave;
 
  254      double p_atmosTauref;
 
  255      double p_atmosTausave;
 
  256      double p_atmosWhasave;
 
  270      vector <double> p_atmosIncTable;
 
  271      vector <double> p_atmosAhTable;
 
  272      double p_atmosHahgsb;
 
  273      vector <double> p_atmosHahgtTable;
 
  274      vector <double> p_atmosHahgt0Table;
 
  279      double p_atmosCosphi;
 
  280      double p_atmosEulgam;
 
  290      bool p_standardConditions;
 
  292      string p_atmosAlgorithmName;
 
  298      double p_atmosTauold;
 
  299      double p_atmosWhaold;
 
  300      friend class NumericalAtmosApprox;
 
 
double p_trans
Transmission of surface reflected light through the atmosphere overall.
 
static double En(unsigned int n, double x)
This routine evaluates the generalized exponential integral, En(x).
 
void SetAtmosHga(const double hga)
Set the Hapke atmospheric function parameter.
 
double p_atmosHnorm
Atmospheric shell thickness normalized to planet radius.
 
NumericalApproximation AtmosHahgtSpline()
If GenerateHahgTables() has been called this returns a clamped cubic spline of the data set (p_atmosI...
 
double AtmosHahgsb() const
Return atmospheric Hahgsb value.
 
double p_sbar
Illumination of the ground by the sky.
 
NumericalApproximation AtmosHahgt0Spline()
If GenerateHahgTables() has been called this returns a clamped cubic spline of the data set (p_atmosI...
 
bool p_atmosEstTau
Estimate optical depth tau using shadows.
 
vector< double > AtmosHahgt0Table()
Return atmospheric Hahgt0Table value.
 
void SetAtmosInc(const double inc)
Set the incidence angle.
 
double AtmosHnorm() const
Return atmospheric Hnorm value.
 
void SetAtmosEstTau(const string esttau)
Estimate the optical depth tau using shadows.
 
NumericalApproximation p_atmosAhSpline
Spline object for the atmospheric Ah Table. Properties are set in GenerateAhTable().
 
double AtmosBha() const
Return atmospheric Bha value.
 
double AtmosTau() const
Return atmospheric Tau value.
 
static double G11Prime(double tau)
Perform Chandra and Van de Hulst's series approximation for the g'11 function needed in second order ...
 
vector< double > AtmosIncTable()
Return atmospheric IncTable value.
 
double AtmosMunot() const
Return atmospheric Munot value.
 
void SetAtmosWha(const double wha)
Set the Atmospheric function parameter.
 
bool p_atmosAddOffset
Allow additive offset in fit.
 
void SetAtmosTau(const double tau)
Set the Atmospheric function parameter.
 
void SetAtmosBha(const double bha)
Set the Anisotropic Atmospheric function parameter.
 
double p_transs
Transmission of light that must be subtracted from the flat surface model to get the shadow model.
 
NumericalApproximation AtmosAhSpline()
If GenerateAhTable() has been called this returns a clamped cubic spline of the data set (p_atmosIncT...
 
NumericalApproximation p_atmosHahgt0Spline
Spline object for the atmospheric Hahg0 Table. Properties are set in GenerateHahgTables().
 
static double Ei(double x)
This routine computes the exponential integral, Ei(x).
 
void SetAtmosIord(const string offset)
Set additive offset in fit.
 
double AtmosTauref() const
Return atmospheric Tauref value.
 
double AtmosAb() const
Return atmospheric Ab value.
 
void GenerateAhTable()
This method computes the values of the atmospheric Ah table and sets the properties of the atmospheri...
 
void SetAtmosHnorm(const double hnorm)
Set the Atmospheric function parameter.
 
void SetAtmosAtmSwitch(const int atmswitch)
Set the switch that controls the function that will be integrated.
 
vector< double > AtmosAhTable()
Return atmospheric AhTable value.
 
virtual void SetStandardConditions(bool standard)
Used to calculate atmosphere at standard conditions.
 
void GenerateHahgTablesShadow()
This method is a modified version of the GenerateHahgTables method and is used solely for shadow mode...
 
AtmosModel(Pvl &pvl, PhotoModel &pmodel)
Create an AtmosModel object.
 
double p_pstd
Pure atmospheric-scattering term.
 
void SetAtmosPhi(const double phi)
Set the azimuth angle.
 
vector< double > AtmosHahgtTable()
Return atmospheric HahgtTable value.
 
void SetAtmosNulneg(const string nulneg)
Set the Atmospheric function parameter.
 
double p_trans0
Transmission of surface reflected light through the atmosphere with no scatterings in the atmosphere.
 
void CalcAtmEffect(double pha, double inc, double ema, double *pstd, double *trans, double *trans0, double *sbar, double *transs)
Calculate the atmospheric scattering effect using photometric angle information.
 
bool AtmosAdditiveOffset() const
Allow additive offset in fit?
 
NumericalApproximation p_atmosHahgtSpline
Spline object for the atmospheric Hahg Table. Properties are set in GenerateHahgTables().
 
int AtmosNinc() const
Return atmospheric Ninc value.
 
double AtmosWha() const
Return atmospheric Wha value.
 
bool AtmosNulneg() const
Return atmospheric Nulneg value.
 
void GenerateHahgTables()
This method computes the values of the atmospheric Hahg and Hahg0 tables and sets the properties of t...
 
virtual ~AtmosModel()
Empty destructor.
 
string AlgorithmName() const
Return atmospheric algorithm name.
 
double AtmosHga() const
Return atmospheric Hga value.
 
void SetAtmosTauref(const double tauref)
Set the Atmospheric function parameter.
 
bool TauOrWhaChanged() const
Checks whether tau or wha have changed.
 
NumericalApproximation provides various numerical analysis methods of interpolation,...
 
Container for cube-like labels.
 
This is free and unencumbered software released into the public domain.
 
Namespace for the standard library.