Isis 3.0 Object Programmers' Reference |
Home |
Obtain SPICE rotation information for a body. More...
#include <SpiceRotation.h>
Public Types | |
enum | Source { Spice, Nadir, Memcache, PolyFunction, PolyFunctionOverSpice } |
The rotation can come from one of 3 places for an Isis cube. More... | |
enum | PartialType { WRT_RightAscension, WRT_Declination, WRT_Twist } |
This enumeration indicates whether the partial derivative is taken with respect to Right Ascension, Declination, or Twist. More... | |
enum | DownsizeStatus { Yes, Done, No } |
enum | NaifFrameType { INERTL = 1, PCK = INERTL + 1, CK = PCK + 1, TK = CK + 1, DYN = TK + 1 } |
Public Member Functions | |
SpiceRotation (int frameCode) | |
Construct an empty SpiceRotation class using a valid Naif frame code to set up for getting rotation from Spice kernels. | |
SpiceRotation (int frameCode, int targetCode) | |
Construct an empty SpiceRotation object using valid Naif frame code and. | |
SpiceRotation (const SpiceRotation &rotToCopy) | |
Construct a SpiceRotation object by copying from an existing one. | |
virtual | ~SpiceRotation () |
Destructor for SpiceRotation object. | |
void | SetFrame (int frameCode) |
Change the frame to the given frame code. | |
int | Frame () |
Accessor method that returns the frame code. | |
void | SetTimeBias (double timeBias) |
Apply a time bias when invoking SetEphemerisTime method. | |
void | SetEphemerisTime (double et) |
Return the J2000 to reference frame quaternion at given time. | |
double | EphemerisTime () const |
Accessor method to get current ephemeris time. | |
std::vector< double > | GetCenterAngles () |
Return the camera angles at the center time of the observation. | |
std::vector< double > | Matrix () |
Return the full rotation TJ as a matrix. | |
std::vector< double > | AngularVelocity () |
Accessor method to get the angular velocity. | |
std::vector< double > | ConstantRotation () |
Return the constant 3x3 rotation TC matrix as a quaternion. | |
std::vector< double > & | ConstantMatrix () |
Return the constant 3x3 rotation TC matrix as a vector of length 9. | |
void | SetConstantMatrix (std::vector< double > constantMatrix) |
Set the constant 3x3 rotation TC matrix from a vector of length 9. | |
std::vector< double > | TimeBasedRotation () |
Return time-based 3x3 rotation CJ matrix as a quaternion. | |
std::vector< double > & | TimeBasedMatrix () |
Return time-based 3x3 rotation CJ matrix as a vector of length 9. | |
void | SetTimeBasedMatrix (std::vector< double > timeBasedMatrix) |
Set the time-based 3x3 rotation CJ matrix from a vector of length 9. | |
std::vector< double > | J2000Vector (const std::vector< double > &rVec) |
Given a direction vector in the reference frame, return a J2000 direction. | |
std::vector< double > | ReferenceVector (const std::vector< double > &jVec) |
Given a direction vector in J2000, return a reference frame direction. | |
std::vector< double > | EvaluatePolyFunction () |
void | MinimizeCache (DownsizeStatus status) |
Set the downsize status to minimize cache. | |
void | LoadCache (double startTime, double endTime, int size) |
Cache J2000 rotation quaternion over a time range. | |
void | LoadCache (double time) |
Cache J2000 to frame rotation for a time. | |
void | LoadCache (Table &table) |
Cache J2000 rotations using a table file. | |
Table | LineCache (const QString &tableName) |
Return a table with J2000 to reference rotations. | |
void | ReloadCache () |
Cache J2000 rotation over existing cached time range using polynomials. | |
Table | Cache (const QString &tableName) |
Return a table with J2000 to reference rotations. | |
void | CacheLabel (Table &table) |
Add labels to a SpiceRotation table. | |
void | LoadTimeCache () |
Load the time cache. | |
std::vector< double > | Angles (int axis3, int axis2, int axis1) |
Return the camera angles (right ascension, declination, and twist) for the time-based matrix CJ. | |
bool | IsCached () const |
Checks if the cache is empty. | |
void | SetPolynomial (const Source type=PolyFunction) |
Set the coefficients of a polynomial fit to each of the three camera angles for the time period covered by the cache, angle = a + bt + ct**2, where t = (time - p_baseTime)/ p_timeScale. | |
void | SetPolynomial (const std::vector< double > &abcAng1, const std::vector< double > &abcAng2, const std::vector< double > &abcAng3, const Source type=PolyFunction) |
Set the coefficients of a polynomial fit to each of the three camera angles for the time period covered by the cache, angle = c0 + c1*t + c2*t**2 + ... | |
void | GetPolynomial (std::vector< double > &abcAng1, std::vector< double > &abcAng2, std::vector< double > &abcAng3) |
Return the coefficients of a polynomial fit to each of the three camera angles for the time period covered by the cache, angle = c0 + c1*t + c2*t**2 + ... | |
void | SetPolynomialDegree (int degree) |
Set the degree of the polynomials to be fit to the three camera angles for the time period covered by the cache, angle = c0 + c1*t + c2*t**2 + ... | |
Source | GetSource () |
Accessor method to get the rotation source. | |
void | SetSource (Source source) |
Resets the source of the rotation to the given value. | |
void | ComputeBaseTime () |
Compute the base time using cached times. | |
double | GetBaseTime () |
Accessor method to get the rotation base time. | |
double | GetTimeScale () |
Accessor method to get the rotation time scale. | |
void | SetOverrideBaseTime (double baseTime, double timeScale) |
Set an override base time to be used with observations on scanners to allow all images in an observation to use the save base time and polynomials for the angles. | |
double | DPolynomial (const int coeffIndex) |
Evaluate the derivative of the fit polynomial defined by the given coefficients with respect to the coefficient at the given index, at the current time. | |
std::vector< double > | ToReferencePartial (std::vector< double > &lookJ, PartialType partialVar, int coeffIndex) |
Compute the derivative with respect to one of the coefficients in the angle polynomial fit equation of a vector rotated from J2000 to a reference frame. | |
double | WrapAngle (double compareAngle, double angle) |
Wrap the input angle to keep it within 2pi radians of the angle to compare. | |
void | SetAxes (int axis1, int axis2, int axis3) |
Set the axes of rotation for decomposition of a rotation matrix into 3 angles. | |
std::vector< double > | GetFullCacheTime () |
Return full listing (cache) of original time coverage requested. | |
void | FrameTrace (double et) |
Compute frame trace chain from target frame to J2000. | |
std::vector< int > | ConstantFrameChain () |
Accessor method to get the frame chain for the constant part of the rotation (ends in target) | |
std::vector< int > | TimeFrameChain () |
Accessor method to get the frame chain for the rotation (begins in J2000). | |
void | InitConstantRotation (double et) |
Initialize the constant rotation. | |
void | DCJdt (std::vector< double > &dRJ) |
Compute the derivative of the rotation p_CJ with respect to time. | |
bool | HasAngularVelocity () |
Checks whether the rotation has angular velocities. | |
void | ComputeAv () |
Compute the angular velocity from the time-based functions fit to the pointing angles This method computes omega = angular velocity matrix, and extracts the angular velocity. | |
std::vector< double > | Extrapolate (double timeEt) |
Extrapolate pointing for a given time assuming a constant angular velocity. | |
Protected Member Functions | |
void | SetFullCacheParameters (double startTime, double endTime, int cacheSize) |
Set the full cache time parameters. | |
void | SetEphemerisTimeMemcache () |
void | SetEphemerisTimeNadir () |
void | SetEphemerisTimeSpice () |
void | SetEphemerisTimePolyFunction () |
void | SetEphemerisTimePolyFunctionOverSpice () |
Protected Attributes | |
std::vector< double > | p_cacheTime |
iTime for corresponding rotation | |
std::vector< std::vector < double > > | p_cache |
Cached rotations, stored as rotation matrix from J2000 to 1st constant frame (CJ) or coefficients of polynomial fit to rotation angles. | |
int | p_degree |
Degree of fit polynomial for angles. | |
int | p_axis1 |
Axis of rotation for angle 1 of rotation. | |
int | p_axis2 |
Axis of rotation for angle 2 of rotation. | |
int | p_axis3 |
Axis of rotation for angle 3 of rotation. | |
Private Member Functions | |
std::vector< double > | StateTJ () |
State matrix (6x6) for rotating state vectors from J2000 to target frame. | |
Private Attributes | |
std::vector< int > | p_constantFrames |
Chain of Naif frame codes in constant rotation TC. | |
std::vector< int > | p_timeFrames |
Chain of Naif frame codes in time-based | |
double | p_timeBias |
iTime bias when reading kernels | |
double | p_et |
Current ephemeris time. | |
Quaternion | p_quaternion |
Quaternion for J2000 to reference | |
bool | p_matrixSet |
Flag indicating p_TJ has been set. | |
Source | p_source |
The source of the rotation data. | |
int | p_axisP |
The axis defined by the spacecraft | |
int | p_axisV |
The axis defined by the velocity | |
int | p_targetCode |
For computing Nadir rotation only. | |
double | p_baseTime |
Base time used in fit equations. | |
double | p_timeScale |
Time scale used in fit equations. | |
bool | p_degreeApplied |
Flag indicating whether or not a polynomial of degree p_degree has been created and used to fill the cache | |
std::vector< double > | p_coefficients [3] |
Coefficients defining functions fit to 3 pointing angles. | |
bool | p_noOverride |
Flag to compute base time;. | |
double | p_overrideBaseTime |
Value set by caller to override computed base time. | |
double | p_overrideTimeScale |
Value set by caller to override computed time scale. | |
DownsizeStatus | p_minimizeCache |
Status of downsizing the cache (set to No to ignore) | |
double | p_fullCacheStartTime |
Initial requested starting time of cache. | |
double | p_fullCacheEndTime |
Initial requested ending time of cache. | |
int | p_fullCacheSize |
Initial requested cache size. | |
std::vector< double > | p_TC |
Rotation matrix from first constant rotation (after all time-based rotations in frame chain from J2000 to target) to the target frame | |
std::vector< double > | p_CJ |
Rotation matrix from J2000 to first constant rotation after all the time-based rotations in frame chain from | |
std::vector< std::vector < double > > | p_cacheAv |
Cached angular velocities for corresponding rotactions in p_cache. | |
std::vector< double > | p_av |
Angular velocity for rotation at time p_et. | |
bool | p_hasAngularVelocity |
Flag indicating whether the rotation | |
Obtain SPICE rotation information for a body.
This class will obtain the rotation from J2000 to a particular reference frame, for example the rotation from J2000 to MOC NA.
It is essentially used to convert position vectors from one frame to another, making it is a C++ wrapper to the NAIF routines pxform_c and mxv or mtxv. Therefore, appropriate NAIF kernels are expected to be loaded prior to using this class. A position can be returned in either the J2000 frame or the selected reference frame. See NAIF required reading for more information regarding this subject at ftp://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/ascii/individual_docs/spk.req
An important functionality of this class is the ability to cache the rotations so they do not have to be constantly read from the NAIF kernels and they can be more conveniently updated. Once the data is cached, the NAIF kernels can be unloaded. If the rotation has a fixed part and a time- based part, the rotation is computed and stored in those two parts.
2005-12-01 Debbie A. Cook Original Version modified from SpicePosition class by Jeff Anderson
2006-03-23 Jeff Anderson modified SetEphemerisTime to return if the time did not change to improve speed.
2006-10-18 Debbie A. Cook Added method, WrapAngle, to wrap angles around 2 pi
2007-12-05 Debbie A. Cook added method SetPolynomialDegree to allow the degree of the polynomials fit to the camera angles to be changed. Also changed the polynomial from a fixed 2nd order polynomial to an nth degree polynomial with one independent variable. PartialType was revised and the calls to SetReferencePartial (has an added argument, coefficient index) and DPolynomial (argument type changed to int) were revised. The function was changed from Parabola to Polynomial1Variable, now called PolynomialUnivariate. New methods GetBaseTime and SetOverrideBaseTime were added
2008-02-15 Debbie A. Cook added a new error message to handle the case where the Naif reference frame code is not recognized.
2008-06-18 Unknown - Fixed documentation, added NaifStatus calls
2008-11-26 Debbie A. Cook Added method to set axes of rotation. Default axes are still 3,1,3 so existing software will not be affected by the change. Also added timeScale to the the class and made some parameters protected instead of private so they are available to inheriting classes.
2008-12-12 Debbie A. Cook Added method to return frame code
2009-01-26 Debbie A. Cook Added wrap of 3rd camera angle when crossing +-180
2009-04-21 Debbie A. Cook Added methods MinimizeCache and LoadTimeCache, variable p_minimizeCache, and enum constants DownsizeStatus
2009-06-29 Debbie A. Cook Fixed memory overwrite problem in LoadTimeCache when reading a type 3 ck
2009-07-24 Debbie A. Cook Removed downsizing for Nadir instrument pointing tables (LoadTimeCache) so that radar instruments will work. Current downsizing code requires sclk and radar has no sclk.
2009-10-01 Debbie A. Cook Divided the rotation into a constant (in time) part and a time-based part and added keywords listing the frame chains for both the constant part and the time-based part.
2009-10-09 Debbie A. Cook Added angular velocity when it is available
2009-10-30 Unknown - Modified J2000Vector and ReferenceVector to work on either length 3 vectors (position only) or lenght 6 vectors (position and velocity) and added private method StateTJ()
2009-12-03 Debbie A. Cook Modified tests in LoadTimeCache to allow observation to cross segment boundary for LRO
2010-03-19 Debbie A. Cook Revised ReloadCache including removing obsolete arguments. Added initialization of members p_fullCacheStartTime, p_fullCacheEndTime, and p_fullCacheSize. Added these same values to the table label in method Cache and the reading of these values to the method LoadCache(table). Improved error message in FrameTrace. Also corrected a comment in StateTJ
2010-09-23 Debbie A. Cook Revised to write out line cache for updated pointing when cache size is 1. If the original pointing had an angular velocity in this case, the original angular velocity is written out along with the updated quaternion. Also added method Extrapolate, to extrapolate pointing assuming a constant angular velocity. This method was designed to compute the pointing at the start and end of the exposure for framing cameras to create a ck that would cover a single framing observation.
2010-12-22 Debbie A. Cook Added new method SetFullCacheParameters to upgrade appjit to current instrument Rotation group labels.
2011-02-17 Debbie A. Cook Fixed bug in method LineCache and fixed computation of angular velocity in method DCJdt (derivative was with respect to scaled et instead of et)
2011-02-22 Debbie A. Cook - Corrected Extrapolation method
2011-03-25 Debbie A. Cook - Added method GetCenterAngles()
2011-07-20 Kris J Becker - Modified SpiceRotation::LoadCache(Table &table) to be reentrant. This mod was necessitated by the Dawn VIR instrument.
2012-05-28 Debbie A. Cook - Programmer notes - A new interpolation algorithm, PolyFunctionOverSpice, was added and new supporting methods: SetEphemerisTimePolyOverSpice, SetEphemerisTimeSpice, SetEphemerisTimeNadir, SetEphemerisTimeMemcache, and SetEphemerisTimePolyFunction. PolyFunctionOverSpice is never output, but is converted to a line cache and reduced. Methods LineCache and ReloadCache were modified to do the reduction and a copy constructor was added to support the reduction. Also an argument was added to SetPolynomial methods for function type, since PolyFunction is no longer the only function supported. These changes help the BundleAdjust applications to better fit line scan images where the pointing was not modeled well with a regular polynomial.
2012-10-25 Jeannie Backer - Brought class closer to Isis3 standards: Ordered includes in cpp file, replaced quotation marks with angle braces in 3rd party includes, fixed history indentation and line length. References #1181.
2013-03-27 Jeannie Backer - Added methods for MsiCamera. Brought class closer to Isis3 standards: moved method implementation to cpp file, fixed documentation. References #1248.
2013-11-12 Ken Edmundson Programmers notes - Commented out cout debug statements on lines 637 and 642 that appeared onscreen during jigsaw runs when images are updated. References #1521.
2014-03-11 Tracie Sucharski - In the LoadTimeCache method, do not throw error if if first segment in kernel is not type 3 or 5. As long as the segment needed is type 3 or 5, we're ok. This was changed for New Horizons which had ck's with both type 2 and type 3 segments.
2014-03-11 Stuart Sides - Programmers notes - Fixed a bug in the copy constructor that was going out of array bounds.
Definition at line 189 of file SpiceRotation.h.
This enumeration indicates whether the partial derivative is taken with respect to Right Ascension, Declination, or Twist.
Enumerator | |
---|---|
WRT_RightAscension |
With respect to Right Ascension. |
WRT_Declination |
With respect to Declination. |
WRT_Twist |
With respect to Twist. |
Definition at line 223 of file SpiceRotation.h.
The rotation can come from one of 3 places for an Isis cube.
The class expects function to be after Memcache.
Enumerator | |
---|---|
Spice |
Directly from the kernels. |
Nadir |
Nadir pointing. |
Memcache |
From cached table. |
PolyFunction |
From nth degree polynomial. |
PolyFunctionOverSpice |
Kernels plus nth degree. |
Definition at line 212 of file SpiceRotation.h.
Isis::SpiceRotation::SpiceRotation | ( | int | frameCode | ) |
Construct an empty SpiceRotation class using a valid Naif frame code to set up for getting rotation from Spice kernels.
See required reading ftp://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/ascii/individual_docs/naif_ids.req
frameCode | Valid naif frame code. |
Definition at line 45 of file SpiceRotation.cpp.
References p_av, p_axis1, p_axis2, p_axis3, p_CJ, p_constantFrames, p_degree, p_degreeApplied, p_et, p_fullCacheEndTime, p_fullCacheSize, p_fullCacheStartTime, p_hasAngularVelocity, p_matrixSet, p_minimizeCache, p_noOverride, p_source, p_timeBias, and Spice.
Isis::SpiceRotation::SpiceRotation | ( | int | frameCode, |
int | targetCode | ||
) |
Construct an empty SpiceRotation object using valid Naif frame code and.
body code to set up for computing nadir rotation. See required reading ftp://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/ascii/individual_docs/naif_ids.req
frameCode | Valid naif frame code. |
targetCode | Valid naif body code. |
Definition at line 74 of file SpiceRotation.cpp.
References _FILEINFO_, Isis::NaifStatus::CheckErrors(), Isis::IException::Io, Nadir, p_av, p_axis1, p_axis2, p_axis3, p_axisP, p_axisV, p_CJ, p_constantFrames, p_degree, p_degreeApplied, p_et, p_fullCacheEndTime, p_fullCacheSize, p_fullCacheStartTime, p_hasAngularVelocity, p_matrixSet, p_minimizeCache, p_noOverride, p_source, p_targetCode, p_timeBias, and Isis::toString().
Isis::SpiceRotation::SpiceRotation | ( | const SpiceRotation & | rotToCopy | ) |
Construct a SpiceRotation object by copying from an existing one.
Definition at line 121 of file SpiceRotation.cpp.
References p_av, p_axis1, p_axis2, p_axis3, p_axisP, p_axisV, p_baseTime, p_cache, p_cacheAv, p_cacheTime, p_CJ, p_coefficients, p_constantFrames, p_degree, p_degreeApplied, p_et, p_fullCacheEndTime, p_fullCacheSize, p_fullCacheStartTime, p_hasAngularVelocity, p_matrixSet, p_minimizeCache, p_noOverride, p_overrideBaseTime, p_overrideTimeScale, p_quaternion, p_source, p_targetCode, p_TC, p_timeBias, p_timeFrames, and p_timeScale.
|
virtual |
Destructor for SpiceRotation object.
Definition at line 169 of file SpiceRotation.cpp.
std::vector< double > Isis::SpiceRotation::Angles | ( | int | axis3, |
int | axis2, | ||
int | axis1 | ||
) |
Return the camera angles (right ascension, declination, and twist) for the time-based matrix CJ.
Definition at line 806 of file SpiceRotation.cpp.
References Isis::NaifStatus::CheckErrors(), and p_CJ.
Referenced by DCJdt(), GetCenterAngles(), SetPolynomial(), and ToReferencePartial().
std::vector< double > Isis::SpiceRotation::AngularVelocity | ( | ) |
Accessor method to get the angular velocity.
Definition at line 824 of file SpiceRotation.cpp.
References p_av.
Referenced by Isis::MiniRF::MiniRF(), and ReloadCache().
Table Isis::SpiceRotation::Cache | ( | const QString & | tableName | ) |
Return a table with J2000 to reference rotations.
Return a table containing the cached pointing with the given name. The table will have either five columns (for a list cache) of J2000 to reference quaternions and times, eight columns (if angular velocity is available), or three columns (for a coefficient cache), of J2000 to reference frame rotation angles defined by coefficients of a polynomial function (see SetPolynommial). In the coefficient cache the last row of the table is the base time, time scale, and polynomial degree. Note: In the case of the coefficient cache, the angular velocity is not written to the table since it can be calculated from the polynomials.
tableName | Name of the table to create and return |
Definition at line 634 of file SpiceRotation.cpp.
References _FILEINFO_, CacheLabel(), Isis::TableField::Double, Isis::Quaternion::GetQuaternion(), LineCache(), LoadTimeCache(), Memcache, p_baseTime, p_cache, p_cacheAv, p_cacheTime, p_coefficients, p_degree, p_fullCacheSize, p_hasAngularVelocity, p_minimizeCache, p_source, p_timeScale, PolyFunction, PolyFunctionOverSpice, and Isis::IException::Programmer.
Referenced by LineCache().
void Isis::SpiceRotation::CacheLabel | ( | Table & | table | ) |
Add labels to a SpiceRotation table.
Return a table containing the labels defining the rotation.
Definition at line 746 of file SpiceRotation.cpp.
References Isis::NaifStatus::CheckErrors(), Isis::Blob::Label(), p_constantFrames, p_fullCacheEndTime, p_fullCacheSize, p_fullCacheStartTime, p_TC, p_timeFrames, and Isis::toString().
Referenced by Cache().
void Isis::SpiceRotation::ComputeAv | ( | ) |
Compute the angular velocity from the time-based functions fit to the pointing angles This method computes omega = angular velocity matrix, and extracts the angular velocity.
See comments in the Naif Spicelib routine xf2rav_c.c.
_ _ | | | 0 -av[2] av[1] | | |
omega = | av[2] 0 -av[0] | | | | -av[1] av[0] 0 | |_ _|
Definition at line 1865 of file SpiceRotation.cpp.
References _FILEINFO_, Isis::NaifStatus::CheckErrors(), DCJdt(), p_av, p_CJ, p_source, PolyFunction, and Isis::IException::Programmer.
void Isis::SpiceRotation::ComputeBaseTime | ( | ) |
Compute the base time using cached times.
Definition at line 1153 of file SpiceRotation.cpp.
References p_baseTime, p_cacheTime, p_noOverride, p_overrideBaseTime, p_overrideTimeScale, and p_timeScale.
Referenced by SetPolynomial().
std::vector< int > Isis::SpiceRotation::ConstantFrameChain | ( | ) |
Accessor method to get the frame chain for the constant part of the rotation (ends in target)
Definition at line 833 of file SpiceRotation.cpp.
References p_constantFrames.
std::vector< double > & Isis::SpiceRotation::ConstantMatrix | ( | ) |
Return the constant 3x3 rotation TC matrix as a vector of length 9.
Definition at line 1787 of file SpiceRotation.cpp.
References p_TC.
std::vector< double > Isis::SpiceRotation::ConstantRotation | ( | ) |
Return the constant 3x3 rotation TC matrix as a quaternion.
Definition at line 1773 of file SpiceRotation.cpp.
References Isis::NaifStatus::CheckErrors(), and p_TC.
void Isis::SpiceRotation::DCJdt | ( | std::vector< double > & | dCJ | ) |
Compute the derivative of the rotation p_CJ with respect to time.
The derivative is computed based on p_CJ = [angle3] [angle2] [angle1] p_CJ = [angle3] [angle2] [angle1] axis3 axis2 axis1
[out] | dCJ | Derivative of p_CJ |
Definition at line 1893 of file SpiceRotation.cpp.
References Angles(), Isis::NaifStatus::CheckErrors(), p_axis1, p_axis2, p_axis3, p_baseTime, p_coefficients, p_degree, p_et, p_timeScale, and Isis::BasisFunction::SetCoefficients().
Referenced by ComputeAv().
double Isis::SpiceRotation::DPolynomial | ( | const int | coeffIndex | ) |
Evaluate the derivative of the fit polynomial defined by the given coefficients with respect to the coefficient at the given index, at the current time.
coeffIndex | The index of the coefficient to differentiate |
Definition at line 1193 of file SpiceRotation.cpp.
References _FILEINFO_, p_baseTime, p_degree, p_et, p_timeScale, and Isis::IException::Programmer.
Referenced by ToReferencePartial().
double Isis::SpiceRotation::EphemerisTime | ( | ) | const |
Accessor method to get current ephemeris time.
Definition at line 256 of file SpiceRotation.cpp.
References p_et.
std::vector< double > Isis::SpiceRotation::Extrapolate | ( | double | timeEt | ) |
Extrapolate pointing for a given time assuming a constant angular velocity.
The pointing and angular velocity at the current time will be used to extrapolate pointing at the input time. If angular velocity does not exist, the value at the current time will be output.
[in] | timeEt | The time of the pointing to be extrapolated |
[out] | A | quaternion defining the rotation at the input time |
Definition at line 1996 of file SpiceRotation.cpp.
References Isis::NaifStatus::CheckErrors(), p_av, p_CJ, p_et, and p_hasAngularVelocity.
int Isis::SpiceRotation::Frame | ( | ) |
Accessor method that returns the frame code.
This is the first value of the constant frames member variable.
Definition at line 186 of file SpiceRotation.cpp.
References p_constantFrames.
void Isis::SpiceRotation::FrameTrace | ( | double | et | ) |
Compute frame trace chain from target frame to J2000.
Definition at line 1648 of file SpiceRotation.cpp.
References _FILEINFO_, Isis::NaifStatus::CheckErrors(), Nadir, p_constantFrames, p_source, p_timeFrames, Isis::IException::Programmer, and Isis::toString().
Referenced by InitConstantRotation().
double Isis::SpiceRotation::GetBaseTime | ( | ) |
Accessor method to get the rotation base time.
Definition at line 1383 of file SpiceRotation.cpp.
References p_baseTime.
Referenced by Isis::BundleAdjust::Solve(), and Isis::BundleAdjust::SolveCholesky().
std::vector< double > Isis::SpiceRotation::GetCenterAngles | ( | ) |
Return the camera angles at the center time of the observation.
Definition at line 792 of file SpiceRotation.cpp.
References Angles(), p_axis1, p_axis2, p_axis3, p_fullCacheEndTime, p_fullCacheStartTime, and SetEphemerisTime().
Referenced by Isis::BundleAdjust::OutputImagesCSV(), Isis::BundleAdjust::OutputNoErrorPropagation(), and Isis::BundleAdjust::OutputWithErrorPropagation().
std::vector< double > Isis::SpiceRotation::GetFullCacheTime | ( | ) |
Return full listing (cache) of original time coverage requested.
Definition at line 1628 of file SpiceRotation.cpp.
References _FILEINFO_, p_fullCacheEndTime, p_fullCacheSize, p_fullCacheStartTime, and Isis::IException::User.
void Isis::SpiceRotation::GetPolynomial | ( | std::vector< double > & | coeffAng1, |
std::vector< double > & | coeffAng2, | ||
std::vector< double > & | coeffAng3 | ||
) |
Return the coefficients of a polynomial fit to each of the three camera angles for the time period covered by the cache, angle = c0 + c1*t + c2*t**2 + ...
[out] | coeffAng1 | Coefficients of fit to Angle 1 |
[out] | coeffAng2 | Coefficients of fit to Angle 2 |
[out] | coeffAng3 | Coefficients of fit to Angle 3 |
Definition at line 1140 of file SpiceRotation.cpp.
References p_coefficients.
Referenced by Isis::BundleAdjust::applyParameterCorrections_CHOLMOD(), Isis::BundleAdjust::applyParameterCorrections_SPECIALK(), Isis::BundleAdjust::OutputImagesCSV(), Isis::BundleAdjust::OutputNoErrorPropagation(), Isis::BundleAdjust::OutputWithErrorPropagation(), Isis::BundleAdjust::Solve(), Isis::BundleAdjust::SolveCholesky(), and Isis::BundleAdjust::Update().
SpiceRotation::Source Isis::SpiceRotation::GetSource | ( | ) |
Accessor method to get the rotation source.
Definition at line 1366 of file SpiceRotation.cpp.
References p_source.
double Isis::SpiceRotation::GetTimeScale | ( | ) |
Accessor method to get the rotation time scale.
Definition at line 1391 of file SpiceRotation.cpp.
References p_timeScale.
Referenced by Isis::BundleAdjust::Solve(), and Isis::BundleAdjust::SolveCholesky().
bool Isis::SpiceRotation::HasAngularVelocity | ( | ) |
Checks whether the rotation has angular velocities.
Definition at line 849 of file SpiceRotation.cpp.
References p_hasAngularVelocity.
void Isis::SpiceRotation::InitConstantRotation | ( | double | et | ) |
Initialize the constant rotation.
Definition at line 1835 of file SpiceRotation.cpp.
References FrameTrace(), p_constantFrames, p_TC, and p_timeFrames.
Referenced by LoadCache().
bool Isis::SpiceRotation::IsCached | ( | ) | const |
Checks if the cache is empty.
Definition at line 264 of file SpiceRotation.cpp.
References p_cache.
std::vector< double > Isis::SpiceRotation::J2000Vector | ( | const std::vector< double > & | rVec | ) |
Given a direction vector in the reference frame, return a J2000 direction.
[in] | rVec | A direction vector in the reference frame |
Definition at line 859 of file SpiceRotation.cpp.
References Isis::NaifStatus::CheckErrors(), p_CJ, p_hasAngularVelocity, p_TC, and StateTJ().
Referenced by Isis::BundleAdjust::ApproximatePoint_ClosestApproach(), Isis::Sensor::computeRaDec(), Isis::CameraGroundMap::GetdXYdPoint(), Isis::Sensor::LookDirection(), Isis::RadarGroundMap::SetFocalPlane(), Isis::RadarGroundMap::SetGround(), and Isis::Sensor::SetLookDirection().
Table Isis::SpiceRotation::LineCache | ( | const QString & | tableName | ) |
Return a table with J2000 to reference rotations.
Return a table containing the cached pointing with the given name. The table will have eight columns, quaternio, angular velocity, and time of J2000 to reference frame rotation.
tableName | Name of the table to create and return |
Definition at line 603 of file SpiceRotation.cpp.
References _FILEINFO_, Cache(), Memcache, p_source, PolyFunction, Isis::IException::Programmer, and ReloadCache().
Referenced by Cache().
void Isis::SpiceRotation::LoadCache | ( | double | startTime, |
double | endTime, | ||
int | size | ||
) |
Cache J2000 rotation quaternion over a time range.
This method will load an internal cache with frames over a time range. This prevents the NAIF kernels from being read over-and-over again and slowing an application down due to I/O performance. Once the cache has been loaded then the kernels can be unloaded from the NAIF system.
startTime | Starting ephemeris time in seconds for the cache |
endTime | Ending ephemeris time in seconds for the cache |
size | Number of frames to keep in the cache |
Definition at line 289 of file SpiceRotation.cpp.
References _FILEINFO_, InitConstantRotation(), LoadTimeCache(), Memcache, p_av, p_cache, p_cacheAv, p_cacheTime, p_CJ, p_fullCacheEndTime, p_fullCacheSize, p_fullCacheStartTime, p_hasAngularVelocity, p_minimizeCache, p_source, p_timeFrames, Isis::IException::Programmer, and SetEphemerisTime().
Referenced by LoadCache().
void Isis::SpiceRotation::LoadCache | ( | double | time | ) |
Cache J2000 to frame rotation for a time.
This method will load an internal cache with a rotation for a single time (e.g. useful for framing cameras). This prevents the NAIF kernels from being read over-and-over again and slowing a application down due to I/O performance. Once the cache has been loaded then the kernels can be unloaded from the NAIF system. This calls the LoadCache(stime,etime,size) method using the time as both the starting and ending time with a size of 1.
time | single ephemeris time in seconds to cache |
Definition at line 353 of file SpiceRotation.cpp.
References LoadCache().
void Isis::SpiceRotation::LoadCache | ( | Table & | table | ) |
Cache J2000 rotations using a table file.
This method will load either an internal cache with rotations (quaternions) or coefficients (for 3 polynomials defining the camera angles) from an ISIS table file. In the first case, the table must have 5 columns and at least one row. The 5 columns contain the following information, J2000 to reference quaternion (q0, q1, q2, q3) and the ephemeris time of that position. If there are multiple rows, it is assumed the quaternions between the rows can be interpolated. In the second case, the table must have three columns and at least two rows. The three columns contain the coefficients for each of the three camera angles. Row one of the table contains coefficient 0 (constant term) for angles 1, 2, and 3. If the degree of the fit equation is greater than 1, row 2 contains coefficient 1 (linear) for each of the three angles. Row n contains coefficient n-1 and the last row contains the time parameters, base time, and time scale, and the degree of the polynomial.
table | An ISIS table blob containing valid J2000 to reference quaternion/time values |
Definition at line 377 of file SpiceRotation.cpp.
References _FILEINFO_, Isis::TableRecord::Fields(), Isis::PvlObject::findKeyword(), Isis::PvlObject::hasKeyword(), Isis::Blob::Label(), Memcache, p_cache, p_cacheAv, p_cacheTime, p_constantFrames, p_fullCacheEndTime, p_fullCacheSize, p_fullCacheStartTime, p_hasAngularVelocity, p_source, p_TC, p_timeFrames, PolyFunction, Isis::IException::Programmer, Isis::Table::Records(), SetOverrideBaseTime(), SetPolynomial(), SetPolynomialDegree(), Isis::PvlKeyword::size(), Isis::toDouble(), Isis::toInt(), and Isis::Quaternion::ToMatrix().
void Isis::SpiceRotation::LoadTimeCache | ( | ) |
Load the time cache.
This method should works with the LoadCache(startTime, endTime, size) method to load the time cache.
Definition at line 1418 of file SpiceRotation.cpp.
References _FILEINFO_, Isis::NaifStatus::CheckErrors(), Memcache, Nadir, p_cache, p_cacheAv, p_cacheTime, p_constantFrames, p_fullCacheEndTime, p_fullCacheSize, p_fullCacheStartTime, p_hasAngularVelocity, p_minimizeCache, p_source, p_timeBias, Isis::IException::Programmer, and Isis::IException::User.
Referenced by Cache(), LoadCache(), and ReloadCache().
std::vector< double > Isis::SpiceRotation::Matrix | ( | ) |
Return the full rotation TJ as a matrix.
Definition at line 1759 of file SpiceRotation.cpp.
References Isis::NaifStatus::CheckErrors(), p_CJ, and p_TC.
Referenced by Isis::MiniRF::MiniRF().
void Isis::SpiceRotation::MinimizeCache | ( | DownsizeStatus | status | ) |
Set the downsize status to minimize cache.
status | The DownsizeStatus enumeration value. |
Definition at line 272 of file SpiceRotation.cpp.
References p_minimizeCache.
std::vector< double > Isis::SpiceRotation::ReferenceVector | ( | const std::vector< double > & | jVec | ) |
Given a direction vector in J2000, return a reference frame direction.
[in] | jVec | A direction vector in J2000 |
Definition at line 902 of file SpiceRotation.cpp.
References Isis::NaifStatus::CheckErrors(), p_CJ, p_hasAngularVelocity, p_TC, and StateTJ().
Referenced by Isis::BundleAdjust::ApproximatePoint_ClosestApproach(), Isis::CameraGroundMap::GetdXYdOrientation(), Isis::CameraGroundMap::GetdXYdPoint(), Isis::CameraGroundMap::GetdXYdPosition(), Isis::RadarGroundMap::GetdXYdPosition(), Isis::CameraGroundMap::GetXY(), Isis::RadarGroundMap::GetXY(), Isis::Camera::LocalPhotometricAngles(), Isis::Sensor::LookDirection(), Isis::RadarGroundMap::SetFocalPlane(), Isis::RadarGroundMap::SetGround(), Isis::Sensor::SetGroundLocal(), Isis::Sensor::SetLookDirection(), Isis::Sensor::SetRightAscensionDeclination(), and Isis::Sensor::SlantDistance().
void Isis::SpiceRotation::ReloadCache | ( | ) |
Cache J2000 rotation over existing cached time range using polynomials.
This method will reload an internal cache with matrices formed from rotation angles fit to functions over a time range.
Definition at line 529 of file SpiceRotation.cpp.
References _FILEINFO_, AngularVelocity(), LoadTimeCache(), Memcache, p_av, p_cache, p_cacheAv, p_cacheTime, p_CJ, p_degree, p_et, p_fullCacheSize, p_hasAngularVelocity, p_minimizeCache, p_source, PolyFunction, PolyFunctionOverSpice, Isis::IException::Programmer, SetEphemerisTime(), and TimeBasedMatrix().
Referenced by LineCache().
void Isis::SpiceRotation::SetAxes | ( | int | axis1, |
int | axis2, | ||
int | axis3 | ||
) |
Set the axes of rotation for decomposition of a rotation matrix into 3 angles.
[in] | axis1 | Axes of rotation of first angle applied (right rotation) |
[in] | axis2 | Axes of rotation of second angle applied (center rotation) |
[in] | axis3 | Axes of rotation of third angle applied (left rotation) |
Definition at line 1404 of file SpiceRotation.cpp.
References _FILEINFO_, p_axis1, p_axis2, p_axis3, and Isis::IException::Programmer.
void Isis::SpiceRotation::SetConstantMatrix | ( | std::vector< double > | constantMatrix | ) |
Set the constant 3x3 rotation TC matrix from a vector of length 9.
constantMatrix | Constant rotation matrix, TC. |
Definition at line 1796 of file SpiceRotation.cpp.
References p_TC.
void Isis::SpiceRotation::SetEphemerisTime | ( | double | et | ) |
Return the J2000 to reference frame quaternion at given time.
This method returns the J2000 to reference frame rotational matrix at a given et in seconds. The quaternion is obtained from either valid NAIF ck and/or fk, or alternatively from an internal cache loaded from an ISIS Table object. In the first case, the kernels must contain the rotation for the frame specified in the constructor at the given time (as well as all the intermediate frames going from the reference frame to J2000) and they must be loaded using the SpiceKernel class.
et | ephemeris time in seconds |
Definition at line 218 of file SpiceRotation.cpp.
References Memcache, p_et, p_source, PolyFunction, and PolyFunctionOverSpice.
Referenced by GetCenterAngles(), LoadCache(), ReloadCache(), and SetPolynomial().
void Isis::SpiceRotation::SetFrame | ( | int | frameCode | ) |
Change the frame to the given frame code.
This method has no effect if spice is cached.
frameCode | The integer-valued frame code |
Definition at line 176 of file SpiceRotation.cpp.
References p_constantFrames.
Referenced by Isis::HiriseCamera::HiriseCamera(), Isis::HrscCamera::HrscCamera(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::LroWideAngleCamera::LroWideAngleCamera(), and Isis::Mariner10Camera::Mariner10Camera().
|
protected |
Set the full cache time parameters.
[in] | startTime | The earliest time of the full cache coverage |
[in] | endTime | The latest time of the full cache coverage |
[in] | cacheSize | The number of epochs in the full (line) cache |
Definition at line 2021 of file SpiceRotation.cpp.
References p_fullCacheEndTime, p_fullCacheSize, and p_fullCacheStartTime.
void Isis::SpiceRotation::SetOverrideBaseTime | ( | double | baseTime, |
double | timeScale | ||
) |
Set an override base time to be used with observations on scanners to allow all images in an observation to use the save base time and polynomials for the angles.
[in] | baseTime | The baseTime to use and override the computed base time |
Definition at line 1175 of file SpiceRotation.cpp.
References p_noOverride, p_overrideBaseTime, and p_overrideTimeScale.
Referenced by LoadCache(), Isis::BundleAdjust::Solve(), and Isis::BundleAdjust::SolveCholesky().
void Isis::SpiceRotation::SetPolynomial | ( | const Source | type = PolyFunction | ) |
Set the coefficients of a polynomial fit to each of the three camera angles for the time period covered by the cache, angle = a + bt + ct**2, where t = (time - p_baseTime)/ p_timeScale.
< Basis function fit to 1st rotation angle
< Basis function fit to 2nd rotation angle
< Basis function fit to 3rd rotation angle
Definition at line 938 of file SpiceRotation.cpp.
References Isis::LeastSquares::AddKnown(), Angles(), Isis::NaifStatus::CheckErrors(), Isis::BasisFunction::Coefficient(), Isis::BasisFunction::Coefficients(), ComputeBaseTime(), Isis::LineEquation::Intercept(), p_axis1, p_axis2, p_axis3, p_baseTime, p_cache, p_cacheTime, p_degree, p_source, p_timeScale, PolyFunction, PolyFunctionOverSpice, SetEphemerisTime(), Isis::LineEquation::Slope(), Isis::LeastSquares::Solve(), and WrapAngle().
Referenced by Isis::BundleAdjust::applyParameterCorrections_CHOLMOD(), Isis::BundleAdjust::applyParameterCorrections_SPECIALK(), LoadCache(), SetPolynomialDegree(), Isis::BundleAdjust::Solve(), Isis::BundleAdjust::SolveCholesky(), and Isis::BundleAdjust::Update().
void Isis::SpiceRotation::SetPolynomial | ( | const std::vector< double > & | coeffAng1, |
const std::vector< double > & | coeffAng2, | ||
const std::vector< double > & | coeffAng3, | ||
const Source | type = PolyFunction |
||
) |
Set the coefficients of a polynomial fit to each of the three camera angles for the time period covered by the cache, angle = c0 + c1*t + c2*t**2 + ...
[in] | coeffAng1 | Coefficients of fit to Angle 1 |
[in] | coeffAng2 | Coefficients of fit to Angle 2 |
[in] | coeffAng3 | Coefficients of fit to Angle 3 |
Definition at line 1088 of file SpiceRotation.cpp.
References Isis::NaifStatus::CheckErrors(), ComputeBaseTime(), p_coefficients, p_degree, p_degreeApplied, p_et, p_source, Isis::BasisFunction::SetCoefficients(), and SetEphemerisTime().
void Isis::SpiceRotation::SetPolynomialDegree | ( | int | degree | ) |
Set the degree of the polynomials to be fit to the three camera angles for the time period covered by the cache, angle = c0 + c1*t + c2*t**2 + ...
[in] | degree | Degree of the polynomial to be fit |
Definition at line 1319 of file SpiceRotation.cpp.
References p_coefficients, p_degree, p_degreeApplied, p_fullCacheSize, p_source, and SetPolynomial().
Referenced by LoadCache(), Isis::BundleAdjust::Solve(), and Isis::BundleAdjust::SolveCholesky().
void Isis::SpiceRotation::SetSource | ( | Source | source | ) |
Resets the source of the rotation to the given value.
source | The rotation source to be set. |
Definition at line 1374 of file SpiceRotation.cpp.
References p_source.
void Isis::SpiceRotation::SetTimeBasedMatrix | ( | std::vector< double > | timeBasedMatrix | ) |
Set the time-based 3x3 rotation CJ matrix from a vector of length 9.
timeBasedMatrix | Time-based rotation matrix, TC. |
Definition at line 1827 of file SpiceRotation.cpp.
References p_CJ.
void Isis::SpiceRotation::SetTimeBias | ( | double | timeBias | ) |
Apply a time bias when invoking SetEphemerisTime method.
The bias is used only when reading from NAIF kernels. It is added to the ephermeris time passed into SetEphemerisTime and then the body position is read from the NAIF kernels and returned. When the cache is loaded from a table the bias is ignored as it is assumed to have already been applied. If this method is never called the default bias is 0.0 seconds.
timeBias | time bias in seconds |
Definition at line 202 of file SpiceRotation.cpp.
References p_timeBias.
Referenced by Isis::MocNarrowAngleCamera::MocNarrowAngleCamera(), and Isis::MocWideAngleCamera::MocWideAngleCamera().
|
private |
State matrix (6x6) for rotating state vectors from J2000 to target frame.
Compute and return the rotation matrix that rotates state vectors from J2000 to the target frame.
Definition at line 1956 of file SpiceRotation.cpp.
References p_av, p_CJ, and p_TC.
Referenced by J2000Vector(), and ReferenceVector().
std::vector< double > & Isis::SpiceRotation::TimeBasedMatrix | ( | ) |
Return time-based 3x3 rotation CJ matrix as a vector of length 9.
Definition at line 1818 of file SpiceRotation.cpp.
References p_CJ.
Referenced by ReloadCache().
std::vector< double > Isis::SpiceRotation::TimeBasedRotation | ( | ) |
Return time-based 3x3 rotation CJ matrix as a quaternion.
Definition at line 1806 of file SpiceRotation.cpp.
References p_CJ.
std::vector< int > Isis::SpiceRotation::TimeFrameChain | ( | ) |
Accessor method to get the frame chain for the rotation (begins in J2000).
Definition at line 841 of file SpiceRotation.cpp.
References p_timeFrames.
std::vector< double > Isis::SpiceRotation::ToReferencePartial | ( | std::vector< double > & | lookJ, |
SpiceRotation::PartialType | partialVar, | ||
int | coeffIndex | ||
) |
Compute the derivative with respect to one of the coefficients in the angle polynomial fit equation of a vector rotated from J2000 to a reference frame.
The polynomial equation is of the form angle = c0 + c1*t + c2*t**2 + ... cn*t**n, where t = (time - p_basetime) / p_timeScale and n = p_degree (the degree of the equation)
[in] | lookJ | Look vector in J2000 frame |
[in] | partialVar | Variable derivative is to be with respect to |
[in] | coeffIndex | Coefficient index in the polynomial fit to the variable (angle) |
Definition at line 1226 of file SpiceRotation.cpp.
References Angles(), Isis::NaifStatus::CheckErrors(), DPolynomial(), p_axis1, p_axis2, p_axis3, and p_TC.
Referenced by Isis::CameraGroundMap::GetdXYdOrientation().
double Isis::SpiceRotation::WrapAngle | ( | double | compareAngle, |
double | angle | ||
) |
Wrap the input angle to keep it within 2pi radians of the angle to compare.
[in] | compareAngle | Look vector in J2000 frame |
[in] | angle | Angle to be wrapped if needed |
Definition at line 1293 of file SpiceRotation.cpp.
References Isis::NaifStatus::CheckErrors().
Referenced by SetPolynomial().
|
private |
Angular velocity for rotation at time p_et.
Definition at line 394 of file SpiceRotation.h.
Referenced by AngularVelocity(), ComputeAv(), Extrapolate(), LoadCache(), ReloadCache(), SpiceRotation(), and StateTJ().
|
protected |
Axis of rotation for angle 1 of rotation.
Definition at line 346 of file SpiceRotation.h.
Referenced by DCJdt(), GetCenterAngles(), SetAxes(), SetPolynomial(), SpiceRotation(), and ToReferencePartial().
|
protected |
Axis of rotation for angle 2 of rotation.
Definition at line 347 of file SpiceRotation.h.
Referenced by DCJdt(), GetCenterAngles(), SetAxes(), SetPolynomial(), SpiceRotation(), and ToReferencePartial().
|
protected |
Axis of rotation for angle 3 of rotation.
Definition at line 348 of file SpiceRotation.h.
Referenced by DCJdt(), GetCenterAngles(), SetAxes(), SetPolynomial(), SpiceRotation(), and ToReferencePartial().
|
private |
The axis defined by the spacecraft
vector for defining a nadir rotation
Definition at line 366 of file SpiceRotation.h.
Referenced by SpiceRotation().
|
private |
The axis defined by the velocity
vector for defining a nadir rotation
Definition at line 368 of file SpiceRotation.h.
Referenced by SpiceRotation().
|
private |
Base time used in fit equations.
Definition at line 372 of file SpiceRotation.h.
Referenced by Cache(), ComputeBaseTime(), DCJdt(), DPolynomial(), GetBaseTime(), SetPolynomial(), and SpiceRotation().
|
protected |
Cached rotations, stored as rotation matrix from J2000 to 1st constant frame (CJ) or coefficients of polynomial fit to rotation angles.
Definition at line 340 of file SpiceRotation.h.
Referenced by Cache(), IsCached(), LoadCache(), LoadTimeCache(), ReloadCache(), SetPolynomial(), and SpiceRotation().
|
private |
Cached angular velocities for corresponding rotactions in p_cache.
Definition at line 393 of file SpiceRotation.h.
Referenced by Cache(), LoadCache(), LoadTimeCache(), ReloadCache(), and SpiceRotation().
|
protected |
iTime for corresponding rotation
Definition at line 339 of file SpiceRotation.h.
Referenced by Cache(), ComputeBaseTime(), LoadCache(), LoadTimeCache(), ReloadCache(), SetPolynomial(), and SpiceRotation().
|
private |
Rotation matrix from J2000 to first constant
rotation after all the time-based rotations in frame chain from
Definition at line 389 of file SpiceRotation.h.
Referenced by Angles(), ComputeAv(), Extrapolate(), J2000Vector(), LoadCache(), Matrix(), ReferenceVector(), ReloadCache(), SetTimeBasedMatrix(), SpiceRotation(), StateTJ(), TimeBasedMatrix(), and TimeBasedRotation().
|
private |
Coefficients defining functions fit to 3 pointing angles.
Definition at line 377 of file SpiceRotation.h.
Referenced by Cache(), DCJdt(), GetPolynomial(), SetPolynomial(), SetPolynomialDegree(), and SpiceRotation().
|
private |
Chain of Naif frame codes in constant rotation TC.
The first entry will always be the target frame code
Definition at line 351 of file SpiceRotation.h.
Referenced by CacheLabel(), ConstantFrameChain(), Frame(), FrameTrace(), InitConstantRotation(), LoadCache(), LoadTimeCache(), SetFrame(), and SpiceRotation().
|
protected |
Degree of fit polynomial for angles.
Definition at line 345 of file SpiceRotation.h.
Referenced by Cache(), DCJdt(), DPolynomial(), ReloadCache(), SetPolynomial(), SetPolynomialDegree(), and SpiceRotation().
|
private |
Flag indicating whether or not a polynomial
of degree p_degree has been created and used to fill the cache
Definition at line 374 of file SpiceRotation.h.
Referenced by SetPolynomial(), SetPolynomialDegree(), and SpiceRotation().
|
private |
Current ephemeris time.
Definition at line 359 of file SpiceRotation.h.
Referenced by DCJdt(), DPolynomial(), EphemerisTime(), Extrapolate(), ReloadCache(), SetEphemerisTime(), SetPolynomial(), and SpiceRotation().
|
private |
Initial requested ending time of cache.
Definition at line 384 of file SpiceRotation.h.
Referenced by CacheLabel(), GetCenterAngles(), GetFullCacheTime(), LoadCache(), LoadTimeCache(), SetFullCacheParameters(), and SpiceRotation().
|
private |
Initial requested cache size.
Definition at line 385 of file SpiceRotation.h.
Referenced by Cache(), CacheLabel(), GetFullCacheTime(), LoadCache(), LoadTimeCache(), ReloadCache(), SetFullCacheParameters(), SetPolynomialDegree(), and SpiceRotation().
|
private |
Initial requested starting time of cache.
Definition at line 383 of file SpiceRotation.h.
Referenced by CacheLabel(), GetCenterAngles(), GetFullCacheTime(), LoadCache(), LoadTimeCache(), SetFullCacheParameters(), and SpiceRotation().
|
private |
Flag indicating whether the rotation
includes angular velocity
Definition at line 395 of file SpiceRotation.h.
Referenced by Cache(), Extrapolate(), HasAngularVelocity(), J2000Vector(), LoadCache(), LoadTimeCache(), ReferenceVector(), ReloadCache(), and SpiceRotation().
|
private |
Flag indicating p_TJ has been set.
Definition at line 363 of file SpiceRotation.h.
Referenced by SpiceRotation().
|
private |
Status of downsizing the cache (set to No to ignore)
Definition at line 382 of file SpiceRotation.h.
Referenced by Cache(), LoadCache(), LoadTimeCache(), MinimizeCache(), ReloadCache(), and SpiceRotation().
|
private |
Flag to compute base time;.
Definition at line 379 of file SpiceRotation.h.
Referenced by ComputeBaseTime(), SetOverrideBaseTime(), and SpiceRotation().
|
private |
Value set by caller to override computed base time.
Definition at line 380 of file SpiceRotation.h.
Referenced by ComputeBaseTime(), SetOverrideBaseTime(), and SpiceRotation().
|
private |
Value set by caller to override computed time scale.
Definition at line 381 of file SpiceRotation.h.
Referenced by ComputeBaseTime(), SetOverrideBaseTime(), and SpiceRotation().
|
private |
Quaternion for J2000 to reference
rotation at et
Definition at line 360 of file SpiceRotation.h.
Referenced by SpiceRotation().
|
private |
The source of the rotation data.
Definition at line 365 of file SpiceRotation.h.
Referenced by Cache(), ComputeAv(), FrameTrace(), GetSource(), LineCache(), LoadCache(), LoadTimeCache(), ReloadCache(), SetEphemerisTime(), SetPolynomial(), SetPolynomialDegree(), SetSource(), and SpiceRotation().
|
private |
For computing Nadir rotation only.
Definition at line 370 of file SpiceRotation.h.
Referenced by SpiceRotation().
|
private |
Rotation matrix from first constant rotation
(after all time-based rotations in frame chain from J2000 to target) to the target frame
Definition at line 386 of file SpiceRotation.h.
Referenced by CacheLabel(), ConstantMatrix(), ConstantRotation(), InitConstantRotation(), J2000Vector(), LoadCache(), Matrix(), ReferenceVector(), SetConstantMatrix(), SpiceRotation(), StateTJ(), and ToReferencePartial().
|
private |
iTime bias when reading kernels
Definition at line 357 of file SpiceRotation.h.
Referenced by LoadTimeCache(), SetTimeBias(), and SpiceRotation().
|
private |
Chain of Naif frame codes in time-based
rotation CJ.
The last entry will always be 1 (J2000 code)
Definition at line 354 of file SpiceRotation.h.
Referenced by CacheLabel(), FrameTrace(), InitConstantRotation(), LoadCache(), SpiceRotation(), and TimeFrameChain().
|
private |
Time scale used in fit equations.
Definition at line 373 of file SpiceRotation.h.
Referenced by Cache(), ComputeBaseTime(), DCJdt(), DPolynomial(), GetTimeScale(), SetPolynomial(), and SpiceRotation().