Isis 3 Programmer Reference
Isis::TopoAtm Class Reference

As in the case without an atmosphere, processing proceeds in three steps, a pass 1 PHOTOM followed by a divide filter to is- olate topography from albedo variations followed by a pass 2 PHOTOM. More...

#include <TopoAtm.h>

Inheritance diagram for Isis::TopoAtm:
Inheritance graph
Collaboration diagram for Isis::TopoAtm:
Collaboration graph

Public Member Functions

 TopoAtm (Pvl &pvl, PhotoModel &pmodel, AtmosModel &amodel)
 
std::string AlgorithmName () const
 Return normalization algorithm name. More...
 
void CalcNrmAlbedo (double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base)
 Calculate the albedo normalization. More...
 
void CalcNrmAlbedo (double pha, double inc, double ema, double deminc, double demema, double dn, double &albedo, double &mult, double &base)
 Calculate the normalization albedo using photometric angle information. More...
 
virtual void SetNormWavelength (double wavelength)
 Set the wavelength parameter. More...
 

Protected Member Functions

virtual void NormModelAlgorithm (double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base)
 
virtual void NormModelAlgorithm (double pha, double inc, double ema, double deminc, double demema, double dn, double &albedo, double &mult, double &base)
 
void SetAlgorithmName (std::string name)
 
PhotoModelGetPhotoModel ()
 
AtmosModelGetAtmosModel ()
 

Protected Attributes

double p_normWavelength
 

Private Member Functions

void SetNormPharef (const double pharef)
 Set the normalization function parameter. More...
 
void SetNormIncref (const double incref)
 Set the normalization function parameter. More...
 
void SetNormEmaref (const double emaref)
 Set the normalization function parameter. More...
 
void SetNormAlbedo (const double albedo)
 Set the normalization function parameter. More...
 

Private Attributes

double p_normPharef
 
double p_normIncref
 
double p_normEmaref
 
double p_normAlbedo
 
double p_normAout
 
double p_normBout
 
double p_normRhobar
 
std::string p_normAlgorithmName
 
PhotoModelp_normPM
 
AtmosModelp_normAM
 

Detailed Description

As in the case without an atmosphere, processing proceeds in three steps, a pass 1 PHOTOM followed by a divide filter to is- olate topography from albedo variations followed by a pass 2 PHOTOM.

The first pass is intended to isolate relative albedo from overall photometric shading so that the filter will work as well as possible. The second pass cleans up whatever funny scaling the first pass did and scales the topographic modulation to desired standard conditions; as before these had best not be normal incidence, or the topography will vanish!

Also as in the no-atmosphere case, the albedo mode (with atmosphere this time) is used for the first pass. The reference geometry for this pass is normal incidence with no atmosphere, i.e., INC=EMA=PHASE=TAU=0 The second pass is going to assume implicitly that these reference values were used the first time, freeing the TAE reference parameters to define the conditions of finite incidence and maybe finite optical depth to which the output will be normalized.

Figuring out the scaling that got applied to the topographic modu- lation in pass 1 turns out to be tricky because of the nonlinearity of the equations and the fact that the original DN (which would be recoverable from the atmosphere model immediately after pass 1) is lost after the divide filter. As an approximation, I will require the user to input ALBEDO, which is the average DN in the image after pass 1, a measure of the average value of RHO and, given the norm- alization, the average of the normal albedo in the area.

Rather than do the calculation analytically as I did in my hand- written notes, I evaluate the contrast of unit slope numerically at given albedo or RHO; the first-order dependence on RHO has been divided out so this is inaccurate to second order same as the other derivation but it is a whole lot easier to follow). If it turns out to be desirable, we can define two values of ALBEDO for this program, one describing the input (i.e., giving the albedo for this one image, at which slope normalization is calculated) and the other describing the output (the albedo to be used in simulating the out- put image).

Author
1998-12-21 Randy Kirk
History:
2007-08-15 Steven Lambright Refactored code
History:
2008-06-18 Steven Lambright Fixed ifndef command
History:
2008-11-05 Jeannie Walldren - Modified references to NumericalMethods class.
History:
2009-05-11 Janet Barrett - Fixed so that the NormModelAlgorithm supporting DEM input is the empty function. DEM input is not yet supported.
History:
2010-11-10 Janet Barrett - Added reference parameters for phase and emission so user can specify normalization conditions in initialization
History:
2010-11-30 Janet Barrett - Added the ability to use the photometric angles from the ellipsoid and the DEM

Definition at line 74 of file TopoAtm.h.

Member Function Documentation

◆ AlgorithmName()

std::string Isis::NormModel::AlgorithmName ( ) const
inlineinherited

Return normalization algorithm name.

Definition at line 43 of file NormModel.h.

◆ CalcNrmAlbedo() [1/2]

void Isis::NormModel::CalcNrmAlbedo ( double  pha,
double  inc,
double  ema,
double  deminc,
double  demema,
double  dn,
double &  albedo,
double &  mult,
double &  base 
)
inherited

Calculate the normalization albedo using photometric angle information.

Parameters
phainput phase angle
incinput incidence angle for ellipsoid
emainput emission angle for ellipsoid
demincinput incidence angle for dem
dememainput emission angle for dem
dninput albedo value

Definition at line 89 of file NormModel.cpp.

◆ CalcNrmAlbedo() [2/2]

void Isis::NormModel::CalcNrmAlbedo ( double  pha,
double  inc,
double  ema,
double  dn,
double &  albedo,
double &  mult,
double &  base 
)
inherited

Calculate the albedo normalization.

Calculate the normalization albedo using photometric angle information.

Parameters
phainput phase angle
incinput incidence angle
emainput emission angle
dninput albedo value

Definition at line 64 of file NormModel.cpp.

Referenced by Isis::Photometry::Compute().

◆ SetNormAlbedo()

void Isis::TopoAtm::SetNormAlbedo ( const double  albedo)
private

Set the normalization function parameter.

To construct mosaics, the same value of albedo should be used for all images to achieve a uniform result.

Parameters
albedoNormalization function parameter, default is 0.0690507

Definition at line 225 of file TopoAtm.cpp.

◆ SetNormEmaref()

void Isis::TopoAtm::SetNormEmaref ( const double  emaref)
private

Set the normalization function parameter.

This is the reference emission angle to which the image photometry will be normalized. This parameter is limited to values that are >=0 and <90.

Parameters
emarefNormalization function parameter, default is 0.0

Definition at line 208 of file TopoAtm.cpp.

References Isis::IException::User.

◆ SetNormIncref()

void Isis::TopoAtm::SetNormIncref ( const double  incref)
private

Set the normalization function parameter.

This is the reference incidence angle to which the image photometry will be normalized. This parameter is limited to values that are >=0 and <90.

Parameters
increfNormalization function parameter, default is 0.0

Definition at line 190 of file TopoAtm.cpp.

References Isis::IException::User.

◆ SetNormPharef()

void Isis::TopoAtm::SetNormPharef ( const double  pharef)
private

Set the normalization function parameter.

This is the reference phase angle to which the image photometry will be normalized. This parameter is limited to values that are >=0 and <180.

Parameters
pharefNormalization function parameter, default is 0.0

Definition at line 172 of file TopoAtm.cpp.

References Isis::IException::User.

◆ SetNormWavelength()

void Isis::NormModel::SetNormWavelength ( double  wavelength)
virtualinherited

Set the wavelength parameter.

This value is obtained from the BandBin Center keyword of the image. This must be set by the application.

Definition at line 51 of file NormModel.cpp.

Referenced by Isis::Photometry::SetPhotomWl().


The documentation for this class was generated from the following files: