317 const int size,
double tol);
329 bool clockTicks=
false);
330 SpiceDouble
getDouble(
const QString &key,
int index = 0);
331 SpiceInt
getInteger(
const QString &key,
int index = 0);
332 QString
getString(
const QString &key,
int index = 0);
366 void storeResult(QString name,
SpiceValueType type, QVariant value);
371 QVariant readStoredValue(QString key,
SpiceValueType type,
int index);
396 void init(
Pvl &lab,
bool noTables);
SpiceDouble * m_cacheSize
Cache size. Note: This value is 1 for Framing cameras.
SpicePosition * instrumentPosition() const
Accessor method for the instrument position.
void computeSolarLongitude(iTime et)
Computes the solar longitude for the given ephemeris time.
virtual ~Spice()
Destroys the Spice object.
SpicePosition * m_sunPosition
Sun spice position.
PvlObject * m_naifKeywords
NaifKeywords PvlObject from cube.
void load(PvlKeyword &key, bool notab)
Loads/furnishes NAIF kernel(s)
Parse and return pieces of a time string.
iTime * m_et
Ephemeris time (read NAIF documentation for a detailed description)
void instrumentBodyFixedVelocity(double v[3]) const
Returns the spacecraft velocity in body-fixed frame km/sec units.
SpiceInt getInteger(const QString &key, int index=0)
This returns a value from the NAIF text pool.
SpiceValueType
NAIF value primitive type.
bool m_usingNaif
Indicates whether we are reading values from the NaifKeywords PvlObject in cube.
SpiceRotation * bodyRotation() const
Accessor method for the body rotation.
QVector< QString > * m_kernels
Vector containing kernels filenames.
virtual double resolution()
Virtual method that returns the pixel resolution of the sensor in meters/pix.
SpicePosition * m_instrumentPosition
Instrument spice position.
SpiceDouble m_BJ[3][3]
This contains the transformation matrix from J2000 (J) to Body fixed (B).
SpiceDouble * m_startTimePadding
Kernels pvl group StartPadding keyword value.
SpiceInt naifSclkCode() const
This returns the NAIF SCLK code to use when reading from instrument kernels.
QString targetName() const
Returns the QString name of the target.
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...
SpiceInt * m_spkBodyCode
Spacecraft and planet ephemeris kernel (SPK) body code.
Distance measurement, usually in meters.
Longitude * m_solarLongitude
Body rotation solar longitude value.
iTime * m_endTime
Corrected end (shutter close) time of the observation.
SpiceRotation * m_bodyRotation
Body spice rotation.
This class is designed to encapsulate the concept of a Longitude.
iTime cacheEndTime() const
Accessor method for the cache end time.
Spice(Pvl &cubeLabel)
Constructs a Spice object and loads SPICE kernels using information from the label object...
bool hasKernels(Pvl &lab)
Returns true if the kernel group has kernel files.
Target * target() const
Returns a pointer to the target object.
void subSolarPoint(double &lat, double &lon)
Returns the sub-solar latitude/longitude in universal coordinates (0-360 positive east...
SpiceInt naifIkCode() const
This returns the NAIF IK code to use when reading from instrument kernels.
SpicePosition * sunPosition() const
Accessor method for the sun position.
A single keyword-value pair.
iTime getClockTime(QString clockValue, int sclkCode=-1, bool clockTicks=false)
This converts the spacecraft clock ticks value (clockValue) to an iTime.
SpiceRotation * m_instrumentRotation
Instrument spice rotation.
iTime * m_startTime
Corrected start (shutter open) time of the observation.
Obtain SPICE rotation information for a body.
Container for cube-like labels.
This class is used to create and store valid Isis3 targets.
SpiceInt * m_ikCode
Instrument kernel (IK) code.
void instrumentBodyFixedPosition(double p[3]) const
Returns the spacecraft position in body-fixed frame km units.
SpiceInt * m_sclkCode
Spacecraft clock correlation kernel (SCLK) code.
QString getString(const QString &key, int index=0)
This returns a value from the NAIF text pool.
SpiceDouble * m_endTimePadding
Kernels pvl group EndPadding keyword value.
SpiceInt naifBodyFrameCode() const
This returns the NAIF body frame code.
bool m_allowDownsizing
Indicates whether to allow downsizing.
Obtain SPICE position information for a body.
SpiceInt naifBodyCode() const
This returns the NAIF body code of the target indicated in the labels.
Namespace for ISIS/Bullet specific routines.
SpiceRotation * instrumentRotation() const
Accessor method for the instrument rotation.
bool isTimeSet()
Returns true if time has been initialized.
Obtain SPICE information for a spacecraft.
void init(Pvl &lab, bool noTables)
Initialization of Spice object.
PvlObject getStoredNaifKeywords() const
This returns the PvlObject that stores all of the requested Naif data and can be a replacement for fu...
SpiceInt naifSpkCode() const
This returns the NAIF SPK code to use when reading from SPK kernels.
Target * m_target
Target of the observation.
SpiceDouble m_uB[3]
This contains the sun position (u) in the bodyfixed reference frame (B).
QVariant readValue(QString key, SpiceValueType type, int index=0)
This should be used for reading ALL text naif kernel values.
void radii(Distance r[3]) const
Returns the radii of the body in km.
Contains Pvl Groups and Pvl Objects.
iTime cacheStartTime() const
Accessor method for the cache start time.
SpiceInt naifCkCode() const
This returns the NAIF CK code to use when reading from CK kernels.
SpiceInt * m_ckCode
Camera kernel (CK) code.
Longitude solarLongitude()
Returns the solar longitude.
double targetCenterDistance() const
Calculates and returns the distance from the spacecraft to the target center.
void setTime(const iTime &time)
Sets the ephemeris time and reads the spacecraft and sun position from the kernels at that instant in...
SpiceInt * m_spkCode
Spacecraft and planet ephemeris kernel (SPK) code.
SpiceDouble getDouble(const QString &key, int index=0)
This returns a value from the NAIF text pool.
SpiceInt * m_bodyFrameCode
Naif's BODY_FRAME_CODE value.
IO Handler for Isis Cubes.
iTime time() const
Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions...
void subSpacecraftPoint(double &lat, double &lon)
Returns the sub-spacecraft latitude/longitude in universal coordinates (0-360 positive east...