![]() |
Isis 3 Programmer Reference
|
Convert between undistorted focal plane and ground coordinates. More...
#include <VimsGroundMap.h>
Public Types | |
enum | PartialType { WRT_Latitude, WRT_Longitude, WRT_Radius, WRT_MajorAxis, WRT_MinorAxis, WRT_PolarAxis } |
Radius axes types to use when computing partials. More... | |
Public Member Functions | |
VimsGroundMap (Camera *parent, Pvl &lab) | |
Constructs the VimsGroundMap object. More... | |
virtual | ~VimsGroundMap () |
Destroys the VimsGroundMap object. More... | |
virtual bool | SetFocalPlane (const double ux, const double uy, const double uz) |
Compute ground position from focal plane coordinate. More... | |
virtual bool | SetGround (const Latitude &lat, const Longitude &lon) |
Compute undistorted focal plane coordinate from ground position. More... | |
virtual bool | SetGround (const SurfacePoint &surfacePoint) |
Compute undistorted focal plane coordinate from ground position. More... | |
void | Init (Pvl &lab) |
Initialize vims camera model. More... | |
virtual bool | GetXY (const SurfacePoint &spoint, double *cudx, double *cudy, bool test=true) |
Compute undistorted focal plane coordinate from ground position using current Spice from SetImage call. More... | |
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. More... | |
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. More... | |
virtual bool | GetdXYdOrientation (const SpiceRotation::PartialType varType, int coefIndex, double *cudx, double *cudy) |
Compute derivative of focal plane coordinate w/r to instrument using current state from SetImage call. More... | |
virtual bool | GetdXYdTOrientation (const SpiceRotation::PartialType varType, int coefIndex, double *cudx, double *cudy) |
Compute derivative of focal plane coordinate w/r to target body using current state. More... | |
virtual bool | GetdXYdPoint (std::vector< double > d_pB, double *dx, double *dy) |
Compute derivative of focal plane coordinate w/r to ground point using current state. More... | |
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. More... | |
std::vector< double > | EllipsoidPartial (SurfacePoint spoint, PartialType raxis) |
Compute derivative of focal plane coordinate w/r to one of the ellipsoidal radii (a, b, or c) More... | |
std::vector< double > | MeanRadiusPartial (SurfacePoint spoint, Distance meanRadius) |
Compute derivative of focal plane coordinate w/r to mean of the ellipsoidal radii (a, b, c) More... | |
double | DQuotient (std::vector< double > &look, std::vector< double > &dlook, int index) |
Convenience method for quotient rule applied to look vector. More... | |
double | FocalPlaneX () const |
double | FocalPlaneY () const |
Protected Attributes | |
Camera * | p_camera |
Camera. More... | |
double | p_focalPlaneX |
Camera's x focal plane coordinate. More... | |
double | p_focalPlaneY |
Camera's y focal plane coordinate. More... | |
Private Member Functions | |
void | LookDirection (double v[3]) |
Determines the look direction in the camera coordinate system. More... | |
void | LookCtoFocalPlaneXY () |
Calculate focalplane x/y from lookvector in camera. More... | |
Private Attributes | |
SpiceDouble | p_etStart |
Start ephemeris time. More... | |
double | p_interlineDelay |
InterlineDelayDuration keyword value from the instrument group of the labels, divided by 1000. More... | |
double | p_ux |
Distorted focal plane x, in millimeters. More... | |
double | p_uy |
Distorted focal plane y, in millimeters. More... | |
double | p_uz |
Distorted focal plane z, in millimeters. More... | |
double | p_xPixSize |
X pixel size. More... | |
double | p_yPixSize |
Y pixel size. More... | |
double | p_xBore |
X boresight. More... | |
double | p_yBore |
Y boresight. More... | |
QString | p_channel |
Channel keyword value from the instrument group of the labels. More... | |
double | p_visExp |
VIS exposure duration, divided by 1000. More... | |
double | p_irExp |
IR exposure duration, divided by 1000. More... | |
int | p_swathWidth |
SwathWidth keyword value from the instrument group of the labels. More... | |
int | p_swathLength |
SwathLength keyword value from the instrument group of the labels. More... | |
int | p_camSampOffset |
Sample offset. More... | |
int | p_camLineOffset |
Line offset. More... | |
double | p_minX |
double | p_maxX |
double | p_minY |
double | p_maxY |
double | p_minZ |
double | p_maxZ |
QVector3D | p_xyzMap [64][64] |
std::vector< double > | m_pB |
Surface point calculated from ground coordinates in GetXY and used for partials. More... | |
std::vector< double > | m_lookJ |
Look vector in J2000 calculated from ground coordinates in GetXY and used for partials. More... | |
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 77 of file VimsGroundMap.h.
|
inherited |
Radius axes types to use when computing partials.
When computing partials, this enum represents the "with respect to" variable in the computation.
Definition at line 87 of file CameraGroundMap.h.
Constructs the VimsGroundMap object.
Definition at line 42 of file VimsGroundMap.cpp.
References Isis::Camera::ParentLines(), Isis::Camera::ParentSamples(), and Isis::IException::Programmer.
|
virtual |
Destroys the VimsGroundMap object.
Definition at line 64 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 550 of file CameraGroundMap.cpp.
|
inherited |
Compute derivative of focal plane coordinate w/r to one of the ellipsoidal radii (a, b, or c)
This method will compute the derivative of the undistorted focal plane coordinate for a ground position with respect to the a (major axis), b (minor axis), or c (polar axis) radius, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/x/y.
spoint | Surface point whose derivative is to be evalutated |
raxis | Radius axis enumerated partial type (definitions in this header) |
IException::Programmer | "Invalid partial type for this method" |
Definition at line 436 of file CameraGroundMap.cpp.
References Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLongitude(), and Isis::Angle::radians().
Referenced by Isis::IsisBundleObservation::computeTargetPartials().
|
inlineinherited |
Definition at line 122 of file CameraGroundMap.h.
References Isis::CameraGroundMap::p_focalPlaneX.
Referenced by Isis::Camera::RawFocalPlanetoImage().
|
inlineinherited |
Definition at line 129 of file CameraGroundMap.h.
References Isis::CameraGroundMap::p_focalPlaneY.
Referenced by Isis::Camera::RawFocalPlanetoImage().
|
virtualinherited |
Compute derivative of focal plane coordinate w/r to instrument using current state 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 | out] pointer to partial derivative of undistorted focal plane x |
*dy | [out] pointer to partial derivative of undistorted focal plane y |
Definition at line 318 of file CameraGroundMap.cpp.
References Isis::SpiceRotation::ReferenceVector(), and Isis::SpiceRotation::ToReferencePartial().
Referenced by Isis::IsisBundleObservation::computeImagePartials().
|
virtualinherited |
Compute derivative of focal plane coordinate w/r to ground point using current state.
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.
d_pB | Point vector |
*dx | [out] pointer to partial derivative of undistorted focal plane x |
*dy | [out] pointer to partial derivative of undistorted focal plane y |
Reimplemented in Isis::RadarGroundMap.
Definition at line 398 of file CameraGroundMap.cpp.
References Isis::SpiceRotation::J2000Vector(), and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::IsisBundleObservation::computePoint3DPartials(), and Isis::IsisBundleObservation::computeTargetPartials().
|
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 | [out] pointer to partial derivative of undistorted focal plane x |
*dy | [out] pointer to partial derivative of undistorted focal plane y |
Reimplemented in Isis::RadarGroundMap.
Definition at line 279 of file CameraGroundMap.cpp.
References Isis::SpicePosition::CoordinatePartial(), and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::IsisBundleObservation::computeImagePartials().
|
virtualinherited |
Compute derivative of focal plane coordinate w/r to target body using current state.
This method will compute the derivative of the undistorted focal plane coordinate for a ground position with respect to the target body 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 | [out] pointer to partial derivative of undistorted focal plane x |
*dy | [out] pointer to partial derivative of undistorted focal plane y |
Definition at line 354 of file CameraGroundMap.cpp.
References Isis::SpiceRotation::ReferenceVector(), and Isis::SpiceRotation::toJ2000Partial().
Referenced by Isis::IsisBundleObservation::computeTargetPartials().
|
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/m_pB/x/y. The class value for m_lookJ is set by this method.
lat | Latitude in degrees |
lon | Longitude in degrees |
radius | Radius in meters |
cudx | [out] Pointer to computed undistored x focal plane coordinate |
cudy | [out] Pointer to computed undistored y focal plane coordinate |
Definition at line 254 of file CameraGroundMap.cpp.
|
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/m_pB/x/y. The class value for m_lookJ is set by this method.
point | Surface point (ground position) |
cudx | [out] Pointer to computed undistorted x focal plane coordinate |
cudy | [out] Pointer to computed undistorted y focal plane coordinate |
test | Optional parameter to indicate whether to do the back-of-planet test. |
Reimplemented in Isis::RadarGroundMap.
Definition at line 152 of file CameraGroundMap.cpp.
References Isis::SpiceRotation::J2000Vector(), Isis::Displacement::kilometers(), Isis::PI, and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::BundleAdjust::computePartials(), Isis::ControlPoint::ComputeResiduals(), Isis::ControlPoint::ComputeResiduals_Millimeters(), and Isis::IsisBundleObservation::computeRHSPartials().
void Isis::VimsGroundMap::Init | ( | Pvl & | lab | ) |
Initialize vims camera model.
iException::Io | - "Cannot process NYQUIST(undersampled) mode " |
Definition at line 116 of file VimsGroundMap.cpp.
References Isis::Sensor::Coordinate(), Isis::iTime::Et(), Isis::PvlObject::findGroup(), Isis::Spice::getClockTime(), Isis::Camera::IgnoreProjection(), Isis::Distance::kilometers(), Isis::Null, Isis::CameraGroundMap::p_camera, 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.
|
privateinherited |
Calculate focalplane x/y from lookvector in camera.
Compute undistorted focal plane coordinate from camera look vector.
Definition at line 106 of file CameraGroundMap.cpp.
|
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 511 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 of focal plane coordinate w/r to mean of the ellipsoidal radii (a, b, c)
This method will compute the derivative of the undistorted focal plane coordinate for a ground position with respect to the mean of the a (major axis), b (minor axis), and c (polar axis) radius, using the current Spice settings (time and kernels) without resetting the current point values for lat/lon/radius/x/y.
spoint | Surface point whose derivative is to be evalutated |
meanRadius | Computed mean of radii |
Definition at line 486 of file CameraGroundMap.cpp.
References Isis::Displacement::kilometers(), and Isis::Distance::kilometers().
Referenced by Isis::IsisBundleObservation::computeTargetPartials().
|
inherited |
Compute derivative with respect to indicated variable of conversion function from lat/lon/rad to rectangular coord.
spoint | Surface point (ground position) |
wrt | take derivative with respect to this value |
Definition at line 508 of file CameraGroundMap.cpp.
References Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLocalRadius(), Isis::SurfacePoint::GetLongitude(), Isis::Distance::kilometers(), and Isis::Angle::radians().
|
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 287 of file VimsGroundMap.cpp.
References LookDirection(), Isis::CameraGroundMap::p_camera, 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 359 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::CameraGroundMap::p_camera, Isis::CameraGroundMap::p_focalPlaneX, Isis::CameraGroundMap::p_focalPlaneY, 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 492 of file VimsGroundMap.cpp.
References Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLongitude(), and SetGround().
|
privateinherited |
Look vector in J2000 calculated from ground coordinates in GetXY and used for partials.
Definition at line 143 of file CameraGroundMap.h.
|
privateinherited |
Surface point calculated from ground coordinates in GetXY and used for partials.
Definition at line 141 of file CameraGroundMap.h.
|
protectedinherited |
Definition at line 134 of file CameraGroundMap.h.
Referenced by Isis::PushFrameCameraGroundMap::FindDistance(), Isis::PushFrameCameraGroundMap::FindSpacecraftDistance(), Init(), SetFocalPlane(), Isis::LineScanCameraGroundMap::SetGround(), Isis::PushFrameCameraGroundMap::SetGround(), and SetGround().
|
private |
Line offset.
Definition at line 119 of file VimsGroundMap.h.
Referenced by Init(), and LookDirection().
|
private |
Sample offset.
Definition at line 118 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 110 of file VimsGroundMap.h.
Referenced by Init(), and SetFocalPlane().
|
private |
Start ephemeris time.
Definition at line 96 of file VimsGroundMap.h.
Referenced by Init(), and SetFocalPlane().
|
protectedinherited |
Camera's x focal plane coordinate.
Definition at line 135 of file CameraGroundMap.h.
Referenced by Isis::CameraGroundMap::FocalPlaneX(), SetGround(), and Isis::RadarGroundMap::SetGround().
|
protectedinherited |
Camera's y focal plane coordinate.
Definition at line 136 of file CameraGroundMap.h.
Referenced by Isis::CameraGroundMap::FocalPlaneY(), SetGround(), and Isis::RadarGroundMap::SetGround().
|
private |
InterlineDelayDuration keyword value from the instrument group of the labels, divided by 1000.
Definition at line 98 of file VimsGroundMap.h.
Referenced by Init(), and SetFocalPlane().
|
private |
IR exposure duration, divided by 1000.
Definition at line 113 of file VimsGroundMap.h.
Referenced by Init(), and SetFocalPlane().
|
private |
SwathLength keyword value from the instrument group of the labels.
This will be image size unless occultation image
Definition at line 116 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 114 of file VimsGroundMap.h.
Referenced by Init(), and SetFocalPlane().
|
private |
Distorted focal plane x, in millimeters.
Definition at line 101 of file VimsGroundMap.h.
Referenced by LookDirection(), and SetFocalPlane().
|
private |
Distorted focal plane y, in millimeters.
Definition at line 102 of file VimsGroundMap.h.
Referenced by LookDirection(), and SetFocalPlane().
|
private |
Distorted focal plane z, in millimeters.
Definition at line 103 of file VimsGroundMap.h.
Referenced by SetFocalPlane().
|
private |
VIS exposure duration, divided by 1000.
Definition at line 112 of file VimsGroundMap.h.
Referenced by Init(), and SetFocalPlane().
|
private |
X boresight.
Definition at line 107 of file VimsGroundMap.h.
Referenced by Init(), and LookDirection().
|
private |
X pixel size.
Definition at line 105 of file VimsGroundMap.h.
Referenced by Init(), and LookDirection().
|
private |
Y boresight.
Definition at line 108 of file VimsGroundMap.h.
Referenced by Init(), and LookDirection().
|
private |
Y pixel size.
Definition at line 106 of file VimsGroundMap.h.
Referenced by Init(), and LookDirection().
U.S. Department of the Interior | U.S. Geological Survey ISIS | Privacy & Disclaimers | Astrogeology Research Program To contact us, please post comments and questions on the USGS Astrogeology Discussion Board To report a bug, or suggest a feature go to: ISIS Github File Modified: 07/13/2023 15:24:05 |