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
{
23
NormModel::NormModel
(
Pvl
&pvl,
PhotoModel
&pmodel) {
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
src
base
objs
NormModel
NormModel.cpp