Isis 3.0 Object Programmers' Reference |
Home |
Convert between undistorted focal plane and ground coordinates. More...
#include <VimsGroundMap.h>
Public Types | |
enum | PartialType { WRT_Latitude, WRT_Longitude, WRT_Radius } |
Public Member Functions | |
VimsGroundMap (Camera *parent, Pvl &lab) | |
Constructs the VimsGroundMap object. | |
virtual | ~VimsGroundMap () |
Destroys the VimsGroundMap object. | |
virtual bool | SetFocalPlane (const double ux, const double uy, const double uz) |
Compute ground position from focal plane coordinate. | |
virtual bool | SetGround (const Latitude &lat, const Longitude &lon) |
Compute undistorted focal plane coordinate from ground position. | |
virtual bool | SetGround (const SurfacePoint &surfacePoint) |
Compute undistorted focal plane coordinate from ground position. | |
void | Init (Pvl &lab) |
Initialize vims camera model. | |
virtual bool | GetXY (const SurfacePoint &spoint, double *cudx, double *cudy) |
Compute undistorted focal plane coordinate from ground position using current Spice from SetImage call. | |
virtual bool | GetXY (const double lat, const double lon, const double radius, double *cudx, double *cudy) |
Compute undistorted focal plane coordinate from ground position using current Spice from SetImage call. | |
virtual bool | GetdXYdPosition (const SpicePosition::PartialType varType, int coefIndex, double *cudx, double *cudy) |
Compute derivative w/r to position of focal plane coordinate from ground position using current Spice from SetImage call. | |
virtual bool | GetdXYdOrientation (const SpiceRotation::PartialType varType, int coefIndex, double *cudx, double *cudy) |
Compute derivative of focal plane coordinate w/r to orientation from ground position using current Spice from SetImage call. | |
virtual bool | GetdXYdPoint (std::vector< double > d_lookB, double *cudx, double *cudy) |
Compute derivative of focal plane coordinate w/r to ground point from ground position using current Spice from SetImage call. | |
std::vector< double > | PointPartial (SurfacePoint spoint, PartialType wrt) |
Compute derivative with respect to indicated variable of conversion function from lat/lon/rad to rectangular coord. | |
double | DQuotient (std::vector< double > &look, std::vector< double > &dlook, int index) |
Convenience method for quotient rule applied to look vector. | |
double | FocalPlaneX () const |
Return undistorted focal plane x. | |
double | FocalPlaneY () const |
Return undistorted focal plane y. |
Protected Attributes | |
Camera * | p_camera |
double | p_focalPlaneX |
double | p_focalPlaneY |
Private Member Functions | |
void | LookDirection (double v[3]) |
Determines the look direction in the camera coordinate system. |
Private Attributes | |
SpiceDouble | p_etStart |
Start ephemeris time. | |
double | p_exposureDuration |
Exposure duration. | |
double | p_interlineDelay |
InterlineDelayDuration keyword value from the instrument group of the labels, divided by 1000. | |
double | p_ux |
Distorted focal plane x, in millimeters. | |
double | p_uy |
Distorted focal plane y, in millimeters. | |
double | p_uz |
Distorted focal plane z, in millimeters. | |
double | p_xPixSize |
X pixel size. | |
double | p_yPixSize |
Y pixel size. | |
double | p_xBore |
X boresight. | |
double | p_yBore |
Y boresight. | |
QString | p_channel |
Channel keyword value from the instrument group of the labels. | |
double | p_visExp |
VIS exposure duration, divided by 1000. | |
double | p_irExp |
IR exposure duration, divided by 1000. | |
int | p_nsUv |
Normal or high resolution sample uv. | |
int | p_nlUv |
Normal or high resolution line uv. | |
int | p_swathWidth |
SwathWidth keyword value from the instrument group of the labels. | |
int | p_swathLength |
SwathLength keyword value from the instrument group of the labels. | |
int | p_camSampOffset |
Sample offset. | |
int | p_camLineOffset |
Line offset. | |
double | p_minX |
double | p_maxX |
double | p_minY |
double | p_maxY |
double | p_minZ |
double | p_maxZ |
QVector3D | p_xyzMap [64][64] |
Convert between undistorted focal plane and ground coordinates.
This base class is used to convert between undistorted focal plane coordinates (x/y) in millimeters and ground coordinates lat/lon. This class handles the case of framing cameras.
Definition at line 91 of file VimsGroundMap.h.
Constructs the VimsGroundMap object.
Definition at line 54 of file VimsGroundMap.cpp.
References _FILEINFO_, Isis::Camera::ParentLines(), Isis::Camera::ParentSamples(), and Isis::IException::Programmer.
|
virtual |
Destroys the VimsGroundMap object.
Definition at line 76 of file VimsGroundMap.cpp.
|
inherited |
Convenience method for quotient rule applied to look vector.
This method will compute the derivative of the following function (coordinate x or y) / (coordinate z)
look | look vector in camera frame |
dlook | derivative of look vector in camera frame |
index | vector value to differentiate |
Definition at line 385 of file CameraGroundMap.cpp.
|
inlineinherited |
Return undistorted focal plane x.
Definition at line 113 of file CameraGroundMap.h.
Referenced by Isis::Camera::RawFocalPlanetoImage().
|
inlineinherited |
Return undistorted focal plane y.
Definition at line 118 of file CameraGroundMap.h.
Referenced by Isis::Camera::RawFocalPlanetoImage().
|
virtualinherited |
Compute derivative of focal plane coordinate w/r to orientation from ground position using current Spice from SetImage call.
This method will compute the derivative of the undistorted focal plane coordinate for a ground position with respect to the instrument orientation, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/x/y.
varType | enumerated partial type (definitions in SpicePosition) |
coefIndex | coefficient index of fit polynomial |
*dx | pointer to partial derivative of undistorted focal plane x |
*dy | pointer to partial derivative of undistorted focal plane y |
Definition at line 280 of file CameraGroundMap.cpp.
References Isis::SpiceRotation::ReferenceVector(), and Isis::SpiceRotation::ToReferencePartial().
Referenced by Isis::BundleAdjust::AddPartials(), and Isis::BundleAdjust::ComputePartials_DC().
|
virtualinherited |
Compute derivative of focal plane coordinate w/r to ground point from ground position using current Spice from SetImage call.
This method will compute the derivative of the undistorted focal plane coordinate for a ground position with respect to lat, lon, or radius, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/x/y.
varType | enumerated partial type (definitions in SpicePosition) |
coefIndex | coefficient index of fit polynomial |
*dx | pointer to partial derivative of undistorted focal plane x |
*dy | pointer to partial derivative of undistorted focal plane y |
Reimplemented in Isis::RadarGroundMap.
Definition at line 312 of file CameraGroundMap.cpp.
References Isis::SpiceRotation::J2000Vector(), and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::BundleAdjust::AddPartials(), and Isis::BundleAdjust::ComputePartials_DC().
|
virtualinherited |
Compute derivative w/r to position of focal plane coordinate from ground position using current Spice from SetImage call.
This method will compute the derivative of the undistorted focal plane coordinate for a ground position with respect to a spacecraft position coordinate, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/x/y.
varType | enumerated partial type (definitions in SpicePosition) |
coefIndex | coefficient index of fit polynomial |
*dx | pointer to partial derivative of undistorted focal plane x |
*dy | pointer to partial derivative of undistorted focal plane y |
Reimplemented in Isis::RadarGroundMap.
Definition at line 243 of file CameraGroundMap.cpp.
References Isis::SpicePosition::CoordinatePartial(), and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::BundleAdjust::AddPartials(), and Isis::BundleAdjust::ComputePartials_DC().
|
virtualinherited |
Compute undistorted focal plane coordinate from ground position using current Spice from SetImage call.
This method will compute the undistorted focal plane coordinate for a ground position, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/p_pB/x/y. The class value for p_look is set by this method.
point |
Reimplemented in Isis::RadarGroundMap.
Definition at line 146 of file CameraGroundMap.cpp.
References Isis::Displacement::kilometers(), Isis::PI(), and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::BundleAdjust::AddPartials(), Isis::BundleAdjust::ComputePartials_DC(), Isis::ControlPoint::ComputeResiduals(), and Isis::ControlPoint::ComputeResiduals_Millimeters().
|
virtualinherited |
Compute undistorted focal plane coordinate from ground position using current Spice from SetImage call.
This method will compute the undistorted focal plane coordinate for a ground position, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/p_pB/x/y. The class value for p_look is set by this method.
Definition at line 220 of file CameraGroundMap.cpp.
void Isis::VimsGroundMap::Init | ( | Pvl & | lab | ) |
Initialize vims camera model.
iException::Io | - "Cannot process NYQUIST(undersampled) mode " |
Definition at line 128 of file VimsGroundMap.cpp.
References _FILEINFO_, Isis::Sensor::Coordinate(), Isis::iTime::Et(), Isis::PvlObject::findGroup(), Isis::Spice::getClockTime(), Isis::Camera::IgnoreProjection(), Isis::Distance::kilometers(), Isis::Null, p_camLineOffset, p_camSampOffset, p_channel, p_etStart, p_interlineDelay, p_irExp, p_swathLength, p_swathWidth, p_visExp, p_xBore, p_xPixSize, p_yBore, p_yPixSize, Isis::Camera::ParentLines(), Isis::Camera::ParentSamples(), Isis::IException::Programmer, Isis::Spice::radii(), Isis::Camera::SetImage(), Isis::Sensor::setTime(), Isis::toDouble(), and Isis::PvlObject::Traverse.
|
private |
Determines the look direction in the camera coordinate system.
[out] | v | Look direction vector in camera coordinates |
This method will compute the look direction vector in the camera coordinate system. This code was converted from Rick McCloskey's point_tbl c code.
Definition at line 523 of file VimsGroundMap.cpp.
References Isis::HALFPI(), p_camLineOffset, p_camSampOffset, p_ux, p_uy, p_xBore, p_xPixSize, p_yBore, and p_yPixSize.
Referenced by SetFocalPlane().
|
inherited |
Compute derivative with respect to indicated variable of conversion function from lat/lon/rad to rectangular coord.
lat | planetocentric latitude in degrees |
lon | planetocentric longitude in degrees |
radius | local radius in meters |
wrt | take derivative with respect to this value |
Definition at line 343 of file CameraGroundMap.cpp.
References Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLocalRadius(), Isis::SurfacePoint::GetLongitude(), Isis::Distance::kilometers(), and Isis::Angle::radians().
Referenced by Isis::BundleAdjust::AddPartials(), and Isis::BundleAdjust::ComputePartials_DC().
|
virtual |
Compute ground position from focal plane coordinate.
This method will compute the ground position given an undistorted focal plane coordinate. Note that the latitude/longitude value can be obtained from the camera class passed into the constructor.
ux | Distorted focal plane x in millimeters |
uy | Distorted focal plane y in millimeters |
uz | Distorted focal plane z in millimeters |
Reimplemented from Isis::CameraGroundMap.
Definition at line 299 of file VimsGroundMap.cpp.
References LookDirection(), p_channel, p_etStart, p_interlineDelay, p_irExp, p_swathWidth, p_ux, p_uy, p_uz, p_visExp, Isis::Camera::ParentLines(), Isis::Camera::ParentSamples(), Isis::Sensor::SetLookDirection(), and Isis::Sensor::setTime().
Compute undistorted focal plane coordinate from ground position.
lat | Planetocentric latitude in degrees |
lon | Planetocentric longitude in degrees |
Reimplemented from Isis::CameraGroundMap.
Definition at line 371 of file VimsGroundMap.cpp.
References Isis::LeastSquares::AddKnown(), Isis::Angle::degrees(), Isis::LeastSquares::Evaluate(), Isis::Sensor::HasSurfaceIntersection(), Isis::Camera::IgnoreProjection(), Isis::Distance::kilometers(), Isis::LeastSquares::Knowns(), Isis::Sensor::LocalRadius(), Isis::ShapeModel::name(), Isis::Camera::ParentLines(), Isis::Camera::ParentSamples(), Isis::Angle::radians(), Isis::Camera::SetImage(), Isis::Target::shape(), Isis::LeastSquares::Solve(), and Isis::Spice::target().
Referenced by SetGround().
|
virtual |
Compute undistorted focal plane coordinate from ground position.
surfacePoint | Ground surface point |
Reimplemented from Isis::CameraGroundMap.
Definition at line 504 of file VimsGroundMap.cpp.
References Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLongitude(), and SetGround().
|
private |
Line offset.
Definition at line 136 of file VimsGroundMap.h.
Referenced by Init(), and LookDirection().
|
private |
Sample offset.
Definition at line 135 of file VimsGroundMap.h.
Referenced by Init(), and LookDirection().
|
private |
Channel keyword value from the instrument group of the labels.
Possible values are IR or VIS
Definition at line 125 of file VimsGroundMap.h.
Referenced by Init(), and SetFocalPlane().
|
private |
Start ephemeris time.
Definition at line 110 of file VimsGroundMap.h.
Referenced by Init(), and SetFocalPlane().
|
private |
Exposure duration.
Definition at line 112 of file VimsGroundMap.h.
|
private |
InterlineDelayDuration keyword value from the instrument group of the labels, divided by 1000.
Definition at line 113 of file VimsGroundMap.h.
Referenced by Init(), and SetFocalPlane().
|
private |
IR exposure duration, divided by 1000.
Definition at line 128 of file VimsGroundMap.h.
Referenced by Init(), and SetFocalPlane().
|
private |
Normal or high resolution line uv.
Definition at line 130 of file VimsGroundMap.h.
|
private |
Normal or high resolution sample uv.
Definition at line 129 of file VimsGroundMap.h.
|
private |
SwathLength keyword value from the instrument group of the labels.
This will be image size unless occultation image
Definition at line 133 of file VimsGroundMap.h.
Referenced by Init().
|
private |
SwathWidth keyword value from the instrument group of the labels.
This will be image size unless occultation image
Definition at line 131 of file VimsGroundMap.h.
Referenced by Init(), and SetFocalPlane().
|
private |
Distorted focal plane x, in millimeters.
Definition at line 116 of file VimsGroundMap.h.
Referenced by LookDirection(), and SetFocalPlane().
|
private |
Distorted focal plane y, in millimeters.
Definition at line 117 of file VimsGroundMap.h.
Referenced by LookDirection(), and SetFocalPlane().
|
private |
Distorted focal plane z, in millimeters.
Definition at line 118 of file VimsGroundMap.h.
Referenced by SetFocalPlane().
|
private |
VIS exposure duration, divided by 1000.
Definition at line 127 of file VimsGroundMap.h.
Referenced by Init(), and SetFocalPlane().
|
private |
X boresight.
Definition at line 122 of file VimsGroundMap.h.
Referenced by Init(), and LookDirection().
|
private |
X pixel size.
Definition at line 120 of file VimsGroundMap.h.
Referenced by Init(), and LookDirection().
|
private |
Y boresight.
Definition at line 123 of file VimsGroundMap.h.
Referenced by Init(), and LookDirection().
|
private |
Y pixel size.
Definition at line 121 of file VimsGroundMap.h.
Referenced by Init(), and LookDirection().