Isis Developer Reference
Photometry.h
Go to the documentation of this file.
1 #ifndef Photometry_h
2 #define Photometry_h
3 
8 /* SPDX-License-Identifier: CC0-1.0 */
9 
10 #include <string>
11 #include <vector>
12 #include <gsl/gsl_errno.h>
13 #include <gsl/gsl_math.h>
14 #include <gsl/gsl_min.h>
15 #include <gsl/gsl_roots.h>
16 
17 namespace Isis {
18  class Pvl;
19  class PhotoModel;
20  class AtmosModel;
21  class NormModel;
35  class Photometry {
36  public:
37  Photometry(Pvl &pvl);
38  Photometry() {};
39  virtual ~Photometry();
40 
42  void Compute(double pha, double inc, double ema, double dn,
43  double &albedo, double &mult, double &base);
44  void Compute(double pha, double inc, double ema, double deminc,
45  double demema, double dn, double &albedo,
46  double &mult, double &base);
47 
49  virtual void SetPhotomWl(double wl);
50 
53  static void minbracket(double &xa, double &xb, double &xc, double &fa,
54  double &fb, double &fc, double Func(double par, void *params),
55  void *params);
56 
58  static int brentminimizer(double x_lower, double x_upper, gsl_function *Func,
59  double & x_minimum, double tolerance);
60 
63  static int brentsolver(double x_lo, double x_hi, gsl_function *Func, double tolerance, double &root);
64 
66  return p_phtPmodel;
67  }
68 
70  return p_phtAmodel;
71  }
72 
74  return p_phtNmodel;
75  }
76 
77  protected:
81  };
82 };
83 
84 #endif
FileName.h
Isis::Photometry::GetAtmosModel
AtmosModel * GetAtmosModel() const
Definition: Photometry.h:69
Plugin.h
Isis::PhotoModel
Definition: PhotoModel.h:41
Isis::AtmosModelFactory::Create
static AtmosModel * Create(Pvl &pvl, PhotoModel &pmodel)
Create an AtmosModel object using a PVL specification.
Definition: AtmosModelFactory.cpp:44
AtmosModel.h
Isis::Photometry::p_phtAmodel
AtmosModel * p_phtAmodel
Definition: Photometry.h:78
PhotoModel.h
Photometry.h
Isis::Photometry::Photometry
Photometry()
Definition: Photometry.h:38
Isis::Photometry::~Photometry
virtual ~Photometry()
Destroy Photometry object.
Definition: Photometry.cpp:51
Isis::Photometry::SetPhotomWl
virtual void SetPhotomWl(double wl)
Set the wavelength.
Definition: Photometry.cpp:73
Isis::AtmosModel
Isotropic atmos scattering model.
Definition: AtmosModel.h:60
Isis::Photometry::minbracket
static void minbracket(double &xa, double &xb, double &xc, double &fa, double &fb, double &fc, double Func(double par, void *params), void *params)
Double precision version of bracketing algorithm ported from Python. Solution bracketing for 1-D mini...
Definition: Photometry.cpp:213
Isis::Photometry::Compute
void Compute(double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base)
Calculate the surface brightness.
Definition: Photometry.cpp:83
Isis::Pvl
Container for cube-like labels.
Definition: Pvl.h:119
Isis::NormModelFactory::Create
static NormModel * Create(Pvl &pvl, PhotoModel &pmodel)
Create a NormModel object using a PVL specification.
Definition: NormModelFactory.cpp:36
Isis::Photometry
Definition: Photometry.h:35
NormModelFactory.h
IString.h
Isis::Photometry::GetPhotoModel
PhotoModel * GetPhotoModel() const
Definition: Photometry.h:65
Isis::NormModel
Definition: NormModel.h:36
Isis::Photometry::brentminimizer
static int brentminimizer(double x_lower, double x_upper, gsl_function *Func, double &x_minimum, double tolerance)
Brent's method 1-D minimization routine using GSL's r8Brent minimization Algorithm.
Definition: Photometry.cpp:174
Pvl.h
_FILEINFO_
#define _FILEINFO_
Macro for the filename and line number.
Definition: IException.h:24
Isis::PhotoModelFactory::Create
static PhotoModel * Create(Pvl &pvl)
Create a PhotoModel object using a PVL specification.
Definition: PhotoModelFactory.cpp:35
PhotoModelFactory.h
AtmosModelFactory.h
NormModel.h
Isis::IException
Isis exception class.
Definition: IException.h:91
Isis::PvlObject::hasObject
bool hasObject(const QString &name) const
Returns a boolean value based on whether the object exists in the current PvlObject or not.
Definition: PvlObject.h:323
Isis::Photometry::p_phtNmodel
NormModel * p_phtNmodel
Definition: Photometry.h:80
IException.h
Isis::Photometry::p_phtPmodel
PhotoModel * p_phtPmodel
Definition: Photometry.h:79
Isis::Photometry::GetNormModel
NormModel * GetNormModel() const
Definition: Photometry.h:73
Isis::IString
Adds specific functionality to C++ strings.
Definition: IString.h:165
Isis::Photometry::brentsolver
static int brentsolver(double x_lo, double x_hi, gsl_function *Func, double tolerance, double &root)
GSL's the Brent-Dekker method (Brent's method) combines an interpolation strategy with the bisection ...
Definition: Photometry.cpp:131
Isis::NormModel::CalcNrmAlbedo
void CalcNrmAlbedo(double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base)
Calculate the albedo normalization.
Definition: NormModel.cpp:64
Isis
This is free and unencumbered software released into the public domain.
Definition: Apollo.h:16
Isis::IException::User
@ User
A type of error that could only have occurred due to a mistake on the user's part (e....
Definition: IException.h:126
Isis::NormModel::SetNormWavelength
virtual void SetNormWavelength(double wavelength)
Set the wavelength parameter.
Definition: NormModel.cpp:51