Isis 3.0 Object Programmers' Reference |
Home |
Class for computing sensor ground coordinates. More...
#include <Sensor.h>
Public Member Functions | |
Sensor (Cube &cube) | |
Constructs a Sensor object and loads SPICE kernels using information from the label object. | |
virtual | ~Sensor () |
Destroys the Sensor. | |
void | setTime (const iTime &time) |
By setting the time you essential set the position of the spacecraft and body as indicated in the class Spice. | |
bool | SetLookDirection (const double v[3]) |
Sets the look direction of the spacecraft. | |
bool | SetRightAscensionDeclination (const double ra, const double dec) |
Given the ra/dec compute the look direction. | |
bool | SetUniversalGround (const double latitude, const double longitude, bool backCheck=true) |
This is the opposite routine for SetLookDirection. | |
bool | SetUniversalGround (const double latitude, const double longitude, const double radius, bool backCheck=true) |
This overloaded method has the opposite function as SetLookDirection. | |
bool | SetGround (const SurfacePoint &surfacePt, bool backCheck=true) |
This overloaded method has the opposite function as SetLookDirection. | |
bool | HasSurfaceIntersection () const |
Returns if the last call to either SetLookDirection or SetUniversalGround had a valid intersection with the target. | |
void | Coordinate (double p[3]) const |
Returns the x,y,z of the surface intersection in BodyFixed km. | |
double | UniversalLatitude () const |
Returns the planetocentric latitude at the surface intersection point in body fixed. | |
Latitude | GetLatitude () const |
Returns the latitude. | |
double | UniversalLongitude () const |
Returns a positive east, 0-360 domain longitude at the surface intersection point in body fixed. | |
Longitude | GetLongitude () const |
Returns the longitude. | |
SurfacePoint | GetSurfacePoint () const |
Returns the surface point (most efficient accessor). | |
Distance | LocalRadius () const |
Returns the local radius at the intersection point. | |
Distance | LocalRadius (Latitude lat, Longitude lon) |
Returns the local radius at the intersection point. | |
Distance | LocalRadius (double lat, double lon) |
Returns the local radius at the intersection point. | |
double | PhaseAngle () const |
Returns the phase angle in degrees. | |
double | EmissionAngle () const |
Returns the emission angle in degrees. | |
double | IncidenceAngle () const |
Returns the incidence angle in degrees. | |
void | LookDirection (double v[3]) const |
Returns the look direction in the camera coordinate system. | |
double | RightAscension () |
Returns the right ascension angle (sky longitude) | |
double | Declination () |
Returns the declination angle (sky latitude) | |
void | SpacecraftSurfaceVector (double scSurfaceVector[3]) const |
Return the vector between the spacecraft and surface point in body-fixed. | |
double | SlantDistance () const |
Return the distance between the spacecraft and surface point in kmv. | |
double | LocalSolarTime () |
Return the local solar time in hours. | |
double | SolarDistance () const |
Returns the distance between the sun and surface point in AU. | |
double | SpacecraftAltitude () |
Returns the distance from the spacecraft to the subspacecraft point in km. | |
virtual double | resolution () |
Virtual method that returns the pixel resolution of the sensor in meters/pix. | |
void | IgnoreElevationModel (bool ignore) |
This allows you to ignore the cube elevation model and use the ellipse. | |
virtual QList< QPointF > | PixelIfovOffsets () |
This method is implemented in Camera which defaults to the (pixel pitch * summing mode ) / 2. | |
void | instrumentPosition (double p[3]) const |
Returns the spacecraft position in body-fixed frame km units. | |
SpicePosition * | instrumentPosition () const |
Accessor method for the instrument position. | |
void | instrumentBodyFixedPosition (double p[3]) const |
Returns the spacecraft position in body-fixed frame km units. | |
void | sunPosition (double p[3]) const |
Fills the input vector with sun position information, in either body-fixed or J2000 reference frame and km units. | |
SpicePosition * | sunPosition () const |
Accessor method for the sun position. | |
double | targetCenterDistance () const |
Calculates and returns the distance from the spacecraft to the target center. | |
Longitude | solarLongitude () |
Returns the solar longitude. | |
void | instrumentBodyFixedVelocity (double v[3]) const |
Returns the spacecraft velocity in body-fixed frame km/sec units. | |
iTime | time () const |
Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions. | |
void | radii (Distance r[3]) const |
Returns the radii of the body in km. | |
void | createCache (iTime startTime, iTime endTime, const int size, double tol) |
This method creates an internal cache of spacecraft and sun positions over a specified time range. | |
iTime | cacheStartTime () const |
Accessor method for the cache start time. | |
iTime | cacheEndTime () const |
Accessor method for the cache end time. | |
void | subSpacecraftPoint (double &lat, double &lon) |
Returns the sub-spacecraft latitude/longitude in universal coordinates (0-360 positive east, ocentric) | |
void | subSolarPoint (double &lat, double &lon) |
Returns the sub-solar latitude/longitude in universal coordinates (0-360 positive east, ocentric) | |
Target * | target () const |
Returns a pointer to the target object. | |
QString | targetName () const |
Returns the string name of the target. | |
iTime | getClockTime (QString clockValue, int sclkCode=-1) |
This converts the spacecraft clock ticks value (clockValue) to an iTime. | |
SpiceDouble | getDouble (const QString &key, int index=0) |
This returns a value from the NAIF text pool. | |
SpiceInt | getInteger (const QString &key, int index=0) |
This returns a value from the NAIF text pool. | |
QString | getString (const QString &key, int index=0) |
This returns a value from the NAIF text pool. | |
SpiceRotation * | bodyRotation () const |
Accessor method for the body rotation. | |
SpiceRotation * | instrumentRotation () const |
Accessor method for the instrument rotation. | |
bool | hasKernels (Pvl &lab) |
Returns true if the kernel group has kernel files. | |
SpiceInt | naifBodyCode () const |
This returns the NAIF body code of the target indicated in the labels. | |
SpiceInt | naifSpkCode () const |
This returns the NAIF SPK code to use when reading from SPK kernels. | |
SpiceInt | naifCkCode () const |
This returns the NAIF CK code to use when reading from CK kernels. | |
SpiceInt | naifIkCode () const |
This returns the NAIF IK code to use when reading from instrument kernels. | |
SpiceInt | naifSclkCode () const |
This returns the NAIF SCLK code to use when reading from instrument kernels. | |
SpiceInt | naifBodyFrameCode () const |
This returns the NAIF body frame code. | |
PvlObject | getStoredNaifKeywords () const |
This returns the PvlObject that stores all of the requested Naif data and can be a replacement for furnishing text kernels. | |
Protected Types | |
enum | SpiceValueType { SpiceDoubleType, SpiceStringType, SpiceIntType, SpiceByteCodeType } |
NAIF value primitive type. More... | |
Protected Member Functions | |
QVariant | readValue (QString key, SpiceValueType type, int index=0) |
This should be used for reading ALL text naif kernel values. | |
void | storeResult (QString name, SpiceValueType type, QVariant value) |
QVariant | getStoredResult (QString name, SpiceValueType type) |
void | storeValue (QString key, int index, SpiceValueType type, QVariant value) |
QVariant | readStoredValue (QString key, SpiceValueType type, int index) |
Protected Attributes | |
SpiceDouble | m_uB [3] |
This contains the sun position (u) in the | |
SpiceDouble | m_BJ [3][3] |
This contains the transformation matrix from J2000 (J) to Body fixed (B). | |
Private Member Functions | |
void | CommonInitialize (const std::string &demCube) |
void | computeRaDec () |
Computes the ra/dec from the look direction. | |
bool | SetGroundLocal (bool backCheck) |
Computes look vector. | |
Private Attributes | |
SpiceDouble | m_lookB [3] |
Look direction in body fixed. | |
bool | m_newLookB |
flag to indicate we need to recompute ra/dec | |
SpiceDouble | m_ra |
Right ascension (sky longitude) | |
SpiceDouble | m_dec |
Decliation (sky latitude) | |
Class for computing sensor ground coordinates.
The sensor class allows for the computation of parameters related to orbiting instruments. In particular, a time and look direction can be set and from those the ground coordinate (latitude/longitude) along with phase, incidence, and emission angles can be computed. Likewise, a ground point can be set and look direction can be computed. This class is derived from the Spice class.
An important capability of this class is the ability to use a surface model other than an ellipsoid when intersecting the look direction of the sensor with the planetary body. This allows for the generation of othrorectified products. The file containing the surface model is a cube and is obtained from the labels in the follow form:
2003-05-16 Stuart Sides - Modified schema from astrogeology... isis.astrogeology...
2003-05-30 Jeff Anderson - Updated unitTest and truth to account for precision due to optimization
2003-10-16 Jeff Anderson - Added LoadEulerMounting and LoadFrameMounting methods
2003-11-26 Jeff Anderson - Modified FrameMounting methods to allow for fixed frames or time dependent frames
2004-01-14 Jeff Anderson - Remove an unused constructor
2004-01-20 Jeff Anderson - Added an option to the SetUniversalGround method to eliminate checks for points on the backside of the target
2004-02-18 Jeff Anderson - Fixed a problem with the FrameMounting methods as the frame kernel is unloaded if a cache is created.
2004-02-23 Jeff Anderson - Fixed two bugs in the handling of DEMs. Used universal lat/lon when appropriate and the radius needed to be converted to km when read from the DEM file.
2005-02-15 Elizabeth Ribelin - Modified file to support Doxygen documentation
2005-02-24 Jeff Anderson - Added SlantDistance method and made the constructor ignore the ElevationModel keyword if it is null
2005-02-25 Jeff Anderson - Added LocalSolarTime method
2005-06-09 Elizabeth Ribelin - Added LoadEulerMounting method that accepts a matrix as a parameter
2005-08-24 Jeff Anderson - Make sure LocalSolarTime always return positive hours
2005-09-20 Jeff Anderson - Added tests for trying to intersect the sky
2006-03-31 Elizabeth Miller - Added SpacecraftAltitude & SolarDistance methods
2006-09-07 Debbie A. Cook - Changed back-of-planet test to use emission angle instead of length of vector to surface point
2006-10-11 Jeff Anderson - Modified reading radius from dem using bilinear interpolation
2006-10-12 Jeff Anderson - Modified the SetLookDirection method to use the DEM (if available) when computing a ground point
2007-05-18 Jeff Anderson - Modify SpacecraftAltitude method to use DEM
2007-06-11 Debbie A. Cook - Added alternative method that includes radius
2007-08-24 Debbie A. Cook - Replaced references to m_sB since it was removed from Spice
2007-11-27 Debbie A. Cook - Added overloaded method SetUniversalGround(lat, lon, radius)
2008-05-21 Steven Lambright - CubeManager is now used to speed up DEM Cube I/O
2008-06-18 Debbie A. Cook - Made DemRadius radius public instead of private and added method HasElevationModel
2008-08-06 Stuart Sides - Modified SetLookDirection to better handle oblique views. In the past it would oscillate and run out of iterations.
2009-02-06 Debbie A. Cook - Changed the tolerance from 1e-6 to 1e-12 for dist**2 (mm)
2009-02-06 Debbie A. Cook - Changed the tolerance back to 1e-6 (mm)
2009-02-15 Debbie A. Cook - Added virtual Resolution method
2009-06-30 Steven Lambright - Added IgnoreElevationModel and fixed DemRadius
2009-07-09 Debbie A. Cook - Corrected documentation on Resolution method
2009-09-23 Tracie Sucharski - Convert negative longitudes returned by reclat in SetLookDirection.
2010-09-15 Janet Barrett - Modified the SetLookDirection method to use a new algorithm for finding the intersection of a ray with the DEM. This was required to take care of problems that were encountered at the poles of global DEM files. The algorithm that is being used was taken from "Intersection between spacecraft viewing vectors and digital elevation models" by N.A. Teanby.
2010-11-09 Eric Hyer - moved some private members to protected section for Camera
2010-12-07 Steven Lambright - Added LocalRadius(lat,lon) and removed a sqrt from SetLookDirection
2011-01-26 Steven Lambright - The LocalRadius methods now return Distance objects and added a LocalRadius method that uses the Latitude and Longitude classes.
2011-02-08 Jeannie Walldren - Added method parameter documentation.
2011-02-09 Steven Lambright & Debbie Cook - Refactored heavily to use Latitude, Longitude, SurfacePoint, and iTime where applicable. Optimized SetLookDirection. These changes were meant primarily for readability and reducing error-proneness of the code.
2011-03-28 Janet Barrett - Fixed the SetLookDirection routine so that it checks to make sure that the projection of the DEM is in an Equatorial cylindrical projection before using the new ray tracing routine. The check for this was moved when other code was added. This was causing a problem with footprintinit.
2011-05-03 Jeannie Walldren - Added Isis Disclaimer to files.
2011-05-25 Janet Barrett and Steven Lambright - Moved the ownership of the DEM projection to the DEM cube which is owned by CubeManager.
2011-08-22 Steven Lambright - The DEM cube now uses a UniqueIOCachingAlgorithm(5). This will probably behave better in all cases. Fixes #364
2011-08-16 Jeff Anderson - Fixed a problem with an infinite loop in the ray tracing algorithm. The problem was first exposed when trying to intersect the Vesta DEM on the limb.
2011-12-20 Tracie Sucharski - Added SpacecraftSurfaceVector method which returns the vector between the spacecraft and the surface point in body-fixed.
2012-05-04 Steven Lambright - Re-enabled a safety check in the DemRadius() method which was needed due to Projection not uniformly handling Null inputs. Fixes #807.
2012-07-06 Debbie A. Cook - Updated Spice members to be more compliant with Isis coding standards. References #972.
2012-09-06 Steven Lambright and Stuart Sides - Changed the constructors to take Cube instead of Pvl to prevent redundant parsing. This should eventually be refactored into a CubeLabel or similar object so that an actual cube isn't required in the future, but for now this enables the control net GUI to create a camera from a cube with no dimensions in the label.
2012-10-10 Debbie A. Cook - Moved the functionality related to the shape model into new classes: ShapeModel, EllipsoidShape, DemShape, and EquatorialCylindricalShape. Also modified to use new Target class. References #775 and #1114
2012-10-25 Jeannie Backer - Changed resolution() method to lower camel case. References #1181.
2012-03-04 Tracie Sucharski - Added new method, PixelIfovOffsets, which will return the ifov offsets from the center of the pixel in mm. This is a virtual method and if not implemented in the specific instrument camera, this class will throw an error. References #1604.
|
protectedinherited |
Isis::Sensor::Sensor | ( | Cube & | cube | ) |
|
virtual |
Destroys the Sensor.
Definition at line 65 of file Sensor.cpp.
|
inherited |
Accessor method for the body rotation.
Definition at line 1403 of file Spice.cpp.
Referenced by Isis::BundleAdjust::ApproximatePoint_ClosestApproach(), computeRaDec(), EmissionAngle(), Isis::RadarGroundMap::GetdXYdPosition(), Isis::RadarGroundMap::GetXY(), Isis::Camera::LocalPhotometricAngles(), LookDirection(), Isis::MiniRF::MiniRF(), PhaseAngle(), Isis::RadarGroundMap::SetFocalPlane(), Isis::RadarGroundMap::SetGround(), SetGroundLocal(), SetLookDirection(), and SlantDistance().
|
inherited |
|
inherited |
|
private |
Computes the ra/dec from the look direction.
Protected method which computes the ra/dec of the current look direction.
Definition at line 518 of file Sensor.cpp.
References Isis::Spice::bodyRotation(), Isis::SpiceRotation::J2000Vector(), m_dec, m_lookB, m_newLookB, m_ra, and Isis::PI().
Referenced by Declination(), and RightAscension().
void Isis::Sensor::Coordinate | ( | double | p[3] | ) | const |
Returns the x,y,z of the surface intersection in BodyFixed km.
p[] | The coordinate of the surface intersection |
Definition at line 207 of file Sensor.cpp.
References Isis::Displacement::kilometers(), Isis::Target::shape(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().
Referenced by Isis::ControlPoint::ComputeApriori(), Isis::Camera::ComputeAzimuth(), Isis::Camera::DetectorResolution(), EmissionAngle(), Isis::VimsGroundMap::Init(), Isis::Camera::LocalPhotometricAngles(), Isis::Camera::OffNadirAngle(), PhaseAngle(), SetGroundLocal(), SetLookDirection(), SlantDistance(), and Isis::AdvancedTrackTool::updateRow().
|
inherited |
This method creates an internal cache of spacecraft and sun positions over a specified time range.
The SPICE kernels are then immediately unloaded. This allows multiple instances of the Spice object to be created as the NAIF toolkit can clash if multiple sets of SPICE kernels are loaded. Note that the cache size is specified as an argument. Therefore, times requested via setTime() which are not directly loaded in the cache will be interpolated. If the instrument position is not cached and cacheSize is greater than 3, the tolerance is passed to the SpicePosition Memcache2HermiteCache() method.
Note: Before this method is called, the private variables m_cacheSize, m_startTime and m_endTime must be set. This is done in the Camera classes using the methods SetCacheSize() and SetStartEndEphemerisTime().
startTime | Starting ephemeris time to cache |
endTime | Ending ephemeris time to cache |
size | Size of the cache. |
tol | Tolerance. |
Isis::IException::Programmer | - "Argument cacheSize must be greater than zero" |
Isis::IException::Programmer | - "Argument startTime must be less than or equal to endTime" |
Isis::IException::User | - "This instrument does not support time padding" |
Definition at line 539 of file Spice.cpp.
References _FILEINFO_, and Isis::iTime::Et().
Referenced by Isis::CrismCamera::CrismCamera(), Isis::Camera::LoadCache(), Isis::MiniRF::MiniRF(), and Isis::VimsCamera::VimsCamera().
double Isis::Sensor::Declination | ( | ) |
Returns the declination angle (sky latitude)
Definition at line 510 of file Sensor.cpp.
References computeRaDec(), m_dec, and m_newLookB.
Referenced by Isis::VimsSkyMap::Init(), Isis::Camera::RaDecRange(), Isis::Camera::RaDecResolution(), Isis::Camera::RawFocalPlanetoImage(), and Isis::AdvancedTrackTool::updateRow().
double Isis::Sensor::EmissionAngle | ( | ) | const |
Returns the emission angle in degrees.
Definition at line 314 of file Sensor.cpp.
References Isis::Spice::bodyRotation(), Coordinate(), Isis::ShapeModel::emissionAngle(), Isis::Spice::instrumentPosition(), Isis::Target::shape(), and Isis::Spice::target().
Referenced by Isis::CameraStatistics::addStats(), Isis::ImagePolygon::FixPolePoly(), Isis::InterestOperator::InterestByMeasure(), Isis::Camera::OffNadirAngle(), Isis::CubeCalculator::prepareCalculations(), Isis::ImagePolygon::SetImage(), and Isis::AdvancedTrackTool::updateRow().
|
inherited |
This converts the spacecraft clock ticks value (clockValue) to an iTime.
Use this when possible because naif calls (such as scs2e_c) cannot be called when not using naif.
Definition at line 925 of file Spice.cpp.
References Isis::toString().
Referenced by Isis::AmicaCamera::AmicaCamera(), Isis::Chandrayaan1M3Camera::Chandrayaan1M3Camera(), Isis::CTXCamera::CTXCamera(), Isis::DawnFcCamera::DawnFcCamera(), Isis::HiriseCamera::HiriseCamera(), Isis::VimsSkyMap::Init(), Isis::VimsGroundMap::Init(), Isis::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::LroWideAngleCamera::LroWideAngleCamera(), Isis::MarciCamera::MarciCamera(), Isis::MdisCamera::MdisCamera(), Isis::MocNarrowAngleCamera::MocNarrowAngleCamera(), Isis::MocWideAngleCamera::MocWideAngleCamera(), Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::NewHorizonsMvicFrameCamera::NewHorizonsMvicFrameCamera(), Isis::NewHorizonsMvicTdiCamera::NewHorizonsMvicTdiCamera(), Isis::DawnVirCamera::readHouseKeeping(), Isis::ThemisIrCamera::ThemisIrCamera(), Isis::ThemisVisCamera::ThemisVisCamera(), Isis::VikingCamera::VikingCamera(), and Isis::VimsCamera::VimsCamera().
|
inherited |
This returns a value from the NAIF text pool.
It is a static convience method
key | Name of NAIF keyword to obtain from the pool |
index | If the keyword is an array, the element to obtain. Defaults to 0 |
Isis::iException::Io | - "Can not find key in instrument kernels." |
Definition at line 914 of file Spice.cpp.
Referenced by Isis::LroWideAngleCameraFocalPlaneMap::addFilter(), Isis::LroWideAngleCameraDistortionMap::addFilter(), Isis::AmicaCamera::AmicaCamera(), Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::Chandrayaan1M3Camera::Chandrayaan1M3Camera(), Isis::MdisCamera::computeFocalLength(), Isis::CrismCamera::CrismCamera(), Isis::CTXCamera::CTXCamera(), Isis::DawnFcCamera::DawnFcCamera(), Isis::HiresCamera::HiresCamera(), Isis::HrscCamera::HrscCamera(), Isis::CameraFocalPlaneMap::Init(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::KaguyaMiCamera::KaguyaMiCamera(), Isis::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::LroWideAngleCamera::LroWideAngleCamera(), Isis::LwirCamera::LwirCamera(), Isis::MarciCamera::MarciCamera(), Isis::MarciDistortionMap::MarciDistortionMap(), Isis::Mariner10Camera::Mariner10Camera(), Isis::MdisCamera::MdisCamera(), Isis::MsiCamera::MsiCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::NewHorizonsMvicFrameCamera::NewHorizonsMvicFrameCamera(), Isis::NewHorizonsMvicTdiCamera::NewHorizonsMvicTdiCamera(), Isis::NirCamera::NirCamera(), Isis::KaguyaMiCameraDistortionMap::SetDistortion(), Isis::TaylorCameraDistortionMap::SetDistortion(), Isis::LroNarrowAngleDistortionMap::SetDistortion(), Isis::Camera::SetFocalLength(), Isis::Camera::SetPixelPitch(), Isis::SsiCamera::SsiCamera(), and Isis::UvvisCamera::UvvisCamera().
|
inherited |
This returns a value from the NAIF text pool.
It is a static convience
key | Name of NAIF keyword to obtain from the pool |
index | If the keyword is an array, the element to obtain. Defaults to 0 |
Isis::iException::Io | - "Can not find key in instrument kernels |
Definition at line 900 of file Spice.cpp.
Referenced by Isis::DawnVirCamera::getPointingTable(), Isis::LroWideAngleCamera::GetVector(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), and Isis::LroWideAngleCamera::LroWideAngleCamera().
Latitude Isis::Sensor::GetLatitude | ( | ) | const |
Returns the latitude.
Definition at line 228 of file Sensor.cpp.
References Isis::SurfacePoint::GetLatitude(), Isis::Target::shape(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().
Referenced by Isis::StereoTool::calculateElevation().
Longitude Isis::Sensor::GetLongitude | ( | ) | const |
Returns the longitude.
Definition at line 247 of file Sensor.cpp.
References Isis::SurfacePoint::GetLongitude(), Isis::Target::shape(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().
Referenced by Isis::StereoTool::calculateElevation().
|
inherited |
|
inherited |
This returns a value from the NAIF text pool.
It is a static convience method
key | Name of NAIF keyword to obtain from the pool |
index | If the keyword is an array, the element to obtain. Defaults to 0 |
Isis::IException::Io | - "Can not find key in instrument kernels." |
Definition at line 1125 of file Spice.cpp.
Referenced by Isis::LightTimeCorrectionState::checkAberrationCorrection(), Isis::LightTimeCorrectionState::checkLightTimeToSurfaceCorrect(), Isis::LightTimeCorrectionState::checkObserverTargetSwap(), Isis::MdisCamera::computeFocalLength(), and Isis::MdisCamera::MdisCamera().
SurfacePoint Isis::Sensor::GetSurfacePoint | ( | ) | const |
Returns the surface point (most efficient accessor).
Definition at line 254 of file Sensor.cpp.
References Isis::Target::shape(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().
Referenced by Isis::ControlPoint::ComputeResiduals(), Isis::QnetPointDistanceFilter::filter(), Isis::Camera::GetLocalNormal(), Isis::Camera::LocalPhotometricAngles(), Isis::SunShadowTool::recalculateShadowHeight(), and Isis::QnetSetAprioriDialog::setApriori().
|
inherited |
Returns true if the kernel group has kernel files.
lab | Label containing Instrument and Kernels groups. |
Definition at line 1331 of file Spice.cpp.
References Isis::PvlObject::findGroup(), Isis::PvlContainer::hasKeyword(), Isis::PvlKeyword::size(), and Isis::IString::UpCase().
bool Isis::Sensor::HasSurfaceIntersection | ( | ) | const |
Returns if the last call to either SetLookDirection or SetUniversalGround had a valid intersection with the target.
If so then other methods such as Coordinate, UniversalLatitude, UniversalLongitude, etc can be used with confidence.
Definition at line 197 of file Sensor.cpp.
References Isis::ShapeModel::hasIntersection(), Isis::Target::shape(), and Isis::Spice::target().
Referenced by Isis::CameraStatistics::addStats(), Isis::Camera::ComputeAzimuth(), Isis::Camera::DetectorResolution(), Isis::Chip::Load(), Isis::VimsGroundMap::SetGround(), and Isis::Camera::SetImage().
void Isis::Sensor::IgnoreElevationModel | ( | bool | ignore | ) |
This allows you to ignore the cube elevation model and use the ellipse.
ignore | True if the elevation model is ignored |
Definition at line 74 of file Sensor.cpp.
References Isis::Target::restoreShape(), Isis::Target::setShapeEllipsoid(), and Isis::Spice::target().
Referenced by Isis::StereoTool::calculateElevation(), Isis::ImagePolygon::Create(), and Isis::ImagePolygon::initCube().
double Isis::Sensor::IncidenceAngle | ( | ) | const |
Returns the incidence angle in degrees.
This does not use the surface model.
Definition at line 325 of file Sensor.cpp.
References Isis::ShapeModel::incidenceAngle(), Isis::Spice::m_uB, Isis::Target::shape(), and Isis::Spice::target().
Referenced by Isis::CameraStatistics::addStats(), Isis::ImagePolygon::FixPolePoly(), Isis::InterestOperator::InterestByMeasure(), Isis::CubeCalculator::prepareCalculations(), Isis::SunShadowTool::recalculateShadowHeight(), Isis::ImagePolygon::SetImage(), and Isis::AdvancedTrackTool::updateRow().
|
inherited |
Returns the spacecraft position in body-fixed frame km units.
p[] | Spacecraft position |
Isis::iException::Programmer | - "You must call SetTime first" |
Definition at line 724 of file Spice.cpp.
References _FILEINFO_.
|
inherited |
Returns the spacecraft velocity in body-fixed frame km/sec units.
v[] | Spacecraft velocity |
Definition at line 741 of file Spice.cpp.
References _FILEINFO_.
|
inherited |
Returns the spacecraft position in body-fixed frame km units.
p[] | Spacecraft position |
Isis::iException::Programmer | - "You must call SetTime first" |
Definition at line 711 of file Spice.cpp.
Referenced by Isis::BundleAdjust::applyParameterCorrections_CHOLMOD(), Isis::BundleAdjust::applyParameterCorrections_SPECIALK(), Isis::BundleAdjust::ApproximatePoint_ClosestApproach(), Isis::RadarGroundMap::GetdXYdPosition(), Isis::RadarGroundMap::GetXY(), Isis::BundleAdjust::OutputImagesCSV(), Isis::BundleAdjust::OutputNoErrorPropagation(), Isis::BundleAdjust::OutputWithErrorPropagation(), Isis::RadarGroundMap::SetFocalPlane(), Isis::RadarGroundMap::SetGround(), Isis::BundleAdjust::Solve(), Isis::BundleAdjust::SolveCholesky(), Isis::BundleAdjust::Update(), and Isis::AdvancedTrackTool::updateRow().
|
inherited |
Accessor method for the instrument position.
Definition at line 1392 of file Spice.cpp.
Referenced by Isis::Camera::DetectorResolution(), EmissionAngle(), Isis::Camera::LocalPhotometricAngles(), Isis::LoHighCamera::LoHighCamera(), Isis::LoMediumCamera::LoMediumCamera(), Isis::Mariner10Camera::Mariner10Camera(), Isis::MiniRF::MiniRF(), Isis::Camera::OffNadirAngle(), PhaseAngle(), SetGroundLocal(), SetLookDirection(), SlantDistance(), and SpacecraftAltitude().
|
inherited |
Accessor method for the instrument rotation.
Definition at line 1414 of file Spice.cpp.
Referenced by Isis::BundleAdjust::applyParameterCorrections_CHOLMOD(), Isis::BundleAdjust::applyParameterCorrections_SPECIALK(), Isis::BundleAdjust::ApproximatePoint_ClosestApproach(), Isis::HiriseCamera::HiriseCamera(), Isis::HrscCamera::HrscCamera(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), LookDirection(), Isis::LroWideAngleCamera::LroWideAngleCamera(), Isis::Mariner10Camera::Mariner10Camera(), Isis::MocNarrowAngleCamera::MocNarrowAngleCamera(), Isis::MocWideAngleCamera::MocWideAngleCamera(), Isis::BundleAdjust::OutputImagesCSV(), Isis::BundleAdjust::OutputNoErrorPropagation(), Isis::BundleAdjust::OutputWithErrorPropagation(), Isis::RadarGroundMap::SetFocalPlane(), Isis::RadarGroundMap::SetGround(), SetLookDirection(), SetRightAscensionDeclination(), Isis::BundleAdjust::Solve(), Isis::BundleAdjust::SolveCholesky(), and Isis::BundleAdjust::Update().
Distance Isis::Sensor::LocalRadius | ( | ) | const |
Returns the local radius at the intersection point.
This is either the radius on the ellipsoid, the radius from the surface model passed into the constructor, or the radius set with SetUniversalGround.
Definition at line 264 of file Sensor.cpp.
References Isis::SurfacePoint::GetLocalRadius(), Isis::Target::shape(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().
Referenced by Isis::CameraStatistics::addStats(), Isis::StereoTool::calculateElevation(), Isis::Camera::ComputeAzimuth(), Isis::FindTool::distancePerPixel(), Isis::QnetCubeDistanceFilter::filter(), Isis::Camera::GetLocalNormal(), Isis::Camera::GroundRangeResolution(), Isis::RadarGroundMap::Iterate(), Isis::Camera::NorthAzimuth(), Isis::ControlNetFilter::PointDistanceFilter(), Isis::ControlNetFilter::PointLatLonFilter(), Isis::Camera::RawFocalPlanetoImage(), Isis::Camera::ringRangeResolution(), Isis::ProjectionFactory::RingsCreateForCube(), Isis::PushFrameCameraGroundMap::SetGround(), Isis::LineScanCameraGroundMap::SetGround(), Isis::VimsGroundMap::SetGround(), Isis::RadarGroundMap::SetGround(), Isis::Camera::SetGround(), Isis::Camera::SetImage(), SetUniversalGround(), SpacecraftAltitude(), Isis::Camera::SpacecraftAzimuth(), Isis::Camera::SunAzimuth(), Isis::TrackTool::updateLabels(), and Isis::AdvancedTrackTool::updateRow().
Returns the local radius at the intersection point.
This is either the radius on the ellipsoid, the radius from the surface model passed into the constructor, or the radius set with SetUniversalGround.
Definition at line 279 of file Sensor.cpp.
References Isis::Target::shape(), and Isis::Spice::target().
Distance Isis::Sensor::LocalRadius | ( | double | lat, |
double | lon | ||
) |
Returns the local radius at the intersection point.
This is either the radius on the ellipsoid, the radius from the surface model passed into the constructor, or the radius set with SetUniversalGround.
Definition at line 292 of file Sensor.cpp.
References Isis::Angle::Degrees, Isis::Target::shape(), and Isis::Spice::target().
double Isis::Sensor::LocalSolarTime | ( | ) |
Return the local solar time in hours.
Definition at line 587 of file Sensor.cpp.
References Isis::Spice::subSolarPoint(), and UniversalLongitude().
Referenced by Isis::CameraStatistics::addStats(), and Isis::AdvancedTrackTool::updateRow().
void Isis::Sensor::LookDirection | ( | double | v[3] | ) | const |
Returns the look direction in the camera coordinate system.
v[] | The look vector |
Definition at line 486 of file Sensor.cpp.
References Isis::Spice::bodyRotation(), Isis::Spice::instrumentRotation(), Isis::SpiceRotation::J2000Vector(), m_lookB, and Isis::SpiceRotation::ReferenceVector().
|
inherited |
This returns the NAIF body code of the target indicated in the labels.
Definition at line 817 of file Spice.cpp.
Referenced by Isis::Camera::SpkCenterId().
|
inherited |
|
inherited |
|
inherited |
This returns the NAIF IK code to use when reading from instrument kernels.
Definition at line 844 of file Spice.cpp.
Referenced by Isis::AmicaCamera::AmicaCamera(), Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::Chandrayaan1M3Camera::Chandrayaan1M3Camera(), Isis::CrismCamera::CrismCamera(), Isis::CTXCamera::CTXCamera(), Isis::DawnFcCamera::DawnFcCamera(), Isis::HiresCamera::HiresCamera(), Isis::HiriseCamera::HiriseCamera(), Isis::HrscCamera::HrscCamera(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::KaguyaMiCamera::KaguyaMiCamera(), Isis::LoHighCamera::LoHighCamera(), Isis::LoMediumCamera::LoMediumCamera(), Isis::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::LroWideAngleCamera::LroWideAngleCamera(), Isis::LwirCamera::LwirCamera(), Isis::MarciCamera::MarciCamera(), Isis::Mariner10Camera::Mariner10Camera(), Isis::MdisCamera::MdisCamera(), Isis::MiniRF::MiniRF(), Isis::MocNarrowAngleCamera::MocNarrowAngleCamera(), Isis::MocWideAngleCamera::MocWideAngleCamera(), Isis::MsiCamera::MsiCamera(), Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::NewHorizonsMvicFrameCamera::NewHorizonsMvicFrameCamera(), Isis::NewHorizonsMvicTdiCamera::NewHorizonsMvicTdiCamera(), Isis::NirCamera::NirCamera(), Isis::Camera::SetFocalLength(), Isis::Camera::SetPixelPitch(), Isis::SsiCamera::SsiCamera(), Isis::ThemisIrCamera::ThemisIrCamera(), Isis::ThemisVisCamera::ThemisVisCamera(), Isis::UvvisCamera::UvvisCamera(), Isis::VikingCamera::VikingCamera(), Isis::VimsCamera::VimsCamera(), and Isis::VoyagerCamera::VoyagerCamera().
|
inherited |
This returns the NAIF SCLK code to use when reading from instrument kernels.
Definition at line 854 of file Spice.cpp.
Referenced by Isis::CrismCamera::CrismCamera().
|
inherited |
This returns the NAIF SPK code to use when reading from SPK kernels.
Definition at line 826 of file Spice.cpp.
Referenced by Isis::DawnVirCamera::readHouseKeeping(), and Isis::Camera::SpkTargetId().
double Isis::Sensor::PhaseAngle | ( | ) | const |
Returns the phase angle in degrees.
This does not use the surface model.
Definition at line 302 of file Sensor.cpp.
References Isis::Spice::bodyRotation(), Coordinate(), Isis::Spice::instrumentPosition(), Isis::Spice::m_uB, Isis::ShapeModel::phaseAngle(), Isis::Target::shape(), and Isis::Spice::target().
Referenced by Isis::CameraStatistics::addStats(), Isis::CubeCalculator::prepareCalculations(), and Isis::AdvancedTrackTool::updateRow().
|
virtual |
This method is implemented in Camera which defaults to the (pixel pitch * summing mode ) / 2.
If the instrument has a non-square ifov, it must implement this method to return offsets from the center of the pixel.
Reimplemented in Isis::Camera, and Isis::VimsCamera.
Definition at line 95 of file Sensor.cpp.
References _FILEINFO_, and Isis::IException::Programmer.
|
inherited |
Returns the radii of the body in km.
The radii are obtained from the appropriate SPICE kernel for the body specified by TargetName in the Instrument group of the labels.
r[] | Radii of the target in kilometers |
Definition at line 806 of file Spice.cpp.
Referenced by Isis::Camera::BasicMapping(), Isis::Camera::GroundRange(), Isis::VimsGroundMap::Init(), Isis::BundleAdjust::Init(), Isis::MiniRF::MiniRF(), Isis::SunShadowTool::recalculateShadowHeight(), Isis::RadarGroundMap::SetFocalPlane(), and Isis::AdvancedTrackTool::updateRow().
|
protectedinherited |
This should be used for reading ALL text naif kernel values.
This will read it from Naif if we're using naif/not attached kernels. If we have attached kernels and a NaifKeywords label object we will grab it from there instead. This allows us to not furnish kernels after spiceinit.
key | The naif keyword/value name |
type | The naif value's primitive type |
index | The index into the naif keyword array to read |
Definition at line 958 of file Spice.cpp.
References _FILEINFO_.
Referenced by Isis::IdealCamera::IdealCamera().
|
inlinevirtual |
Virtual method that returns the pixel resolution of the sensor in meters/pix.
Reimplemented from Isis::Spice.
Reimplemented in Isis::Camera.
double Isis::Sensor::RightAscension | ( | ) |
Returns the right ascension angle (sky longitude)
Definition at line 501 of file Sensor.cpp.
References computeRaDec(), m_newLookB, and m_ra.
Referenced by Isis::VimsSkyMap::Init(), Isis::Camera::RaDecRange(), Isis::Camera::RaDecResolution(), Isis::Camera::RawFocalPlanetoImage(), and Isis::AdvancedTrackTool::updateRow().
bool Isis::Sensor::SetGround | ( | const SurfacePoint & | surfacePt, |
bool | backCheck = true |
||
) |
This overloaded method has the opposite function as SetLookDirection.
Instead of computing a point on the target, a point is set and the look direction is computed. Other methods such as lat/lon, phase, incidence, etc. can be used if this method returns a true.
backCheck | If true this method will check the lat/lon point to see if it falls on the backside of the target (or beyond the horizon). If false this test will not occur. Defaults to true |
Definition at line 413 of file Sensor.cpp.
References Isis::ShapeModel::clearSurfacePoint(), SetGroundLocal(), Isis::ShapeModel::setSurfacePoint(), Isis::Target::shape(), and Isis::Spice::target().
|
private |
Computes look vector.
This method handles the common functions for the overloaded SetUniversalGround methods.
Instead of computing a point on the target, a point is set (lat,lon,radius) and the look direction is computed.
backCheck | If true this method will check the lat/lon point to see if it falls on the backside of the target (or beyond the horizon). If false this test will not occur. Defaults to true |
Definition at line 439 of file Sensor.cpp.
References Isis::Spice::bodyRotation(), Isis::ShapeModel::clearSurfacePoint(), Coordinate(), Isis::ShapeModel::emissionAngle(), Isis::Spice::instrumentPosition(), Isis::Displacement::kilometers(), m_lookB, m_newLookB, Isis::SpiceRotation::ReferenceVector(), Isis::ShapeModel::setHasIntersection(), Isis::Target::shape(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().
Referenced by SetGround(), and SetUniversalGround().
bool Isis::Sensor::SetLookDirection | ( | const double | v[3] | ) |
Sets the look direction of the spacecraft.
This routine will then attempt to intersect the look direction with the target. If successful you can utilize the methods which return the lat/lon, phase, incidence, etc. This routine returns false if the look direction does not intersect the target.
v[] | A look vector in camera coordinates. For example, (0,0,1) is usually the look direction out of the boresight of a camera. |
2009-09-23 Tracie Sucharski - Convert negative longitudes returned my reclat.
2010-09-15 Janet Barrett - Modified this method to use a new algorithm for finding the intersection of a ray with the DEM. This was required to take care of problems that were encountered at the poles of global DEM files. The algorithm that is being used was taken from "Intersection between spacecraft viewing vectors and digital elevation models" by N.A. Teanby. This algorithm only works on Equatorial Cylindrical projections. Other projections still use the previous algorithm.
2010-10-26 Janet Barrett - The tolerance value of 1E-5 was too small and was causing a divide by zero error when the current and last intersections were virtually the same. The tolerance was changed to 3E-8 * a (where a is the equatorial radius of the planet we are dealing with).
2011-01-24 Janet Barrett - Got rid of extra loop that wasn't needed for the new ray tracing algorithm.
Definition at line 153 of file Sensor.cpp.
References Isis::Spice::bodyRotation(), Coordinate(), Isis::Spice::instrumentPosition(), Isis::Spice::instrumentRotation(), Isis::SpiceRotation::J2000Vector(), m_lookB, m_newLookB, Isis::SpiceRotation::ReferenceVector(), Isis::ShapeModel::setHasIntersection(), Isis::Target::shape(), and Isis::Spice::target().
Referenced by Isis::CameraSkyMap::SetFocalPlane(), Isis::VimsSkyMap::SetFocalPlane(), Isis::VimsGroundMap::SetFocalPlane(), and SetRightAscensionDeclination().
bool Isis::Sensor::SetRightAscensionDeclination | ( | const double | ra, |
const double | dec | ||
) |
Given the ra/dec compute the look direction.
ra | Right ascension in degrees (sky longitude) |
dec | Declination in degrees (sky latitude) |
Definition at line 540 of file Sensor.cpp.
References Isis::Spice::instrumentRotation(), Isis::PI(), Isis::SpiceRotation::ReferenceVector(), and SetLookDirection().
void Isis::Sensor::setTime | ( | const iTime & | time | ) |
By setting the time you essential set the position of the spacecraft and body as indicated in the class Spice.
However, after this is invoked there will be no intersection point until SetLookDirection or SetUniversalGround is invoked.
time | Ephemeris time (read NAIF documentation for a detailed description) |
Definition at line 111 of file Sensor.cpp.
References Isis::ShapeModel::clearSurfacePoint(), Isis::Spice::setTime(), Isis::Target::shape(), and Isis::Spice::target().
Referenced by Isis::AmicaCamera::AmicaCamera(), Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::CrismCamera::CrismCamera(), Isis::DawnFcCamera::DawnFcCamera(), Isis::HiresCamera::HiresCamera(), Isis::IdealCamera::IdealCamera(), Isis::VimsSkyMap::Init(), Isis::VimsGroundMap::Init(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::KaguyaMiCamera::KaguyaMiCamera(), Isis::Camera::LoadCache(), Isis::LoHighCamera::LoHighCamera(), Isis::LoMediumCamera::LoMediumCamera(), Isis::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::LwirCamera::LwirCamera(), Isis::Mariner10Camera::Mariner10Camera(), Isis::MdisCamera::MdisCamera(), Isis::MiniRF::MiniRF(), Isis::MsiCamera::MsiCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::NirCamera::NirCamera(), Isis::NewHorizonsMvicFrameCamera::SetBand(), Isis::ThemisVisCamera::SetBand(), Isis::VimsSkyMap::SetFocalPlane(), Isis::VimsGroundMap::SetFocalPlane(), Isis::PushFrameCameraDetectorMap::SetFramelet(), Isis::VariableLineScanCameraDetectorMap::SetParent(), Isis::RadarPulseMap::SetParent(), Isis::LineScanCameraDetectorMap::SetParent(), Isis::SsiCamera::SsiCamera(), Isis::UvvisCamera::UvvisCamera(), Isis::VikingCamera::VikingCamera(), and Isis::VoyagerCamera::VoyagerCamera().
bool Isis::Sensor::SetUniversalGround | ( | const double | latitude, |
const double | longitude, | ||
bool | backCheck = true |
||
) |
This is the opposite routine for SetLookDirection.
Instead of computing a point on the target, a point is set and the look direction is computed. Other methods such as lat/lon, phase, incidence, etc. can be used if this method returns a true.
latitude | Planetocentric latitude |
longitude | Positive east longitude |
backCheck | If true this method will check the lat/lon point to see if it falls on the backside of the target (or beyond the horizon). If false this test will not occur. Defaults to true |
Definition at line 345 of file Sensor.cpp.
References Isis::ShapeModel::clearSurfacePoint(), Isis::Angle::Degrees, LocalRadius(), SetGroundLocal(), Isis::SurfacePoint::SetSpherical(), Isis::Target::shape(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().
bool Isis::Sensor::SetUniversalGround | ( | const double | latitude, |
const double | longitude, | ||
const double | radius, | ||
bool | backCheck = true |
||
) |
This overloaded method has the opposite function as SetLookDirection.
Instead of computing a point on the target, a point is set and the look direction is computed. Other methods such as lat/lon, phase, incidence, etc. can be used if this method returns a true.
latitude | Planetocentric latitude in degrees |
longitude | Positive east longitude in degrees |
radius | Radius in meters |
backCheck | If true this method will check the lat/lon point to see if it falls on the backside of the target (or beyond the horizon). If false this test will not occur. Defaults to true |
Definition at line 379 of file Sensor.cpp.
References Isis::ShapeModel::clearSurfacePoint(), Isis::Angle::Degrees, Isis::Distance::Meters, SetGroundLocal(), Isis::SurfacePoint::SetSpherical(), Isis::Target::shape(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().
double Isis::Sensor::SlantDistance | ( | ) | const |
Return the distance between the spacecraft and surface point in kmv.
Definition at line 566 of file Sensor.cpp.
References Isis::Spice::bodyRotation(), Coordinate(), Isis::Spice::instrumentPosition(), Isis::Displacement::kilometers(), Isis::SpiceRotation::ReferenceVector(), Isis::Target::shape(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().
Referenced by Isis::PushFrameCameraGroundMap::FindSpacecraftDistance(), and Isis::AdvancedTrackTool::updateRow().
double Isis::Sensor::SolarDistance | ( | ) | const |
Returns the distance between the sun and surface point in AU.
Definition at line 602 of file Sensor.cpp.
References Isis::Displacement::kilometers(), Isis::Target::shape(), Isis::Spice::sunPosition(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().
|
inherited |
Returns the solar longitude.
Definition at line 1314 of file Spice.cpp.
Referenced by Isis::AdvancedTrackTool::updateRow().
double Isis::Sensor::SpacecraftAltitude | ( | ) |
Returns the distance from the spacecraft to the subspacecraft point in km.
It uses the ellipsoid, not the shape model
Definition at line 625 of file Sensor.cpp.
References Isis::Spice::instrumentPosition(), Isis::Distance::kilometers(), LocalRadius(), Isis::PI(), and Isis::Spice::subSpacecraftPoint().
Referenced by Isis::CrismCamera::CrismCamera(), Isis::Camera::LoadCache(), Isis::MiniRF::MiniRF(), and Isis::VimsCamera::VimsCamera().
void Isis::Sensor::SpacecraftSurfaceVector | ( | double | scSurfaceVector[3] | ) | const |
Return the vector between the spacecraft and surface point in body-fixed.
Definition at line 554 of file Sensor.cpp.
References m_lookB.
|
inherited |
Returns the sub-solar latitude/longitude in universal coordinates (0-360 positive east, ocentric)
lat | Sub-solar latitude |
lon | Sub-solar longitude |
Isis::IException::Programmer | - "You must call SetTime first." |
Definition at line 1190 of file Spice.cpp.
References _FILEINFO_, and Isis::PI().
Referenced by LocalSolarTime(), and Isis::Camera::SunAzimuth().
|
inherited |
Returns the sub-spacecraft latitude/longitude in universal coordinates (0-360 positive east, ocentric)
lat | Sub-spacecraft latitude |
lon | Sub-spacecraft longitude |
Isis::IException::Programmer | - "You must call SetTime first." |
Definition at line 1142 of file Spice.cpp.
References _FILEINFO_, and Isis::PI().
Referenced by Isis::Camera::GroundRangeResolution(), SpacecraftAltitude(), and Isis::Camera::SpacecraftAzimuth().
|
inherited |
Fills the input vector with sun position information, in either body-fixed or J2000 reference frame and km units.
p[] | Sun position |
Definition at line 779 of file Spice.cpp.
References _FILEINFO_.
Referenced by Isis::SunShadowTool::recalculateShadowHeight().
|
inherited |
Accessor method for the sun position.
Definition at line 1381 of file Spice.cpp.
Referenced by SolarDistance().
|
inherited |
Returns a pointer to the target object.
Definition at line 1228 of file Spice.cpp.
Referenced by Isis::Camera::BasicMapping(), Isis::Camera::basicRingMapping(), Coordinate(), EmissionAngle(), Isis::FeatureNomenclatureTool::findMissingNomenclature(), GetLatitude(), Isis::Camera::GetLocalNormal(), GetLongitude(), GetSurfacePoint(), Isis::UniversalGroundMap::GroundRange(), Isis::Camera::GroundRangeResolution(), HasSurfaceIntersection(), IgnoreElevationModel(), IncidenceAngle(), Isis::Camera::LoadCache(), LocalRadius(), Isis::Camera::NorthAzimuth(), PhaseAngle(), Isis::Camera::RawFocalPlanetoImage(), Isis::VimsGroundMap::SetGround(), Isis::RadarGroundMap::SetGround(), SetGround(), Isis::Camera::SetGround(), SetGroundLocal(), Isis::Camera::SetImage(), SetLookDirection(), Isis::Camera::SetRightAscensionDeclination(), setTime(), SetUniversalGround(), Isis::Camera::SetUniversalGround(), SlantDistance(), SolarDistance(), UniversalLatitude(), UniversalLongitude(), Isis::TrackTool::updateLabels(), and Isis::AdvancedTrackTool::updateRow().
|
inherited |
|
inherited |
Returns the string name of the target.
Definition at line 1238 of file Spice.cpp.
References Isis::Target::name().
|
inherited |
Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions.
Definition at line 767 of file Spice.cpp.
Referenced by Isis::RadarSlantRangeMap::ComputeA(), Isis::HiresCamera::HiresCamera(), Isis::LoHighCamera::LoHighCamera(), Isis::LoMediumCamera::LoMediumCamera(), Isis::LwirCamera::LwirCamera(), Isis::NewHorizonsMvicFrameCamera::SetBand(), Isis::VariableLineScanCameraDetectorMap::SetDetector(), Isis::RadarPulseMap::SetDetector(), Isis::LineScanCameraDetectorMap::SetDetector(), Isis::RadarSlantRangeMap::SetFocalPlane(), Isis::RadarSlantRangeMap::SetUndistortedFocalPlane(), Isis::FramingCamera::ShutterOpenCloseTimes(), Isis::Camera::StartEndEphemerisTimes(), Isis::AdvancedTrackTool::updateRow(), and Isis::UvvisCamera::UvvisCamera().
double Isis::Sensor::UniversalLatitude | ( | ) | const |
Returns the planetocentric latitude at the surface intersection point in body fixed.
Definition at line 220 of file Sensor.cpp.
References Isis::Angle::degrees(), Isis::SurfacePoint::GetLatitude(), Isis::Target::shape(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().
Referenced by Isis::QnetTool::addMeasure(), Isis::CameraStatistics::addStats(), Isis::ProjectionFactory::CreateForCube(), Isis::QnetCubeDistanceFilter::filter(), Isis::InterestOperator::FindCnetRef(), Isis::SmtkMatcher::getLatLon(), Isis::Camera::GroundRangeResolution(), Isis::Chip::Load(), Isis::QnetTool::loadGroundMeasure(), Isis::QnetTool::loadPoint(), Isis::Camera::NorthAzimuth(), Isis::ControlNetFilter::PointDistanceFilter(), Isis::ControlNetFilter::PointLatLonFilter(), Isis::Camera::RawFocalPlanetoImage(), Isis::Camera::SetRightAscensionDeclination(), Isis::UniversalGroundMap::UniversalLatitude(), Isis::TrackTool::updateLabels(), and Isis::AdvancedTrackTool::updateRow().
double Isis::Sensor::UniversalLongitude | ( | ) | const |
Returns a positive east, 0-360 domain longitude at the surface intersection point in body fixed.
Definition at line 239 of file Sensor.cpp.
References Isis::Angle::degrees(), Isis::SurfacePoint::GetLongitude(), Isis::Target::shape(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().
Referenced by Isis::QnetTool::addMeasure(), Isis::CameraStatistics::addStats(), Isis::ProjectionFactory::CreateForCube(), Isis::QnetCubeDistanceFilter::filter(), Isis::InterestOperator::FindCnetRef(), Isis::SmtkMatcher::getLatLon(), Isis::Camera::GroundRangeResolution(), Isis::Chip::Load(), Isis::QnetTool::loadGroundMeasure(), Isis::QnetTool::loadPoint(), LocalSolarTime(), Isis::ControlNetFilter::PointDistanceFilter(), Isis::ControlNetFilter::PointLatLonFilter(), Isis::Camera::RawFocalPlanetoImage(), Isis::Camera::ringRangeResolution(), Isis::ProjectionFactory::RingsCreateForCube(), Isis::Camera::SetRightAscensionDeclination(), Isis::UniversalGroundMap::UniversalLongitude(), Isis::TrackTool::updateLabels(), and Isis::AdvancedTrackTool::updateRow().
|
protectedinherited |
This contains the transformation matrix from J2000 (J) to Body fixed (B).
Recall that the transpose of this matrix JB will convert from body-fixed to J2000. It is left in protected space so that conversions between double and SpiceDouble do not have to occur in inheriting classes.
|
private |
Decliation (sky latitude)
Definition at line 270 of file Sensor.h.
Referenced by computeRaDec(), and Declination().
|
private |
Look direction in body fixed.
Definition at line 266 of file Sensor.h.
Referenced by computeRaDec(), LookDirection(), SetGroundLocal(), SetLookDirection(), and SpacecraftSurfaceVector().
|
private |
flag to indicate we need to recompute ra/dec
Definition at line 268 of file Sensor.h.
Referenced by computeRaDec(), Declination(), RightAscension(), SetGroundLocal(), and SetLookDirection().
|
private |
Right ascension (sky longitude)
Definition at line 269 of file Sensor.h.
Referenced by computeRaDec(), and RightAscension().
|
protectedinherited |
This contains the sun position (u) in the
bodyfixed reference frame (B).
It is left protected so that conversions between double and SpiceDouble do not have to occur in inheriting classes. Units are km
Definition at line 349 of file Spice.h.
Referenced by IncidenceAngle(), Isis::Camera::LocalPhotometricAngles(), and PhaseAngle().