![]() |
Isis 3 Programmer 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. More... | |
Spice (Pvl &lab, nlohmann::json) | |
Constructs a Spice Object. More... | |
virtual | ~Spice () |
Destroys the Spice object. More... | |
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. More... | |
void | instrumentPosition (double p[3]) const |
Returns the spacecraft position in body-fixed frame km units. More... | |
virtual void | instrumentBodyFixedPosition (double p[3]) const |
Returns the spacecraft position in body-fixed frame km units. More... | |
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. More... | |
virtual double | targetCenterDistance () const |
Calculates and returns the distance from the spacecraft to the target center. More... | |
virtual double | sunToBodyDist () const |
virtual Longitude | solarLongitude () |
Returns the solar longitude. More... | |
virtual void | instrumentBodyFixedVelocity (double v[3]) const |
Returns the spacecraft velocity in body-fixed frame km/sec units. More... | |
iTime | time () const |
Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions. More... | |
void | radii (Distance r[3]) const |
Returns the radii of the body in km. More... | |
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. More... | |
virtual iTime | cacheStartTime () const |
Accessor method for the cache start time. More... | |
virtual iTime | cacheEndTime () const |
Accessor method for the cache end time. More... | |
virtual void | subSpacecraftPoint (double &lat, double &lon) |
Returns the sub-spacecraft latitude/longitude in universal coordinates (0-360 positive east, ocentric) More... | |
virtual void | subSolarPoint (double &lat, double &lon) |
Returns the sub-solar latitude/longitude in universal coordinates (0-360 positive east, ocentric) More... | |
virtual Target * | target () const |
Returns a pointer to the target object. More... | |
QString | targetName () const |
Returns the QString name of the target. More... | |
virtual iTime | getClockTime (QString clockValue, int sclkCode=-1, bool clockTicks=false) |
This converts the spacecraft clock ticks value (clockValue) to an iTime. More... | |
SpiceDouble | getDouble (const QString &key, int index=0) |
This returns a value from the NAIF text pool. More... | |
SpiceInt | getInteger (const QString &key, int index=0) |
This returns a value from the NAIF text pool. More... | |
QString | getString (const QString &key, int index=0) |
This returns a value from the NAIF text pool. More... | |
virtual SpicePosition * | sunPosition () const |
Accessor method for the sun position. More... | |
virtual SpicePosition * | instrumentPosition () const |
Accessor method for the instrument position. More... | |
virtual SpiceRotation * | bodyRotation () const |
Accessor method for the body rotation. More... | |
virtual SpiceRotation * | instrumentRotation () const |
Accessor method for the instrument rotation. More... | |
bool | isUsingAle () |
bool | hasKernels (Pvl &lab) |
Returns true if the kernel group has kernel files. More... | |
bool | isTimeSet () |
Returns true if time has been initialized. More... | |
SpiceInt | naifBodyCode () const |
This returns the NAIF body code of the target indicated in the labels. More... | |
SpiceInt | naifSpkCode () const |
This returns the NAIF SPK code to use when reading from SPK kernels. More... | |
SpiceInt | naifCkCode () const |
This returns the NAIF CK code to use when reading from CK kernels. More... | |
SpiceInt | naifIkCode () const |
This returns the NAIF IK code to use when reading from instrument kernels. More... | |
SpiceInt | naifSclkCode () const |
This returns the NAIF SCLK code to use when reading from instrument kernels. More... | |
SpiceInt | naifBodyFrameCode () const |
This returns the NAIF body frame code. More... | |
PvlObject | getStoredNaifKeywords () const |
This returns the PvlObject that stores all of the requested Naif data and can be a replacement for furnishing text kernels. More... | |
virtual double | resolution () |
Virtual method that returns the pixel resolution of the sensor in meters/pix. More... | |
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. More... | |
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. More... | |
Protected Attributes | |
SpiceDouble | m_uB [3] |
This contains the sun position (u) in the bodyfixed reference frame (B). More... | |
SpiceDouble | m_BJ [3][3] |
This contains the transformation matrix from J2000 (J) to Body fixed (B). More... | |
Target * | m_target |
Target of the observation. More... | |
iTime * | m_et |
Ephemeris time (read NAIF documentation for a detailed description) More... | |
Longitude * | m_solarLongitude |
Body rotation solar longitude value. More... | |
Private Member Functions | |
Spice (const Spice &other) | |
Spice & | operator= (const Spice &other) |
void | init (Pvl &pvl, bool noTables, nlohmann::json isd=NULL) |
Initialization of Spice object. More... | |
void | csmInit (Cube &cube, Pvl label) |
Initialize the Spice object for a CSMCamera. More... | |
void | defaultInit () |
Default initialize the members of the SPICE object. More... | |
void | load (PvlKeyword &key, bool notab) |
Loads/furnishes NAIF kernel(s) More... | |
Private Attributes | |
QVector< QString > * | m_kernels |
Vector containing kernels filenames. More... | |
iTime * | m_startTime |
Corrected start (shutter open) time of the observation. More... | |
iTime * | m_endTime |
Corrected end (shutter close) time of the observation. More... | |
SpiceDouble * | m_cacheSize |
Cache size. Note: This value is 1 for Framing cameras. More... | |
SpiceDouble * | m_startTimePadding |
Kernels pvl group StartPadding keyword value. More... | |
SpiceDouble * | m_endTimePadding |
Kernels pvl group EndPadding keyword value. More... | |
SpicePosition * | m_instrumentPosition |
Instrument spice position. More... | |
SpiceRotation * | m_instrumentRotation |
Instrument spice rotation. More... | |
SpicePosition * | m_sunPosition |
Sun spice position. More... | |
SpiceRotation * | m_bodyRotation |
Body spice rotation. More... | |
bool | m_allowDownsizing |
Indicates whether to allow downsizing. More... | |
SpiceInt * | m_spkCode |
Spacecraft and planet ephemeris kernel (SPK) code. More... | |
SpiceInt * | m_ckCode |
Camera kernel (CK) code. More... | |
SpiceInt * | m_ikCode |
Instrument kernel (IK) code. More... | |
SpiceInt * | m_sclkCode |
Spacecraft clock correlation kernel (SCLK) code. More... | |
SpiceInt * | m_spkBodyCode |
Spacecraft and planet ephemeris kernel (SPK) body code. More... | |
SpiceInt * | m_bodyFrameCode |
Naif's BODY_FRAME_CODE value. More... | |
PvlObject * | m_naifKeywords |
NaifKeywords PvlObject from cube. More... | |
bool | m_usingNaif |
Indicates whether we are reading values from the NaifKeywords PvlObject in cube. More... | |
bool | m_usingAle |
Indicate whether we are reading values from an ISD returned from ALE. More... | |
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. |
Definition at line 64 of file Spice.cpp.
References Isis::PvlObject::findGroup(), Isis::Cube::hasBlob(), and Isis::Cube::label().
Isis::Spice::Spice | ( | Pvl & | lab, |
nlohmann::json | isd | ||
) |
|
virtual |
Destroys the Spice object.
Definition at line 511 of file Spice.cpp.
References Isis::FileName::expanded().
|
virtual |
Accessor method for the body rotation.
Reimplemented in Isis::CSMCamera.
Definition at line 1611 of file Spice.cpp.
Referenced by Isis::Sensor::computeRaDec(), Isis::Sensor::EmissionAngle(), Isis::RadarGroundMap::GetdXYdPosition(), Isis::RadarGroundMap::GetXY(), Isis::Sensor::lookDirectionJ2000(), Isis::MiniRF::MiniRF(), Isis::Sensor::PhaseAngle(), Isis::RadarGroundMap::SetFocalPlane(), Isis::RadarGroundMap::SetGround(), Isis::Sensor::SetGround(), Isis::Sensor::SetGroundLocal(), Isis::Sensor::SetLookDirection(), Isis::Sensor::SetUniversalGround(), and Isis::Sensor::SlantDistance().
|
virtual |
|
virtual |
|
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.
Definition at line 1400 of file Spice.cpp.
References Isis::iTime::Et(), and Isis::Longitude::force360Domain().
|
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" |
Definition at line 649 of file Spice.cpp.
References Isis::iTime::Et(), and Isis::FileName::expanded().
Referenced by Isis::CrismCamera::CrismCamera(), Isis::Camera::LoadCache(), and Isis::MiniRF::MiniRF().
|
private |
|
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.
Definition at line 1053 of file Spice.cpp.
References 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::MexHrscSrcCamera::MexHrscSrcCamera(), Isis::MocNarrowAngleCamera::MocNarrowAngleCamera(), Isis::MocWideAngleCamera::MocWideAngleCamera(), Isis::NewHorizonsLeisaCamera::NewHorizonsLeisaCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::NewHorizonsMvicFrameCamera::NewHorizonsMvicFrameCamera(), Isis::NewHorizonsMvicTdiCamera::NewHorizonsMvicTdiCamera(), Isis::OsirisRexOcamsCamera::OsirisRexOcamsCamera(), Isis::DawnVirCamera::readHouseKeeping(), Isis::RosettaVirtisCamera::readHouseKeeping(), Isis::RosettaVirtisCamera::readSCET(), 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." |
Definition at line 1039 of file Spice.cpp.
Referenced by Isis::LroWideAngleCameraDistortionMap::addFilter(), Isis::LroWideAngleCameraFocalPlaneMap::addFilter(), Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::Chandrayaan1M3Camera::Chandrayaan1M3Camera(), Isis::MdisCamera::computeFocalLength(), 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::CameraFocalPlaneMap::Init(), 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::RosettaOsirisCamera::RosettaOsirisCamera(), Isis::RosettaVirtisCamera::RosettaVirtisCamera(), Isis::KaguyaMiCameraDistortionMap::SetDistortion(), Isis::LroNarrowAngleDistortionMap::SetDistortion(), Isis::TaylorCameraDistortionMap::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 |
Definition at line 1025 of file Spice.cpp.
Referenced by Isis::DawnVirCamera::getPointingTable(), Isis::RosettaVirtisCamera::getPointingTable(), Isis::LroWideAngleCamera::GetVector(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), and Isis::LroWideAngleCamera::LroWideAngleCamera().
PvlObject Isis::Spice::getStoredNaifKeywords | ( | ) | const |
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." |
Definition at line 1261 of file Spice.cpp.
Referenced by Isis::LightTimeCorrectionState::checkAberrationCorrection(), Isis::LightTimeCorrectionState::checkLightTimeToSurfaceCorrect(), Isis::LightTimeCorrectionState::checkObserverTargetSwap(), Isis::MdisCamera::computeFocalLength(), Isis::MdisCamera::MdisCamera(), and Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera().
bool Isis::Spice::hasKernels | ( | Pvl & | lab | ) |
Returns true if the kernel group has kernel files.
lab | Label containing Instrument and Kernels groups. |
Definition at line 1526 of file Spice.cpp.
References Isis::PvlObject::findGroup(), Isis::PvlContainer::hasKeyword(), and Isis::PvlKeyword::size().
|
private |
Initialization of Spice object.
lab | Pvl labels |
noTables | Indicates the use of tables. |
Isis::IException::Io | - "Can not find NAIF code for NAIF target" |
Isis::IException::Camera | - "No camera pointing available" |
Isis::IException::Camera | - "No instrument position available" |
Definition at line 154 of file Spice.cpp.
References Isis::LightTimeCorrectionState::checkSpkKernelsForAberrationCorrection(), Isis::PvlContainer::fileName(), Isis::PvlObject::findGroup(), Isis::PvlObject::findObject(), Isis::PvlObject::hasKeyword(), Isis::PvlContainer::hasKeyword(), Isis::PvlObject::hasObject(), Isis::Table::Label(), Isis::toDouble(), Isis::toInt(), and Isis::toString().
|
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.
Definition at line 835 of file Spice.cpp.
Referenced by Isis::Camera::LocalPhotometricAngles().
|
virtual |
|
virtual |
Accessor method for the instrument position.
Reimplemented in Isis::CSMCamera.
Definition at line 1600 of file Spice.cpp.
Referenced by Isis::Camera::DetectorResolution(), Isis::Sensor::EmissionAngle(), Isis::LoHighCamera::LoHighCamera(), Isis::LoMediumCamera::LoMediumCamera(), Isis::Mariner10Camera::Mariner10Camera(), Isis::MiniRF::MiniRF(), Isis::Camera::OffNadirAngle(), Isis::Sensor::PhaseAngle(), Isis::Sensor::SetGround(), Isis::Sensor::SetGroundLocal(), Isis::Sensor::SetLookDirection(), Isis::Sensor::SetUniversalGround(), Isis::Sensor::SlantDistance(), 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" |
Definition at line 822 of file Spice.cpp.
Referenced by Isis::RadarGroundMap::GetdXYdPosition(), Isis::RadarGroundMap::GetXY(), Isis::RadarGroundMap::SetFocalPlane(), Isis::RadarGroundMap::SetGround(), and Isis::AdvancedTrackTool::updateRow().
|
virtual |
Accessor method for the instrument rotation.
Reimplemented in Isis::CSMCamera.
Definition at line 1622 of file Spice.cpp.
Referenced by Isis::DawnVirCamera::DawnVirCamera(), 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::readSCET(), 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.
Definition at line 1577 of file Spice.cpp.
Referenced by Isis::CameraDetectorMap::SetParent(), and Isis::RollingShutterCameraDetectorMap::SetParent().
|
private |
Loads/furnishes NAIF kernel(s)
key | PvlKeyword |
noTables | Indicates the use of tables. |
Isis::IException::Io | - "Spice file does not exist." |
Definition at line 486 of file Spice.cpp.
References Isis::FileName::expanded(), Isis::FileName::fileExists(), and Isis::PvlKeyword::size().
SpiceInt Isis::Spice::naifBodyCode | ( | ) | const |
This returns the NAIF body code of the target indicated in the labels.
Definition at line 941 of file Spice.cpp.
Referenced by Isis::Camera::SpkCenterId().
SpiceInt Isis::Spice::naifBodyFrameCode | ( | ) | const |
SpiceInt Isis::Spice::naifCkCode | ( | ) | const |
SpiceInt Isis::Spice::naifIkCode | ( | ) | const |
This returns the NAIF IK code to use when reading from instrument kernels.
Definition at line 968 of file Spice.cpp.
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::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.
Definition at line 978 of file Spice.cpp.
Referenced by Isis::CrismCamera::CrismCamera().
SpiceInt Isis::Spice::naifSpkCode | ( | ) | const |
This returns the NAIF SPK code to use when reading from SPK kernels.
Definition at line 950 of file Spice.cpp.
Referenced by Isis::DawnVirCamera::readHouseKeeping(), Isis::RosettaVirtisCamera::readHouseKeeping(), Isis::RosettaVirtisCamera::readSCET(), and 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 |
Definition at line 930 of file Spice.cpp.
Referenced by Isis::Camera::BasicMapping(), Isis::Camera::GroundRange(), Isis::VimsGroundMap::Init(), Isis::MiniRF::MiniRF(), Isis::ControlPointEditWidget::openReferenceRadius(), Isis::QnetTool::openReferenceRadius(), Isis::SunShadowTool::recalculateShadowHeight(), Isis::RadarGroundMap::SetFocalPlane(), Isis::CSMCamera::setTarget(), and Isis::AdvancedTrackTool::updateRow().
|
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 |
Definition at line 1093 of file Spice.cpp.
Referenced by Isis::IdealCamera::IdealCamera().
|
virtual |
Virtual method that returns the pixel resolution of the sensor in meters/pix.
Reimplemented in Isis::Sensor, and Isis::Camera.
|
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::Sensor, and Isis::CSMCamera.
Definition at line 780 of file Spice.cpp.
References Isis::iTime::Et().
Referenced by Isis::Sensor::setTime().
|
virtual |
Returns the solar longitude.
Definition at line 1509 of file Spice.cpp.
Referenced by Isis::AdvancedTrackTool::updateRow().
|
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.
Definition at line 1329 of file Spice.cpp.
References Isis::PI.
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.
Definition at line 1278 of file Spice.cpp.
References Isis::PI.
Referenced by Isis::Camera::GroundRangeResolution(), Isis::Sensor::SpacecraftAltitude(), and Isis::Camera::SpacecraftAzimuth().
|
virtual |
Accessor method for the sun position.
Reimplemented in Isis::CSMCamera.
Definition at line 1589 of file Spice.cpp.
Referenced by Isis::Sensor::SolarDistance().
|
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.
Definition at line 902 of file Spice.cpp.
Referenced by Isis::SunShadowTool::recalculateShadowHeight().
|
virtual |
Returns a pointer to the target object.
Definition at line 1368 of file Spice.cpp.
Referenced by Isis::Camera::BasicMapping(), Isis::Camera::basicRingMapping(), Isis::Sensor::Coordinate(), Isis::CSMCamera::EmissionAngle(), Isis::Sensor::EmissionAngle(), Isis::FeatureNomenclatureTool::findMissingNomenclature(), Isis::Sensor::GetLatitude(), Isis::Camera::GetLocalNormal(), Isis::Sensor::GetLongitude(), Isis::Sensor::GetSurfacePoint(), Isis::UniversalGroundMap::GroundRange(), Isis::Camera::GroundRangeResolution(), Isis::Sensor::HasSurfaceIntersection(), Isis::Sensor::IgnoreElevationModel(), Isis::ImportImagesWorkOrder::importConfirmedImages(), Isis::CSMCamera::IncidenceAngle(), Isis::Sensor::IncidenceAngle(), Isis::Camera::LoadCache(), Isis::Sensor::LocalRadius(), Isis::Camera::NorthAzimuth(), Isis::CSMCamera::PhaseAngle(), Isis::Sensor::PhaseAngle(), Isis::Camera::RawFocalPlanetoImage(), Isis::VimsGroundMap::SetGround(), Isis::RadarGroundMap::SetGround(), Isis::Sensor::SetGround(), Isis::Camera::SetGround(), Isis::CSMCamera::SetGround(), Isis::Sensor::SetGroundLocal(), Isis::Camera::SetImage(), Isis::CSMCamera::SetImage(), Isis::Sensor::SetLookDirection(), Isis::Camera::SetRightAscensionDeclination(), Isis::CSMCamera::setTarget(), Isis::Sensor::setTime(), Isis::Camera::SetUniversalGround(), Isis::Sensor::SetUniversalGround(), Isis::Sensor::SlantDistance(), Isis::Sensor::SolarDistance(), Isis::TrackTool::updateLabels(), and Isis::AdvancedTrackTool::updateRow().
|
virtual |
Calculates and returns the distance from the spacecraft to the target center.
Reimplemented in Isis::CSMCamera.
QString Isis::Spice::targetName | ( | ) | const |
Returns the QString name of the target.
Definition at line 1378 of file Spice.cpp.
References Isis::Target::name().
iTime Isis::Spice::time | ( | ) | const |
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." |
Definition at line 884 of file Spice.cpp.
Referenced by Isis::RadarSlantRangeMap::ComputeA(), Isis::HiresCamera::HiresCamera(), Isis::KaguyaTcCamera::KaguyaTcCamera(), Isis::LoHighCamera::LoHighCamera(), Isis::LoMediumCamera::LoMediumCamera(), Isis::LwirCamera::LwirCamera(), Isis::NewHorizonsMvicFrameCamera::SetBand(), 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::RosettaOsirisCamera::ShutterOpenCloseTimes(), Isis::TgoCassisCamera::ShutterOpenCloseTimes(), Isis::VikingCamera::ShutterOpenCloseTimes(), Isis::VoyagerCamera::ShutterOpenCloseTimes(), Isis::FramingCamera::ShutterOpenCloseTimes(), Isis::Camera::StartEndEphemerisTimes(), Isis::AdvancedTrackTool::updateRow(), and Isis::UvvisCamera::UvvisCamera().
|
private |
|
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.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
protected |
Ephemeris time (read NAIF documentation for a detailed description)
Definition at line 382 of file Spice.h.
Referenced by Isis::CSMCamera::SetGround(), and Isis::CSMCamera::SetImage().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
protected |
|
private |
|
private |
|
private |
|
private |
|
private |
|
protected |
Target of the observation.
Definition at line 381 of file Spice.h.
Referenced by Isis::CSMCamera::setTarget().
|
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
Definition at line 369 of file Spice.h.
Referenced by Isis::Sensor::IncidenceAngle(), Isis::Camera::LocalPhotometricAngles(), and Isis::Sensor::PhaseAngle().
|
private |
|
private |
U.S. Department of the Interior | U.S. Geological Survey ISIS | Privacy & Disclaimers | Astrogeology Research Program To contact us, please post comments and questions on the USGS Astrogeology Discussion Board To report a bug, or suggest a feature go to: ISIS Github File Modified: 07/13/2023 15:23:12 |