Isis 3 Programmer Reference
NormModel.cpp
1 
6 /* SPDX-License-Identifier: CC0-1.0 */
7 #include "Pvl.h"
8 #include "NormModel.h"
9 #include "PhotoModel.h"
10 #include "AtmosModel.h"
11 #include "IException.h"
12 
13 namespace Isis {
24  p_normAlgorithmName = "Unknown";
25  p_normPM = &pmodel;
26  p_normAM = NULL;
27  p_normWavelength = 1.0;
28  }
29 
39  NormModel::NormModel(Pvl &pvl, PhotoModel &pmodel, AtmosModel &amodel) {
40  p_normAlgorithmName = "Unknown";
41  p_normPM = &pmodel;
42  p_normAM = &amodel;
43  p_normWavelength = 1.0;
44  }
45 
51  void NormModel::SetNormWavelength(double wavelength) {
52  p_normWavelength = wavelength;
53  }
54 
64  void NormModel::CalcNrmAlbedo(double pha, double inc, double ema, double dn,
65  double &albedo, double &mult, double &base) {
66 
67  // Check validity of photometric angles
68  //if (pha > 180.0 || inc > 90.0 || ema > 90.0 || pha < 0.0 ||
69  // inc < 0.0 || ema < 0.0) {
70  // std::string msg = "Invalid photometric angles";
71  // throw iException::Message(iException::Programmer,msg,_FILEINFO_);
72  //}
73 
74  // Perform normalization
75  NormModelAlgorithm(pha, inc, ema, dn, albedo, mult, base);
76  }
77 
89  void NormModel::CalcNrmAlbedo(double pha, double inc, double ema,
90  double deminc, double demema, double dn, double &albedo,
91  double &mult, double &base) {
92 
93  // Check validity of photometric angles
94  //if (pha > 180.0 || inc > 90.0 || ema > 90.0 || pha < 0.0 ||
95  // inc < 0.0 || ema < 0.0) {
96  // std::string msg = "Invalid photometric angles";
97  // throw iException::Message(iException::Programmer,msg,_FILEINFO_);
98  //}
99 
100  // Perform normalization
101  NormModelAlgorithm(pha, inc, ema, deminc, demema, dn, albedo, mult, base);
102  }
103 }
Isis::PhotoModel
Definition: PhotoModel.h:41
Isis::AtmosModel
Isotropic atmos scattering model.
Definition: AtmosModel.h:60
Isis::Pvl
Container for cube-like labels.
Definition: Pvl.h:119
Isis::NormModel::NormModel
NormModel(Pvl &pvl, PhotoModel &pmodel)
Create a NormModel object.
Definition: NormModel.cpp:23
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::NormModel::SetNormWavelength
virtual void SetNormWavelength(double wavelength)
Set the wavelength parameter.
Definition: NormModel.cpp:51