Isis 3 Programmer Reference
|
Universal Ground Map. More...
#include <UniversalGroundMap.h>
Public Types | |
enum | CameraPriority { CameraFirst, ProjectionFirst } |
This enum is used to define whether to use a camera or projection primarily, and which to fall back on. More... | |
Public Member Functions | |
UniversalGroundMap (Cube &cube, CameraPriority priority=CameraFirst) | |
Constructs a UniversalGroundMap object from a cube. More... | |
~UniversalGroundMap () | |
Destroys the UniversalGroundMap object. More... | |
void | SetBand (const int band) |
Set the image band number. More... | |
bool | SetUniversalGround (double lat, double lon) |
Returns whether the lat/lon position was set successfully in the camera model or projection. More... | |
bool | SetUnboundGround (Latitude lat, Longitude lon) |
Returns whether the lat/lon position was set successfully in the camera model or projection. More... | |
bool | SetGround (Latitude lat, Longitude lon) |
Returns whether the lat/lon position was set successfully in the camera model or projection. More... | |
bool | SetGround (const SurfacePoint &) |
Returns whether the SurfacePoint was set successfully in the camera model or projection. More... | |
double | Sample () const |
Returns the current line value of the camera model or projection. More... | |
double | Line () const |
Returns the current line value of the camera model or projection. More... | |
bool | SetImage (double sample, double line) |
Returns whether the sample/line postion was set successfully in the camera model or projection. More... | |
double | UniversalLatitude () const |
Returns the universal latitude of the camera model or projection. More... | |
double | UniversalLongitude () const |
Returns the universal longitude of the camera model or projection. More... | |
double | Resolution () const |
Returns the resolution of the camera model or projection. More... | |
bool | GroundRange (Cube *cube, Latitude &minLat, Latitude &maxLat, Longitude &minLon, Longitude &maxLon, bool allowEstimation=true) |
Find the lat/lon range of the image. More... | |
bool | HasProjection () |
Returns whether the ground map has a projection or not. More... | |
bool | HasCamera () |
Returns whether the ground map has a camera or not. More... | |
Isis::Projection * | Projection () const |
Return the projection associated with the ground map (NULL implies none) More... | |
Isis::Camera * | Camera () const |
Return the camera associated with the ground map (NULL implies none) More... | |
Private Attributes | |
Isis::Camera * | p_camera |
The camera (if the image has a camera) More... | |
Isis::Projection * | p_projection |
The projection (if the image is projected) More... | |
Universal Ground Map.
???
2005-11-09 Tracie Sucharski Added HasProjection method.
2006-03-20 Elizabeth Miller Added camera, projection, and Resolution methods and documentation
2006-03-31 Elizabeth Miller Added unitTest
2006-05-17 Elizabeth Miller Depricated CameraManager to CameraFactory
2007-02-06 Tracie Sucharski Added SetBand method.
2007-02-06 Steven Lambright Fixed documentation
2009-04-24 Steven Koechle Added a check to SetUniversalGround that makes sure the result is on the cube before returning true.
2010-04-09 Sharmila Prasad Added an API to check for camera in an image
2010-04-28 Mackenzie Boyd Fixed dereferencing issue in constructor that takes a cube.
2011-01-25 Steven Lambright Added CameraPriority and SetGround. The CameraPriority was for grid to use projections by default so they would work across the image regardless of the camera. The SetGround is so that conversions between lat/lon types are simply handled and allows a clean interface to use the new Latitude and Longitude classes.
2011-01-25 Eric Hyer - Added SetGround method for Surface Points
2012-03-22 Steven Lambright - Added GroundRange() method because I needed a ground range in the qview nomenclature tool and this seemed like the best place to put it. The Cube paramater is optional.
2012-06-29 Steven Lambright and Kimberly Oyama - Made the estimation section of GroundRange() sample more points by walking the perimeter, the two corner to corner diagonals, and a plus that intersects in the center of the image. This ensures that the entire longitude range is returned. Fixes #855.
2012-12-20 Debbie A. Cook - Changed to use TProjection instead of Projection. References #775.
2013-04-24 Tracie Sucharski - Added ring plane functionality to methods UniversalLatitude() and UniversalLongitude(). Reference #775.
2012-04-24 Jeannie Backer - Removed prototype for constructor that has been removed from this class. References #775.
2017-06-26 Jesse Mapel - Added a new method to set the universal ground point without adjusting for the longitude domain. Fixes #2185.
Definition at line 85 of file UniversalGroundMap.h.
This enum is used to define whether to use a camera or projection primarily, and which to fall back on.
Definition at line 91 of file UniversalGroundMap.h.
Isis::UniversalGroundMap::UniversalGroundMap | ( | Cube & | cube, |
CameraPriority | priority = CameraFirst |
||
) |
Constructs a UniversalGroundMap object from a cube.
cube | The Cube to create the UniversalGroundMap from |
priority | Try to make a camera or projection first |
Definition at line 27 of file UniversalGroundMap.cpp.
References _FILEINFO_, Isis::IException::append(), CameraFirst, Isis::CameraFactory::Create(), Isis::ProjectionFactory::CreateFromCube(), Isis::Cube::fileName(), Isis::Cube::label(), p_camera, p_projection, and Isis::IException::Unknown.
Isis::UniversalGroundMap::~UniversalGroundMap | ( | ) |
Destroys the UniversalGroundMap object.
Definition at line 74 of file UniversalGroundMap.cpp.
References p_camera, and p_projection.
|
inline |
Return the camera associated with the ground map (NULL implies none)
Definition at line 152 of file UniversalGroundMap.h.
References p_camera.
Referenced by Isis::ImagePolygon::Create(), Isis::CubeViewport::CubeViewport(), Isis::FindTool::distancePerPixel(), Isis::MosaicSceneItem::drawImage(), Isis::ImagePolygon::FixPolePoly(), Isis::ImagePolygon::initCube(), and Isis::ImagePolygon::SetImage().
bool Isis::UniversalGroundMap::GroundRange | ( | Cube * | cube, |
Latitude & | minLat, | ||
Latitude & | maxLat, | ||
Longitude & | minLon, | ||
Longitude & | maxLon, | ||
bool | allowEstimation = true |
||
) |
Find the lat/lon range of the image.
This will use the image footprint, camera, or projection in order to find a good result.
Cube* | This is required for estimation. You can pass in NULL (it will disable estimation). |
minLat | This is an output: minimum latitude |
maxLat | This is an output: maximum latitude |
minLon | This is an output: minimum longitude |
maxLon | This is an output: maximum longitude |
allowEstimation | If this is true then extra efforts will be made to guess the ground range of the input. This can still fail. |
Definition at line 314 of file UniversalGroundMap.cpp.
References Isis::Angle::Degrees, Isis::Camera::GroundRange(), HasCamera(), Isis::PvlContainer::hasKeyword(), HasProjection(), Isis::Angle::isValid(), Isis::Cube::lineCount(), Isis::PolygonTools::MakeMultiPolygon(), Isis::ShapeModel::name(), p_camera, p_projection, Isis::ImagePolygon::Polys(), Isis::Projection::projectionType(), Isis::Cube::read(), Isis::Projection::RingPlane, Isis::Cube::sampleCount(), Isis::Projection::SetWorld(), Isis::Target::shape(), Isis::Spice::target(), Isis::TProjection::UniversalLatitude(), and Isis::TProjection::UniversalLongitude().
Referenced by Isis::FeatureNomenclatureTool::findMissingNomenclature().
|
inline |
Returns whether the ground map has a camera or not.
Definition at line 142 of file UniversalGroundMap.h.
References p_camera.
Referenced by GroundRange(), and Isis::InterestOperator::Operate().
|
inline |
Returns whether the ground map has a projection or not.
Definition at line 131 of file UniversalGroundMap.h.
References p_projection.
Referenced by Isis::FindTool::distancePerPixel(), and GroundRange().
double Isis::UniversalGroundMap::Line | ( | ) | const |
Returns the current line value of the camera model or projection.
Definition at line 208 of file UniversalGroundMap.cpp.
References Isis::Camera::Line(), p_camera, p_projection, and Isis::Projection::WorldY().
Referenced by Isis::FindTool::centerLinkedViewports(), Isis::StereoTool::createPoint(), Isis::ControlPointEditWidget::demRadius(), Isis::QnetTool::demRadius(), Isis::FindTool::distancePerPixel(), Isis::ControlNetTool::drawGroundMeasures(), Isis::ControlPointEdit::findPoint(), Isis::ControlMeasureEditWidget::findPoint(), Isis::FindTool::handleRecordClicked(), Isis::FindTool::paintViewport(), and Isis::FindTool::updateTool().
|
inline |
Return the projection associated with the ground map (NULL implies none)
Definition at line 147 of file UniversalGroundMap.h.
References p_projection.
Referenced by Isis::CubeViewport::CubeViewport(), Isis::FindTool::distancePerPixel(), Isis::MosaicSceneItem::drawImage(), and Isis::ImagePolygon::FixPolePoly().
double Isis::UniversalGroundMap::Resolution | ( | ) | const |
Returns the resolution of the camera model or projection.
Definition at line 288 of file UniversalGroundMap.cpp.
References p_camera, p_projection, Isis::Camera::PixelResolution(), and Isis::Projection::Resolution().
Referenced by Isis::FindTool::distancePerPixel().
double Isis::UniversalGroundMap::Sample | ( | ) | const |
Returns the current line value of the camera model or projection.
Definition at line 194 of file UniversalGroundMap.cpp.
References p_camera, p_projection, Isis::Camera::Sample(), and Isis::Projection::WorldX().
Referenced by Isis::FindTool::centerLinkedViewports(), Isis::StereoTool::createPoint(), Isis::ControlPointEditWidget::demRadius(), Isis::QnetTool::demRadius(), Isis::FindTool::distancePerPixel(), Isis::ControlNetTool::drawGroundMeasures(), Isis::ControlPointEdit::findPoint(), Isis::ControlMeasureEditWidget::findPoint(), Isis::FindTool::handleRecordClicked(), Isis::FindTool::paintViewport(), and Isis::FindTool::updateTool().
void Isis::UniversalGroundMap::SetBand | ( | const int | band | ) |
Set the image band number.
[in] | band | (int) Image band number |
Definition at line 66 of file UniversalGroundMap.cpp.
References p_camera, and Isis::Camera::SetBand().
Referenced by Isis::ImagePolygon::initCube().
Returns whether the lat/lon position was set successfully in the camera model or projection.
lat | The universal latitude or ring radius for ring planes |
lon | The universal longitude or ring longitude (azimuth) for ring planes |
Definition at line 121 of file UniversalGroundMap.cpp.
References Isis::Angle::degrees(), Isis::Camera::InCube(), p_camera, p_projection, Isis::Camera::SetGround(), and Isis::Projection::SetUniversalGround().
Referenced by Isis::ControlNetTool::drawGroundMeasures(), and Isis::StereoTool::measureSaved().
bool Isis::UniversalGroundMap::SetGround | ( | const SurfacePoint & | sp | ) |
Returns whether the SurfacePoint was set successfully in the camera model or projection.
sp | The Surface Point to set ground with |
Definition at line 174 of file UniversalGroundMap.cpp.
References Isis::Angle::degrees(), Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLongitude(), Isis::Camera::InCube(), p_camera, p_projection, Isis::Camera::SetGround(), and Isis::Projection::SetUniversalGround().
bool Isis::UniversalGroundMap::SetImage | ( | double | sample, |
double | line | ||
) |
Returns whether the sample/line postion was set successfully in the camera model or projection.
sample | The sample position |
line | The line position |
Definition at line 227 of file UniversalGroundMap.cpp.
References p_camera, p_projection, Isis::Camera::SetImage(), and Isis::Projection::SetWorld().
Referenced by Isis::FindTool::distancePerPixel(), Isis::ControlPointEdit::findPoint(), Isis::ControlMeasureEditWidget::findPoint(), Isis::SpatialPlotTool::getSpatialStatistics(), Isis::StereoTool::measureSaved(), Isis::ControlNetTool::mouseButtonRelease(), Isis::FindTool::mouseButtonRelease(), Isis::QnetTool::mouseButtonRelease(), Isis::InterestOperator::Operate(), Isis::ImagePolygon::SetImage(), Isis::ControlPointEdit::updateLeftPositionLabel(), Isis::ControlMeasureEditWidget::updateLeftPositionLabel(), Isis::ControlPointEdit::updateRightPositionLabel(), Isis::ControlMeasureEditWidget::updateRightPositionLabel(), and Isis::FindTool::updateTool().
Returns whether the lat/lon position was set successfully in the camera model or projection.
This will not adjust the longitude based on the longitude domain.
lat | The universal latitude or ring radius for ring planes |
lon | The universal longitude or ring longitude (azimuth) for ring planes |
Definition at line 148 of file UniversalGroundMap.cpp.
References Isis::Angle::degrees(), Isis::Camera::InCube(), p_camera, p_projection, Isis::Camera::SetGround(), and Isis::Projection::SetUnboundUniversalGround().
bool Isis::UniversalGroundMap::SetUniversalGround | ( | double | lat, |
double | lon | ||
) |
Returns whether the lat/lon position was set successfully in the camera model or projection.
lat | The universal latitude or ring radius for ring planes |
lon | The universal longitude or ring longitude (azimuth) for ring planes |
Definition at line 96 of file UniversalGroundMap.cpp.
References Isis::Camera::InCube(), p_camera, p_projection, Isis::Projection::SetUniversalGround(), and Isis::Camera::SetUniversalGround().
Referenced by Isis::FindTool::centerLinkedViewports(), Isis::StereoTool::createPoint(), Isis::ControlPointEditWidget::demRadius(), Isis::QnetTool::demRadius(), Isis::FindTool::distancePerPixel(), Isis::MosaicSceneItem::drawImage(), Isis::ControlPointEdit::findPoint(), Isis::ControlMeasureEditWidget::findPoint(), Isis::ImagePolygon::FixPolePoly(), Isis::FindTool::handleRecordClicked(), Isis::FindTool::paintViewport(), Isis::ControlPointEditWidget::setShapesForPoint(), and Isis::FindTool::updateTool().
double Isis::UniversalGroundMap::UniversalLatitude | ( | ) | const |
Returns the universal latitude of the camera model or projection.
Definition at line 241 of file UniversalGroundMap.cpp.
References p_camera, p_projection, Isis::Projection::projectionType(), Isis::RingPlaneProjection::RingRadius(), Isis::Projection::Triaxial, Isis::Sensor::UniversalLatitude(), and Isis::TProjection::UniversalLatitude().
Referenced by Isis::FindTool::distancePerPixel(), Isis::ControlPointEdit::findPoint(), Isis::ControlMeasureEditWidget::findPoint(), Isis::StereoTool::measureSaved(), Isis::ControlNetTool::mouseButtonRelease(), Isis::FindTool::mouseButtonRelease(), Isis::QnetTool::mouseButtonRelease(), Isis::ControlPointEdit::updateLeftPositionLabel(), Isis::ControlMeasureEditWidget::updateLeftPositionLabel(), Isis::ControlPointEdit::updateRightPositionLabel(), Isis::ControlMeasureEditWidget::updateRightPositionLabel(), Isis::FindTool::updateTool(), and Isis::ImagePolygon::WalkPoly().
double Isis::UniversalGroundMap::UniversalLongitude | ( | ) | const |
Returns the universal longitude of the camera model or projection.
Definition at line 264 of file UniversalGroundMap.cpp.
References p_camera, p_projection, Isis::Projection::projectionType(), Isis::RingPlaneProjection::RingLongitude(), Isis::Projection::Triaxial, Isis::Sensor::UniversalLongitude(), and Isis::TProjection::UniversalLongitude().
Referenced by Isis::FindTool::distancePerPixel(), Isis::ControlPointEdit::findPoint(), Isis::ControlMeasureEditWidget::findPoint(), Isis::StereoTool::measureSaved(), Isis::ControlNetTool::mouseButtonRelease(), Isis::FindTool::mouseButtonRelease(), Isis::QnetTool::mouseButtonRelease(), Isis::ControlPointEdit::updateLeftPositionLabel(), Isis::ControlMeasureEditWidget::updateLeftPositionLabel(), Isis::ControlPointEdit::updateRightPositionLabel(), Isis::ControlMeasureEditWidget::updateRightPositionLabel(), Isis::FindTool::updateTool(), and Isis::ImagePolygon::WalkPoly().
|
private |
The camera (if the image has a camera)
Definition at line 154 of file UniversalGroundMap.h.
Referenced by Camera(), GroundRange(), HasCamera(), Line(), Resolution(), Sample(), SetBand(), SetGround(), SetImage(), SetUnboundGround(), SetUniversalGround(), UniversalGroundMap(), UniversalLatitude(), UniversalLongitude(), and ~UniversalGroundMap().
|
private |
The projection (if the image is projected)
Definition at line 159 of file UniversalGroundMap.h.
Referenced by GroundRange(), HasProjection(), Line(), Projection(), Resolution(), Sample(), SetGround(), SetImage(), SetUnboundGround(), SetUniversalGround(), UniversalGroundMap(), UniversalLatitude(), UniversalLongitude(), and ~UniversalGroundMap().