Isis Developer Reference
|
Obtain SPICE information for a spacecraft. More...
#include <Spice.h>
Public Member Functions | |
Spice (Cube &cube) | |
Constructs a Spice object and loads SPICE kernels using information from the label object. | |
Spice (Pvl &lab, nlohmann::json) | |
Constructs a Spice Object. | |
virtual | ~Spice () |
Destroys the Spice object. | |
virtual void | setTime (const iTime &time) |
Sets the ephemeris time and reads the spacecraft and sun position from the kernels at that instant in time. | |
void | instrumentPosition (double p[3]) const |
Returns the spacecraft position in body-fixed frame km units. | |
virtual void | instrumentBodyFixedPosition (double p[3]) const |
Returns the spacecraft position in body-fixed frame km units. | |
virtual 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. | |
virtual double | targetCenterDistance () const |
Calculates and returns the distance from the spacecraft to the target center. | |
virtual double | sunToBodyDist () const |
virtual Longitude | solarLongitude () |
Returns the solar longitude. | |
virtual void | instrumentBodyFixedVelocity (double v[3]) const |
Returns the spacecraft velocity in body-fixed frame km/sec units. | |
virtual 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. | |
virtual 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. | |
virtual iTime | cacheStartTime () const |
Accessor method for the cache start time. | |
virtual iTime | cacheEndTime () const |
Accessor method for the cache end time. | |
virtual void | subSpacecraftPoint (double &lat, double &lon) |
Returns the sub-spacecraft latitude/longitude in universal coordinates (0-360 positive east, ocentric) | |
virtual void | subSolarPoint (double &lat, double &lon) |
Returns the sub-solar latitude/longitude in universal coordinates (0-360 positive east, ocentric) | |
virtual Target * | target () const |
Returns a pointer to the target object. | |
QString | targetName () const |
Returns the QString name of the target. | |
virtual iTime | getClockTime (QString clockValue, int sclkCode=-1, bool clockTicks=false) |
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. | |
virtual SpicePosition * | sunPosition () const |
Accessor method for the sun position. | |
virtual SpicePosition * | instrumentPosition () const |
Accessor method for the instrument position. | |
virtual SpiceRotation * | bodyRotation () const |
Accessor method for the body rotation. | |
virtual SpiceRotation * | instrumentRotation () const |
Accessor method for the instrument rotation. | |
bool | isUsingAle () |
bool | hasKernels (Pvl &lab) |
Returns true if the kernel group has kernel files. | |
bool | isTimeSet () |
Returns true if time has been initialized. | |
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. | |
virtual double | resolution () |
Virtual method that returns the pixel resolution of the sensor in meters/pix. | |
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) |
virtual void | computeSolarLongitude (iTime et) |
Computes the solar longitude for the given ephemeris time. | |
Protected Attributes | |
SpiceDouble | m_uB [3] |
This contains the sun position (u) in the bodyfixed reference frame (B). | |
SpiceDouble | m_BJ [3][3] |
This contains the transformation matrix from J2000 (J) to Body fixed (B). | |
Target * | m_target |
Target of the observation. | |
iTime * | m_et |
Ephemeris time (read NAIF documentation for a detailed description) | |
Longitude * | m_solarLongitude |
Body rotation solar longitude value. | |
Obtain SPICE information for a spacecraft.
This class initializes standard NAIF SPICE kernels in order to allow queries of a spacecraft's position and attitude at a given time. It also allows for access to the position of the sun and transformation matrices from J2000 to a body-fixed reference frame for a given target (e.g., Mars). The constructor for this class expects a PVL object with the following minimum information:
This group is typically found in the image labels after it has been run through the program "spiceinit" It is recommended you read NAIF documentation to obtain a better understanding about the various types of SPICE kernels. The NAIF toolkit accesses information from kernels on a last-in-first-out (LIFO) basis. This means that the creation of a second object can cause problems with the first object. To alleviate this problem we have supplied the CreateCache method which should be invoked immediately after the object is constructed. This caches information (spacecraft position, pointing, etc) internally in the object and unloads all NAIF kernels.
|
protected |
Isis::Spice::Spice | ( | Cube & | cube | ) |
Constructs a Spice object and loads SPICE kernels using information from the label object.
The constructor expects an Instrument and Kernels group to be in the labels.
lab | Label containing Instrument and Kernels groups. |
References Isis::Cube::hasBlob(), Isis::Cube::label(), and Isis::PvlObject::Traverse.
Isis::Spice::Spice | ( | Pvl & | lab, |
nlohmann::json | isd ) |
|
virtual |
Destroys the Spice object.
References Isis::NaifStatus::CheckErrors(), m_et, m_solarLongitude, and m_target.
|
virtual |
Accessor method for the body rotation.
Reimplemented in Isis::CSMCamera.
Referenced by Isis::Cube::attachSpiceFromIsd(), Isis::Sensor::EmissionAngle(), Isis::Target::frameType(), Isis::CameraGroundMap::GetdXYdPoint(), Isis::RadarGroundMap::GetdXYdPosition(), Isis::CameraGroundMap::GetdXYdTOrientation(), Isis::RadarGroundMap::GetXY(), Isis::CameraGroundMap::GetXY(), Isis::Sensor::lookDirectionJ2000(), Isis::MiniRF::MiniRF(), Isis::Target::pmCoefs(), Isis::Target::pmNutPrecCoefs(), Isis::Target::poleDecCoefs(), Isis::Target::poleDecNutPrecCoefs(), Isis::Target::poleRaCoefs(), Isis::Target::poleRaNutPrecCoefs(), Isis::RadarGroundMap::SetFocalPlane(), Isis::RadarGroundMap::SetGround(), Isis::Sensor::SetGround(), Isis::Sensor::SetLookDirection(), Isis::Sensor::SetUniversalGround(), Isis::Sensor::SetUniversalGround(), sunToBodyDist(), Isis::Target::sysNutPrecCoefs(), and Isis::Target::sysNutPrecConstants().
|
virtual |
Accessor method for the cache end time.
|
virtual |
Accessor method for the cache start time.
|
protectedvirtual |
Computes the solar longitude for the given ephemeris time.
If the target is sky, the longitude is set to -999.0.
et | Ephemeris time |
Reimplemented in Isis::CSMCamera.
References Isis::NaifStatus::CheckErrors(), Isis::SpicePosition::Coordinate(), Isis::SpiceRotation::EphemerisTime(), Isis::iTime::Et(), Isis::Longitude::force360Domain(), Isis::SpiceRotation::IsCached(), Isis::Target::isSky(), m_solarLongitude, m_target, Isis::SpiceRotation::Matrix(), Isis::Angle::Radians, Isis::SpicePosition::SetEphemerisTime(), Isis::SpiceRotation::SetEphemerisTime(), and Isis::SpicePosition::Velocity().
Referenced by createCache(), setTime(), and solarLongitude().
|
virtual |
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" |
References _FILEINFO_, Isis::SpicePosition::cacheSize(), Isis::NaifStatus::CheckErrors(), computeSolarLongitude(), Isis::iTime::Et(), Isis::SpicePosition::GetSource(), Isis::SpiceRotation::GetSource(), Isis::SpicePosition::HasVelocity(), instrumentPosition(), Isis::SpicePosition::IsCached(), Isis::SpiceRotation::IsCached(), isUsingAle(), Isis::SpicePosition::LoadCache(), Isis::SpiceRotation::LoadCache(), m_et, Isis::SpicePosition::Memcache, Isis::SpiceRotation::Memcache, Isis::SpicePosition::Memcache2HermiteCache(), Isis::SpiceRotation::MinimizeCache(), Isis::IException::Programmer, Isis::IException::User, and Isis::SpiceRotation::Yes.
Referenced by Isis::CrismCamera::CrismCamera(), Isis::Camera::LoadCache(), and Isis::MiniRF::MiniRF().
|
virtual |
This converts the spacecraft clock ticks value (clockValue) to an iTime.
If the clock ticks value is provided directly, rather than the spacecraft clock string, set clockTicks=true.
Use this when possible because naif calls (such as scs2e_c) cannot be called when not using naif.
References Isis::NaifStatus::CheckErrors(), getStoredResult(), naifSclkCode(), SpiceDoubleType, storeResult(), and Isis::toString().
Referenced by Isis::Chandrayaan1M3Camera::Chandrayaan1M3Camera(), Isis::CTXCamera::CTXCamera(), Isis::DawnFcCamera::DawnFcCamera(), Isis::HayabusaAmicaCamera::HayabusaAmicaCamera(), Isis::HayabusaNirsCamera::HayabusaNirsCamera(), Isis::HiriseCamera::HiriseCamera(), Isis::Hyb2OncCamera::Hyb2OncCamera(), Isis::VimsGroundMap::Init(), Isis::VimsSkyMap::Init(), Isis::JunoCamera::JunoCamera(), Isis::KaguyaTcCamera::KaguyaTcCamera(), Isis::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::LroWideAngleCamera::LroWideAngleCamera(), Isis::MarciCamera::MarciCamera(), Isis::MdisCamera::MdisCamera(), Isis::MocNarrowAngleCamera::MocNarrowAngleCamera(), Isis::MocWideAngleCamera::MocWideAngleCamera(), Isis::MsiCamera::MsiCamera(), Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::NewHorizonsMvicFrameCamera::NewHorizonsMvicFrameCamera(), Isis::NewHorizonsMvicTdiCamera::NewHorizonsMvicTdiCamera(), Isis::OsirisRexOcamsCamera::OsirisRexOcamsCamera(), Isis::OsirisRexTagcamsCamera::OsirisRexTagcamsCamera(), Isis::RosettaOsirisCamera::RosettaOsirisCamera(), Isis::ThemisIrCamera::ThemisIrCamera(), Isis::ThemisVisCamera::ThemisVisCamera(), Isis::VikingCamera::VikingCamera(), and Isis::VimsCamera::VimsCamera().
SpiceDouble Isis::Spice::getDouble | ( | const QString & | key, |
int | index = 0 ) |
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." |
References readValue(), and SpiceDoubleType.
Referenced by Isis::LroWideAngleCameraDistortionMap::addFilter(), Isis::LroWideAngleCameraFocalPlaneMap::addFilter(), Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::Chandrayaan1M3Camera::Chandrayaan1M3Camera(), Isis::ClipperPushBroomCamera::ClipperPushBroomCamera(), Isis::CrismCamera::CrismCamera(), Isis::CTXCamera::CTXCamera(), Isis::DawnFcCamera::DawnFcCamera(), Isis::DawnVirCamera::DawnVirCamera(), Isis::HayabusaAmicaCamera::HayabusaAmicaCamera(), Isis::HayabusaNirsCamera::HayabusaNirsCamera(), Isis::HiresCamera::HiresCamera(), Isis::HrscCamera::HrscCamera(), Isis::Hyb2OncCamera::Hyb2OncCamera(), Isis::RosettaOsirisCamera::initDistortion(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::JunoCamera::JunoCamera(), Isis::KaguyaMiCamera::KaguyaMiCamera(), Isis::KaguyaTcCamera::KaguyaTcCamera(), Isis::KaguyaTcCameraDistortionMap::KaguyaTcCameraDistortionMap(), Isis::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::LroWideAngleCamera::LroWideAngleCamera(), Isis::LwirCamera::LwirCamera(), Isis::MarciCamera::MarciCamera(), Isis::MarciDistortionMap::MarciDistortionMap(), Isis::Mariner10Camera::Mariner10Camera(), Isis::MdisCamera::MdisCamera(), Isis::MexHrscSrcCamera::MexHrscSrcCamera(), Isis::MsiCamera::MsiCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::NewHorizonsMvicFrameCamera::NewHorizonsMvicFrameCamera(), Isis::NewHorizonsMvicTdiCamera::NewHorizonsMvicTdiCamera(), Isis::NirCamera::NirCamera(), Isis::OsirisRexOcamsCamera::OsirisRexOcamsCamera(), Isis::OsirisRexTagcamsCamera::OsirisRexTagcamsCamera(), Isis::OsirisRexTagcamsDistortionMap::OsirisRexTagcamsDistortionMap(), Isis::RosettaOsirisCamera::RosettaOsirisCamera(), Isis::RosettaVirtisCamera::RosettaVirtisCamera(), Isis::KaguyaMiCameraDistortionMap::SetDistortion(), Isis::LroNarrowAngleDistortionMap::SetDistortion(), Isis::TaylorCameraDistortionMap::SetDistortion(), Isis::OsirisRexOcamsDistortionMap::SetDistortion(), Isis::Camera::SetFocalLength(), Isis::Camera::SetPixelPitch(), Isis::SsiCamera::SsiCamera(), Isis::TgoCassisCamera::TgoCassisCamera(), Isis::TgoCassisDistortionMap::TgoCassisDistortionMap(), and Isis::UvvisCamera::UvvisCamera().
SpiceInt Isis::Spice::getInteger | ( | const QString & | key, |
int | index = 0 ) |
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 |
References readValue(), and SpiceIntType.
Referenced by Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), and Isis::LroWideAngleCamera::LroWideAngleCamera().
PvlObject Isis::Spice::getStoredNaifKeywords | ( | ) | const |
This returns the PvlObject that stores all of the requested Naif data and can be a replacement for furnishing text kernels.
Referenced by Isis::Cube::attachSpiceFromIsd().
|
protected |
References readStoredValue(), SpiceByteCodeType, and SpiceDoubleType.
Referenced by getClockTime().
QString Isis::Spice::getString | ( | const QString & | key, |
int | index = 0 ) |
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." |
References readValue(), and SpiceStringType.
Referenced by Isis::LightTimeCorrectionState::checkAberrationCorrection(), Isis::LightTimeCorrectionState::checkLightTimeToSurfaceCorrect(), Isis::LightTimeCorrectionState::checkObserverTargetSwap(), Isis::MdisCamera::MdisCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::OsirisRexTagcamsCamera::OsirisRexTagcamsCamera(), Isis::OsirisRexTagcamsDistortionMap::OsirisRexTagcamsDistortionMap(), and Isis::OsirisRexOcamsDistortionMap::SetDistortion().
bool Isis::Spice::hasKernels | ( | Pvl & | lab | ) |
Returns true if the kernel group has kernel files.
lab | Label containing Instrument and Kernels groups. |
References Isis::PvlContainer::hasKeyword(), Isis::PvlKeyword::size(), and Isis::PvlObject::Traverse.
|
virtual |
Returns the spacecraft position in body-fixed frame km units.
p[] | Spacecraft position |
Isis::iException::Programmer | - "You must call SetTime first" |
Reimplemented in Isis::CSMCamera.
References _FILEINFO_, Isis::SpicePosition::Coordinate(), m_et, Isis::IException::Programmer, and Isis::SpiceRotation::ReferenceVector().
Referenced by Isis::IsisSensor::getState(), Isis::IsisSensor::getState(), instrumentPosition(), Isis::Camera::LocalPhotometricAngles(), Isis::Sensor::PhaseAngle(), and Isis::Sensor::SlantDistance().
|
virtual |
Returns the spacecraft velocity in body-fixed frame km/sec units.
v[] | Spacecraft velocity |
References _FILEINFO_, Isis::SpicePosition::Coordinate(), m_et, Isis::IException::Programmer, Isis::SpiceRotation::ReferenceVector(), and Isis::SpicePosition::Velocity().
|
virtual |
Accessor method for the instrument position.
Reimplemented in Isis::CSMCamera.
Referenced by createCache(), Isis::Camera::DetectorResolution(), Isis::Sensor::EmissionAngle(), Isis::LoHighCamera::LoHighCamera(), Isis::LoMediumCamera::LoMediumCamera(), Isis::Mariner10Camera::Mariner10Camera(), Isis::MiniRF::MiniRF(), Isis::Camera::OffNadirAngle(), Isis::Sensor::SetGround(), Isis::Sensor::SetLookDirection(), setTime(), Isis::Sensor::SetUniversalGround(), Isis::Sensor::SetUniversalGround(), and Isis::Sensor::SpacecraftAltitude().
void Isis::Spice::instrumentPosition | ( | double | p[3] | ) | const |
Returns the spacecraft position in body-fixed frame km units.
p[] | Spacecraft position |
Isis::iException::Programmer | - "You must call SetTime first" |
References instrumentBodyFixedPosition().
Referenced by Isis::Cube::attachSpiceFromIsd(), Isis::CameraGroundMap::GetdXYdPosition(), Isis::RadarGroundMap::GetdXYdPosition(), Isis::RadarGroundMap::GetXY(), Isis::CameraGroundMap::GetXY(), Isis::RadarGroundMap::SetFocalPlane(), and Isis::RadarGroundMap::SetGround().
|
virtual |
Accessor method for the instrument rotation.
Reimplemented in Isis::CSMCamera.
Referenced by Isis::Cube::attachSpiceFromIsd(), Isis::DawnVirCamera::DawnVirCamera(), Isis::CameraGroundMap::GetdXYdOrientation(), Isis::CameraGroundMap::GetdXYdPoint(), Isis::CameraGroundMap::GetdXYdPosition(), Isis::CameraGroundMap::GetdXYdTOrientation(), Isis::CameraGroundMap::GetXY(), Isis::HiriseCamera::HiriseCamera(), Isis::HrscCamera::HrscCamera(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::JunoCamera::JunoCamera(), Isis::Sensor::LookDirection(), Isis::LroWideAngleCamera::LroWideAngleCamera(), Isis::Mariner10Camera::Mariner10Camera(), Isis::MocNarrowAngleCamera::MocNarrowAngleCamera(), Isis::MocWideAngleCamera::MocWideAngleCamera(), Isis::RosettaVirtisCamera::RosettaVirtisCamera(), Isis::RadarGroundMap::SetFocalPlane(), Isis::RadarGroundMap::SetGround(), Isis::Sensor::SetLookDirection(), Isis::Sensor::SetRightAscensionDeclination(), and Isis::TgoCassisCamera::TgoCassisCamera().
bool Isis::Spice::isTimeSet | ( | ) |
Returns true if time has been initialized.
References m_et.
Referenced by Isis::CameraDetectorMap::SetParent(), and Isis::RollingShutterCameraDetectorMap::SetParent().
bool Isis::Spice::isUsingAle | ( | ) |
Referenced by createCache().
SpiceInt Isis::Spice::naifBodyCode | ( | ) | const |
This returns the NAIF body code of the target indicated in the labels.
References m_target, and Isis::Target::naifBodyCode().
Referenced by Isis::Camera::SpkCenterId().
SpiceInt Isis::Spice::naifBodyFrameCode | ( | ) | const |
This returns the NAIF body frame code.
It is read from the labels, if it exists. Otherwise, it's calculated by the init() method.
SpiceInt Isis::Spice::naifCkCode | ( | ) | const |
This returns the NAIF CK code to use when reading from CK kernels.
SpiceInt Isis::Spice::naifIkCode | ( | ) | const |
This returns the NAIF IK code to use when reading from instrument kernels.
Referenced by Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::Chandrayaan1M3Camera::Chandrayaan1M3Camera(), Isis::ClipperNacRollingShutterCamera::ClipperNacRollingShutterCamera(), Isis::ClipperPushBroomCamera::ClipperPushBroomCamera(), Isis::ClipperWacFcCamera::ClipperWacFcCamera(), Isis::CrismCamera::CrismCamera(), Isis::CTXCamera::CTXCamera(), Isis::DawnFcCamera::DawnFcCamera(), Isis::DawnVirCamera::DawnVirCamera(), Isis::HayabusaAmicaCamera::HayabusaAmicaCamera(), Isis::HayabusaNirsCamera::HayabusaNirsCamera(), Isis::HiresCamera::HiresCamera(), Isis::HiriseCamera::HiriseCamera(), Isis::HrscCamera::HrscCamera(), Isis::Hyb2OncCamera::Hyb2OncCamera(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::JunoCamera::JunoCamera(), Isis::KaguyaMiCamera::KaguyaMiCamera(), Isis::KaguyaTcCamera::KaguyaTcCamera(), 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::MexHrscSrcCamera::MexHrscSrcCamera(), 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::OsirisRexOcamsCamera::OsirisRexOcamsCamera(), Isis::OsirisRexTagcamsCamera::OsirisRexTagcamsCamera(), Isis::RosettaOsirisCamera::RosettaOsirisCamera(), Isis::RosettaVirtisCamera::RosettaVirtisCamera(), Isis::Camera::SetFocalLength(), Isis::Camera::SetPixelPitch(), Isis::SsiCamera::SsiCamera(), Isis::TgoCassisCamera::TgoCassisCamera(), Isis::ThemisIrCamera::ThemisIrCamera(), Isis::ThemisVisCamera::ThemisVisCamera(), Isis::UvvisCamera::UvvisCamera(), Isis::VikingCamera::VikingCamera(), Isis::VimsCamera::VimsCamera(), and Isis::VoyagerCamera::VoyagerCamera().
SpiceInt Isis::Spice::naifSclkCode | ( | ) | const |
This returns the NAIF SCLK code to use when reading from instrument kernels.
Referenced by Isis::CrismCamera::CrismCamera(), and getClockTime().
SpiceInt Isis::Spice::naifSpkCode | ( | ) | const |
This returns the NAIF SPK code to use when reading from SPK kernels.
Referenced by Isis::Camera::SpkTargetId().
void Isis::Spice::radii | ( | Distance | r[3] | ) | const |
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 |
References m_target, and Isis::Target::radii().
Referenced by Isis::Camera::BasicMapping(), Isis::Camera::GroundRange(), Isis::VimsGroundMap::Init(), Isis::MiniRF::MiniRF(), Isis::RadarGroundMap::SetFocalPlane(), Isis::CSMCamera::setTarget(), subSolarPoint(), and subSpacecraftPoint().
|
protected |
References Isis::PvlObject::findKeyword(), Isis::PvlObject::hasKeyword(), SpiceByteCodeType, SpiceDoubleType, SpiceIntType, SpiceStringType, Isis::toDouble(), and Isis::toInt().
Referenced by getStoredResult(), and readValue().
|
protected |
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 |
References _FILEINFO_, Isis::NaifStatus::CheckErrors(), Isis::IException::Io, readStoredValue(), SpiceDoubleType, SpiceIntType, SpiceStringType, storeValue(), and Isis::IException::Unknown.
Referenced by getDouble(), getInteger(), getString(), and Isis::IdealCamera::IdealCamera().
|
virtual |
Virtual method that returns the pixel resolution of the sensor in meters/pix.
Reimplemented in Isis::Camera, and Isis::Sensor.
Referenced by Isis::ShapeModel::resolution().
|
virtual |
Sets the ephemeris time and reads the spacecraft and sun position from the kernels at that instant in time.
et | Ephemeris time (read NAIF documentation for a detailed description) |
Reimplemented in Isis::CSMCamera, and Isis::Sensor.
References computeSolarLongitude(), Isis::SpicePosition::Coordinate(), Isis::iTime::Et(), instrumentPosition(), m_et, m_uB, Isis::SpiceRotation::ReferenceVector(), Isis::SpicePosition::SetEphemerisTime(), and Isis::SpiceRotation::SetEphemerisTime().
Referenced by Isis::Sensor::setTime().
|
virtual |
Returns the solar longitude.
References computeSolarLongitude(), m_et, and m_solarLongitude.
Referenced by Isis::Cube::attachSpiceFromIsd().
|
protected |
References SpiceByteCodeType, SpiceDoubleType, and storeValue().
Referenced by getClockTime().
|
protected |
References _FILEINFO_, Isis::PvlContainer::addKeyword(), Isis::PvlKeyword::addValue(), Isis::PvlObject::findKeyword(), Isis::PvlObject::hasKeyword(), SpiceByteCodeType, SpiceDoubleType, SpiceIntType, SpiceStringType, Isis::toString(), and Isis::IException::Unknown.
Referenced by Isis::IdealCamera::IdealCamera(), readValue(), and storeResult().
|
virtual |
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." |
Reimplemented in Isis::CSMCamera.
References _FILEINFO_, Isis::NaifStatus::CheckErrors(), m_et, m_uB, Isis::PI, Isis::IException::Programmer, radii(), and target().
Referenced by Isis::Sensor::LocalSolarTime(), and Isis::Camera::SunAzimuth().
|
virtual |
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." |
Reimplemented in Isis::CSMCamera.
References _FILEINFO_, Isis::NaifStatus::CheckErrors(), Isis::SpicePosition::Coordinate(), m_et, Isis::PI, Isis::IException::Programmer, radii(), Isis::SpiceRotation::ReferenceVector(), and target().
Referenced by Isis::Sensor::SpacecraftAltitude(), and Isis::Camera::SpacecraftAzimuth().
|
virtual |
Accessor method for the sun position.
Reimplemented in Isis::CSMCamera.
Referenced by Isis::Sensor::SolarDistance(), and sunToBodyDist().
|
virtual |
Fills the input vector with sun position information, in either body-fixed or J2000 reference frame and km units.
p[] | Sun position |
Reimplemented in Isis::CSMCamera.
References _FILEINFO_, m_et, m_uB, and Isis::IException::Programmer.
Referenced by Isis::Cube::attachSpiceFromIsd().
|
virtual |
|
virtual |
Returns a pointer to the target object.
References m_target.
Referenced by Isis::Camera::BasicMapping(), Isis::Camera::basicRingMapping(), Isis::Sensor::Coordinate(), Isis::CSMCamera::EmissionAngle(), Isis::Sensor::EmissionAngle(), Isis::Sensor::GetLatitude(), Isis::Camera::GetLocalNormal(), Isis::Sensor::GetLongitude(), Isis::Sensor::GetSurfacePoint(), Isis::CameraGroundMap::GetXY(), Isis::UniversalGroundMap::GroundRange(), Isis::Sensor::HasSurfaceIntersection(), Isis::Sensor::IgnoreElevationModel(), Isis::CSMCamera::IncidenceAngle(), Isis::Sensor::IncidenceAngle(), Isis::Camera::LoadCache(), Isis::Sensor::LocalRadius(), Isis::Sensor::LocalRadius(), Isis::Sensor::LocalRadius(), Isis::Camera::NorthAzimuth(), Isis::CSMCamera::PhaseAngle(), Isis::CameraGroundMap::SetGround(), Isis::VimsGroundMap::SetGround(), Isis::RadarGroundMap::SetGround(), Isis::Camera::SetGround(), Isis::CSMCamera::SetGround(), Isis::Sensor::SetGround(), Isis::Camera::SetGround(), Isis::CSMCamera::SetGround(), Isis::Camera::SetImage(), Isis::CSMCamera::SetImage(), Isis::Camera::SetImage(), Isis::Sensor::SetLookDirection(), Isis::CSMCamera::SetLookDirection(), Isis::Camera::SetRightAscensionDeclination(), Isis::CSMCamera::setTarget(), Isis::Sensor::setTime(), Isis::Camera::SetUniversalGround(), Isis::Sensor::SetUniversalGround(), Isis::Camera::SetUniversalGround(), Isis::Sensor::SetUniversalGround(), Isis::Sensor::SlantDistance(), Isis::Camera::Slope(), Isis::Sensor::SolarDistance(), subSolarPoint(), and subSpacecraftPoint().
|
virtual |
Calculates and returns the distance from the spacecraft to the target center.
Reimplemented in Isis::CSMCamera.
References Isis::SpicePosition::Coordinate(), and Isis::SpiceRotation::ReferenceVector().
QString Isis::Spice::targetName | ( | ) | const |
Returns the QString name of the target.
References m_target, and Isis::Target::name().
|
virtual |
Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions.
IException::Programmer | "Unable to retrieve the time Spice::setTime must be called first." |
References _FILEINFO_, m_et, and Isis::IException::Programmer.
Referenced by Isis::LineScanCameraGroundMap::FindFocalPlane(), Isis::IsisSensor::getState(), Isis::IsisSensor::getState(), Isis::HiresCamera::HiresCamera(), Isis::KaguyaTcCamera::KaguyaTcCamera(), Isis::LoHighCamera::LoHighCamera(), Isis::LoMediumCamera::LoMediumCamera(), Isis::LwirCamera::LwirCamera(), Isis::NewHorizonsMvicFrameCamera::SetBand(), Isis::ApolloPanoramicDetectorMap::SetDetector(), Isis::LineScanCameraDetectorMap::SetDetector(), Isis::RadarPulseMap::SetDetector(), Isis::VariableLineScanCameraDetectorMap::SetDetector(), Isis::RadarSlantRangeMap::SetFocalPlane(), Isis::CameraDetectorMap::SetParent(), Isis::RollingShutterCameraDetectorMap::SetParent(), Isis::Sensor::setTime(), Isis::RadarSlantRangeMap::SetUndistortedFocalPlane(), Isis::ApolloMetricCamera::ShutterOpenCloseTimes(), Isis::IssNACamera::ShutterOpenCloseTimes(), Isis::IssWACamera::ShutterOpenCloseTimes(), Isis::HiresCamera::ShutterOpenCloseTimes(), Isis::LwirCamera::ShutterOpenCloseTimes(), Isis::NirCamera::ShutterOpenCloseTimes(), Isis::UvvisCamera::ShutterOpenCloseTimes(), Isis::ClipperWacFcCamera::ShutterOpenCloseTimes(), Isis::DawnFcCamera::ShutterOpenCloseTimes(), Isis::SsiCamera::ShutterOpenCloseTimes(), Isis::HayabusaAmicaCamera::ShutterOpenCloseTimes(), Isis::HayabusaNirsCamera::ShutterOpenCloseTimes(), Isis::Hyb2OncCamera::ShutterOpenCloseTimes(), Isis::JunoCamera::ShutterOpenCloseTimes(), Isis::LoHighCamera::ShutterOpenCloseTimes(), Isis::LoMediumCamera::ShutterOpenCloseTimes(), Isis::Mariner10Camera::ShutterOpenCloseTimes(), Isis::MdisCamera::ShutterOpenCloseTimes(), Isis::MexHrscSrcCamera::ShutterOpenCloseTimes(), Isis::MsiCamera::ShutterOpenCloseTimes(), Isis::NewHorizonsLorriCamera::ShutterOpenCloseTimes(), Isis::NewHorizonsMvicFrameCamera::ShutterOpenCloseTimes(), Isis::OsirisRexOcamsCamera::ShutterOpenCloseTimes(), Isis::OsirisRexTagcamsCamera::ShutterOpenCloseTimes(), Isis::RosettaOsirisCamera::ShutterOpenCloseTimes(), Isis::TgoCassisCamera::ShutterOpenCloseTimes(), Isis::VikingCamera::ShutterOpenCloseTimes(), Isis::VoyagerCamera::ShutterOpenCloseTimes(), Isis::FramingCamera::ShutterOpenCloseTimes(), Isis::Camera::StartEndEphemerisTimes(), and Isis::UvvisCamera::UvvisCamera().
|
protected |
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.
|
protected |
Ephemeris time (read NAIF documentation for a detailed description)
Referenced by createCache(), instrumentBodyFixedPosition(), instrumentBodyFixedVelocity(), isTimeSet(), Isis::CSMCamera::SetGround(), Isis::CSMCamera::SetImage(), setTime(), solarLongitude(), subSolarPoint(), subSpacecraftPoint(), sunPosition(), time(), and ~Spice().
|
protected |
Body rotation solar longitude value.
Referenced by computeSolarLongitude(), solarLongitude(), and ~Spice().
|
protected |
Target of the observation.
Referenced by computeSolarLongitude(), naifBodyCode(), radii(), Isis::CSMCamera::setTarget(), target(), targetName(), and ~Spice().
|
protected |
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
Referenced by Isis::Sensor::IncidenceAngle(), Isis::Camera::LocalPhotometricAngles(), Isis::Sensor::PhaseAngle(), setTime(), subSolarPoint(), and sunPosition().