9#include "SpecialPixel.h"
10#include "IException.h"
22 PvlGroup &algorithm = pvl.findObject(
"NormalizationModel").findGroup(
"Algorithm", Pvl::Traverse);
32 if(algorithm.hasKeyword(
"Incref")) {
36 if(algorithm.hasKeyword(
"Pharef")) {
42 if(algorithm.hasKeyword(
"Emaref")) {
46 if(algorithm.hasKeyword(
"Incmat")) {
50 if(algorithm.hasKeyword(
"Thresh")) {
54 if(algorithm.hasKeyword(
"Albedo")) {
59 GetPhotoModel()->SetStandardConditions(
true);
61 GetPhotoModel()->SetStandardConditions(
false);
79 double emission,
double demincidence,
double dememission,
80 double dn,
double &albedo,
double &mult,
double &base) {
85 psurf = GetPhotoModel()->CalcSurfAlbedo(phase, demincidence, dememission);
96 QString msg =
"Albedo math divide by zero error";
97 throw IException(IException::Unknown, msg, _FILEINFO_);
119 if(pharef < 0.0 || pharef >= 180.0) {
120 QString msg =
"Invalid value of normalization pharef [" +
122 throw IException(IException::User, msg, _FILEINFO_);
137 if(incref < 0.0 || incref >= 90.0) {
138 QString msg =
"Invalid value of normalization incref [" +
140 throw IException(IException::User, msg, _FILEINFO_);
155 if(emaref < 0.0 || emaref >= 90.0) {
156 QString msg =
"Invalid value of normalization emaref [" +
158 throw IException(IException::User, msg, _FILEINFO_);
170 if(incmat < 0.0 || incmat >= 90.0) {
171 QString msg =
"Invalid value of normalization incmat [" +
173 throw IException(IException::User, msg, _FILEINFO_);
double p_normPharef
The reference phase angle.
void SetNormIncref(const double incref)
Set the normalization function parameter.
Albedo(Pvl &pvl, PhotoModel &pmodel)
Constructs an Albedo object.
double p_normAlbedo
The albedo.
void SetNormThresh(const double thresh)
Set the normalization function parameter.
void SetNormPharef(const double pharef)
Set parameters needed for albedo normalization.
double p_normEmaref
The reference emission angle.
void SetNormIncmat(const double incmat)
Set the normalization function parameter.
virtual void NormModelAlgorithm(double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base)
Performs the normalization.
void SetNormEmaref(const double emaref)
Set the normalization function parameter.
void SetNormAlbedo(const double albedo)
Set the normalization function parameter.
double p_normThresh
Used to amplify variations in the input image.
double p_normIncmat
Incmat.
double p_normIncref
The reference incidence angle.
NormModel(Pvl &pvl, PhotoModel &pmodel)
Create a NormModel object.
This is free and unencumbered software released into the public domain.
QString toString(const LinearAlgebra::Vector &vector, int precision)
A global function to format LinearAlgebra::Vector as a QString with the given precision.