Isis Developer 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>
Public Member Functions | |
TopoAtm (Pvl &pvl, PhotoModel &pmodel, AtmosModel &amodel) | |
virtual | ~TopoAtm () |
std::string | AlgorithmName () const |
Return normalization algorithm name. | |
void | CalcNrmAlbedo (double pha, double inc, double ema, double dn, double &albedo, double &mult, double &base) |
Calculate the albedo normalization. | |
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. | |
virtual void | SetNormWavelength (double wavelength) |
Set the wavelength parameter. | |
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) |
PhotoModel * | GetPhotoModel () |
AtmosModel * | GetAtmosModel () |
Protected Attributes | |
double | p_normWavelength |
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).
Isis::TopoAtm::TopoAtm | ( | Pvl & | pvl, |
PhotoModel & | pmodel, | ||
AtmosModel & | amodel ) |
References _FILEINFO_, Isis::AtmosModel::AtmosAb(), Isis::AtmosModel::AtmosAhSpline(), Isis::AtmosModel::CalcAtmEffect(), Isis::PhotoModel::CalcSurfAlbedo(), Isis::NumericalApproximation::Extrapolate, Isis::AtmosModel::GenerateAhTable(), Isis::NormModel::GetAtmosModel(), Isis::NormModel::GetPhotoModel(), Isis::PvlContainer::hasKeyword(), Isis::PhotoModel::PhtTopder(), Isis::PI, Isis::AtmosModel::SetStandardConditions(), Isis::PhotoModel::SetStandardConditions(), Isis::PvlObject::Traverse, and Isis::IException::Unknown.
|
inlinevirtual |
|
inlineinherited |
Return normalization algorithm name.
|
inherited |
Calculate the normalization albedo using photometric angle information.
pha | input phase angle |
inc | input incidence angle for ellipsoid |
ema | input emission angle for ellipsoid |
deminc | input incidence angle for dem |
demema | input emission angle for dem |
dn | input albedo value |
References Isis::NormModel::NormModelAlgorithm().
|
inherited |
Calculate the albedo normalization.
Calculate the normalization albedo using photometric angle information.
pha | input phase angle |
inc | input incidence angle |
ema | input emission angle |
dn | input albedo value |
References Isis::NormModel::NormModelAlgorithm().
Referenced by Isis::Photometry::Compute(), and Isis::Photometry::Compute().
|
inlineprotectedinherited |
|
inlineprotectedinherited |
Referenced by Isis::Albedo::Albedo(), Isis::AlbedoAtm::AlbedoAtm(), Isis::Mixed::Mixed(), Isis::Albedo::NormModelAlgorithm(), Isis::AlbedoAtm::NormModelAlgorithm(), Isis::Mixed::NormModelAlgorithm(), Isis::MoonAlbedo::NormModelAlgorithm(), Isis::NoNormalization::NormModelAlgorithm(), Isis::Shade::NormModelAlgorithm(), Isis::ShadeAtm::NormModelAlgorithm(), Isis::Topo::NormModelAlgorithm(), NormModelAlgorithm(), and TopoAtm().
|
protectedvirtual |
Implements Isis::NormModel.
References Isis::AtmosModel::AtmosAb(), Isis::AtmosModel::AtmosAhSpline(), Isis::AtmosModel::CalcAtmEffect(), Isis::PhotoModel::CalcSurfAlbedo(), Isis::NumericalApproximation::Extrapolate, Isis::NormModel::GetAtmosModel(), Isis::NormModel::GetPhotoModel(), Isis::PhotoModel::PhtTopder(), and Isis::PI.
|
inlineprotectedvirtual |
Implements Isis::NormModel.
|
inlineprotectedinherited |
|
virtualinherited |
Set the wavelength parameter.
This value is obtained from the BandBin Center keyword of the image. This must be set by the application.
References Isis::NormModel::p_normWavelength.
Referenced by Isis::Photometry::SetPhotomWl().
|
protectedinherited |