Isis Developer Reference
CameraGroundMap.h
Go to the documentation of this file.
1#ifndef CameraGroundMap_h
2#define CameraGroundMap_h
3
9/* SPDX-License-Identifier: CC0-1.0 */
10
11#include "Camera.h"
12#include "CameraDistortionMap.h"
13#include "SpicePosition.h"
14#include "SurfacePoint.h"
15
16namespace Isis {
78 public:
79 CameraGroundMap(Camera *parent);
80
82 virtual ~CameraGroundMap() {};
83
84 virtual bool SetFocalPlane(const double ux, const double uy,
85 const double uz);
86
99
100 virtual bool SetGround(const Latitude &lat, const Longitude &lon);
101 virtual bool SetGround(const SurfacePoint &surfacePoint);
102 virtual bool GetXY(const SurfacePoint &spoint, double *cudx,
103 double *cudy, bool test=true);
104 virtual bool GetXY(const double lat, const double lon,
105 const double radius, double *cudx, double *cudy);
106 virtual bool GetdXYdPosition(const SpicePosition::PartialType varType,
107 int coefIndex,
108 double *cudx, double *cudy);
109 virtual bool GetdXYdOrientation(const SpiceRotation::PartialType varType,
110 int coefIndex,
111 double *cudx, double *cudy);
112 virtual bool GetdXYdTOrientation(const SpiceRotation::PartialType varType,
113 int coefIndex,
114 double *cudx, double *cudy);
115 virtual bool GetdXYdPoint(std::vector<double> d_pB,
116 double *dx, double *dy);
117 std::vector<double> PointPartial(SurfacePoint spoint, PartialType wrt);
118 std::vector<double> EllipsoidPartial(SurfacePoint spoint, PartialType raxis);
119 std::vector<double> MeanRadiusPartial(SurfacePoint spoint, Distance meanRadius);
120 double DQuotient(std::vector<double> &look, std::vector<double> &dlook,
121 int index);
122
126 inline double FocalPlaneX() const {
127 return p_focalPlaneX;
128 };
129
133 inline double FocalPlaneY() const {
134 return p_focalPlaneY;
135 };
136
137 protected:
141
142 void LookCtoFocalPlaneXY();
144 std::vector<double> m_pB;
146 std::vector<double> m_lookJ;
147 };
148};
149#endif
Convert between undistorted focal plane and ground coordinates.
Definition CameraGroundMap.h:77
virtual bool SetGround(const Latitude &lat, const Longitude &lon)
Compute undistorted focal plane coordinate from ground position.
Definition CameraGroundMap.cpp:76
PartialType
Radius axes types to use when computing partials.
Definition CameraGroundMap.h:91
@ WRT_Latitude
Definition CameraGroundMap.h:92
@ WRT_Radius
Definition CameraGroundMap.h:94
@ WRT_Longitude
Definition CameraGroundMap.h:93
@ WRT_PolarAxis
Definition CameraGroundMap.h:97
@ WRT_MinorAxis
Definition CameraGroundMap.h:96
@ WRT_MajorAxis
Definition CameraGroundMap.h:95
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 cal...
Definition CameraGroundMap.cpp:152
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.
Definition CameraGroundMap.cpp:354
CameraGroundMap(Camera *parent)
Constructor.
Definition CameraGroundMap.cpp:31
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.
Definition CameraGroundMap.cpp:398
double p_focalPlaneX
Camera's x focal plane coordinate.
Definition CameraGroundMap.h:139
std::vector< double > m_lookJ
Look vector in J2000 calculated from ground coordinates in GetXY and used for partials.
Definition CameraGroundMap.h:146
double DQuotient(std::vector< double > &look, std::vector< double > &dlook, int index)
Convenience method for quotient rule applied to look vector.
Definition CameraGroundMap.cpp:550
virtual bool SetFocalPlane(const double ux, const double uy, const double uz)
Compute ground position from focal plane coordinate.
Definition CameraGroundMap.cpp:50
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...
Definition CameraGroundMap.cpp:279
virtual ~CameraGroundMap()
Destructor.
Definition CameraGroundMap.h:82
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...
Definition CameraGroundMap.cpp:318
std::vector< double > EllipsoidPartial(SurfacePoint spoint, PartialType raxis)
Compute derivative of focal plane coordinate w/r to one of the ellipsoidal radii (a,...
Definition CameraGroundMap.cpp:436
Camera * p_camera
Camera.
Definition CameraGroundMap.h:138
std::vector< double > PointPartial(SurfacePoint spoint, PartialType wrt)
Compute derivative with respect to indicated variable of conversion function from lat/lon/rad to rect...
Definition CameraGroundMap.cpp:508
std::vector< double > m_pB
Surface point calculated from ground coordinates in GetXY and used for partials.
Definition CameraGroundMap.h:144
double FocalPlaneX() const
Definition CameraGroundMap.h:126
void LookCtoFocalPlaneXY()
Calculate focalplane x/y from lookvector in camera.
Definition CameraGroundMap.cpp:106
double FocalPlaneY() const
Definition CameraGroundMap.h:133
double p_focalPlaneY
Camera's y focal plane coordinate.
Definition CameraGroundMap.h:140
std::vector< double > MeanRadiusPartial(SurfacePoint spoint, Distance meanRadius)
Compute derivative of focal plane coordinate w/r to mean of the ellipsoidal radii (a,...
Definition CameraGroundMap.cpp:486
Definition Camera.h:236
Distance measurement, usually in meters.
Definition Distance.h:34
This class is designed to encapsulate the concept of a Latitude.
Definition Latitude.h:51
This class is designed to encapsulate the concept of a Longitude.
Definition Longitude.h:40
PartialType
Definition SpicePosition.h:204
PartialType
This enumeration indicates whether the partial derivative is taken with respect to Right Ascension,...
Definition SpiceRotation.h:256
This class defines a body-fixed surface point.
Definition SurfacePoint.h:132
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16