Isis Developer Reference
|
#include <HiEqualization.h>
Classes | |
class | HiCalculateFunctor |
Public Member Functions | |
HiEqualization (QString fromListName) | |
virtual | ~HiEqualization () |
void | calculateStatistics () |
void | addHolds (QString holdListName) |
Adds a list of images to be held in the equalization. More... | |
void | calculateStatistics (double samplingPercent, int mincnt, bool wtopt, LeastSquares::SolveMethod methodType) |
Calculates the image and overlap statistics, and then determines corrective factors if possible. More... | |
void | recalculateStatistics (QString inStatsFileName) |
Recalculates statistics for any new input images. More... | |
void | importStatistics (QString instatsFileName) |
Imports statistics for applying correction. More... | |
void | applyCorrection (QString toListName) |
Equalizes the input images. More... | |
PvlGroup | getResults () |
Returns general information about the equalization. More... | |
void | write (QString outstatsFileName) |
Write the equalization information (results) to a file. More... | |
double | evaluate (double dn, int imageIndex, int bandIndex) const |
Protected Member Functions | |
virtual void | fillOutList (FileList &outList, QString toListName) |
virtual void | errorCheck (QString fromListName) |
Checks that the input images have the same mapping groups and same number of bands. More... | |
void | loadInputs (QString fromListName) |
Loads in the input images. More... | |
void | setInput (int index, QString value) |
const FileList & | getInputs () const |
void | calculateBandStatistics () |
Calculates the image statistics on a band-by-band basis. More... | |
void | calculateOverlapStatistics () |
Calculates the overlap statistics for each pair of input images. More... | |
void | generateOutputs (FileList &outList) |
Generates the names of the equalized cubes if no output list is provided. More... | |
void | loadOutputs (FileList &outList, QString toListName) |
Checks that the output image list is correct. More... | |
void | loadHolds (OverlapNormalization *oNorm) |
void | setResults () |
Creates the results pvl containing statistics and corrective factors. More... | |
void | clearAdjustments () |
Frees image adjustments. More... | |
void | addAdjustment (ImageAdjustment *adjustment) |
Adds an image adjustment. More... | |
void | clearNormalizations () |
Frees overlap normalizations. More... | |
void | clearOverlapStatistics () |
Frees overlap statistics. More... | |
void | addValid (int count) |
Increments the number of valid overlaps by a given amount. More... | |
void | addInvalid (int count) |
Increments the number of invalid overlaps by a given amount. More... | |
void | fromPvl (const PvlObject &inStats) |
Loads a previous Equalization state from an input pvl object. More... | |
void | setSolved (bool solved) |
Sets solved state indicating if OverlapNormalizations (corrective factors) were solved. More... | |
bool | isSolved () const |
Indicates if the corrective factors were solved. More... | |
Isis::HiEqualization::HiEqualization | ( | QString | fromListName | ) |
References Isis::Equalization::loadInputs().
|
virtual |
|
protectedinherited |
Adds an image adjustment.
This method adds an image adjustment to be used for equalizing.
adjustment | - ImageAdjustment pointer to add. |
Referenced by calculateStatistics().
|
inherited |
Adds a list of images to be held in the equalization.
holdListName | Name of the file containing a list of images to hold. |
IException::User | "The list of identifiers to be held must be less than or equal to the total number of identifiers." |
IException::User | "The hold list file does not match a file in the from list" |
References _FILEINFO_, and Isis::FileList::read().
|
protectedinherited |
Increments the number of invalid overlaps by a given amount.
count | An integer value to increment the internally stored number of invalid overlaps |
|
protectedinherited |
Increments the number of valid overlaps by a given amount.
count | An integer value to increment the internally stored number of valid overlaps |
Referenced by calculateStatistics().
|
inherited |
Equalizes the input images.
This method applies corretive factors to the input images, thereby equalizing them.
toListName | (Default value is "") List of cube names to save the equalized images as |
IException::User | "Corrective factors have not yet been determined. Fix any " "non-overlapping images and recalculate the image statistics." |
References _FILEINFO_, Isis::Cube::bandCount(), Isis::ProcessByBrick::EndProcess(), Isis::Cube::lineCount(), Isis::ProcessByLine::ProcessCube(), Isis::Process::Progress(), Isis::Cube::sampleCount(), Isis::ProcessByLine::SetInputCube(), Isis::ProcessByBrick::SetOutputCube(), Isis::Progress::SetText(), and Isis::toString().
|
protectedinherited |
Calculates the image statistics on a band-by-band basis.
This method calculates statistics by band for the input images. Each set of band statistics is used to initialize the OverlapNormalizations that will be used to determine gains and offsets for equalization.
References Isis::ProcessByBrick::EndProcess(), Isis::ProcessByLine::ProcessCubeInPlace(), Isis::Process::Progress(), Isis::ProcessByLine::SetInputCube(), Isis::Progress::SetText(), and Isis::toString().
|
protectedinherited |
Calculates the overlap statistics for each pair of input images.
This method calculates any overlap statistics that have not been previously calculated for the input images.
References Isis::OverlapStatistics::GetMStats(), Isis::OverlapStatistics::HasOverlap(), Isis::Cube::open(), Isis::OverlapStatistics::SetMincount(), Isis::toString(), Isis::MultivariateStatistics::ValidPixels(), Isis::MultivariateStatistics::X(), and Isis::MultivariateStatistics::Y().
void Isis::HiEqualization::calculateStatistics | ( | ) |
References Isis::Equalization::addAdjustment(), Isis::Equalization::ImageAdjustment::addAverage(), Isis::Equalization::ImageAdjustment::addGain(), Isis::Equalization::ImageAdjustment::addOffset(), Isis::OverlapNormalization::AddOverlap(), Isis::Equalization::addValid(), Isis::OverlapNormalization::Average(), Isis::OverlapNormalization::Both, Isis::Equalization::clearAdjustments(), Isis::OverlapNormalization::Gain(), Isis::Equalization::getInputs(), Isis::Equalization::loadHolds(), Isis::OverlapNormalization::Offset(), Isis::ProcessByLine::ProcessCubeInPlace(), Isis::Process::Progress(), Isis::ProcessByLine::SetInputCube(), Isis::Equalization::setResults(), Isis::Equalization::setSolved(), Isis::Progress::SetText(), Isis::OverlapNormalization::Solve(), and Isis::toString().
|
inherited |
Calculates the image and overlap statistics, and then determines corrective factors if possible.
This method calculates image statistics on a band-by-band basis and calculates overlap statistics for the input images. Overlaps are considered valid if the number of valid pixels in the overlapping area is greater than or equal to the provided mincnt parameter. Corrective factors will only be determined if all of the input images have at least one valid overlap.
percent | Percentage of the lines to consider when gathering overall cube statistics and overlap statistics |
mincnt | Minimum number of points in overlapping area required to be used in the solution |
wtopt | Indicates whether overlaps should be weighted |
methodType | An integer value corresponding to the enumerated value of the desired LeastSquares::SolveMethod to be used. |
IException::User | "There are input images that do not overlap with enough valid pixels." "See application log or Nonoverlaps keyword in output statistics file" |
IException::Unknown | "Calculation for equalization statistics failed. Gain = 0." |
IException::Unknown | "Unable to calculate the equalization statistics. You may " "want to try another LeastSquares::SolveMethod." |
References _FILEINFO_.
|
protectedinherited |
Frees image adjustments.
Referenced by calculateStatistics().
|
protectedinherited |
Frees overlap normalizations.
|
protectedinherited |
Frees overlap statistics.
|
protectedvirtual |
Checks that the input images have the same mapping groups and same number of bands.
IException::User | "Number of bands do not match between cubes" |
IException::User | "Mapping groups do not match between cubes" |
Reimplemented from Isis::Equalization.
References _FILEINFO_, Isis::Equalization::getInputs(), Isis::Cube::group(), Isis::Cube::open(), Isis::Equalization::setInput(), Isis::toString(), and Isis::IException::User.
|
inherited |
|
protectedvirtual |
Reimplemented from Isis::Equalization.
References Isis::Equalization::generateOutputs(), and Isis::Equalization::loadOutputs().
|
protectedinherited |
Loads a previous Equalization state from an input pvl object.
This method will unserialize Equalization data from an input pvl, obtaining any previously calculated overlap statistics and corrective factors (if solved).
const | PvlObject& Input pvl object containing previous Equalization state |
References Isis::OverlapStatistics::Bands(), Isis::PvlObject::beginObject(), Isis::PvlObject::endObject(), Isis::OverlapStatistics::FileNameX(), Isis::OverlapStatistics::FileNameY(), Isis::PvlObject::findGroup(), Isis::PvlObject::findObject(), Isis::OverlapStatistics::GetMStats(), Isis::MultivariateStatistics::ValidPixels(), Isis::MultivariateStatistics::X(), and Isis::MultivariateStatistics::Y().
|
protectedinherited |
Generates the names of the equalized cubes if no output list is provided.
References Isis::FileName::baseName(), Isis::FileName::extension(), and Isis::FileName::path().
Referenced by fillOutList().
|
protectedinherited |
Referenced by calculateStatistics(), and errorCheck().
|
inherited |
Returns general information about the equalization.
This method returns general information about the equalization, including number of valid and invalid overlaps, any non-overlapping images, the LeastSquares solution type, the type of equalization adjustmnet, and corrective factors (if solved).
References Isis::toString().
|
inherited |
Imports statistics for applying correction.
This method obtains corrective factors from an input statistics pvl file so that input images can be equalized. These corrective factors are obtained from Normalization groups within the EqualizationInformation object in the input pvl.
instatsFileName | Name of the input statistics pvl file |
References Isis::Equalization::ImageAdjustment::addAverage(), Isis::Equalization::ImageAdjustment::addGain(), Isis::Equalization::ImageAdjustment::addOffset(), Isis::PvlObject::findGroup(), Isis::PvlObject::findObject(), Isis::PvlObject::group(), Isis::PvlContainer::hasKeyword(), Isis::PvlContainer::keywords(), and Isis::toDouble().
|
protectedinherited |
Indicates if the corrective factors were solved.
|
protectedinherited |
References Isis::OverlapNormalization::AddHold().
Referenced by calculateStatistics().
|
protectedinherited |
Loads in the input images.
This method loads in the input images contained in the provided file name.
fromListName | Name of the file containing the input images |
IException::User | "The input file must contain at least 2 file names" |
References _FILEINFO_, Isis::Cube::bandCount(), Isis::Cube::open(), and Isis::toString().
Referenced by HiEqualization().
|
protectedinherited |
Checks that the output image list is correct.
IException::User | "Each input file in the FROM LIST must have a corresponding output file in the TO LIST." |
IException::User | "The to list file has the same name as its corresponding from list fil." |
References _FILEINFO_, Isis::FileList::read(), and Isis::toString().
Referenced by fillOutList().
|
inherited |
Recalculates statistics for any new input images.
This method loads a previous Equalization state from an input pvl file and calculates overlap statistics for any new input images. Corrective factors will also be calculated if there are no non-overlapping images and there are enough valid overlaps.
instatsFileName | Name of input pvl file containing previously calculated statistics |
|
protectedinherited |
Referenced by errorCheck().
|
protectedinherited |
Creates the results pvl containing statistics and corrective factors.
This method creates the results pvl containing what is essentially serialized Equalization data, which can be unserialized via the fromPvl() method. Note that the overlap statistics in the results pvl may not be ordered if recalculating statistics with a modified input image list.
References Isis::PvlContainer::addComment(), Isis::PvlObject::addGroup(), Isis::PvlObject::addObject(), and Isis::toString().
Referenced by calculateStatistics().
|
protectedinherited |
Sets solved state indicating if OverlapNormalizations (corrective factors) were solved.
bool | Indiciates if corrective factors were solved |
Referenced by calculateStatistics().
|
inherited |
Write the equalization information (results) to a file.
outstatsFileName | The name of the file to write the results to |