Isis Developer Reference
Isis::MoravecOperator Class Reference

Moravec Interest Operator. More...

#include <MoravecOperator.h>

Inheritance diagram for Isis::MoravecOperator:
Inheritance graph
Collaboration diagram for Isis::MoravecOperator:
Collaboration graph

Public Member Functions

 MoravecOperator (Pvl &pPvl)
 This constructor creates a Moravec Interest Operator.
 
virtual ~MoravecOperator ()
 This is the virtual destructor for MoravecOperator.
 
void InitInterestOptions ()
 Initialise Interest Options to defaults.
 
void SetPatternValidPercent (const double percent)
 
void SetPatternSampling (const double percent)
 
void SetSearchSampling (const double percent)
 
void SetTolerance (double tolerance)
 
void SetPatternReduction (std::vector< int > samples, std::vector< int > lines)
 
QString operatorName () const
 Return name of the matching operator.
 
bool Operate (Cube &pCube, UniversalGroundMap &pUnivGrndMap, int piSample, int piLine)
 Operate used by the app interestcube- to calculate interest by sample,line.
 
void Operate (ControlNet &pNewNet, QString psSerialNumFile, QString psOverlapListFile="")
 Operate - to calculate interest for entire control net to get better reference.
 
double InterestAmount () const
 Return the Interest Amount.
 
double WorstInterest () const
 Return the Worst(least value) Interest.
 
double CubeSample () const
 Return the search chip cube sample that best matched.
 
double CubeLine () const
 Return the search chip cube line that best matched.
 
virtual bool CompareInterests (double int1, double int2)
 Compare for int1 greater than / equal to int2.
 
void addGroup (Isis::PvlObject &obj)
 
void SetClipPolygon (const geos::geom::MultiPolygon &clipPolygon)
 Set the Clip Polygon for points to be contained in the overlaps.
 
Isis::PvlGroup Operator ()
 Return the Operator name.
 
void InitStdOptions (void)
 Initialize the Standard Options.
 
void InitStdOptionsGroup (void)
 Initialize the Standard Options Pvl Group with no DefFile.
 
virtual PvlGetLogPvl (void)
 Get the Pvl Log file.
 
bool ValidEmissionAngle (double pdEmissionAngle)
 Validate whether the Emission Angle is in the set Range.
 
bool ValidIncidenceAngle (double pdIncidenceAngle)
 Validate whether the Incidence Angle is in the set Range.
 
bool ValidDnValue (double pdDnValue)
 Validate whether the DN Value is in the set Range.
 
bool ValidResolution (double pdResolution)
 Validate whether the Resolution is in the set Range.
 
bool ValidResidualTolerances (double pdSampleResidual, double pdLineResidual, double pdResidualMagnitude, MeasureValidationResults &pResults)
 Validate whether the Residuals are within the set Tolerance.
 
bool ValidShiftTolerances (double sampleShift, double lineShift, double pixelShift, MeasureValidationResults &results)
 Validate whether the Sample and Line Shifts and Pixel Shift are within the set Tolerances.
 
bool ValidLatLon (Isis::Camera *pCamera, int piSample, int piLine)
 Validate the Lat/Lon.
 
PvlGroupGetStdOptions (void)
 Get the Standard Options Pvl Group.
 
PvlGroupGetStatistics (void)
 Get the Statistics Pvl Grp.
 
double GetMinDN (void)
 Get the option MinDN.
 
double GetMaxDN (void)
 Get the option MaxDN.
 
double GetMinEmissionAngle (void)
 Get the option MinEmissionAngle.
 
double GetMaxEmissionAngle (void)
 Get the option MaxEmissionAngle.
 
double GetMinIncidenceAngle (void)
 Get the option MinIncidenceAngle.
 
double GetMaxIncidenceAngle (void)
 Get the option MaxIncidenceAngle.
 
double GetPixelsFromEdge (void)
 Get the option PixelsFromEdge.
 
double GetMetersFromEdge (void)
 Get the option MetersFromEdge.
 
QString LocationString (double pdSample, double pdLine) const
 API to display location in the form "Sample,Line".
 
bool PixelsFromEdge (int piSample, int piLine, Cube *pCube)
 Test for a point to be user defined number of pixels from the edge.
 
bool MetersFromEdge (int piSample, int piLine, Cube *pCube)
 Test for a point to be user defined number of meters from the edge.
 
MeasureValidationResults ValidStandardOptions (const ControlMeasure *pMeasure, Cube *pCube, PvlGroup *pMeasureGrp=NULL)
 Validate Standard options to pick a reference based on a particular criteria.
 
MeasureValidationResults ValidStandardOptions (const ControlMeasure *pMeasure, Cube *pCube, Camera *camera, PvlGroup *pMeasureGrp=NULL)
 Validate Standard options to pick a reference based on a particular criteria.
 
MeasureValidationResults ValidStandardOptions (double pSample, double pLine, const ControlMeasure *pMeasure, Cube *pCube, PvlGroup *pMeasureGrp=NULL)
 Validate Standard options to pick a reference based on a particular criteria.
 
MeasureValidationResults ValidStandardOptions (double pSample, double pLine, const ControlMeasure *pMeasure, Cube *pCube, Camera *measureCamera, PvlGroup *pMeasureGrp=NULL)
 
MeasureValidationResults ValidStandardOptions (double pSample, double pLine, Cube *pCube, PvlGroup *pMeasureGrp=NULL)
 Validate Standard options to pick a reference based on a particular criteria.
 
bool IsCubeRequired ()
 
bool IsCameraRequired ()
 API to get status of CameraRequired flag.
 

Protected Member Functions

virtual double Interest (Chip &chip)
 This method returns the amount of interest for the given chip.
 
virtual int Padding ()
 Sets an offset to pass in larger chips if operator requires it This is used to offset the subchip size passed into Interest.
 
void Parse (Pvl &pPvl)
 Parse the Interest specific keywords.
 
const geos::geom::MultiPolygon * FindOverlap (Isis::ControlPoint &pCnetPoint)
 Find if a point is in the overlap.
 
const geos::geom::MultiPolygon * FindOverlapByImageFootPrint (Isis::ControlPoint &pCnetPoint)
 Find imageoverlaps by finding the intersection of image footprints.
 
void FindCnetRef (ControlNet &pNewNet)
 Find best ref for an entire control net by calculating the interest and moving point to a better interest area.
 
void ProcessLocked_Point_Reference (ControlPoint &pCPoint, PvlObject &pPvlObj, int &piMeasuresModified)
 Process (Validate and Log) Point with Lock or with Referemce Measure Locked.
 
int InterestByPoint (ControlPoint &pCnetPoint)
 Calculate interest for a Control Point.
 
bool InterestByMeasure (int piMeasure, Isis::ControlMeasure &pCnetMeasure, Isis::Cube &pCube)
 Calculate interest for a measure by index.
 
void InitInterestResults (int piIndex)
 Init Interest Results structure.
 
void ValidatePvlDN (void)
 Validate PVL Min & Max DN Standard Options.
 
void ValidatePvlEmissionAngle (void)
 Validate PVL Min & Max EmissionAngle Standard Options.
 
void ValidatePvlIncidenceAngle (void)
 Validate PVL Min & Max IncidenceAngle Standard Options.
 
void ValidatePvlResolution (void)
 Validate PVL Min & Max Resolution Standard Options.
 
void ValidatePvlFromEdge (void)
 Validate and read Pixels and Meters from Edge Standard Options.
 
void ValidatePvlResidualTolerances (void)
 Validate Pvl Sample, Line, Residual Magnitude Tolerances.
 
void ValidatePvlShiftTolerances ()
 Validate Pvl Sample, Line, Pixel (Sample and Line) Magnitude Shift Tolerances.
 
void ReadSerialNumbers (QString psSerialNumfile)
 Read the Serial Numbers from the file and open assocaited cubes.
 
void SetCameraRequiredFlag (bool pbFlag)
 Set the CameraRequired Flag.
 

Protected Attributes

double p_worstInterest
 
double p_interestAmount
 
geos::geom::MultiPolygon * p_clipPolygon
 Clipping polygon set by SetClipPolygon (line,samp)
 
Isis::PvlGroup mOperatorGrp
 Operator group that created this projection.
 
double mdMinDN
 Standard Option MinDN.
 
double mdMaxDN
 Standard Option MaxDN.
 
double mdMinResolution
 Standard Option MinResolution.
 
double mdMaxResolution
 Standard Option MaxResolution.
 
double mdMinEmissionAngle
 Standard Option MinEmissionAngle.
 
double mdMaxEmissionAngle
 Standard Option MaxEmissionAngle.
 
double mdMinIncidenceAngle
 Standard Option MinIncidenceAngle.
 
double mdMaxIncidenceAngle
 Standard Option MaxIncidenceAngle.
 
double mdMetersFromEdge
 Standard Option MeteresFromEdge.
 
int miPixelsFromEdge
 Standard Option PixelsFromEdge.
 
double mdSampleResTolerance
 Standard Option Sample Residual.
 
double mdLineResTolerance
 Standard Option Line Residual.
 
double mdResidualTolerance
 Standard Option Residual Magnitude.
 
double m_sampleShiftTolerance
 Standard Option Sample Shift.
 
double m_lineShiftTolerance
 Standard Option Line Shift.
 
double m_pixelShiftTolerance
 Standard Option Pixel Shift.
 
double mdEmissionAngle
 Store current Measure's Emission Angle.
 
double mdIncidenceAngle
 Store current Measure's Incidence Angle.
 
double mdResolution
 Store current Measure's Resolution.
 
double mdDnValue
 Store current Measure's DN Value.
 
double mdSampleResidual
 Store current Measure's Sample Residual.
 
double mdLineResidual
 Store current Measure's Line Residual.
 
double mdResidualMagnitude
 Store current Measure's Residual Magnitude.
 
double m_sampleShift
 Store current Measure's Sample Shift.
 
double m_lineShift
 Store current Measure's Line Shift.
 
double m_pixelShift
 Store current Measure's Pixel Shift.
 
PvlGroup mPvlOpGrp
 Pvl Operator Group.
 
PvlGroup mStdOptionsGrp
 Pvl Standard Options Group.
 
PvlGroup mStatisticsGrp
 Pvl output Statistics Group.
 
Pvl mPvlLog
 Pvl Log of all the processing.
 
Progress mStatus
 Monitor the status of the app.
 
CubeManager mCubeMgr
 CubeManager to open and read cubes.
 
SerialNumberList mSerialNumbers
 Serial numbers list.
 
bool mbCameraRequired
 To improve speed, flag to indicate if Camera needs to be opened.
 
bool mbValidateDN
 Check if DN needs to be Validated.
 
bool mbValidateFromEdge
 Check if Pixels/Meters from edge needs to be Validated.
 

Detailed Description

Moravec Interest Operator.

This class is used to construct a Moravec interest operator. For this class, the interest is always positive with the worst interest amount being 0. The higher the interest, the better.

This is more commonly refered to as Moravec Corner Detection. The algorithm was taken from the following website: http://www.cim.mcgill.ca/~dparks/CornerDetector/mainMoravec.htm

Moravec Interest Operator works by creating a N x N size boxcar around the "point of interest." Then it walks another boxcar of the same size around the center point, computing the interest of that comparison by the equation: the sum of pow(An-Bn,2) from 1 to the number of pixels in the boxcar, where A1 and B1 are the top left pixel. By walking the boxcar around the edges it will create 8 comparisons. It will then take the smallest value out of the 8 comparisons and that will be the interest value of the "point of interest."

See also
InterestOperator
Author
2007-08-02 Steven Koechle

Constructor & Destructor Documentation

◆ MoravecOperator()

Isis::MoravecOperator::MoravecOperator ( Pvl & pPvl)
inline

This constructor creates a Moravec Interest Operator.

Parameters
pvlPvl to create MoravecOperator from

◆ ~MoravecOperator()

virtual Isis::MoravecOperator::~MoravecOperator ( )
inlinevirtual

This is the virtual destructor for MoravecOperator.

Member Function Documentation

◆ addGroup()

void Isis::InterestOperator::addGroup ( Isis::PvlObject & obj)
inherited

◆ CompareInterests()

bool Isis::InterestOperator::CompareInterests ( double int1,
double int2 )
virtualinherited

Compare for int1 greater than / equal to int2.

This virtual method must return if the 1st fit is equal to or better than the second fit.

Parameters
int11st interestAmount
int22nd interestAmount

Referenced by Isis::InterestOperator::InterestByMeasure(), Isis::InterestOperator::InterestByPoint(), and Isis::InterestOperator::Operate().

◆ CubeLine()

double Isis::InterestOperator::CubeLine ( ) const
inlineinherited

Return the search chip cube line that best matched.

◆ CubeSample()

double Isis::InterestOperator::CubeSample ( ) const
inlineinherited

Return the search chip cube sample that best matched.

◆ FindCnetRef()

void Isis::InterestOperator::FindCnetRef ( ControlNet & pNewNet)
protectedvirtualinherited

Find best ref for an entire control net by calculating the interest and moving point to a better interest area.

This traverses all the control points and measures in the network and checks for valid Measure which passes the Emission Incidence Angle, DN value tests and picks the Measure with the best Interest as the Reference.

Author
Sharmila Prasad (5/14/2010)
Parameters
pNewNet- Input Control Net
History

2010-07-13 Tracie Sucharski, Changes for binary control networks, Measure type of Estimated is now Candidate and instead of a separate keyword indicating whether a meausre is the reference, the MeasureType is set to Reference.

2010-10-04 Sharmila Prasad - Modified for binary Control Net ex Edit Lock

2010-10-15 Sharmila Prasad - Use only a single copy of Control Net

Returns
none

Reimplemented from Isis::ControlNetValidMeasure.

References _FILEINFO_, Isis::ControlMeasure::Candidate, Isis::Progress::CheckStatus(), Isis::ControlPoint::Constrained, Isis::SerialNumberList::fileName(), Isis::ControlPoint::Fixed, Isis::ControlPoint::Free, Isis::ControlMeasure::GetCubeSerialNumber(), Isis::ControlMeasure::GetLine(), Isis::ControlMeasure::GetSample(), Isis::InterestOperator::InterestByPoint(), Isis::ControlMeasure::IsIgnored(), Isis::ControlNetValidMeasure::LocationString(), Isis::ControlNetValidMeasure::mCubeMgr, Isis::ControlNetValidMeasure::mdResolution, Isis::ControlNetValidMeasure::mPvlLog, Isis::ControlNetValidMeasure::mSerialNumbers, Isis::ControlNetValidMeasure::mStatisticsGrp, Isis::ControlNetValidMeasure::mStatus, Isis::CubeManager::OpenCube(), Isis::InterestOperator::ProcessLocked_Point_Reference(), Isis::ControlPoint::SurfacePointSource::Reference, Isis::ControlMeasure::SetChooserName(), Isis::ControlMeasure::SetCoordinate(), Isis::ControlMeasure::SetDateTime(), Isis::ControlMeasure::SetIgnored(), Isis::Progress::SetMaximumSteps(), Isis::Progress::SetText(), Isis::ControlMeasure::SetType(), Isis::toString(), Isis::IException::User, Isis::ControlNetValidMeasure::ValidStandardOptions(), and Isis::InterestOperator::WorstInterest().

Referenced by Isis::InterestOperator::Operate().

◆ FindOverlap()

const geos::geom::MultiPolygon * Isis::InterestOperator::FindOverlap ( Isis::ControlPoint & pCnetPoint)
protectedinherited

Find if a point is in the overlap.

This method searches for an overlap in the ImageOverlapSet that belongs to the given control point.

Only exact SN matches are accepted.

References Isis::InterestOperator::FindOverlapByImageFootPrint(), Isis::ControlMeasure::GetCubeSerialNumber(), and Isis::ImageOverlapSet::Size().

Referenced by Isis::InterestOperator::InterestByPoint().

◆ FindOverlapByImageFootPrint()

const geos::geom::MultiPolygon * Isis::InterestOperator::FindOverlapByImageFootPrint ( Isis::ControlPoint & pCnetPoint)
protectedinherited

Find imageoverlaps by finding the intersection of image footprints.

Find image overlaps by getting intersection of the individual image footprints when an exact match in the overlaplist fails.

Author
Sharmila Prasad (7/1/2010)
Parameters
pCnetPoint- Overlaps for the Control Point
Returns
const geos::geom::MultiPolygon*

References Isis::SerialNumberList::fileName(), Isis::PolygonTools::Intersect(), Isis::PolygonTools::MakeMultiPolygon(), Isis::ControlNetValidMeasure::mCubeMgr, Isis::ControlNetValidMeasure::mSerialNumbers, Isis::CubeManager::OpenCube(), and Isis::Cube::read().

Referenced by Isis::InterestOperator::FindOverlap().

◆ GetLogPvl()

virtual Pvl & Isis::ControlNetValidMeasure::GetLogPvl ( void )
inlinevirtualinherited

Get the Pvl Log file.

References Isis::ControlNetValidMeasure::mPvlLog.

◆ GetMaxDN()

double Isis::ControlNetValidMeasure::GetMaxDN ( void )
inlineinherited

Get the option MaxDN.

References Isis::ControlNetValidMeasure::mdMaxDN.

◆ GetMaxEmissionAngle()

double Isis::ControlNetValidMeasure::GetMaxEmissionAngle ( void )
inlineinherited

Get the option MaxEmissionAngle.

References Isis::ControlNetValidMeasure::mdMaxEmissionAngle.

◆ GetMaxIncidenceAngle()

double Isis::ControlNetValidMeasure::GetMaxIncidenceAngle ( void )
inlineinherited

Get the option MaxIncidenceAngle.

References Isis::ControlNetValidMeasure::mdMaxIncidenceAngle.

◆ GetMetersFromEdge()

double Isis::ControlNetValidMeasure::GetMetersFromEdge ( void )
inlineinherited

Get the option MetersFromEdge.

References Isis::ControlNetValidMeasure::mdMetersFromEdge.

◆ GetMinDN()

double Isis::ControlNetValidMeasure::GetMinDN ( void )
inlineinherited

Get the option MinDN.

References Isis::ControlNetValidMeasure::mdMinDN.

◆ GetMinEmissionAngle()

double Isis::ControlNetValidMeasure::GetMinEmissionAngle ( void )
inlineinherited

Get the option MinEmissionAngle.

References Isis::ControlNetValidMeasure::mdMinEmissionAngle.

◆ GetMinIncidenceAngle()

double Isis::ControlNetValidMeasure::GetMinIncidenceAngle ( void )
inlineinherited

Get the option MinIncidenceAngle.

References Isis::ControlNetValidMeasure::mdMinIncidenceAngle.

◆ GetPixelsFromEdge()

double Isis::ControlNetValidMeasure::GetPixelsFromEdge ( void )
inlineinherited

Get the option PixelsFromEdge.

References Isis::ControlNetValidMeasure::miPixelsFromEdge.

◆ GetStatistics()

PvlGroup & Isis::ControlNetValidMeasure::GetStatistics ( void )
inlineinherited

◆ GetStdOptions()

PvlGroup & Isis::ControlNetValidMeasure::GetStdOptions ( void )
inlineinherited

Get the Standard Options Pvl Group.

References Isis::ControlNetValidMeasure::mStdOptionsGrp.

◆ InitInterestOptions()

void Isis::InterestOperator::InitInterestOptions ( )
inherited

Initialise Interest Options to defaults.

Author
Sharmila Prasad (11/21/2011)

References Isis::InterestOperator::p_clipPolygon, Isis::InterestOperator::p_interestAmount, and Isis::InterestOperator::p_worstInterest.

Referenced by Isis::InterestOperator::InterestOperator().

◆ InitInterestResults()

void Isis::InterestOperator::InitInterestResults ( int piIndex)
protectedinherited

Init Interest Results structure.

Initialise the InterestResults structure given the index.

Author
Sharmila Prasad (6/8/2010)
Parameters
piIndex- Index for the Interest Results structure

References Isis::Null, and Isis::ValidMinimum.

Referenced by Isis::InterestOperator::InterestByPoint().

◆ InitStdOptions()

◆ InitStdOptionsGroup()

◆ Interest()

double Isis::MoravecOperator::Interest ( Chip & chip)
protectedvirtual

This method returns the amount of interest for the given chip.

Parameters
chipThe chip to calculate the interest value of
Returns
the amount of interest for this chip

Implements Isis::InterestOperator.

References Isis::Chip::GetValue(), Isis::Chip::Lines(), Isis::Chip::Samples(), and Isis::ControlNetValidMeasure::ValidDnValue().

◆ InterestAmount()

double Isis::InterestOperator::InterestAmount ( ) const
inlineinherited

Return the Interest Amount.

References Isis::InterestOperator::p_interestAmount.

◆ InterestByMeasure()

◆ InterestByPoint()

int Isis::InterestOperator::InterestByPoint ( ControlPoint & pCnetPoint)
protectedinherited

◆ IsCameraRequired()

bool Isis::ControlNetValidMeasure::IsCameraRequired ( )
inlineinherited

API to get status of CameraRequired flag.

Author
Sharmila Prasad (5/19/2011)
Returns
bool

References Isis::ControlNetValidMeasure::mbCameraRequired.

Referenced by Isis::ControlNetValidMeasure::IsCubeRequired().

◆ IsCubeRequired()

bool Isis::ControlNetValidMeasure::IsCubeRequired ( )
inlineinherited

◆ LocationString()

QString Isis::ControlNetValidMeasure::LocationString ( double pdSample,
double pdLine ) const
inlineinherited

API to display location in the form "Sample,Line".

References Isis::toString().

Referenced by Isis::InterestOperator::FindCnetRef(), and Isis::InterestOperator::ProcessLocked_Point_Reference().

◆ MetersFromEdge()

bool Isis::ControlNetValidMeasure::MetersFromEdge ( int piSample,
int piLine,
Cube * pCube )
inherited

Test for a point to be user defined number of meters from the edge.

Validate if a point in Measure is user defined number of meters from the edge.

Author
Sharmila Prasad (6/21/2010)
Parameters
piSample- Point Sample Location
piLine- Point Line Location
pCube- Control Measure Cube
Returns
bool

References _FILEINFO_, Isis::ControlNetValidMeasure::mdMetersFromEdge, Isis::Camera::PixelResolution(), Isis::Camera::SetImage(), and Isis::IException::User.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ Operate() [1/2]

void Isis::InterestOperator::Operate ( ControlNet & pNewNet,
QString psSerialNumFile,
QString psOverlapListFile = "" )
inherited

Operate - to calculate interest for entire control net to get better reference.

Read the Serial#'s and overlaplist if any and call API to find the reference for all the points in the network.

Author
Sharmila Prasad (6/9/2010)
Parameters
pNewNet- Input Control Net
psSerialNumFile- Serial Number File
psOverlapListFile- Overlaplist File containing overlap data
History
10/15/2010 Sharmila Prasad - Use a single copy of Control Net

References Isis::InterestOperator::FindCnetRef(), Isis::ImageOverlapSet::ReadImageOverlaps(), and Isis::ControlNetValidMeasure::ReadSerialNumbers().

◆ Operate() [2/2]

bool Isis::InterestOperator::Operate ( Cube & pCube,
UniversalGroundMap & pUnivGrndMap,
int piSample,
int piLine )
inherited

Operate used by the app interestcube- to calculate interest by sample,line.

Walk the pattern chip through the search chip to find the best interest.

Parameters
cube[in] The Isis::Cube to look for an interesting area in
piSample[in] The sample postion in the cube where the chip is located
piLine[in] The line postion in the cube where the chip is located
pUnivGrndMapReference to the Universal Ground map of this image
Returns
Returns the status of the operation. The following conditions can occur true=Success, false=Failed
History

2010-03-30 Sharmila Prasad - Check for valid DN Value and Emission Angle in the user defined ValidMin-ValidMax range when selecting point of interest in a Control Measure

2010-06-23 Sharmila Prasad - Validate for Resolution Range and Pixels/Meters from edge options

2016-08-24 Kelvin Rodriguez - Changed calls to abs to qAbs to squash implicit conversion warnings in clang. Part of porting to OS X 10.11.

References _FILEINFO_, Isis::InterestOperator::CompareInterests(), Isis::Chip::CubeLine(), Isis::Chip::CubeSample(), Isis::Chip::Extract(), Isis::InterestOperator::Interest(), Isis::Chip::Load(), Isis::Null, Isis::InterestOperator::p_clipPolygon, Isis::InterestOperator::p_interestAmount, Isis::InterestOperator::Padding(), Isis::IException::Programmer, Isis::Chip::SetChipPosition(), Isis::Chip::SetClipPolygon(), Isis::Chip::TackCube(), and Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ Operator()

PvlGroup Isis::InterestOperator::Operator ( )
inherited

Return the Operator name.

This function returns the keywords that this object was created from.

Returns
PvlGroup The keywords this object used in initialization

References Isis::InterestOperator::mOperatorGrp.

◆ operatorName()

QString Isis::InterestOperator::operatorName ( ) const
inlineinherited

Return name of the matching operator.

References Isis::InterestOperator::mOperatorGrp.

◆ Padding()

int Isis::MoravecOperator::Padding ( )
protectedvirtual

Sets an offset to pass in larger chips if operator requires it This is used to offset the subchip size passed into Interest.

Returns
int Amount to add to both x & y total sizes

Reimplemented from Isis::InterestOperator.

◆ Parse()

void Isis::InterestOperator::Parse ( Pvl & pPvl)
protectedinherited

Parse the Interest specific keywords.

Create an InterestOperator object using a PVL specification.

An example of the PVL required for this is:

Group = Operator
Name = StandardDeviation
Samples = 21
Lines = 21
DeltaLine = 50
DeltaSamp = 25
EndGroup
Isis::PvlGroup Operator()
Return the Operator name.
Definition InterestOperator.cpp:975

There are many other options that can be set via the pvl and are described in other documentation (see below).

Parameters
pvlThe pvl object containing the specification
History

2010-04-09 Sharmila Prasad Check for validity of new keyword "MaxEmissionAngle"

2010-06-10 Sharmila Prasad Parse only Interest specific keywords and store in Operator group

References _FILEINFO_, Isis::InterestOperator::mOperatorGrp, Isis::toString(), Isis::PvlObject::Traverse, and Isis::IException::User.

Referenced by Isis::InterestOperator::InterestOperator().

◆ PixelsFromEdge()

bool Isis::ControlNetValidMeasure::PixelsFromEdge ( int piSample,
int piLine,
Cube * pCube )
inherited

Test for a point to be user defined number of pixels from the edge.

Validate if a point in Measure is user defined number of pixels from the edge.

Author
Sharmila Prasad (6/21/2010)
Parameters
piSample- Point Sample Location
piLine- Point Line Location
pCube- Control Measure Cube
Returns
bool

References Isis::ControlNetValidMeasure::miPixelsFromEdge.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ ProcessLocked_Point_Reference()

void Isis::InterestOperator::ProcessLocked_Point_Reference ( ControlPoint & pCPoint,
PvlObject & pPvlObj,
int & piMeasuresModified )
protectedinherited

◆ ReadSerialNumbers()

void Isis::ControlNetValidMeasure::ReadSerialNumbers ( QString psSerialNumfile)
protectedinherited

Read the Serial Numbers from the file and open assocaited cubes.

Read Serial Numbers from specified file and populate the Cube and UniversalGround Maps using the serial numbers.

Author
Sharmila Prasad (6/3/2010)
Parameters
psSerialNumfile- File with list of Serial Numbers

References Isis::ControlNetValidMeasure::mCubeMgr, Isis::ControlNetValidMeasure::mSerialNumbers, Isis::ControlNetValidMeasure::mStatus, and Isis::CubeManager::SetNumOpenCubes().

Referenced by Isis::InterestOperator::Operate().

◆ SetCameraRequiredFlag()

void Isis::ControlNetValidMeasure::SetCameraRequiredFlag ( bool pbFlag)
inlineprotectedinherited

Set the CameraRequired Flag.

This flag indicates whether a camera is required to Validate a Control Measure. Camera is required to get Emission, Incidence angles and Resolution

Author
Sharmila Prasad (5/19/2011)
Parameters
pbFlag

References Isis::ControlNetValidMeasure::mbCameraRequired.

◆ SetClipPolygon()

void Isis::InterestOperator::SetClipPolygon ( const geos::geom::MultiPolygon & clipPolygon)
inherited

Set the Clip Polygon for points to be contained in the overlaps.

Sets the clipping polygon for the chip.

The coordinates must be in (sample,line) order.

Parameters
clipPolygonThe polygons used to clip the chip

References Isis::PolygonTools::CopyMultiPolygon(), and Isis::InterestOperator::p_clipPolygon.

Referenced by Isis::InterestOperator::InterestByPoint().

◆ SetPatternReduction()

void Isis::InterestOperator::SetPatternReduction ( std::vector< int > samples,
std::vector< int > lines )
inherited

◆ SetPatternSampling()

void Isis::InterestOperator::SetPatternSampling ( const double percent)
inherited

◆ SetPatternValidPercent()

void Isis::InterestOperator::SetPatternValidPercent ( const double percent)
inherited

◆ SetSearchSampling()

void Isis::InterestOperator::SetSearchSampling ( const double percent)
inherited

◆ SetTolerance()

void Isis::InterestOperator::SetTolerance ( double tolerance)
inherited

◆ ValidatePvlDN()

void Isis::ControlNetValidMeasure::ValidatePvlDN ( void )
protectedinherited

Validate PVL Min & Max DN Standard Options.

Validate the Min and Max Dn Values set by the user in the Operator pvl file.

If not set then set the options to default and enter their names in the Unused Group. If the user set values are invalid then exception is thrown.

Author
Sharmila Prasad (5/10/2010)

References _FILEINFO_, Isis::PvlContainer::hasKeyword(), Isis::ControlNetValidMeasure::mbValidateDN, Isis::ControlNetValidMeasure::mdMaxDN, Isis::ControlNetValidMeasure::mdMinDN, Isis::ControlNetValidMeasure::mPvlOpGrp, Isis::ControlNetValidMeasure::mStdOptionsGrp, Isis::toString(), Isis::IException::User, Isis::ValidMaximum, and Isis::ValidMinimum.

Referenced by Isis::ControlNetValidMeasure::Parse().

◆ ValidatePvlEmissionAngle()

void Isis::ControlNetValidMeasure::ValidatePvlEmissionAngle ( void )
protectedinherited

Validate PVL Min & Max EmissionAngle Standard Options.

ValidateEmissionAngle: Validate the Min and Max Emission Values set by the user in the Operator pvl file.

If not set then set the options to default and enter their names in the Unused Group. If the user set values are invalid then exception is thrown, the valid range being [0-135]

Author
Sharmila Prasad (5/10/2010)

References _FILEINFO_, Isis::PvlContainer::hasKeyword(), Isis::ControlNetValidMeasure::mbCameraRequired, Isis::ControlNetValidMeasure::mdMaxEmissionAngle, Isis::ControlNetValidMeasure::mdMinEmissionAngle, Isis::ControlNetValidMeasure::mPvlOpGrp, Isis::ControlNetValidMeasure::mStdOptionsGrp, Isis::toString(), and Isis::IException::User.

Referenced by Isis::ControlNetValidMeasure::Parse().

◆ ValidatePvlFromEdge()

void Isis::ControlNetValidMeasure::ValidatePvlFromEdge ( void )
protectedinherited

Validate and read Pixels and Meters from Edge Standard Options.

Validate and Read the Pixels and Meters from Edge Standard Options.

Author
Sharmila Prasad (6/22/2010)

References Isis::PvlContainer::hasKeyword(), Isis::ControlNetValidMeasure::mbValidateFromEdge, Isis::ControlNetValidMeasure::mdMetersFromEdge, Isis::ControlNetValidMeasure::miPixelsFromEdge, Isis::ControlNetValidMeasure::mPvlOpGrp, Isis::ControlNetValidMeasure::mStdOptionsGrp, and Isis::toString().

Referenced by Isis::ControlNetValidMeasure::Parse().

◆ ValidatePvlIncidenceAngle()

void Isis::ControlNetValidMeasure::ValidatePvlIncidenceAngle ( void )
protectedinherited

Validate PVL Min & Max IncidenceAngle Standard Options.

ValidateIncidenceAngle: Validate the Min and Max Incidence Values set by the user in the Operator pvl file.

If not set then set the options to default and enter their names in the Unused Group. If the user set values are invalid then exception is thrown, the valid range being [0-135]

Author
Sharmila Prasad (5/10/2010)

References _FILEINFO_, Isis::PvlContainer::hasKeyword(), Isis::ControlNetValidMeasure::mbCameraRequired, Isis::ControlNetValidMeasure::mdMaxIncidenceAngle, Isis::ControlNetValidMeasure::mdMinIncidenceAngle, Isis::ControlNetValidMeasure::mPvlOpGrp, Isis::ControlNetValidMeasure::mStdOptionsGrp, Isis::toString(), and Isis::IException::User.

Referenced by Isis::ControlNetValidMeasure::Parse().

◆ ValidatePvlResidualTolerances()

◆ ValidatePvlResolution()

void Isis::ControlNetValidMeasure::ValidatePvlResolution ( void )
protectedinherited

Validate PVL Min & Max Resolution Standard Options.

Validate the Min and Max Resolution Values set by the user in the Operator pvl file.

If not set then set the options to default and enter their names in the Unused Group. If the user set values are invalid then exception is thrown.

Author
Sharmila Prasad (6/4/2010)

References _FILEINFO_, Isis::PvlContainer::hasKeyword(), Isis::ControlNetValidMeasure::mbCameraRequired, Isis::ControlNetValidMeasure::mdMaxResolution, Isis::ControlNetValidMeasure::mdMinResolution, Isis::ControlNetValidMeasure::mPvlOpGrp, Isis::ControlNetValidMeasure::mStdOptionsGrp, Isis::toString(), and Isis::IException::User.

Referenced by Isis::ControlNetValidMeasure::Parse().

◆ ValidatePvlShiftTolerances()

◆ ValidDnValue()

bool Isis::ControlNetValidMeasure::ValidDnValue ( double pdDnValue)
inherited

Validate whether the DN Value is in the set Range.

Validates Dn Value by comparing against the Min and Max DN Values set in the def file or the defaults.

Author
Sharmila Prasad (3/30/2010)
Parameters
pdDnValue- DN Value to Valdiate
Returns
bool

References Isis::IsSpecial(), and Isis::ControlNetValidMeasure::mdMaxDN.

Referenced by Isis::GradientOperator::Interest(), Interest(), and Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ ValidEmissionAngle()

bool Isis::ControlNetValidMeasure::ValidEmissionAngle ( double pdEmissionAngle)
inherited

Validate whether the Emission Angle is in the set Range.

Validates an Emission angle by comparing with the min and max values in the def file.

If Emission Angle is greater or lesser than the max/min values in the def file or the defaults it returns false else true.

Author
Sharmila Prasad (3/30/2010)
Parameters
pdEmissionAngle- Emission Angle to Valdiate
Returns
bool

References Isis::ControlNetValidMeasure::mdMaxEmissionAngle.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ ValidIncidenceAngle()

bool Isis::ControlNetValidMeasure::ValidIncidenceAngle ( double pdIncidenceAngle)
inherited

Validate whether the Incidence Angle is in the set Range.

Validates an Incidence angle by comparing with the min and max values in the def file.

If Incidence Angle is greater or lesser than the max/min values in the def file or the defaults it returns false else true.

Author
Sharmila Prasad (5/10/2010)
Parameters
pdIncidenceAngle- Incidence Angle to Valdiate
Returns
bool

References Isis::ControlNetValidMeasure::mdMaxIncidenceAngle.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ ValidLatLon()

bool Isis::ControlNetValidMeasure::ValidLatLon ( Isis::Camera * pCamera,
int piSample,
int piLine )
inherited

Validate the Lat/Lon.

Validate if a point has a valid lat, lon for that camera.

Author
Sharmila Prasad (6/4/2010)
Parameters
pCamera
piSample
piLine
Returns
bool

◆ ValidResidualTolerances()

bool Isis::ControlNetValidMeasure::ValidResidualTolerances ( double pdSampleResidual,
double pdLineResidual,
double pdResidualMagnitude,
MeasureValidationResults & pResults )
inherited

Validate whether the Residuals are within the set Tolerance.

Validate whether the Sample and Line Residuals and Residual Magnitudes are within the set Tolerances'.

Author
Sharmila Prasad (5/16/2011)
Parameters
pdSampleResidual- Measure's Sample residual
pdLineResidual- Measure's Line residual
pdResidualMagnitude- Measure's Residual Magnitude
pResults- MeasureValidationResults
Returns
bool - Valid (true/false)

References Isis::MeasureValidationResults::LineResidual, Isis::ControlNetValidMeasure::mdLineResTolerance, Isis::ControlNetValidMeasure::mdResidualTolerance, Isis::ControlNetValidMeasure::mdSampleResTolerance, Isis::MeasureValidationResults::ResidualMagnitude, and Isis::MeasureValidationResults::SampleResidual.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ ValidResolution()

bool Isis::ControlNetValidMeasure::ValidResolution ( double pdResolution)
inherited

Validate whether the Resolution is in the set Range.

Validates Dn Value by comparing against the Min and Max DN Values set in the def file or the defaults.

Author
Sharmila Prasad (6/4/2010)
Parameters
pdResolution- Resolution to Validate
Returns
bool

References Isis::ControlNetValidMeasure::mdMaxResolution.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ ValidShiftTolerances()

bool Isis::ControlNetValidMeasure::ValidShiftTolerances ( double sampleShift,
double lineShift,
double pixelShift,
MeasureValidationResults & results )
inherited

Validate whether the Sample and Line Shifts and Pixel Shift are within the set Tolerances.

Parameters
sampleShiftMeasure's sample shift (current - apriori)
lineShiftMeasure's line shift (current - apriori)
pixelShiftMeasure's pixel shift (Euclidean distance shifted)
resultsValidation results populated with any new failures
Returns
Whether every test was valid or not

References Isis::MeasureValidationResults::LineShift, Isis::ControlNetValidMeasure::m_lineShiftTolerance, Isis::ControlNetValidMeasure::m_pixelShiftTolerance, Isis::ControlNetValidMeasure::m_sampleShiftTolerance, Isis::MeasureValidationResults::PixelShift, and Isis::MeasureValidationResults::SampleShift.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ ValidStandardOptions() [1/5]

MeasureValidationResults Isis::ControlNetValidMeasure::ValidStandardOptions ( const ControlMeasure * pMeasure,
Cube * pCube,
Camera * camera,
PvlGroup * pMeasureGrp = NULL )
inherited

Validate Standard options to pick a reference based on a particular criteria.

References Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ ValidStandardOptions() [2/5]

MeasureValidationResults Isis::ControlNetValidMeasure::ValidStandardOptions ( const ControlMeasure * pMeasure,
Cube * pCube,
PvlGroup * pMeasureGrp = NULL )
inherited

Validate Standard options to pick a reference based on a particular criteria.

Validate a measure for all the Standard Options.

Author
Sharmila Prasad (6/22/2010)
Parameters
piSample- Point Sample location
piLine- Point Line location
pCube- Control Measure Cube
pMeasureGrp- Log PvlGroup
Returns
bool

References Isis::ControlNetValidMeasure::ValidStandardOptions().

Referenced by Isis::InterestOperator::FindCnetRef(), Isis::InterestOperator::InterestByMeasure(), Isis::InterestOperator::Operate(), Isis::InterestOperator::ProcessLocked_Point_Reference(), Isis::ControlNetValidMeasure::ValidStandardOptions(), Isis::ControlNetValidMeasure::ValidStandardOptions(), Isis::ControlNetValidMeasure::ValidStandardOptions(), and Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ ValidStandardOptions() [3/5]

MeasureValidationResults Isis::ControlNetValidMeasure::ValidStandardOptions ( double pSample,
double pLine,
const ControlMeasure * pMeasure,
Cube * pCube,
Camera * measureCamera,
PvlGroup * pMeasureGrp = NULL )
inherited

References Isis::MeasureValidationResults::addFailure(), Isis::MeasureValidationResults::DNValue, Isis::MeasureValidationResults::EmissionAngle, Isis::MeasureValidationResults::IncidenceAngle, Isis::ControlNetValidMeasure::m_lineShift, Isis::ControlNetValidMeasure::m_pixelShift, Isis::ControlNetValidMeasure::m_sampleShift, Isis::ControlNetValidMeasure::mbCameraRequired, Isis::ControlNetValidMeasure::mbValidateDN, Isis::ControlNetValidMeasure::mbValidateFromEdge, Isis::ControlNetValidMeasure::mdDnValue, Isis::ControlNetValidMeasure::mdEmissionAngle, Isis::ControlNetValidMeasure::mdIncidenceAngle, Isis::ControlNetValidMeasure::mdLineResidual, Isis::ControlNetValidMeasure::mdMaxDN, Isis::ControlNetValidMeasure::mdMaxEmissionAngle, Isis::ControlNetValidMeasure::mdMaxIncidenceAngle, Isis::ControlNetValidMeasure::mdMaxResolution, Isis::ControlNetValidMeasure::mdMetersFromEdge, Isis::ControlNetValidMeasure::mdMinDN, Isis::ControlNetValidMeasure::mdMinEmissionAngle, Isis::ControlNetValidMeasure::mdMinIncidenceAngle, Isis::ControlNetValidMeasure::mdMinResolution, Isis::ControlNetValidMeasure::mdResidualMagnitude, Isis::ControlNetValidMeasure::mdResolution, Isis::ControlNetValidMeasure::mdSampleResidual, Isis::ControlNetValidMeasure::MetersFromEdge(), Isis::MeasureValidationResults::MetersFromEdge, Isis::ControlNetValidMeasure::miPixelsFromEdge, Isis::Null, Isis::ControlNetValidMeasure::PixelsFromEdge(), Isis::MeasureValidationResults::PixelsFromEdge, Isis::MeasureValidationResults::Resolution, Isis::toString(), Isis::ControlNetValidMeasure::ValidDnValue(), Isis::ControlNetValidMeasure::ValidEmissionAngle(), Isis::ControlNetValidMeasure::ValidIncidenceAngle(), Isis::ControlNetValidMeasure::ValidResidualTolerances(), Isis::ControlNetValidMeasure::ValidResolution(), and Isis::ControlNetValidMeasure::ValidShiftTolerances().

◆ ValidStandardOptions() [4/5]

MeasureValidationResults Isis::ControlNetValidMeasure::ValidStandardOptions ( double pSample,
double pLine,
const ControlMeasure * pMeasure,
Cube * pCube,
PvlGroup * pMeasureGrp = NULL )
inherited

Validate Standard options to pick a reference based on a particular criteria.

Validate a point on an image and the Control Measure if not Null.

Author
Sharmila Prasad (5/17/2011)
Parameters
pSample- Image Sample
pLine- Image Line
pMeasure- Control Measure
pCube- Control Measure's image
pMeasureGrp- Result PvlGroup
Returns
MeasureValidationResults

References _FILEINFO_, Isis::ControlNetValidMeasure::mbCameraRequired, Isis::IException::User, and Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ ValidStandardOptions() [5/5]

MeasureValidationResults Isis::ControlNetValidMeasure::ValidStandardOptions ( double pSample,
double pLine,
Cube * pCube,
PvlGroup * pMeasureGrp = NULL )
inherited

Validate Standard options to pick a reference based on a particular criteria.

Validate a point on an image for Standard Options.

Author
Sharmila Prasad (5/17/2011)
Parameters
pSample- Image Sample
pLine- Image Line
pCube- Image
pMeasureGrp- Optional Result Group
Returns
MeasureValidationResults

References Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ WorstInterest()

double Isis::InterestOperator::WorstInterest ( ) const
inlineinherited

Return the Worst(least value) Interest.

References Isis::InterestOperator::p_worstInterest.

Referenced by Isis::InterestOperator::FindCnetRef().

Member Data Documentation

◆ m_lineShift

double Isis::ControlNetValidMeasure::m_lineShift
protectedinherited

Store current Measure's Line Shift.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ m_lineShiftTolerance

◆ m_pixelShift

double Isis::ControlNetValidMeasure::m_pixelShift
protectedinherited

Store current Measure's Pixel Shift.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ m_pixelShiftTolerance

◆ m_sampleShift

double Isis::ControlNetValidMeasure::m_sampleShift
protectedinherited

Store current Measure's Sample Shift.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ m_sampleShiftTolerance

◆ mbCameraRequired

◆ mbValidateDN

bool Isis::ControlNetValidMeasure::mbValidateDN
protectedinherited

◆ mbValidateFromEdge

bool Isis::ControlNetValidMeasure::mbValidateFromEdge
protectedinherited

◆ mCubeMgr

◆ mdDnValue

double Isis::ControlNetValidMeasure::mdDnValue
protectedinherited

◆ mdEmissionAngle

double Isis::ControlNetValidMeasure::mdEmissionAngle
protectedinherited

◆ mdIncidenceAngle

double Isis::ControlNetValidMeasure::mdIncidenceAngle
protectedinherited

◆ mdLineResidual

double Isis::ControlNetValidMeasure::mdLineResidual
protectedinherited

Store current Measure's Line Residual.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ mdLineResTolerance

◆ mdMaxDN

◆ mdMaxEmissionAngle

◆ mdMaxIncidenceAngle

◆ mdMaxResolution

◆ mdMetersFromEdge

◆ mdMinDN

◆ mdMinEmissionAngle

◆ mdMinIncidenceAngle

◆ mdMinResolution

◆ mdResidualMagnitude

double Isis::ControlNetValidMeasure::mdResidualMagnitude
protectedinherited

Store current Measure's Residual Magnitude.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ mdResidualTolerance

◆ mdResolution

double Isis::ControlNetValidMeasure::mdResolution
protectedinherited

◆ mdSampleResidual

double Isis::ControlNetValidMeasure::mdSampleResidual
protectedinherited

Store current Measure's Sample Residual.

Referenced by Isis::ControlNetValidMeasure::ValidStandardOptions().

◆ mdSampleResTolerance

◆ miPixelsFromEdge

◆ mOperatorGrp

Isis::PvlGroup Isis::InterestOperator::mOperatorGrp
protectedinherited

◆ mPvlLog

Pvl Isis::ControlNetValidMeasure::mPvlLog
protectedinherited

◆ mPvlOpGrp

◆ mSerialNumbers

◆ mStatisticsGrp

◆ mStatus

Progress Isis::ControlNetValidMeasure::mStatus
protectedinherited

◆ mStdOptionsGrp

◆ p_clipPolygon

geos::geom::MultiPolygon* Isis::InterestOperator::p_clipPolygon
protectedinherited

◆ p_interestAmount

double Isis::InterestOperator::p_interestAmount
protectedinherited

◆ p_worstInterest


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