Isis 3 Programmer Reference
Isis::Camera Class Referenceabstract

#include <Camera.h>

Inheritance diagram for Isis::Camera:
Inheritance graph
Collaboration diagram for Isis::Camera:
Collaboration graph

Public Types

enum  CameraType {
  Framing , PushFrame , LineScan , Radar ,
  Point , RollingShutter , Csm
}
 This enum defines the types of cameras supported in this class. More...
 

Public Member Functions

 Camera (Cube &cube)
 Constructs the Camera object.
 
virtual ~Camera ()
 Destroys the Camera Object.
 
virtual bool SetImage (const double sample, const double line)
 Sets the sample/line values of the image to get the lat/lon values.
 
virtual bool SetImage (const double sample, const double line, const double deltaT)
 Sets the sample/line values of the image to get the lat/lon values with a time offset of deltaT.
 
virtual bool SetUniversalGround (const double latitude, const double longitude)
 Sets the lat/lon values to get the sample/line values.
 
virtual bool SetUniversalGround (const double latitude, const double longitude, const double radius)
 Sets the lat/lon/radius values to get the sample/line values.
 
virtual bool SetGround (Latitude latitude, Longitude longitude)
 Sets the lat/lon values to get the sample/line values.
 
virtual bool SetGround (const SurfacePoint &surfacePt)
 Sets the lat/lon/radius values to get the sample/line values.
 
virtual bool SetRightAscensionDeclination (const double ra, const double dec)
 Sets the right ascension declination.
 
void LocalPhotometricAngles (Angle &phase, Angle &incidence, Angle &emission, bool &success)
 Calculates LOCAL photometric angles using the DEM (not ellipsoid).
 
void Slope (double &slope, bool &success)
 Calculates the slope at the current point by computing the angle between the local surface normal and the ellipsoid surface normal.
 
void GetLocalNormal (double normal[3])
 This method will find the local normal at the current (sample, line) and set it to the passed in array.
 
bool HasProjection ()
 Checks to see if the camera object has a projection.
 
virtual bool IsBandIndependent ()
 Virtual method that checks if the band is independent.
 
int ReferenceBand () const
 Returns the reference band.
 
bool HasReferenceBand () const
 Checks to see if the Camera object has a reference band.
 
virtual void SetBand (const int band)
 Virtual method that sets the band number.
 
virtual double Sample () const
 Returns the current sample number.
 
virtual int Band () const
 Returns the current band.
 
virtual double Line () const
 Returns the current line number.
 
bool GroundRange (double &minlat, double &maxlat, double &minlon, double &maxlon, Pvl &pvl)
 Computes the Ground Range.
 
bool ringRange (double &minRingRadius, double &maxRingRadius, double &minRingLongitude, double &maxRingLongitude, Pvl &pvl)
 Analogous to the above Ground Range method.
 
bool IntersectsLongitudeDomain (Pvl &pvl)
 Checks whether the ground range intersects the longitude domain or not.
 
virtual double PixelResolution ()
 Returns the pixel resolution at the current position in meters/pixel.
 
virtual double LineResolution ()
 Returns the line resolution at the current position in meters.
 
virtual double SampleResolution ()
 Returns the sample resolution at the current position in meters.
 
virtual double DetectorResolution ()
 Returns the detector resolution at the current position in meters.
 
virtual double ObliqueDetectorResolution (bool useLocal=true)
 This method returns the Oblique Detector Resolution if the Look Vector intersects the target and if the emission angle is greater than or equal to 0, and less than 90 degrees.
 
virtual double ObliqueSampleResolution (bool useLocal=true)
 Returns the oblique sample resolution at the current position in m.
 
virtual double ObliqueLineResolution (bool useLocal=true)
 Returns the oblique line resolution at the current position in meters.
 
virtual double ObliquePixelResolution (bool useLocal=true)
 Returns the oblique pixel resolution at the current position in meters/pixel.
 
virtual double resolution ()
 Returns the resolution of the camera.
 
double LowestImageResolution ()
 Returns the lowest/worst resolution in the entire image.
 
double HighestImageResolution ()
 Returns the highest/best resolution in the entire image.
 
double LowestObliqueImageResolution ()
 Returns the lowest/worst oblique resolution in the entire image.
 
double HighestObliqueImageResolution ()
 Returns the highest/best oblique resolution in the entire image.
 
void BasicMapping (Pvl &map)
 Writes the basic mapping group to the specified Pvl.
 
void basicRingMapping (Pvl &map)
 Writes the basic mapping group for ring plane to the specified Pvl.
 
double FocalLength () const
 Returns the focal length.
 
double PixelPitch () const
 Returns the pixel pitch.
 
virtual double exposureDuration () const
 Return the exposure duration for the pixel that the camera is set to.
 
virtual double exposureDuration (const double sample, const double line, const int band=-1) const
 Return the exposure duration for the pixel at the given line, sample and band.
 
virtual QList< QPointF > PixelIfovOffsets ()
 Returns the pixel ifov offsets from center of pixel, which defaults to the (pixel pitch * summing mode ) / 2.
 
int Samples () const
 Returns the number of samples in the image.
 
int Lines () const
 Returns the number of lines in the image.
 
int Bands () const
 Returns the number of bands in the image.
 
int ParentLines () const
 Returns the number of lines in the parent alphacube.
 
int ParentSamples () const
 Returns the number of samples in the parent alphacube.
 
double CelestialNorthClockAngle ()
 Computes the celestial north clock angle at the current line/sample or ra/dec.
 
bool RaDecRange (double &minra, double &maxra, double &mindec, double &maxdec)
 Computes the RaDec range.
 
double RaDecResolution ()
 Returns the RaDec resolution.
 
CameraDistortionMapDistortionMap ()
 Returns a pointer to the CameraDistortionMap object.
 
CameraFocalPlaneMapFocalPlaneMap ()
 Returns a pointer to the CameraFocalPlaneMap object.
 
CameraDetectorMapDetectorMap ()
 Returns a pointer to the CameraDetectorMap object.
 
CameraGroundMapGroundMap ()
 Returns a pointer to the CameraGroundMap object.
 
CameraSkyMapSkyMap ()
 Returns a pointer to the CameraSkyMap object.
 
QString instrumentId ()
 This method returns the InstrumentId as it appears in the cube.
 
QString instrumentNameLong () const
 This method returns the full instrument name.
 
QString instrumentNameShort () const
 This method returns the shortened instrument name.
 
QString spacecraftNameLong () const
 This method returns the full spacecraft name.
 
QString spacecraftNameShort () const
 This method returns the shortened spacecraft name.
 
void SetDistortionMap (CameraDistortionMap *map, bool deleteExisting=true)
 Sets the Distortion Map.
 
void SetFocalPlaneMap (CameraFocalPlaneMap *map)
 Sets the Focal Plane Map.
 
void SetDetectorMap (CameraDetectorMap *map)
 Sets the Detector Map.
 
void SetGroundMap (CameraGroundMap *map)
 Sets the Ground Map.
 
void SetSkyMap (CameraSkyMap *map)
 Sets the Sky Map.
 
double NorthAzimuth ()
 Returns the North Azimuth.
 
double SunAzimuth ()
 Returns the Sun Azimuth.
 
double SpacecraftAzimuth ()
 Return the Spacecraft Azimuth.
 
double OffNadirAngle ()
 Return the off nadir angle in degrees.
 
void IgnoreProjection (bool ignore)
 Set whether or not the camera should ignore the Projection.
 
void LoadCache ()
 This loads the spice cache big enough for this image.
 
std::pair< double, double > StartEndEphemerisTimes ()
 Calculates the start and end ephemeris times.
 
int CacheSize (double startTime, double endTime)
 This method calculates the spice cache size.
 
void GetGeometricTilingHint (int &startSize, int &endSize)
 This will get the geometric tiling hint; these values are typically used for ProcessRubberSheet::SetTiling(...).
 
bool InCube ()
 This returns true if the current Sample() or Line() value is outside of the cube (meaning the point must have been extrapolated).
 
virtual CameraType GetCameraType () const =0
 Returns the type of camera that was created.
 
virtual int CkFrameId () const =0
 Provides the NAIF frame code for an instruments CK kernel.
 
virtual int CkReferenceId () const =0
 Provides the NAIF reference code for an instruments CK kernel.
 
virtual int SpkReferenceId () const =0
 Provides reference frame for instruments SPK NAIF kernel.
 
virtual int SpkTargetId () const
 Provides target code for instruments SPK NAIF kernel.
 
virtual int SpkCenterId () const
 Provides the center of motion body for SPK NAIF kernel.
 
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 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.
 
virtual double UniversalLatitude () const
 Returns the planetocentric latitude, in degrees, at the surface intersection point in the body fixed coordinate system.
 
Latitude GetLatitude () const
 Returns a planetocentric latitude object at the surface intersection point in body fixed.
 
virtual double UniversalLongitude () const
 Returns the positive east, 0-360 domain longitude, in degrees, at the surface intersection point in the body fixed coordinate system.
 
Longitude GetLongitude () const
 Returns a positive east, 0-360 domain longitude object at the surface intersection point in the body fixed coordinate system.
 
virtual 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.
 
virtual double PhaseAngle () const
 Returns the phase angle in degrees.
 
virtual double EmissionAngle () const
 Returns the emission angle in degrees.
 
virtual double IncidenceAngle () const
 Returns the incidence angle in degrees.
 
void LookDirection (double v[3]) const
 Returns the look direction in the camera coordinate system.
 
virtual std::vector< double > lookDirectionJ2000 () const
 Returns the look direction in the camera coordinate system.
 
virtual std::vector< double > lookDirectionBodyFixed () const
 Returns the look direction in the body fixed coordinate system.
 
virtual double RightAscension ()
 Returns the right ascension angle (sky longitude).
 
virtual double Declination ()
 Returns the declination angle (sky latitude).
 
void SpacecraftSurfaceVector (double scSurfaceVector[3]) const
 Sets the vector between the spacecraft and surface point in body-fixed.
 
virtual double SlantDistance () const
 Return the distance between the spacecraft and surface point in kmv.
 
double LocalSolarTime ()
 Return the local solar time in hours.
 
virtual 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.
 
void IgnoreElevationModel (bool ignore)
 This allows you to ignore the cube elevation model and use the ellipse.
 
void instrumentPosition (double p[3]) const
 Returns the spacecraft position in body-fixed frame km units.
 
virtual SpicePositioninstrumentPosition () const
 Accessor method for the instrument position.
 
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 SpicePositionsunPosition () const
 Accessor method for the sun position.
 
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 Targettarget () 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 SpiceRotationbodyRotation () const
 Accessor method for the body rotation.
 
virtual SpiceRotationinstrumentRotation () 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.
 

Static Public Member Functions

static double GroundAzimuth (double glat, double glon, double slat, double slon)
 Computes and returns the ground azimuth between the ground point and another point of interest, such as the subspacecraft point or the subsolar point.
 

Protected Types

enum  SpiceValueType { SpiceDoubleType , SpiceStringType , SpiceIntType , SpiceByteCodeType }
 NAIF value primitive type. More...
 

Protected Member Functions

void SetFocalLength (double v)
 Sets the focal length.
 
void SetPixelPitch (double v)
 Sets the pixel pitch.
 
void SetFocalLength ()
 Reads the focal length from the instrument kernel.
 
void SetPixelPitch ()
 Reads the Pixel Pitch from the instrument kernel.
 
void SetGeometricTilingHint (int startSize=128, int endSize=8)
 This method sets the best geometric tiling size for projecting from this camera model.
 
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

QString m_instrumentId
 The InstrumentId as it appears on the cube.
 
QString m_instrumentNameLong
 Full instrument name.
 
QString m_instrumentNameShort
 Shortened instrument name.
 
QString m_spacecraftNameLong
 Full spacecraft name.
 
QString m_spacecraftNameShort
 Shortened spacecraft name.
 
double p_childSample
 Sample value for child.
 
double p_childLine
 Line value for child.
 
AlphaCubep_alphaCube
 A pointer to the AlphaCube.
 
bool p_pointComputed
 Flag showing if Sample/Line has been computed.
 
SpiceDouble m_lookB [3]
 Look direction in body fixed.
 
bool m_newLookB
 flag to indicate we need to recompute ra/dec
 
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).
 
Targetm_target
 Target of the observation.
 
iTimem_et
 Ephemeris time (read NAIF documentation for a detailed description)
 
Longitudem_solarLongitude
 Body rotation solar longitude value.
 

Private Member Functions

void GroundRangeResolution ()
 Computes the ground range and min/max resolution.
 
void ringRangeResolution ()
 Analogous to above GroundRangeResolution method.
 
double ComputeAzimuth (const double lat, const double lon)
 Computes the image azimuth value from your current position (origin) to a point of interest specified by the lat/lon input to this method.
 
bool RawFocalPlanetoImage ()
 Computes the image coordinate for the current universal ground point.
 
bool SetImageMapProjection (const double sample, const double line, ShapeModel *shape)
 Sets the sample/line values of the image to get the lat/lon values for a Map Projected image.
 
bool SetImageSkyMapProjection (const double sample, const double line, ShapeModel *shape)
 Sets the sample/line values of the image to get the lat/lon values for a Skymap Projected image.
 
void CommonInitialize (const std::string &demCube)
 
void computeRaDec ()
 Computes the ra/dec from the look direction.
 
bool SetGroundLocal (bool backCheck)
 Computes look vector.
 
void init (Pvl &pvl, bool noTables, nlohmann::json isd=NULL)
 Initialization of Spice object.
 
void csmInit (Cube &cube, Pvl label)
 Initialize the Spice object for a CSMCamera.
 
void defaultInit ()
 Default initialize the members of the SPICE object.
 
void load (PvlKeyword &key, bool notab)
 Loads/furnishes NAIF kernel(s)
 

Private Attributes

double p_focalLength
 The focal length, in units of millimeters.
 
double p_pixelPitch
 The pixel pitch, in millimeters per pixel.
 
double p_minlat
 The minimum latitude.
 
double p_maxlat
 The maximum latitude.
 
double p_minlon
 The minimum longitude.
 
double p_maxlon
 The maximum longitude.
 
double p_minres
 The minimum resolution.
 
double p_maxres
 The maximum resolution.
 
double p_minobliqueres
 The minimum oblique resolution.
 
double p_maxobliqueres
 The maximum oblique resolution.
 
double p_minlon180
 The minimum longitude in the 180 domain.
 
double p_maxlon180
 The maximum longitude in the 180 domain.
 
bool p_groundRangeComputed
 Flag showing if ground range was computed successfully.
 
int p_samples
 The number of samples in the image.
 
int p_lines
 The number of lines in the image.
 
int p_bands
 The number of bands in the image.
 
int p_referenceBand
 The reference band.
 
Projectionp_projection
 A pointer to the Projection.
 
bool p_ignoreProjection
 Whether or no to ignore the Projection.
 
double p_mindec
 The minimum declination.
 
double p_maxdec
 The maximum declination.
 
double p_minra
 The minimum right ascension.
 
double p_maxra
 The maxumum right ascension.
 
double p_minra180
 The minimum right ascension in the 180 domain.
 
double p_maxra180
 The maximum right ascension in the 180 domain.
 
bool p_raDecRangeComputed
 Flag showing if the raDec range has been computed successfully.
 
double p_minRingRadius
 The minimum ring radius.
 
double p_maxRingRadius
 The maximum ring radius.
 
double p_minRingLongitude
 The minimum ring longitude (azimuth)
 
double p_maxRingLongitude
 The maximum ring longitude (azimuth)
 
double p_minRingLongitude180
 The minimum ring longitude in the 180 domain.
 
double p_maxRingLongitude180
 The maximum ring longitude in the 180 domain.
 
bool p_ringRangeComputed
 Flag showing if ring range was computed successfully.
 
int p_childBand
 Band value for child.
 
CameraDistortionMapp_distortionMap
 A pointer to the DistortionMap.
 
CameraFocalPlaneMapp_focalPlaneMap
 A pointer to the FocalPlaneMap.
 
CameraDetectorMapp_detectorMap
 A pointer to the DetectorMap.
 
CameraGroundMapp_groundMap
 A pointer to the GroundMap.
 
CameraSkyMapp_skyMap
 A pointer to the SkyMap.
 
int p_geometricTilingStartSize
 The ideal geometric tile size to start with when projecting.
 
int p_geometricTilingEndSize
 The ideal geometric tile size to end with when projecting.
 
SpiceDouble m_ra
 Right ascension (sky longitude)
 
SpiceDouble m_dec
 Decliation (sky latitude)
 
QVector< QString > * m_kernels
 Vector containing kernels filenames.
 
iTimem_startTime
 Corrected start (shutter open) time of the observation.
 
iTimem_endTime
 Corrected end (shutter close) time of the observation.
 
SpiceDouble * m_cacheSize
 Cache size. Note: This value is 1 for Framing cameras.
 
SpiceDouble * m_startTimePadding
 Kernels pvl group StartPadding keyword value.
 
SpiceDouble * m_endTimePadding
 Kernels pvl group EndPadding keyword value.
 
SpicePositionm_instrumentPosition
 Instrument spice position.
 
SpiceRotationm_instrumentRotation
 Instrument spice rotation.
 
SpicePositionm_sunPosition
 Sun spice position.
 
SpiceRotationm_bodyRotation
 Body spice rotation.
 
bool m_allowDownsizing
 Indicates whether to allow downsizing.
 
SpiceInt * m_spkCode
 Spacecraft and planet ephemeris kernel (SPK) code.
 
SpiceInt * m_ckCode
 Camera kernel (CK) code.
 
SpiceInt * m_ikCode
 Instrument kernel (IK) code.
 
SpiceInt * m_sclkCode
 Spacecraft clock correlation kernel (SCLK) code.
 
SpiceInt * m_spkBodyCode
 Spacecraft and planet ephemeris kernel (SPK) body code.
 
SpiceInt * m_bodyFrameCode
 Naif's BODY_FRAME_CODE value.
 
PvlObjectm_naifKeywords
 NaifKeywords PvlObject from cube.
 
bool m_usingNaif
 Indicates whether we are reading values from the NaifKeywords PvlObject in cube.
 
bool m_usingAle
 Indicate whether we are reading values from an ISD returned from ALE.
 

Friends

class RadarGroundMap
 A friend class to calculate focal length.
 
class RadarSlantRangeMap
 A friend class to calculate focal length.
 

Detailed Description

Author
????-??-?? Jeff Anderson
Todo
Finish documentation.
History

2005-11-09 Tracie Sucharski - Added HasProjection method.

2006-04-11 Tracie Sucharski - Added IgnoreProjection method and p_ignoreProjection so that the Camera is used rather than Projection.

2006-04-19 Elizabeth Miller - Added SpacecraftRoll method

2006-06-08 Elizabeth Miller - Added static Distance method that calculates the distance between 2 lat/lon pts (given the radius)

2006-07-25 Elizabeth Miller - Fixed bug in Distance method

2006-07-31 Elizabeth Miller - Added OffNadirAngle method and removed SpacecraftRoll() method

2007-06-11 Debbie A. Cook - Added overloaded method SetUniversalGround that includes a radius argument and method RawFocalPlanetoImage() to handle the common functionality between the SetUniversalGround methods.

2008-01-28 Christopher Austin - Added error throw when minlon range isn't set beyond initialization.

2008-02-15 Stacy Alley - In the GroundRangeResolution () method we had to subtract 0.5 when looking at the far left of pixels and add 0.5 to ensure we are seeing the far right of pixels.

2008-05-21 Steven Lambright - Fixed boundary condition in the GroundRangeResolution() method.

2008-06-18 Christopher Austin - Fixed documentation errors

2008-07-15 Steven Lambright - Added NaifStatus calls

2008-07-24 Steven Lambright - Fixed memory leaks: the alpha cube, distortion map, focal plane map, sky map, detector map, and ground map were not being deleted.

2008-08-08 Steven Lambright - Added the LoadCache() method which tries to find the correct time range and calls Spice::CreateCache

2008-09-10 Steven Lambright - Added the geometric tiling methods in order to optimize push frame cameras and prevent corruption of data when running cam2map with push frame cameras

2008-11-13 Janet Barrett - Added the GroundAzimuth method. This method computes and returns the ground azimuth between the ground point and another point of interest, such as the subspacecraft point or the subsolar point. The ground azimuth is the clockwise angle on the ground between a line drawn from the ground point to the North pole of the body and a line drawn from the ground point to the point of interest (such as the subsolar point or the subspacecraft point).

2009-01-05 Steven Lambright - Added InCube method

2009-03-02 Steven Lambright - This class now keeps track of the current child band, has more error checks, and now hopefully resets state when methods like GroundRangeResolution are called.

2009-05-21 Steven Lambright - The geometric tiling hint can now be 2,2 as a special case meaning no tiling will be used (the initial box will be a 2x2 box - only the 4 corners - is the idea behind using this value).

2009-05-22 Debbie A. Cook - Added Resolution method for Sensor (parent) virtual

2009-06-05 Mackenzie Boyd - Updated samson truthdata

2009-07-08 Janet Barrett - Added RadarGroundMap and RadarSlantRangeMap as friends to this class so that they have access to the SetFocalLength() method. The Radar instrument does not have a focal length and these classes need to be able to change the focal length value each time the slant range changes. This insures that the detector resolution always comes out to the pixel width/height for the Radar instrument.

2009-07-09 Debbie A. Cook - Set p_hasIntersection in SetImage if successful instead of just returning the bool to that other methods will know a ground point was successfully set.

2009-08-03 Debbie A. Cook - Added computation of tolerance to support change in Spice class for supporting downsizing of Spice tables

2009-08-14 Debbie A. Cook - Corrected alternate tolerance

2009-08-17 Debbie A. Cook - Added default tolerance for sky images

2009-08-19 Janet Barrett - Fixed the GroundAzimuth method so that it checks the quadrant that the subspacecraft or subsolar point lies in to calculate the correct azimuth value.

2009-08-28 Steven Lambright - Added GetCameraType method and returned enumeration value

2009-09-23 Tracie Sucharski - Convert negative longitudes coming out of NAIF's reclat() when computing azimuths.

2009-12-14 Steven Lambright - BasicMapping(...) will now populate the map Pvl parameter with a valid Pvl

2010-03-19 Debbie A. Cook - Added members p_ckFrameId and p_ckReferenceId and members SetCkFrameId(), SetCkReferenceId(), CkFrameId(), and CkReferenceId() needed by the ckwriter application

2010-03-29 Debbie A. Cook - Modified SetCkFrameid and SetCkReferenceFrame to set new bool value p_ckwriteReady to true if the kernels have values and false if they don't instead of bombing.

2010-11-04 Steven Lambright - Added SetGround() methods with the SurfacePoint version being commented out until the SurfacePoint class is available

2010-11-09 Eric Hyer - Added GetLocalNormal() and LocalPhotometricAngles() methods

2010-11-22 Janet Barrett - Added checks to make sure that the normal can be determined for DEM surface. Also modified the LocalPhotometricAngles method to report if the angles could successfully be calculated.

2011-01-14 Travis Addair - Added new CK/SPK accessor methods, pure virtual in Camera, implemented in mission specific cameras.

2011-01-14 Kris Becker - Added the (pure) virtual methods CkFrameId(), CkReferenceId(), SpkTargetId(), SpkCenterId() and SpkReferenceId(). Camera model developers must provide, at a minimum, implementations for CkFrameId(), CkReferenceId() and SpkReferenceId(). A determination must be made if default implementations of SpkTargetId() and SpkCenterId() are sufficient. These methods are required in order to write proper CKs and SPKs NAIF kernels for instruments from updated pointing and position data; Removed SetCkFrameId() and SetCkReferenceId() and their implementations as the aforementioned routines replace them; also corrected a bug in the computation of North, Sun and Spacecraft azimuths when a shape model is present/active. The call to LocalRadius() should be LocalRadius(lat,lon) in these cases. (Note at this time, those two routines return meters and kilometers, respectively - we need to address this inconsistancy!)

2011-01-25 Eric Hyer - SurfacePoint class now exists so uncommented Steven's new SetGround() methods (see history for 2010-11-04)

2011-01-26 Steven Lambright - ComputeAzimuth now takes a Distance for the radius. The LocalRadius() methods now return instances of the Distance class.

2011-02-10 Jeannie Walldren - Moved code from LoadCache() methods to create new methods CacheSize() and StartEndEphemerisTime(). Removed unused input parameter from LoadCache(). Set pointers to null in constructor. Added documentation to methods, enum, and private variables.

2011-02-09 Steven Lambright - Interfaces using Latitude, Longitude, and SurfacePoint are now more efficient. Updated to work with changes to the parent. Now uses more abstraction internally also. These changes were for readability (you have more explicit units and less of a change to misuse them).

2011-02-11 Steven Lambright - Moved Distance() method to SurfacePoint

2011-02-18 Steven Lambright - Fixed a problem where using a planetographic mapping group in GroundRange would still output planetocentric latitudes.

2011-05-03 Jeannie Walldren - Added Isis Disclaimer to files.

2012-01-19 Janet Barrett - Fixes issue #625 - Fixed a problem with the ground azimuth calculation in the GroundAzimuth method. The algorithm being used was the Napier's analogies and was not providing the correct azimuth value. The Napier's analogies also have the weakness of producing a divide by zero error. The new algorithm being used is the spherical law of cosines for sides which comes out of the "CRC Standard Mathematical Tables and Formulae 30th Edition on page 469. <p> <p> 2012-06-01 Janet Barrett - Modified the GroundAzimuth method to detect which hemisphere the ground point is in so that the closer pole will be used to obtain the azimuth value. If the closer pole is the South pole, then the azimuth is adjusted to be relative to the North pole. <p> <p> 2012-06-04 Janet Barrett - Got rid of redundant calls to Sample(), Line(), and SetImage() in the ComputeAzimuth method. <p> <p> 2012-07-06 Debbie A. Cook - Updated Spice members to be more compliant with Isis coding standards. References #972. <p> <p> 2012-10-12 Debbie A. Cook - Updated to use new Target and ShapeModel classes. References Mantis ticket #775 and #1114. <p> <p> 2012-10-25 Jeannie Backer - Changed resolution() method to lower camel case. References #1181. <p> <p> 2012-11-20 Janet Barrett - Fixed a problem with the GroundAzimuth method so that the azimuth value is calculated correctly for radar data. Fixes #1117. <p> <p> 2012-04-24 Jeannie Backer - Added a programmer error if NorthAzimuth() is called on a plane projection since this value is meaningless for ring plane projections. References #775. <p> <p> 2012-12-20 Debbie A. Cook - Changed to use TProjection and RingPlaneProjection instead of Projection as needed. References #775. <p> <p> 2013-03-04 Tracie Sucharski - Added new method, PixelIfovOffsets, which will return the ifov offsets,in x and y, from the center of the pixel in mm. The default camera offsets will be half of the pixel pitch in both the x and y directions. References #1604. <p> <p> 2014-04-17 Jeannie Backer - Modified ComputeAzimuth() to return an Isis::Null if the method fails (instead of -1.0). Add a check in ComputeAzimuth() to make sure the "SetUniversalGround()" call succeeds, if not, reset to the original sample/line and return Null. References #1659.

2015-03-14 Jeannie Backer - Modified GetLocalNormal() to call non-DEM shapes' calculateLocalNormal() with an empty vector of neighbors since only DemShape uses this vector. References #2035.

2015-04-30 Jeannie Backer - Fixed bug in GetLocalNormal() introduced in prior check-in. Fixes #2243.

2015-05-15 Kris Becker - Set ShapeModel state in SetImage() to reflect no intersection before attempting to map to surface. Fixes #2252.

2015-09-01 Ian Humphrey and Makayla Shepherd - Modified unit test to override Sensor's pure virtual methods.

2015-10-16 Ian Humphrey - Added protected members for spacecraft and instrument names as well as public member getters. Updated unit test. References #2335.

2016-06-27 Kelvin Rodriguez - Added member function to compute celestial north clock angle. References #2365

2016-08-01 Curtis Rose - Changed return values of resolutions from -1 to Isis::Null. Fixes #2065.

2016-08-16 Tyler Wilson - Added ObliqueDectectorResolution,ObliqueLineResolution, ObliqueSampleResolution, and ObliquePixelResolution functions which give greatly improved approximations compared to their non-oblique counterpart functions when the Look vector is pointing off nadir and near the limb. Fixes #476. References #4100.

2016-10-16 Jesse Mapel - Added exposureDuration methods to access pixel exposure durations. References #4476.

2016-10-18 Kristin Berry - Added a new virtual SetImage which includes a time offset. Refactored SetImage to minimize repeated code by creating helper functions SetImageSkyMapProjection() and SetImageMapProjection(). Updated unitTest. References #4476.

2016-10-21 Jesse Mapel - Modified exposureDuration(sample, line, band) to default to using the band the camera is set to. References #4476.

2016-10-21 Jeannie Backer - Reorder method signatures and member variable declarations to fit ISIS coding standards. References #4476.

2016-12-02 Victor Silva - Made changes to GetLocalNormal to calculate local normal accurately for LRO by changing 4 corner surrounding points from adding 0.5 to adding 0.5 - DBL_MIN. Fixes #4560.

2017-03-03 Tyler Wilson - Updated the oblique detector resolution function to correct an error in the original formula, and updated the documention for this function. Fixes #4614.

2017-08-30 Summer Stapleton - Updated documentation. References #4807.

2017-01-11 Christopher Combs - Added bool deleteExisting to SetDistortionMap to prevent a segfault when the distortion map is incomplete. Fixes $5163.

2018-07-12 Summer Stapleton - Added m_instrumentId and instrumentId() in order to collect the InstrumentId from the original cube label for comparisons related to image imports in ipce. References #5460.

2021-03-04 Victor Silva - Made changes to GetLocalNormal to calculate local normal accurately for LRO by changing 4 corner surrounding points from adding 0.5 to line and sample and wrapping value with nexttoward.Fixes #4018.

Definition at line 236 of file Camera.h.

Member Enumeration Documentation

◆ CameraType

This enum defines the types of cameras supported in this class.

Enumerator
Framing 

Framing Camera.

PushFrame 

Push Frame Camera.

LineScan 

Line Scan Camera.

Radar 

Radar Camera.

Point 

Point Camera.

RollingShutter 

RollingShutter.

Csm 

Community Sensor Model Camera.

Definition at line 358 of file Camera.h.

◆ SpiceValueType

enum Isis::Spice::SpiceValueType
protectedinherited

NAIF value primitive type.

Enumerator
SpiceDoubleType 

SpiceDouble type.

SpiceStringType 

SpiceString type.

SpiceIntType 

SpiceInt type.

SpiceByteCodeType 

SpiceByteCode type.

Definition at line 348 of file Spice.h.

Constructor & Destructor Documentation

◆ Camera()

◆ ~Camera()

Isis::Camera::~Camera ( )
virtual

Destroys the Camera Object.

Definition at line 110 of file Camera.cpp.

References p_alphaCube, p_detectorMap, p_distortionMap, p_focalPlaneMap, p_groundMap, p_projection, and p_skyMap.

Member Function Documentation

◆ Band()

int Isis::Camera::Band ( ) const
virtual

◆ Bands()

int Isis::Camera::Bands ( ) const

Returns the number of bands in the image.

Returns
int Number of Bands

Definition at line 2826 of file Camera.cpp.

References p_bands.

Referenced by Isis::LroWideAngleCamera::SetBand(), Isis::MarciCamera::SetBand(), and StartEndEphemerisTimes().

◆ BasicMapping()

void Isis::Camera::BasicMapping ( Pvl & pvl)

Writes the basic mapping group to the specified Pvl.

Parameters
pvlPvl to write mapping group to

Definition at line 1367 of file Camera.cpp.

References GroundRangeResolution(), p_maxlat, p_maxlon, p_minlat, p_minlon, p_minres, Isis::Spice::radii(), Isis::Spice::target(), and Isis::toString().

Referenced by Isis::GroundGrid::GroundGrid().

◆ basicRingMapping()

void Isis::Camera::basicRingMapping ( Pvl & pvl)

Writes the basic mapping group for ring plane to the specified Pvl.

Parameters
pvlPvl to write mapping group to

Definition at line 1396 of file Camera.cpp.

References p_maxRingLongitude, p_maxRingRadius, p_minres, p_minRingLongitude, p_minRingRadius, ringRangeResolution(), Isis::Spice::target(), Isis::toString(), and Isis::IException::User.

◆ bodyRotation()

SpiceRotation * Isis::Spice::bodyRotation ( ) const
virtualinherited

◆ cacheEndTime()

iTime Isis::Spice::cacheEndTime ( ) const
virtualinherited

Accessor method for the cache end time.

Returns
iTime End time for the image.
Author
Steven Lambright
History
2011-02-09 Steven Lambright - Original version.

Definition at line 765 of file Spice.cpp.

References Isis::Spice::m_endTime.

Referenced by LineOffsetFunctor::operator()().

◆ CacheSize()

int Isis::Camera::CacheSize ( double startTime,
double endTime )

This method calculates the spice cache size.

This method finds the number of lines in the beta cube and adds 1, since we need at least 2 points for interpolation. This method must be called before a call to the Spice::createCache() method. It is called in the LoadCache() method.

Parameters
startTimeStarting ephemeris time to cache
endTimeEnding ephemeris time to cache
Returns
int The calculated spice cache size
Exceptions
iException::Programmer- "A cache has already been created."
See also
createCache()
LoadCache()
Author
2011-02-02 Jeannie Walldren
History
2011-02-02 Jeannie Walldren - Original version.

Definition at line 2557 of file Camera.cpp.

References Isis::AlphaCube::BetaLines(), and p_alphaCube.

Referenced by LoadCache().

◆ cacheStartTime()

iTime Isis::Spice::cacheStartTime ( ) const
virtualinherited

Accessor method for the cache start time.

Returns
iTime Start time for the image.
Author
Steven Lambright
History
2011-02-09 Steven Lambright - Original version.

Definition at line 750 of file Spice.cpp.

References Isis::Spice::m_startTime.

Referenced by LineOffsetFunctor::operator()().

◆ CelestialNorthClockAngle()

double Isis::Camera::CelestialNorthClockAngle ( )

Computes the celestial north clock angle at the current line/sample or ra/dec.

The reference vector is a vecor from the current pixel pointed directly "upward". Celetial North is a vector from the current pixel poiting towards celetial north. The Celestial North Clock Angle is the angle between these two vectors on the image.

Returns
double The resultant Celestial North Clock Angle

Definition at line 3067 of file Camera.cpp.

References Isis::Sensor::Declination(), Line(), Isis::PI, RaDecResolution(), Isis::Sensor::RightAscension(), Sample(), SetImage(), and SetRightAscensionDeclination().

◆ CkFrameId()

virtual int Isis::Camera::CkFrameId ( ) const
pure virtual

Provides the NAIF frame code for an instruments CK kernel.

This pure virtual method must be implemented in each camera model providing the reference frame NAIF ID code found in the mission CK kernel.

This value can be easily determined by using the NAIF spacit application that sumarizes binary CK kernels a particular instrument on a spacecraft. spacit will additionally require a spacecraft clock kernel (SCLK) and a leap seconds kernel (LSK). For example, the output of the MESSENGER camera CK supporting the MDIS camera below indicates it is the MESSENGER spacecraft.

Segment ID : MSGR_SPACECRAFT
Instrument Code: -236000
Spacecraft : Body -236, MESSENGER
Reference Frame: Frame 1, J2000
CK Data Type : Type 3
Description : Continuous Pointing: Linear Interpolation
Available Data : Pointing and Angular Velocity
UTC Start Time : 2004 AUG 12 17:17:42.558
UTC Stop Time : 2010 JUL 23 12:35:22.814
SCLK Start Time: 1/000818300:000000
SCLK Stop Time : 1/188375996:000000
Creates sequential IDs.
Definition ID.h:27

The CkFrameId value is found in the "Instrument Code" entry (-236000).

Returns
int NAIF code for CK frame for an instrument

Implemented in Isis::ApolloMetricCamera, Isis::ApolloPanoramicCamera, Isis::CSMCamera, Isis::IdealCamera, Isis::IssNACamera, Isis::IssWACamera, Isis::VimsCamera, Isis::Chandrayaan1M3Camera, Isis::HiresCamera, Isis::LwirCamera, Isis::NirCamera, Isis::UvvisCamera, Isis::ClipperNacRollingShutterCamera, Isis::ClipperPushBroomCamera, Isis::ClipperWacFcCamera, Isis::DawnFcCamera, Isis::DawnVirCamera, Isis::SsiCamera, Isis::HayabusaAmicaCamera, Isis::HayabusaNirsCamera, Isis::Hyb2OncCamera, Isis::JunoCamera, Isis::KaguyaMiCamera, Isis::KaguyaTcCamera, Isis::LoHighCamera, Isis::LoMediumCamera, Isis::LroNarrowAngleCamera, Isis::LroWideAngleCamera, Isis::MiniRF, Isis::Mariner10Camera, Isis::MdisCamera, Isis::HrscCamera, Isis::MexHrscSrcCamera, Isis::MocNarrowAngleCamera, Isis::MocWideAngleCamera, Isis::CrismCamera, Isis::CTXCamera, Isis::HiriseCamera, Isis::MarciCamera, Isis::MsiCamera, Isis::NewHorizonsLeisaCamera, Isis::NewHorizonsLorriCamera, Isis::NewHorizonsMvicFrameCamera, Isis::NewHorizonsMvicTdiCamera, Isis::ThemisIrCamera, Isis::ThemisVisCamera, Isis::OsirisRexOcamsCamera, Isis::RosettaOsirisCamera, Isis::RosettaVirtisCamera, Isis::TgoCassisCamera, Isis::VikingCamera, and Isis::VoyagerCamera.

◆ CkReferenceId()

virtual int Isis::Camera::CkReferenceId ( ) const
pure virtual

Provides the NAIF reference code for an instruments CK kernel.

This virtual method must be implemented in each camera model providing the reference frame NAIF ID code found in the mission CK kernel.

This value can be easily determined by using the NAIF spacit application that sumarizes binary CK kernels a particular instrument on a spacecraft. spacit will additionally require a spacecraft clock kernel (SCLK) and a leap seconds kernel (LSK).For example, the output of the MESSENGER camera CK supporting the MDIS camera below indicates it is the MESSENGER spacecraft.

Segment ID : MSGR_SPACECRAFT
Instrument Code: -236000
Spacecraft : Body -236, MESSENGER
Reference Frame: Frame 1, J2000
CK Data Type : Type 3
Description : Continuous Pointing: Linear Interpolation
Available Data : Pointing and Angular Velocity
UTC Start Time : 2004 AUG 12 17:17:42.558
UTC Stop Time : 2010 JUL 23 12:35:22.814
SCLK Start Time: 1/000818300:000000
SCLK Stop Time : 1/188375996:000000

The CkReferenced value is found in the "Reference Frame" entry (1).

Returns
int NAIF code for CK reference for an instrument

Implemented in Isis::ApolloMetricCamera, Isis::ApolloPanoramicCamera, Isis::CSMCamera, Isis::IdealCamera, Isis::IssNACamera, Isis::IssWACamera, Isis::VimsCamera, Isis::Chandrayaan1M3Camera, Isis::HiresCamera, Isis::LwirCamera, Isis::NirCamera, Isis::UvvisCamera, Isis::ClipperNacRollingShutterCamera, Isis::ClipperPushBroomCamera, Isis::ClipperWacFcCamera, Isis::DawnFcCamera, Isis::DawnVirCamera, Isis::SsiCamera, Isis::HayabusaAmicaCamera, Isis::HayabusaNirsCamera, Isis::Hyb2OncCamera, Isis::JunoCamera, Isis::KaguyaMiCamera, Isis::KaguyaTcCamera, Isis::LoHighCamera, Isis::LoMediumCamera, Isis::LroNarrowAngleCamera, Isis::LroWideAngleCamera, Isis::MiniRF, Isis::Mariner10Camera, Isis::MdisCamera, Isis::HrscCamera, Isis::MexHrscSrcCamera, Isis::MocNarrowAngleCamera, Isis::MocWideAngleCamera, Isis::CrismCamera, Isis::CTXCamera, Isis::HiriseCamera, Isis::MarciCamera, Isis::MsiCamera, Isis::NewHorizonsLeisaCamera, Isis::NewHorizonsLorriCamera, Isis::NewHorizonsMvicFrameCamera, Isis::NewHorizonsMvicTdiCamera, Isis::ThemisIrCamera, Isis::ThemisVisCamera, Isis::OsirisRexOcamsCamera, Isis::RosettaOsirisCamera, Isis::RosettaVirtisCamera, Isis::TgoCassisCamera, Isis::VikingCamera, and Isis::VoyagerCamera.

◆ ComputeAzimuth()

double Isis::Camera::ComputeAzimuth ( const double lat,
const double lon )
private

Computes the image azimuth value from your current position (origin) to a point of interest specified by the lat/lon input to this method.

(NOTE: This azimuth is different from a Ground Azimuth)

All azimuths are measured the same way regardless of the image level (level1 or level2) and the shape model being used.

The azimuth is an angle formed by a reference vector and a point of interest vector. The current position is the vertex of the angle, i.e. the origin of the coordinate system on which this angle will be measured. The azimuth is measured in a positive clockwise direction from the reference vector (i.e. the initial ray of the angle) to the point of interest vector (i.e. the terminal ray of the angle).

The azimuth is measured in a positive clockwise direction because images have lines that increase downward. If lines increased upward, then the azimuth would be measure in a positive counterclockwise direction.

The reference vector is the vector from the origin to the right side of the image. This is usually called the 3 o'clock reference vector because the image can be viewed as a clock face and the origin point as the center of the clock face with the hand of the clock pointing at 3 o'clock.

The point of interest vector is the vector along the surface of the body from the origin to the point of interest. In order to calculate the azimuth, this vector is projected into the reference plane (the plane containing the reference vector that is tangent to the surface). The point of interest vector is also unitzed to 1 km in length and then scaled even further to within a pixel of the azimuth's origin.

The algorithm works by

  1. Getting the body-fixed (x,y,z) of the azimuth's origin point and the body-fixed (x,y,z) of the point of interest. These coordinate also represent vectors from the center of the body-fixed system to the coordinate.
  2. The vector from the origin point to the point of interest is then determined by vector subtraction.
  3. The perpendicular component of this new vector to the origin vector is determined by vector subtraction. This gives a vector that is tangent to the planet surface at the origin point and that is in the direction of the point of interest.
  4. The tangent vector is then unitized so that we may use pixel resolution to scale the point of interest vector to be within a pixel in size. This is done so that when we determine the new sample/line values, the original local radius can be used and the image coordinates are not thrown off by the curvature of the body
  5. A new body-fixed vector from the center of the planet to the head of the tangent vector is determined.
  6. The body-fixed (x,y,z) of the new vector is used to get ground coordinates (lat,lon) of the tail of the adjusted point of interest vector.
  7. The (lat, lon) is used to get a (line,sample) for the tail of the adjusted point of interest vector. So, we now have the line,sample of the origin point and the line,sample of a point in the direction of the point of interest and within a pixel's distance from the origin point.
  8. The arctangent of (newline-originline)/ (newsample-originsample) is used to acquire the azimuth value.

NOTE: All vectors in this method are body-fixed and use the radius of the shape model at the origin point for doing calculations. By using the radius of the shape model at the origin, we avoid problems where the DEM does not completely cover the planet.

Note: This image azimuth algorithm is different from the ground azimuth algorithm used in GroundAzimuth(). For ground azimuths, the initial ray of the angle is the vector from the selected ground point to the north pole. For image azimuths, the initial ray is the vector from the selected image location to the right, horizontally. *

Parameters
latThe Latitude
lonThe Longitude
Returns
double Azimuth value
History

2009-09-23 Tracie Sucharski - Convert negative longitudes coming out of reclat.

2010-09-28 Janet Barrett - Added Randy's updated method for calculating the azimuth.

2011-02-11 Janet Barrett - Added documentation.

2011_02-11 Janet Barrett - There were some problems with calculating azimuths when a DEM shape model was specified. One problem occurred when the DEM did not cover the poles. The LocalRadius was returning a NULL for the radius value in places that the DEM did not cover (such as the poles). This was fixed by using the radius of the origin point when determining the x,y,z location of the point of interest. The radius is not important because we just need to know the direction of the point of interest from the origin point. Another problem was also found with the call to SetUniversalGround when the new point (new point = point within a pixel of the origin point and in the direction of the point of interest) was being determined. The new point should be at the same radius as the origin point, but this was not happening. The call to SetUniversalGround was changed to use the radius of the origin point when determining the line,sample of the new point. Another problem was that the vector pointing from the origin point to the point of interest was being unitized before its perpendicular component was being calculated. This has been fixed.

2012-06-04 Janet Barrett - Removed redundant calls to Sample(), Line(), and SetImage().

2014-04-17 Jeannie Backer - Modified ComputeAzimuth() to return an Isis::Null if the method fails (instead of -1.0). Add a check in ComputeAzimuth() to make sure the "SetUniversalGround()" call succeeds, if not, reset to the original sample/line and return Null.

Todo
Write PushState and PopState method to ensure the internals of the class are set based on SetImage or SetGround

Definition at line 2074 of file Camera.cpp.

References Isis::NaifStatus::CheckErrors(), Isis::Sensor::Coordinate(), Isis::Sensor::HasSurfaceIntersection(), Line(), Isis::Sensor::LocalRadius(), Isis::Null, p_pointComputed, Isis::PI, PixelResolution(), Sample(), SetImage(), and SetUniversalGround().

Referenced by NorthAzimuth(), SpacecraftAzimuth(), and SunAzimuth().

◆ computeRaDec()

void Isis::Sensor::computeRaDec ( )
privateinherited

Computes the ra/dec from the look direction.

Protected method which computes the ra/dec of the current look direction.

Definition at line 589 of file Sensor.cpp.

References Isis::Spice::bodyRotation(), Isis::Sensor::m_dec, Isis::Sensor::m_lookB, Isis::Sensor::m_newLookB, Isis::Sensor::m_ra, Isis::PI, and Isis::RAD2DEG.

Referenced by Isis::Sensor::Declination(), and Isis::Sensor::RightAscension().

◆ computeSolarLongitude()

◆ Coordinate()

void Isis::Sensor::Coordinate ( double p[3]) const
inherited

◆ createCache()

void Isis::Spice::createCache ( iTime startTime,
iTime endTime,
const int size,
double tol )
virtualinherited

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().

Parameters
startTimeStarting ephemeris time to cache
endTimeEnding ephemeris time to cache
sizeSize of the cache.
tolTolerance.
Exceptions
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"
History
2011-04-10 Debbie A. Cook - Updated to only create cache for instrumentPosition if type is Spice.

Definition at line 649 of file Spice.cpp.

References Isis::SpicePosition::cacheSize(), Isis::NaifStatus::CheckErrors(), Isis::Spice::computeSolarLongitude(), Isis::iTime::Et(), Isis::SpicePosition::GetSource(), Isis::SpiceRotation::GetSource(), Isis::SpicePosition::HasVelocity(), Isis::Spice::instrumentPosition(), Isis::SpicePosition::IsCached(), Isis::SpiceRotation::IsCached(), Isis::SpicePosition::LoadCache(), Isis::SpiceRotation::LoadCache(), Isis::Spice::m_bodyRotation, Isis::Spice::m_cacheSize, Isis::Spice::m_endTime, Isis::Spice::m_endTimePadding, Isis::Spice::m_et, Isis::Spice::m_instrumentPosition, Isis::Spice::m_instrumentRotation, Isis::Spice::m_kernels, Isis::Spice::m_startTime, Isis::Spice::m_startTimePadding, Isis::Spice::m_sunPosition, 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(), LoadCache(), and Isis::MiniRF::MiniRF().

◆ csmInit()

void Isis::Spice::csmInit ( Cube & cube,
Pvl label )
privateinherited

Initialize the Spice object for a CSMCamera.

This sets up the Spice/Sensor/Camera object to not have any SPICE dependent members initialized.

Parameters
cubeThe Cube containing image data for the camera
labelThe label containing information for the camera

Definition at line 97 of file Spice.cpp.

References Isis::NaifStatus::CheckErrors(), Isis::Spice::defaultInit(), and Isis::Spice::m_target.

Referenced by Isis::Spice::Spice().

◆ Declination()

double Isis::Sensor::Declination ( )
virtualinherited

Returns the declination angle (sky latitude).

Returns
double Declination angle, in degrees.

Reimplemented in Isis::CSMCamera.

Definition at line 578 of file Sensor.cpp.

References Isis::Sensor::computeRaDec(), Isis::Sensor::m_dec, and Isis::Sensor::m_newLookB.

Referenced by CelestialNorthClockAngle(), Isis::CameraPointInfo::GetPointInfo(), Isis::VimsSkyMap::Init(), RaDecRange(), RaDecResolution(), and RawFocalPlanetoImage().

◆ defaultInit()

◆ DetectorMap()

◆ DetectorResolution()

double Isis::Camera::DetectorResolution ( )
virtual

Returns the detector resolution at the current position in meters.

Returns
double The detector resolution

Reimplemented in Isis::CSMCamera.

Definition at line 622 of file Camera.cpp.

References Isis::Sensor::Coordinate(), Isis::Sensor::HasSurfaceIntersection(), Isis::Spice::instrumentPosition(), Isis::Null, p_focalLength, and p_pixelPitch.

Referenced by LineResolution(), ObliqueDetectorResolution(), and SampleResolution().

◆ DistortionMap()

◆ EmissionAngle()

double Isis::Sensor::EmissionAngle ( ) const
virtualinherited

◆ exposureDuration() [1/2]

double Isis::Camera::exposureDuration ( ) const
virtual

Return the exposure duration for the pixel that the camera is set to.

Returns
double The exposure duration in seconds for the pixel that the camera is set to.

Definition at line 3093 of file Camera.cpp.

References Isis::CameraDetectorMap::exposureDuration(), p_childBand, p_childLine, p_childSample, and p_detectorMap.

Referenced by Isis::DawnFcCamera::DawnFcCamera(), Isis::HayabusaAmicaCamera::HayabusaAmicaCamera(), Isis::HayabusaNirsCamera::HayabusaNirsCamera(), Isis::HiresCamera::HiresCamera(), Isis::Hyb2OncCamera::Hyb2OncCamera(), Isis::IdealCamera::IdealCamera(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::PixelFOV::latLonVertices(), Isis::LwirCamera::LwirCamera(), Isis::MdisCamera::MdisCamera(), Isis::MsiCamera::MsiCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::NirCamera::NirCamera(), Isis::OsirisRexOcamsCamera::OsirisRexOcamsCamera(), 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::SsiCamera::SsiCamera(), Isis::UvvisCamera::UvvisCamera(), Isis::VikingCamera::VikingCamera(), and Isis::VoyagerCamera::VoyagerCamera().

◆ exposureDuration() [2/2]

double Isis::Camera::exposureDuration ( const double sample,
const double line,
const int band = -1 ) const
virtual

Return the exposure duration for the pixel at the given line, sample and band.

Parameters
sampleThe sample of the desired pixel.
lineThe line of the desired pixel.
bandThe band of the desired pixel. Defaults to 1.
Returns
double The exposure duration for the desired pixel in seconds.

Definition at line 3107 of file Camera.cpp.

References Isis::CameraDetectorMap::exposureDuration(), p_childBand, and p_detectorMap.

◆ FocalLength()

◆ FocalPlaneMap()

◆ GetCameraType()

virtual CameraType Isis::Camera::GetCameraType ( ) const
pure virtual

Returns the type of camera that was created.

This is a pure virtual method, so all child classes must define and identify themselves as one of the enumerated camera types defined in this class.

Returns
CameraType Type of camera that was created.

Implemented in Isis::CSMCamera, Isis::FramingCamera, Isis::IdealCamera, Isis::LineScanCamera, Isis::PushFrameCamera, Isis::RadarCamera, Isis::RollingShutterCamera, and Isis::VimsCamera.

◆ getClockTime()

iTime Isis::Spice::getClockTime ( QString clockValue,
int sclkCode = -1,
bool clockTicks = false )
virtualinherited

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 1060 of file Spice.cpp.

References Isis::NaifStatus::CheckErrors(), Isis::Spice::naifSclkCode(), Isis::Spice::SpiceDoubleType, 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::DawnVirCamera::readHouseKeeping(), Isis::RosettaVirtisCamera::readHouseKeeping(), Isis::RosettaVirtisCamera::readSCET(), Isis::RosettaOsirisCamera::RosettaOsirisCamera(), Isis::ThemisIrCamera::ThemisIrCamera(), Isis::ThemisVisCamera::ThemisVisCamera(), Isis::VikingCamera::VikingCamera(), and Isis::VimsCamera::VimsCamera().

◆ getDouble()

SpiceDouble Isis::Spice::getDouble ( const QString & key,
int index = 0 )
inherited

This returns a value from the NAIF text pool.

It is a static convience method

Parameters
keyName of NAIF keyword to obtain from the pool
indexIf the keyword is an array, the element to obtain. Defaults to 0
Returns
SpiceDouble Spice double from NAIF text pool
Exceptions
Isis::iException::Io- "Can not find key in instrument kernels."

Definition at line 1046 of file Spice.cpp.

References Isis::Spice::readValue(), and Isis::Spice::SpiceDoubleType.

Referenced by Isis::LroWideAngleCameraDistortionMap::addFilter(), Isis::LroWideAngleCameraFocalPlaneMap::addFilter(), Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::Chandrayaan1M3Camera::Chandrayaan1M3Camera(), Isis::ClipperPushBroomCamera::ClipperPushBroomCamera(), 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::Spice::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(), SetFocalLength(), SetPixelPitch(), Isis::SsiCamera::SsiCamera(), Isis::TgoCassisCamera::TgoCassisCamera(), Isis::TgoCassisDistortionMap::TgoCassisDistortionMap(), and Isis::UvvisCamera::UvvisCamera().

◆ GetGeometricTilingHint()

void Isis::Camera::GetGeometricTilingHint ( int & startSize,
int & endSize )

This will get the geometric tiling hint; these values are typically used for ProcessRubberSheet::SetTiling(...).

Parameters
startSizeTiling start size
endSizeTiling end size

Definition at line 2635 of file Camera.cpp.

References p_geometricTilingEndSize, and p_geometricTilingStartSize.

◆ getInteger()

SpiceInt Isis::Spice::getInteger ( const QString & key,
int index = 0 )
inherited

This returns a value from the NAIF text pool.

It is a static convience

Parameters
keyName of NAIF keyword to obtain from the pool
indexIf the keyword is an array, the element to obtain. Defaults to 0
Returns
SpiceInt Spice integer from NAIF text pool
Exceptions
Isis::iException::Io- "Can not find key in instrument kernels

Definition at line 1032 of file Spice.cpp.

References Isis::Spice::readValue(), and Isis::Spice::SpiceIntType.

Referenced by Isis::DawnVirCamera::getPointingTable(), Isis::RosettaVirtisCamera::getPointingTable(), Isis::LroWideAngleCamera::GetVector(), Isis::Spice::init(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::Target::lookupNaifBodyCode(), and Isis::LroWideAngleCamera::LroWideAngleCamera().

◆ GetLatitude()

Latitude Isis::Sensor::GetLatitude ( ) const
inherited

Returns a planetocentric latitude object at the surface intersection point in body fixed.

Returns
Latidude Universal latitude object.

Definition at line 223 of file Sensor.cpp.

References Isis::Spice::target().

Referenced by Isis::ControlNetFilter::PointLatLonFilter(), and Isis::Sensor::UniversalLatitude().

◆ GetLocalNormal()

void Isis::Camera::GetLocalNormal ( double normal[3])

This method will find the local normal at the current (sample, line) and set it to the passed in array.

Parameters
[out]normalThe local normal vector to be calculated.

Definition at line 1499 of file Camera.cpp.

References Isis::SurfacePoint::GetLatitude(), Isis::SurfacePoint::GetLongitude(), Isis::Sensor::GetSurfacePoint(), Line(), Isis::Sensor::LocalRadius(), p_pointComputed, Sample(), SetImage(), and Isis::Spice::target().

Referenced by LocalPhotometricAngles(), and Slope().

◆ GetLongitude()

Longitude Isis::Sensor::GetLongitude ( ) const
inherited

Returns a positive east, 0-360 domain longitude object at the surface intersection point in the body fixed coordinate system.

Returns
Longitude Universal longitude object.

Definition at line 247 of file Sensor.cpp.

References Isis::Spice::target().

Referenced by Isis::Sensor::UniversalLongitude().

◆ getStoredNaifKeywords()

PvlObject Isis::Spice::getStoredNaifKeywords ( ) const
inherited

This returns the PvlObject that stores all of the requested Naif data and can be a replacement for furnishing text kernels.

Definition at line 1005 of file Spice.cpp.

References Isis::Spice::m_naifKeywords.

Referenced by Isis::LroWideAngleCamera::GetVector().

◆ getStoredResult()

QVariant Isis::Spice::getStoredResult ( QString name,
SpiceValueType type )
protectedinherited

Definition at line 1180 of file Spice.cpp.

◆ getString()

QString Isis::Spice::getString ( const QString & key,
int index = 0 )
inherited

This returns a value from the NAIF text pool.

It is a static convience method

Parameters
keyName of NAIF keyword to obtain from the pool
indexIf the keyword is an array, the element to obtain. Defaults to 0
Returns
QString Value from the NAIF text pool
Exceptions
Isis::IException::Io- "Can not find key in instrument kernels."

Definition at line 1273 of file Spice.cpp.

References Isis::Spice::readValue(), and Isis::Spice::SpiceStringType.

Referenced by Isis::LightTimeCorrectionState::checkAberrationCorrection(), Isis::LightTimeCorrectionState::checkLightTimeToSurfaceCorrect(), Isis::LightTimeCorrectionState::checkObserverTargetSwap(), Isis::MdisCamera::computeFocalLength(), Isis::MdisCamera::MdisCamera(), and Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera().

◆ GetSurfacePoint()

SurfacePoint Isis::Sensor::GetSurfacePoint ( ) const
virtualinherited

◆ GroundAzimuth()

double Isis::Camera::GroundAzimuth ( double glat,
double glon,
double slat,
double slon )
static

Computes and returns the ground azimuth between the ground point and another point of interest, such as the subspacecraft point or the subsolar point.

The ground azimuth is the clockwise angle on the ground between a line drawn from the ground point to the North pole of the body and a line drawn from the selected point on the surface to some point of interest on the surface (such as the subsolar point or the subspacecraft point).

Note: This is different from the image azimuth algorithm used in ComputeAzimuth(). For ground azimuths, the initial ray of the angle is the vector from the selected ground point to the north pole. For image azimuths, the initial ray is the vector from the selected image location to the right, horizontally.

Parameters
glatThe latitude of the ground point
glonThe longitude of the ground point
slatThe latitude of the subspacecraft or subsolar point
slonThe longitude of the subspacecraft or subsolar point
Returns
double The azimuth in degrees

Definition at line 2267 of file Camera.cpp.

References Isis::PI.

Referenced by Isis::CameraPointInfo::GetPointInfo().

◆ GroundMap()

CameraGroundMap * Isis::Camera::GroundMap ( )

Returns a pointer to the CameraGroundMap object.

Returns
CameraCGroundMap*

Definition at line 2886 of file Camera.cpp.

References p_groundMap.

Referenced by Isis::IsisBundleObservation::computeImagePartials(), Isis::LineScanCamera::GroundMap(), Isis::PushFrameCamera::GroundMap(), and Isis::VimsCamera::VimsCamera().

◆ GroundRange()

bool Isis::Camera::GroundRange ( double & minlat,
double & maxlat,
double & minlon,
double & maxlon,
Pvl & pvl )

Computes the Ground Range.

Parameters
minlatThe minimum latitude
maxlatThe maximum latitude
minlonThe minimum longitude
maxlonThe maximum longitude
pvlThe pvl file used for ground range calculations
Returns
bool Returns true if it crosses the longitude domain boundary and false if it does not

Definition at line 1193 of file Camera.cpp.

References GroundRangeResolution(), Isis::Distance::Meters, p_maxlat, p_maxlon, p_maxlon180, p_minlat, p_minlon, p_minlon180, Isis::PI, Isis::Spice::radii(), Isis::toDouble(), and Isis::PvlObject::Traverse.

Referenced by Isis::UniversalGroundMap::GroundRange(), and IntersectsLongitudeDomain().

◆ GroundRangeResolution()

◆ hasKernels()

bool Isis::Spice::hasKernels ( Pvl & lab)
inherited

Returns true if the kernel group has kernel files.

Parameters
labLabel containing Instrument and Kernels groups.
Returns
bool status of kernel files in the kernel group

Definition at line 1538 of file Spice.cpp.

References Isis::PvlContainer::hasKeyword(), Isis::PvlKeyword::size(), and Isis::PvlObject::Traverse.

◆ HasProjection()

bool Isis::Camera::HasProjection ( )

Checks to see if the camera object has a projection.

Returns
bool Returns true if it has a projection and false if it does not

Definition at line 2668 of file Camera.cpp.

References p_projection.

Referenced by Isis::CubeViewport::CubeViewport().

◆ HasReferenceBand()

bool Isis::Camera::HasReferenceBand ( ) const

Checks to see if the Camera object has a reference band.

Returns
bool Returns true if it has a reference band, and false if it does not

Definition at line 2700 of file Camera.cpp.

References p_referenceBand.

Referenced by Isis::ThemisVisCamera::BandEphemerisTimeOffset(), and Isis::ThemisIrCamera::SetBand().

◆ HasSurfaceIntersection()

bool Isis::Sensor::HasSurfaceIntersection ( ) const
inherited

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.

Returns
bool True if the look direction intersects with the target.

Definition at line 188 of file Sensor.cpp.

References Isis::Spice::target().

Referenced by ComputeAzimuth(), DetectorResolution(), Isis::CSMCamera::DetectorResolution(), Isis::CameraPointInfo::GetPointInfo(), Isis::CSMCamera::LineResolution(), ObliqueDetectorResolution(), Isis::CSMCamera::SampleResolution(), Isis::VimsGroundMap::SetGround(), and SetImageSkyMapProjection().

◆ HighestImageResolution()

double Isis::Camera::HighestImageResolution ( )

Returns the highest/best resolution in the entire image.

Returns
double The highest/best resolution in the entire image

Definition at line 721 of file Camera.cpp.

References GroundRangeResolution(), and p_minres.

Referenced by Isis::GroundGrid::GroundGrid().

◆ HighestObliqueImageResolution()

double Isis::Camera::HighestObliqueImageResolution ( )

Returns the highest/best oblique resolution in the entire image.

Returns
double The highest/best oblique resolution in the entire image

Definition at line 743 of file Camera.cpp.

References GroundRangeResolution(), and p_maxobliqueres.

◆ IgnoreElevationModel()

void Isis::Sensor::IgnoreElevationModel ( bool ignore)
inherited

This allows you to ignore the cube elevation model and use the ellipse.

Parameters
ignoreIndicates whether the elevation model is ignored.

Definition at line 62 of file Sensor.cpp.

References Isis::Spice::target().

Referenced by Isis::StereoTool::calculateElevation(), Isis::ImagePolygon::Create(), and Isis::ImagePolygon::initCube().

◆ IgnoreProjection()

void Isis::Camera::IgnoreProjection ( bool ignore)

Set whether or not the camera should ignore the Projection.

Parameters
ignore

Definition at line 2955 of file Camera.cpp.

References p_ignoreProjection.

Referenced by Isis::VimsGroundMap::Init(), Isis::VimsSkyMap::Init(), Isis::VimsGroundMap::SetGround(), Isis::VimsSkyMap::SetSky(), and Isis::VimsCamera::VimsCamera().

◆ IncidenceAngle()

double Isis::Sensor::IncidenceAngle ( ) const
virtualinherited

Returns the incidence angle in degrees.

This does not use the surface model.

Returns
double Incidence angle, in degrees.

Reimplemented in Isis::CSMCamera.

Definition at line 339 of file Sensor.cpp.

References Isis::Spice::m_uB, and Isis::Spice::target().

Referenced by Isis::PhotometricFunction::compute(), Isis::ImagePolygon::FixPolePoly(), Isis::CameraPointInfo::GetPointInfo(), Isis::InterestOperator::InterestByMeasure(), and Isis::ImagePolygon::SetImage().

◆ InCube()

bool Isis::Camera::InCube ( )

This returns true if the current Sample() or Line() value is outside of the cube (meaning the point must have been extrapolated).

Returns
bool Point was extrapolated

Definition at line 2649 of file Camera.cpp.

References Line(), Lines(), Sample(), and Samples().

Referenced by Isis::MosaicSceneItem::drawImage(), Isis::SmtkMatcher::getLineSample(), Isis::CameraPointInfo::GetPointInfo(), Isis::UniversalGroundMap::SetGround(), Isis::UniversalGroundMap::SetGround(), Isis::UniversalGroundMap::SetUnboundGround(), and Isis::UniversalGroundMap::SetUniversalGround().

◆ init()

void Isis::Spice::init ( Pvl & lab,
bool noTables,
nlohmann::json isd = NULL )
privateinherited

Initialization of Spice object.

Parameters
labPvl labels
noTablesIndicates the use of tables.
Exceptions
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"
History
2011-02-08 Jeannie Walldren - Initialize pointers to null.

Definition at line 154 of file Spice.cpp.

References Isis::SpicePosition::cacheSize(), Isis::NaifStatus::CheckErrors(), Isis::Spice::defaultInit(), Isis::Angle::Degrees, Isis::PvlObject::findObject(), Isis::Spice::getDouble(), Isis::Spice::getInteger(), Isis::PvlObject::hasKeyword(), Isis::PvlContainer::hasKeyword(), Isis::IException::Io, Isis::Target::isSky(), Isis::Distance::Kilometers, Isis::Spice::load(), Isis::SpicePosition::LoadCache(), Isis::SpiceRotation::LoadCache(), Isis::SpiceRotation::LoadTimeCache(), Isis::Spice::m_bodyFrameCode, Isis::Spice::m_bodyRotation, Isis::Spice::m_ckCode, Isis::Spice::m_endTimePadding, Isis::Spice::m_ikCode, Isis::Spice::m_instrumentPosition, Isis::Spice::m_instrumentRotation, Isis::Spice::m_naifKeywords, Isis::Spice::m_sclkCode, Isis::Spice::m_solarLongitude, Isis::Spice::m_spkBodyCode, Isis::Spice::m_spkCode, Isis::Spice::m_startTimePadding, Isis::Spice::m_sunPosition, Isis::Spice::m_target, Isis::Spice::m_usingAle, Isis::Spice::m_usingNaif, Isis::SpicePosition::Memcache2HermiteCache(), Isis::SpiceRotation::MinimizeCache(), Isis::Target::naifBodyCode(), Isis::ShapeModel::name(), Isis::Target::name(), Isis::Target::radii(), Isis::Spice::radii(), Isis::Target::setRadii(), Isis::Target::shape(), Isis::Spice::solarLongitude(), Isis::Spice::SpiceIntType, Isis::toDouble(), Isis::toInt(), Isis::toString(), Isis::PvlObject::Traverse, Isis::IException::Unknown, and Isis::SpiceRotation::Yes.

Referenced by Isis::Spice::Spice(), and Isis::Spice::Spice().

◆ instrumentBodyFixedPosition()

void Isis::Spice::instrumentBodyFixedPosition ( double p[3]) const
virtualinherited

Returns the spacecraft position in body-fixed frame km units.

Parameters
p[]Spacecraft position
See also
setTime()
Exceptions
Isis::iException::Programmer- "You must call SetTime first"

Reimplemented in Isis::CSMCamera.

Definition at line 842 of file Spice.cpp.

References Isis::SpicePosition::Coordinate(), Isis::Spice::m_bodyRotation, Isis::Spice::m_et, Isis::Spice::m_instrumentPosition, Isis::IException::Programmer, and Isis::SpiceRotation::ReferenceVector().

Referenced by Isis::IsisSensor::getState(), Isis::IsisSensor::getState(), Isis::Spice::instrumentPosition(), LocalPhotometricAngles(), Isis::Sensor::PhaseAngle(), and Isis::Sensor::SlantDistance().

◆ instrumentBodyFixedVelocity()

void Isis::Spice::instrumentBodyFixedVelocity ( double v[3]) const
virtualinherited

Returns the spacecraft velocity in body-fixed frame km/sec units.

Parameters
v[]Spacecraft velocity

Definition at line 860 of file Spice.cpp.

References Isis::SpicePosition::Coordinate(), Isis::Spice::m_bodyRotation, Isis::Spice::m_et, Isis::Spice::m_instrumentPosition, Isis::IException::Programmer, Isis::SpiceRotation::ReferenceVector(), and Isis::SpicePosition::Velocity().

◆ instrumentId()

QString Isis::Camera::instrumentId ( )

This method returns the InstrumentId as it appears in the cube.

Returns
QString Returns m_instrumentId

Definition at line 2906 of file Camera.cpp.

References m_instrumentId.

Referenced by Isis::GuiCamera::GuiCamera(), and Isis::RosettaVirtisCamera::RosettaVirtisCamera().

◆ instrumentNameLong()

QString Isis::Camera::instrumentNameLong ( ) const
virtual

This method returns the full instrument name.

Returns
QString

Implements Isis::Sensor.

Reimplemented in Isis::IdealCamera.

Definition at line 2916 of file Camera.cpp.

References m_instrumentNameLong.

Referenced by Isis::GuiCamera::GuiCamera().

◆ instrumentNameShort()

QString Isis::Camera::instrumentNameShort ( ) const
virtual

This method returns the shortened instrument name.

Returns
QString

Implements Isis::Sensor.

Reimplemented in Isis::IdealCamera.

Definition at line 2926 of file Camera.cpp.

References m_instrumentNameShort.

Referenced by Isis::GuiCamera::GuiCamera().

◆ instrumentPosition() [1/2]

◆ instrumentPosition() [2/2]

void Isis::Spice::instrumentPosition ( double p[3]) const
inherited

Returns the spacecraft position in body-fixed frame km units.

Parameters
p[]Spacecraft position
See also
setTime()
Exceptions
Isis::iException::Programmer- "You must call SetTime first"

Definition at line 829 of file Spice.cpp.

References Isis::Spice::instrumentBodyFixedPosition().

Referenced by Isis::CameraGroundMap::GetdXYdPosition(), Isis::CameraPointInfo::GetPointInfo(), and Isis::CameraGroundMap::GetXY().

◆ instrumentRotation()

◆ IntersectsLongitudeDomain()

bool Isis::Camera::IntersectsLongitudeDomain ( Pvl & pvl)

Checks whether the ground range intersects the longitude domain or not.

Parameters
pvlThe pvl file used to set the ground range
Returns
bool Returns true if the range intersects the longitude domain, and false if it does not

Definition at line 1176 of file Camera.cpp.

References GroundRange().

◆ IsBandIndependent()

bool Isis::Camera::IsBandIndependent ( )
virtual

Virtual method that checks if the band is independent.

Returns
bool Returns true if the band is independent, and false if it is not

Reimplemented in Isis::LroWideAngleCamera, Isis::CrismCamera, Isis::MarciCamera, Isis::NewHorizonsLeisaCamera, Isis::ThemisIrCamera, and Isis::ThemisVisCamera.

Definition at line 2679 of file Camera.cpp.

Referenced by Isis::IsisSensor::getState(), GroundRangeResolution(), RaDecRange(), and ringRangeResolution().

◆ isTimeSet()

bool Isis::Spice::isTimeSet ( )
inherited

Returns true if time has been initialized.

Author
2016-10-19 Kristin Berry
Returns
bool true if time has been set

Definition at line 1589 of file Spice.cpp.

References Isis::Spice::m_et.

Referenced by Isis::CameraDetectorMap::SetParent(), and Isis::RollingShutterCameraDetectorMap::SetParent().

◆ isUsingAle()

bool Isis::Spice::isUsingAle ( )
inherited

Definition at line 1638 of file Spice.cpp.

◆ Line()

◆ LineResolution()

double Isis::Camera::LineResolution ( )
virtual

Returns the line resolution at the current position in meters.

Returns
double The line resolution

Reimplemented in Isis::CSMCamera.

Definition at line 660 of file Camera.cpp.

References DetectorResolution(), Isis::CameraDetectorMap::LineScaleFactor(), and p_detectorMap.

Referenced by Isis::CameraPointInfo::GetPointInfo(), and PixelResolution().

◆ Lines()

int Isis::Camera::Lines ( ) const

◆ load()

void Isis::Spice::load ( PvlKeyword & key,
bool noTables )
privateinherited

Loads/furnishes NAIF kernel(s)

Parameters
keyPvlKeyword
noTablesIndicates the use of tables.
Exceptions
Isis::IException::Io- "Spice file does not exist."

Definition at line 486 of file Spice.cpp.

References Isis::NaifStatus::CheckErrors(), Isis::IException::Io, Isis::Spice::m_kernels, and Isis::PvlKeyword::size().

Referenced by Isis::Spice::init().

◆ LoadCache()

void Isis::Camera::LoadCache ( )

This loads the spice cache big enough for this image.

The default cache size is the number of lines in the cube if the ephemeris time changes in the image, one otherwise.

History
2011-02-08 Jeannie Walldren - Removed unused input parameter. Moved calculations of cache size and start/end ephemeris times to their own methods.

Definition at line 2450 of file Camera.cpp.

References Isis::AlphaCube::BetaLines(), Isis::AlphaCube::BetaSamples(), CacheSize(), Isis::Spice::createCache(), FocalLength(), p_alphaCube, p_ignoreProjection, PixelPitch(), PixelResolution(), SetBand(), SetImage(), Isis::Sensor::setTime(), Isis::Sensor::SpacecraftAltitude(), StartEndEphemerisTimes(), and Isis::Spice::target().

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::IdealCamera::IdealCamera(), 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::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::SsiCamera::SsiCamera(), Isis::TgoCassisCamera::TgoCassisCamera(), Isis::ThemisIrCamera::ThemisIrCamera(), Isis::ThemisVisCamera::ThemisVisCamera(), Isis::UvvisCamera::UvvisCamera(), Isis::VikingCamera::VikingCamera(), Isis::VimsCamera::VimsCamera(), and Isis::VoyagerCamera::VoyagerCamera().

◆ LocalPhotometricAngles()

void Isis::Camera::LocalPhotometricAngles ( Angle & phase,
Angle & incidence,
Angle & emission,
bool & success )

Calculates LOCAL photometric angles using the DEM (not ellipsoid).

These calculations are more expensive computationally than Sensor's angle getter methods. Furthermore, this cost is mostly in calculating the local normal vector, which can be done only once for all angles using this method.

Parameters
phaseThe local phase angle to be calculated
incidenceThe local incidence angle to be calculated
emissionThe local emission angle to be calculated
successA boolean to keep track of whether normal is valid

Definition at line 1653 of file Camera.cpp.

References GetLocalNormal(), Isis::Sensor::GetSurfacePoint(), Isis::Spice::instrumentBodyFixedPosition(), Isis::Displacement::kilometers(), Isis::Spice::m_uB, and Isis::Angle::Radians.

Referenced by Isis::PhotometricFunction::compute(), and ObliqueDetectorResolution().

◆ LocalRadius() [1/3]

Distance Isis::Sensor::LocalRadius ( ) const
inherited

◆ LocalRadius() [2/3]

Distance Isis::Sensor::LocalRadius ( double lat,
double lon )
inherited

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.

Parameters
lat
lon
Returns
Distance The distance from the center of the planet to this lat,lon in meters.

Definition at line 303 of file Sensor.cpp.

References Isis::Angle::Degrees, and Isis::Spice::target().

◆ LocalRadius() [3/3]

Distance Isis::Sensor::LocalRadius ( Latitude lat,
Longitude lon )
inherited

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.

Parameters
lat
lon
Returns
Distance The distance from the center of the planet to this lat,lon in meters.

Definition at line 287 of file Sensor.cpp.

References Isis::Spice::target().

◆ LocalSolarTime()

double Isis::Sensor::LocalSolarTime ( )
inherited

Return the local solar time in hours.

Returns
double Local solar time, in hours.

Definition at line 665 of file Sensor.cpp.

References Isis::Spice::subSolarPoint(), and Isis::Sensor::UniversalLongitude().

Referenced by Isis::CameraPointInfo::GetPointInfo().

◆ LookDirection()

void Isis::Sensor::LookDirection ( double v[3]) const
inherited

Returns the look direction in the camera coordinate system.

Parameters
v[]The look vector.

Definition at line 527 of file Sensor.cpp.

References Isis::Spice::instrumentRotation(), and Isis::Sensor::lookDirectionJ2000().

Referenced by Isis::CameraPointInfo::GetPointInfo(), and Isis::PixelFOV::instantaneousFov().

◆ lookDirectionBodyFixed()

vector< double > Isis::Sensor::lookDirectionBodyFixed ( ) const
virtualinherited

Returns the look direction in the body fixed coordinate system.

Returns
vector<double> Look direction in body fixed coordinate system.

Definition at line 539 of file Sensor.cpp.

References Isis::Sensor::m_lookB.

Referenced by Isis::CameraPointInfo::GetPointInfo(), Isis::IsisSensor::getState(), Isis::IsisSensor::getState(), Isis::Sensor::lookDirectionJ2000(), and Isis::Sensor::SetGroundLocal().

◆ lookDirectionJ2000()

vector< double > Isis::Sensor::lookDirectionJ2000 ( ) const
virtualinherited

Returns the look direction in the camera coordinate system.

Returns
vector<double> Look direction in J2000 cooridinate system.

Definition at line 553 of file Sensor.cpp.

References Isis::Spice::bodyRotation(), and Isis::Sensor::lookDirectionBodyFixed().

Referenced by Isis::CameraPointInfo::GetPointInfo(), Isis::IsisSensor::getState(), Isis::IsisSensor::getState(), and Isis::Sensor::LookDirection().

◆ LowestImageResolution()

double Isis::Camera::LowestImageResolution ( )

Returns the lowest/worst resolution in the entire image.

Returns
double The lowest/worst resolution in the image

Definition at line 710 of file Camera.cpp.

References GroundRangeResolution(), and p_maxres.

◆ LowestObliqueImageResolution()

double Isis::Camera::LowestObliqueImageResolution ( )

Returns the lowest/worst oblique resolution in the entire image.

Returns
double The lowest/worst oblique resolution in the image

Definition at line 732 of file Camera.cpp.

References GroundRangeResolution(), and p_minobliqueres.

◆ naifBodyCode()

SpiceInt Isis::Spice::naifBodyCode ( ) const
inherited

This returns the NAIF body code of the target indicated in the labels.

Returns
SpiceInt NAIF body code

Definition at line 948 of file Spice.cpp.

References Isis::Spice::m_target, and Isis::Target::naifBodyCode().

Referenced by SpkCenterId().

◆ naifBodyFrameCode()

SpiceInt Isis::Spice::naifBodyFrameCode ( ) const
inherited

This returns the NAIF body frame code.

It is read from the labels, if it exists. Otherwise, it's calculated by the init() method.

Returns
SpiceInt NAIF body frame code

Definition at line 996 of file Spice.cpp.

References Isis::Spice::m_bodyFrameCode.

◆ naifCkCode()

SpiceInt Isis::Spice::naifCkCode ( ) const
inherited

This returns the NAIF CK code to use when reading from CK kernels.

Returns
SpiceInt NAIF CK code

Definition at line 966 of file Spice.cpp.

References Isis::Spice::m_ckCode.

◆ naifIkCode()

SpiceInt Isis::Spice::naifIkCode ( ) const
inherited

This returns the NAIF IK code to use when reading from instrument kernels.

Returns
SpiceInt NAIF IK code

Definition at line 975 of file Spice.cpp.

References Isis::Spice::m_ikCode.

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(), SetFocalLength(), 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().

◆ naifSclkCode()

SpiceInt Isis::Spice::naifSclkCode ( ) const
inherited

This returns the NAIF SCLK code to use when reading from instrument kernels.

Returns
SpiceInt NAIF SCLK code

Definition at line 985 of file Spice.cpp.

References Isis::Spice::m_sclkCode.

Referenced by Isis::CrismCamera::CrismCamera(), and Isis::Spice::getClockTime().

◆ naifSpkCode()

SpiceInt Isis::Spice::naifSpkCode ( ) const
inherited

This returns the NAIF SPK code to use when reading from SPK kernels.

Returns
SpiceInt NAIF SPK code

Definition at line 957 of file Spice.cpp.

References Isis::Spice::m_spkCode.

Referenced by Isis::DawnVirCamera::readHouseKeeping(), Isis::RosettaVirtisCamera::readHouseKeeping(), Isis::RosettaVirtisCamera::readSCET(), and SpkTargetId().

◆ NorthAzimuth()

double Isis::Camera::NorthAzimuth ( )

Returns the North Azimuth.

Returns
double North Azimuth

Definition at line 1927 of file Camera.cpp.

References ComputeAzimuth(), Isis::IException::Programmer, Isis::Spice::target(), and Isis::Sensor::UniversalLatitude().

Referenced by Isis::CameraPointInfo::GetPointInfo().

◆ ObliqueDetectorResolution()

double Isis::Camera::ObliqueDetectorResolution ( bool useLocal = true)
virtual

This method returns the Oblique Detector Resolution if the Look Vector intersects the target and if the emission angle is greater than or equal to 0, and less than 90 degrees.

Otherwise, it returns Isis::Null. This formula provides an improved estimate to the detector resolution for images near the limb:

\[ \text{Oblique\;\;Detector\;\; Resolution} = \frac{n}{cos(\theta)} \]

The equation is derived two separate ways. A geometric argument is presented in Reference 2, while a matrix algebra based argument is presented in Theorem 2.1 of Reference 1.

Reference 1: J-M Morel and G. Yu, "Asift: A new framework for fully affine invariant image comparison," SIAM Journal on Imaging Sciences 2(2), pp. 438-469, 2009

Reference 2: Handwritten notes by Orrin Thomas which can be found in the Glossary under the entry for Oblique Detector Resolution.

Parameters
useLocalIf true, emission is fetched from LocalPhotometricAngles. Otherwise, emission is fetched from EmissionAngle(). This is an optional parameter that defaults to true, because local emission will give more accurate results.
Returns
double

Reimplemented in Isis::CSMCamera.

Definition at line 583 of file Camera.cpp.

References Isis::DEG2RAD, Isis::Angle::degrees(), DetectorResolution(), Isis::Sensor::EmissionAngle(), Isis::HALFPI, Isis::Sensor::HasSurfaceIntersection(), LocalPhotometricAngles(), and Isis::Null.

Referenced by Isis::CameraPointInfo::GetPointInfo(), ObliqueLineResolution(), and ObliqueSampleResolution().

◆ ObliqueLineResolution()

double Isis::Camera::ObliqueLineResolution ( bool useLocal = true)
virtual

Returns the oblique line resolution at the current position in meters.

This provides a more accurate estimate of the line resolution at oblique angles.

Returns
double The line resolution

Reimplemented in Isis::CSMCamera.

Definition at line 672 of file Camera.cpp.

References Isis::CameraDetectorMap::LineScaleFactor(), ObliqueDetectorResolution(), and p_detectorMap.

Referenced by Isis::CameraPointInfo::GetPointInfo(), and ObliquePixelResolution().

◆ ObliquePixelResolution()

double Isis::Camera::ObliquePixelResolution ( bool useLocal = true)
virtual

Returns the oblique pixel resolution at the current position in meters/pixel.

This provides a more accurate estimate of the pixel resolution at oblique angles.

Returns
double The pixel resolution

Definition at line 696 of file Camera.cpp.

References Isis::Null, ObliqueLineResolution(), and ObliqueSampleResolution().

Referenced by Isis::CameraPointInfo::GetPointInfo(), and GroundRangeResolution().

◆ ObliqueSampleResolution()

double Isis::Camera::ObliqueSampleResolution ( bool useLocal = true)
virtual

Returns the oblique sample resolution at the current position in m.

This gives a more accurate estimate of the sample resolution at oblique angles.

Returns
double The sample resolution

Reimplemented in Isis::CSMCamera.

Definition at line 650 of file Camera.cpp.

References ObliqueDetectorResolution(), p_detectorMap, and Isis::CameraDetectorMap::SampleScaleFactor().

Referenced by Isis::CameraPointInfo::GetPointInfo(), and ObliquePixelResolution().

◆ OffNadirAngle()

double Isis::Camera::OffNadirAngle ( )

Return the off nadir angle in degrees.

Returns
double Off Nadir Angle

Definition at line 2229 of file Camera.cpp.

References Isis::Sensor::Coordinate(), Isis::Sensor::EmissionAngle(), Isis::Spice::instrumentPosition(), and Isis::RAD2DEG.

Referenced by Isis::CameraPointInfo::GetPointInfo().

◆ ParentLines()

◆ ParentSamples()

int Isis::Camera::ParentSamples ( ) const

◆ PhaseAngle()

double Isis::Sensor::PhaseAngle ( ) const
virtualinherited

Returns the phase angle in degrees.

This does not use the surface model.

Returns
double Phase angle, in degrees.

Reimplemented in Isis::CSMCamera.

Definition at line 314 of file Sensor.cpp.

References Isis::Sensor::Coordinate(), Isis::Spice::instrumentBodyFixedPosition(), Isis::Spice::m_uB, and Isis::RAD2DEG.

Referenced by Isis::PhotometricFunction::compute(), and Isis::CameraPointInfo::GetPointInfo().

◆ PixelIfovOffsets()

QList< QPointF > Isis::Camera::PixelIfovOffsets ( )
virtual

Returns the pixel ifov offsets from center of pixel, which defaults to the (pixel pitch * summing mode ) / 2.

If an instrument has a non-square ifov, it must implement this method to return the offsets from the center of the pixel.

Returns
QList<QPointF> A list of offsets

Reimplemented from Isis::Sensor.

Reimplemented in Isis::CSMCamera, Isis::VimsCamera, and Isis::HayabusaNirsCamera.

Definition at line 2785 of file Camera.cpp.

References DetectorMap(), and PixelPitch().

Referenced by Isis::PixelFOV::instantaneousFov().

◆ PixelPitch()

◆ PixelResolution()

double Isis::Camera::PixelResolution ( )
virtual

Returns the pixel resolution at the current position in meters/pixel.

Returns
double The pixel resolution

Definition at line 681 of file Camera.cpp.

References LineResolution(), Isis::Null, and SampleResolution().

Referenced by ComputeAzimuth(), GroundRangeResolution(), Isis::InterestOperator::InterestByMeasure(), LoadCache(), Isis::ControlNetValidMeasure::MetersFromEdge(), Isis::MiniRF::MiniRF(), resolution(), Isis::UniversalGroundMap::Resolution(), and ringRangeResolution().

◆ RaDecRange()

bool Isis::Camera::RaDecRange ( double & minra,
double & maxra,
double & mindec,
double & maxdec )

Computes the RaDec range.

Parameters
minraMinimum right ascension value
maxraMaximum right ascension value
mindecMinimum declination value
maxdecMaximum declination value
Returns
bool Returns true if the range computation was successful and false if it was not

Definition at line 1741 of file Camera.cpp.

References Band(), Isis::Sensor::Declination(), IsBandIndependent(), Line(), p_bands, p_lines, p_maxdec, p_maxra, p_maxra180, p_mindec, p_minra, p_minra180, p_pointComputed, p_raDecRangeComputed, p_samples, Isis::Sensor::RightAscension(), Sample(), SetBand(), SetImage(), and SetRightAscensionDeclination().

◆ RaDecResolution()

double Isis::Camera::RaDecResolution ( )

Returns the RaDec resolution.

Returns
double The resutant RaDec resolution

Definition at line 1883 of file Camera.cpp.

References Band(), Isis::Sensor::Declination(), Line(), p_lines, p_pointComputed, p_samples, Isis::Sensor::RightAscension(), Sample(), SetBand(), and SetImage().

Referenced by CelestialNorthClockAngle(), Isis::CSMCamera::CelestialNorthClockAngle(), and Isis::FindTool::distancePerPixel().

◆ radii()

void Isis::Spice::radii ( Distance r[3]) const
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.

Parameters
r[]Radii of the target in kilometers

Definition at line 937 of file Spice.cpp.

References Isis::Spice::m_target, and Isis::Target::radii().

Referenced by BasicMapping(), Isis::CameraPointInfo::GetPointInfo(), GroundRange(), Isis::VimsGroundMap::Init(), Isis::Spice::init(), Isis::MiniRF::MiniRF(), Isis::CSMCamera::setTarget(), Isis::Spice::subSolarPoint(), and Isis::Spice::subSpacecraftPoint().

◆ RawFocalPlanetoImage()

◆ readStoredValue()

QVariant Isis::Spice::readStoredValue ( QString key,
SpiceValueType type,
int index )
protectedinherited

Definition at line 1232 of file Spice.cpp.

◆ readValue()

QVariant Isis::Spice::readValue ( QString key,
SpiceValueType type,
int index = 0 )
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.

Parameters
keyThe naif keyword,value name
typeThe naif value's primitive type
indexThe index into the naif keyword array to read

Definition at line 1100 of file Spice.cpp.

References Isis::NaifStatus::CheckErrors(), Isis::IException::Io, Isis::Spice::m_usingAle, Isis::Spice::m_usingNaif, Isis::Spice::SpiceDoubleType, Isis::Spice::SpiceIntType, Isis::Spice::SpiceStringType, and Isis::IException::Unknown.

Referenced by Isis::Spice::getDouble(), Isis::Spice::getInteger(), Isis::Spice::getString(), and Isis::IdealCamera::IdealCamera().

◆ ReferenceBand()

int Isis::Camera::ReferenceBand ( ) const

Returns the reference band.

Returns
int Reference Band

Definition at line 2689 of file Camera.cpp.

References p_referenceBand.

Referenced by Isis::ThemisVisCamera::BandEphemerisTimeOffset(), and Isis::ThemisIrCamera::SetBand().

◆ resolution()

double Isis::Camera::resolution ( )
virtual

Returns the resolution of the camera.

Returns
double pixel resolution

Reimplemented from Isis::Sensor.

Definition at line 2750 of file Camera.cpp.

References PixelResolution().

◆ RightAscension()

double Isis::Sensor::RightAscension ( )
virtualinherited

Returns the right ascension angle (sky longitude).

Returns
double The angle of right ascension, in degrees.

Reimplemented in Isis::CSMCamera.

Definition at line 565 of file Sensor.cpp.

References Isis::Sensor::computeRaDec(), Isis::Sensor::m_newLookB, and Isis::Sensor::m_ra.

Referenced by CelestialNorthClockAngle(), Isis::CameraPointInfo::GetPointInfo(), Isis::VimsSkyMap::Init(), RaDecRange(), RaDecResolution(), and RawFocalPlanetoImage().

◆ ringRange()

bool Isis::Camera::ringRange ( double & minRingRadius,
double & maxRingRadius,
double & minRingLongitude,
double & maxRingLongitude,
Pvl & pvl )

Analogous to the above Ground Range method.

Computes Range on the ring plane

Parameters
minRingRadiusThe minimum ring radius
maxRingRadiusThe maximum ring radius
minRingLongitudeThe minimum ring longitude
maxRingLongitudeThe maximum ring longitude
pvlThe pvl file used for ring range calculations
Returns
bool Returns true if it crosses the longitude domain boundary and false if it does not

Definition at line 1297 of file Camera.cpp.

References p_maxRingLongitude, p_maxRingLongitude180, p_maxRingRadius, p_minRingLongitude, p_minRingLongitude180, p_minRingRadius, ringRangeResolution(), and Isis::PvlObject::Traverse.

◆ ringRangeResolution()

◆ Sample()

◆ SampleResolution()

double Isis::Camera::SampleResolution ( )
virtual

Returns the sample resolution at the current position in meters.

Returns
double The sample resolution

Reimplemented in Isis::CSMCamera.

Definition at line 640 of file Camera.cpp.

References DetectorResolution(), p_detectorMap, and Isis::CameraDetectorMap::SampleScaleFactor().

Referenced by Isis::CameraPointInfo::GetPointInfo(), and PixelResolution().

◆ Samples()

◆ SetBand()

◆ SetDetectorMap()

void Isis::Camera::SetDetectorMap ( CameraDetectorMap * map)

Sets the Detector Map.

This object will take ownership of the detector map pointer.

Parameters
*mapPointer to a CameraDetectorMap object

Definition at line 2402 of file Camera.cpp.

References p_detectorMap.

Referenced by Isis::CameraDetectorMap::CameraDetectorMap().

◆ SetDistortionMap()

void Isis::Camera::SetDistortionMap ( CameraDistortionMap * map,
bool deleteExisting = true )

Sets the Distortion Map.

This object will take ownership of the distortion map pointer.

Parameters
*mapPointer to a CameraDistortionMap object

Definition at line 2372 of file Camera.cpp.

References p_distortionMap.

Referenced by Isis::CameraDistortionMap::CameraDistortionMap(), and Isis::TgoCassisCamera::TgoCassisCamera().

◆ SetFocalLength() [1/2]

void Isis::Camera::SetFocalLength ( )
protected

Reads the focal length from the instrument kernel.

Definition at line 1422 of file Camera.cpp.

References Isis::Spice::getDouble(), Isis::Spice::naifIkCode(), SetFocalLength(), and Isis::toString().

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::IdealCamera::IdealCamera(), 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::LroWideAngleCamera::SetBand(), SetFocalLength(), 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().

◆ SetFocalLength() [2/2]

void Isis::Camera::SetFocalLength ( double v)
protected

Sets the focal length.

Parameters
vFocal Length

Definition at line 3044 of file Camera.cpp.

References p_focalLength.

Referenced by Isis::RadarSlantRangeMap::SetFocalPlane().

◆ SetFocalPlaneMap()

void Isis::Camera::SetFocalPlaneMap ( CameraFocalPlaneMap * map)

Sets the Focal Plane Map.

This object will take ownership of the focal plane map pointer.

Parameters
*mapPointer to a CameraFocalPlaneMap object

Definition at line 2387 of file Camera.cpp.

References p_focalPlaneMap.

Referenced by Isis::CameraFocalPlaneMap::CameraFocalPlaneMap(), and Isis::CameraFocalPlaneMap::Init().

◆ SetGeometricTilingHint()

void Isis::Camera::SetGeometricTilingHint ( int startSize = 128,
int endSize = 8 )
protected

This method sets the best geometric tiling size for projecting from this camera model.

This is used by cam2map/ProcessRubberSheet. When cubes are projected, an attempt is made to use linear equations to take large, square chunks of data at a time to cull the amount of SetUniversalGround(...) calls necessary to project a cube. If the chunk of data fails to be linear, then it will be split up into 4 corners and each of the new chunks (corners) are reconsidered up until endSize is reached - the endsize size will be considered, it is inclusive. The startSize must be a power of 2 greater than 2, and the endSize must be a power of 2 equal to or less than the start size but greater than 2. If both the startSize and endSize are set to 2 then no geometric tiling will be enabled.

Parameters
startSizeThe tile size to start with; default 128
endSizeThe tile size to give up at; default 8

Definition at line 2584 of file Camera.cpp.

References p_geometricTilingEndSize, p_geometricTilingStartSize, and Isis::IException::Programmer.

Referenced by Camera(), Isis::LroWideAngleCamera::LroWideAngleCamera(), and Isis::MarciCamera::MarciCamera().

◆ SetGround() [1/3]

bool Isis::Camera::SetGround ( const SurfacePoint & surfacePt)
virtual

Sets the lat/lon/radius values to get the sample/line values.

Parameters
surfacePtThe point used for calculation
Returns
bool Returns true if the Universal Ground was set successfully and false if it was not

Reimplemented in Isis::CSMCamera.

Definition at line 433 of file Camera.cpp.

References Isis::ShapeModel::clearSurfacePoint(), p_groundMap, RawFocalPlanetoImage(), Isis::CameraGroundMap::SetGround(), and Isis::Spice::target().

◆ SetGround() [2/3]

bool Isis::Sensor::SetGround ( const SurfacePoint & surfacePt,
bool backCheck = true )
inherited

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.

Parameters
backCheckIf 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.
Returns
bool
History
2017-03-23 Kris Becker - Added support for occlusion test

Definition at line 447 of file Sensor.cpp.

References Isis::Spice::bodyRotation(), Isis::ShapeModel::clearSurfacePoint(), Isis::Sensor::Coordinate(), Isis::Spice::instrumentPosition(), Isis::Sensor::SetGroundLocal(), and Isis::Spice::target().

◆ SetGround() [3/3]

bool Isis::Camera::SetGround ( Latitude latitude,
Longitude longitude )
virtual

Sets the lat/lon values to get the sample/line values.

Parameters
latitudeLatitude coordinate of the point
longitudeLongitude coordinate of the point
Returns
bool Returns true if the Universal Ground was set successfully and false if it was not

Reimplemented in Isis::CSMCamera.

Definition at line 403 of file Camera.cpp.

References Isis::Angle::Degrees, Isis::Distance::isValid(), Isis::Distance::Kilometers, Isis::Sensor::LocalRadius(), Isis::ShapeModel::name(), SetGround(), and Isis::Spice::target().

Referenced by Isis::LidarControlPoint::ComputeResiduals(), Isis::IsisSensor::getState(), GroundRangeResolution(), ringRangeResolution(), Isis::UniversalGroundMap::SetGround(), Isis::UniversalGroundMap::SetGround(), SetGround(), SetImageMapProjection(), and Isis::UniversalGroundMap::SetUnboundGround().

◆ SetGroundLocal()

bool Isis::Sensor::SetGroundLocal ( bool backCheck)
privateinherited

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.

Parameters
backCheckIf 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.
Returns
bool True if the look direction intersects the target.
History
2017-03-23 Kris Becker - Added formal occlusion callback

Definition at line 479 of file Sensor.cpp.

References Isis::Spice::bodyRotation(), Isis::ShapeModel::clearSurfacePoint(), Isis::Sensor::Coordinate(), Isis::ShapeModel::hasIntersection(), Isis::Spice::instrumentPosition(), Isis::ShapeModel::isVisibleFrom(), Isis::Sensor::lookDirectionBodyFixed(), Isis::Sensor::m_lookB, Isis::Sensor::m_newLookB, Isis::ShapeModel::setHasIntersection(), Isis::ShapeModel::surfaceIntersection(), and Isis::Spice::target().

Referenced by Isis::Sensor::SetGround(), Isis::Sensor::SetUniversalGround(), and Isis::Sensor::SetUniversalGround().

◆ SetGroundMap()

void Isis::Camera::SetGroundMap ( CameraGroundMap * map)

Sets the Ground Map.

This object will take ownership of the ground map pointer.

Parameters
*mapPointer to a CameraGroundMap object

Definition at line 2417 of file Camera.cpp.

References p_groundMap.

Referenced by Isis::CameraGroundMap::CameraGroundMap().

◆ SetImage() [1/2]

bool Isis::Camera::SetImage ( const double sample,
const double line )
virtual

Sets the sample/line values of the image to get the lat/lon values.

Parameters
sampleSample coordinate of the cube.
lineLine coordinate of the cube.
Returns
bool Returns True if the image was set successfully and False if it was not.

Reimplemented in Isis::CSMCamera.

Definition at line 156 of file Camera.cpp.

References Isis::AlphaCube::AlphaLine(), Isis::AlphaCube::AlphaSample(), Isis::ShapeModel::clearSurfacePoint(), Isis::CameraDetectorMap::DetectorLine(), Isis::CameraDetectorMap::DetectorSample(), Isis::CameraFocalPlaneMap::FocalPlaneX(), Isis::CameraFocalPlaneMap::FocalPlaneY(), Isis::Projection::IsSky(), p_alphaCube, p_childLine, p_childSample, p_detectorMap, p_distortionMap, p_focalPlaneMap, p_groundMap, p_ignoreProjection, p_pointComputed, p_projection, Isis::CameraFocalPlaneMap::SetDetector(), Isis::CameraGroundMap::SetFocalPlane(), Isis::CameraDistortionMap::SetFocalPlane(), SetImageMapProjection(), SetImageSkyMapProjection(), Isis::CameraDetectorMap::SetParent(), Isis::Spice::target(), Isis::CameraDistortionMap::UndistortedFocalPlaneX(), Isis::CameraDistortionMap::UndistortedFocalPlaneY(), and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().

Referenced by CelestialNorthClockAngle(), Isis::PhotometricFunction::compute(), ComputeAzimuth(), Isis::QnetPointDistanceFilter::filter(), Isis::SmtkMatcher::getLatLon(), GetLocalNormal(), Isis::IsisSensor::getState(), Isis::IsisSensor::getState(), GroundRangeResolution(), Isis::VimsGroundMap::Init(), Isis::VimsSkyMap::Init(), Isis::InterestOperator::InterestByMeasure(), Isis::PixelFOV::latLonVertices(), LoadCache(), Isis::ControlNetValidMeasure::MetersFromEdge(), Isis::ControlNetFilter::PointLatLonFilter(), RaDecRange(), RaDecResolution(), ringRangeResolution(), Isis::CameraPointInfo::SetCenter(), Isis::VimsGroundMap::SetGround(), Isis::BundleMeasure::setImage(), Isis::CameraPointInfo::SetImage(), Isis::UniversalGroundMap::SetImage(), Isis::CameraPointInfo::SetLine(), Isis::CameraPointInfo::SetSample(), Isis::VimsSkyMap::SetSky(), StartEndEphemerisTimes(), and Isis::VimsCamera::VimsCamera().

◆ SetImage() [2/2]

bool Isis::Camera::SetImage ( const double sample,
const double line,
const double deltaT )
virtual

Sets the sample/line values of the image to get the lat/lon values with a time offset of deltaT.

Warning: The deltaT parameter was added specifically for pixel2map to use for the Dawn VIR camera. It is used to adjust the pointing to its location at specific times like the times at the beginning, middle, and end of exposure for a specific pixel, when the correct deltaT can be determined to achieve these results.

Do not use this verstion of SetImage with a deltaT unless you understand exactly what this does.

Parameters
sampleSample coordinate of the cube.
lineLine coordinate of the cube.
deltaTseconds from the center exposure time
Returns
bool Returns True if the image was set successfully and False if it was not.

Definition at line 230 of file Camera.cpp.

References Isis::AlphaCube::AlphaLine(), Isis::AlphaCube::AlphaSample(), Isis::ShapeModel::clearSurfacePoint(), Isis::CameraDetectorMap::DetectorLine(), Isis::CameraDetectorMap::DetectorSample(), Isis::CameraFocalPlaneMap::FocalPlaneX(), Isis::CameraFocalPlaneMap::FocalPlaneY(), Isis::Projection::IsSky(), p_alphaCube, p_childLine, p_childSample, p_detectorMap, p_distortionMap, p_focalPlaneMap, p_groundMap, p_ignoreProjection, p_pointComputed, p_projection, Isis::CameraFocalPlaneMap::SetDetector(), Isis::CameraGroundMap::SetFocalPlane(), Isis::CameraDistortionMap::SetFocalPlane(), SetImageMapProjection(), SetImageSkyMapProjection(), Isis::CameraDetectorMap::SetParent(), Isis::Spice::target(), Isis::CameraDistortionMap::UndistortedFocalPlaneX(), Isis::CameraDistortionMap::UndistortedFocalPlaneY(), and Isis::CameraDistortionMap::UndistortedFocalPlaneZ().

◆ SetImageMapProjection()

bool Isis::Camera::SetImageMapProjection ( const double sample,
const double line,
ShapeModel * shape )
private

Sets the sample/line values of the image to get the lat/lon values for a Map Projected image.

Parameters
sampleSample coordinate of the cube
lineLine coordinate of the cube
shapeshape of the target
Returns
bool Returns True if the image was set successfully and False if it was not.

Definition at line 296 of file Camera.cpp.

References Isis::ShapeModel::clearSurfacePoint(), Isis::Angle::Degrees, Isis::Sensor::LocalRadius(), Isis::Distance::Meters, Isis::ShapeModel::name(), p_childLine, p_childSample, p_projection, SetGround(), Isis::ShapeModel::setHasIntersection(), and Isis::Projection::SetWorld().

Referenced by SetImage(), and SetImage().

◆ SetImageSkyMapProjection()

bool Isis::Camera::SetImageSkyMapProjection ( const double sample,
const double line,
ShapeModel * shape )
private

Sets the sample/line values of the image to get the lat/lon values for a Skymap Projected image.

Parameters
sampleSample coordinate of the cube
lineLine coordinate of the cube
shapeshape of the target
Returns
bool Returns True if the image was set successfully and False if it was not.

Definition at line 357 of file Camera.cpp.

References Isis::ShapeModel::clearSurfacePoint(), Isis::Sensor::HasSurfaceIntersection(), p_childLine, p_childSample, p_projection, and SetRightAscensionDeclination().

Referenced by SetImage(), and SetImage().

◆ SetLookDirection()

bool Isis::Sensor::SetLookDirection ( const double v[3])
inherited

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.

Parameters
v[]A look vector in camera coordinates. For example, (0,0,1) is usually the look direction out of the boresight of a camera.
Returns
bool Indicates whether the given look direction intersects the target.
History

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.

History
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.

Definition at line 143 of file Sensor.cpp.

References Isis::Spice::bodyRotation(), Isis::Sensor::Coordinate(), Isis::Spice::instrumentPosition(), Isis::Spice::instrumentRotation(), Isis::Sensor::m_lookB, Isis::Sensor::m_newLookB, and Isis::Spice::target().

Referenced by Isis::PixelFOV::instantaneousFov(), Isis::CameraGroundMap::SetFocalPlane(), Isis::CameraSkyMap::SetFocalPlane(), Isis::VimsGroundMap::SetFocalPlane(), Isis::VimsSkyMap::SetFocalPlane(), and Isis::Sensor::SetRightAscensionDeclination().

◆ SetPixelPitch() [1/2]

void Isis::Camera::SetPixelPitch ( )
protected

Reads the Pixel Pitch from the instrument kernel.

Definition at line 1429 of file Camera.cpp.

References Isis::Spice::getDouble(), Isis::Spice::naifIkCode(), SetPixelPitch(), and Isis::toString().

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::IdealCamera::IdealCamera(), 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(), 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().

◆ SetPixelPitch() [2/2]

void Isis::Camera::SetPixelPitch ( double v)
protected

Sets the pixel pitch.

Parameters
vPixel Pitch

Definition at line 3053 of file Camera.cpp.

References p_pixelPitch.

◆ SetRightAscensionDeclination()

◆ SetSkyMap()

void Isis::Camera::SetSkyMap ( CameraSkyMap * map)

Sets the Sky Map.

This object will take ownership of the sky map pointer.

Parameters
*mapPointer to a CameraSkyMap object

Definition at line 2431 of file Camera.cpp.

References p_skyMap.

Referenced by Isis::CameraSkyMap::CameraSkyMap(), and Isis::CSMSkyMap::CSMSkyMap().

◆ setTime()

void Isis::Sensor::setTime ( const iTime & time)
virtualinherited

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. (Read NAIF documentation for a detailed description of ephemeris time.)

Parameters
timeEphemeris time.

Reimplemented from Isis::Spice.

Definition at line 99 of file Sensor.cpp.

References Isis::Spice::setTime(), Isis::Spice::target(), and Isis::Spice::time().

Referenced by Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Isis::ClipperNacRollingShutterCamera::ClipperNacRollingShutterCamera(), Isis::ClipperPushBroomCamera::ClipperPushBroomCamera(), Isis::ClipperWacFcCamera::ClipperWacFcCamera(), Isis::CrismCamera::CrismCamera(), Isis::DawnFcCamera::DawnFcCamera(), Isis::DawnVirCamera::DawnVirCamera(), Isis::HayabusaAmicaCamera::HayabusaAmicaCamera(), Isis::HayabusaNirsCamera::HayabusaNirsCamera(), Isis::HiresCamera::HiresCamera(), Isis::Hyb2OncCamera::Hyb2OncCamera(), Isis::IdealCamera::IdealCamera(), Isis::VimsGroundMap::Init(), Isis::VimsSkyMap::Init(), Isis::IssNACamera::IssNACamera(), Isis::IssWACamera::IssWACamera(), Isis::JunoCamera::JunoCamera(), Isis::KaguyaMiCamera::KaguyaMiCamera(), Isis::KaguyaTcCamera::KaguyaTcCamera(), LoadCache(), Isis::LoHighCamera::LoHighCamera(), Isis::LoMediumCamera::LoMediumCamera(), Isis::LroNarrowAngleCamera::LroNarrowAngleCamera(), Isis::LwirCamera::LwirCamera(), Isis::Mariner10Camera::Mariner10Camera(), Isis::MdisCamera::MdisCamera(), Isis::MexHrscSrcCamera::MexHrscSrcCamera(), Isis::MiniRF::MiniRF(), Isis::MsiCamera::MsiCamera(), Isis::NewHorizonsLorriCamera::NewHorizonsLorriCamera(), Isis::NirCamera::NirCamera(), Isis::OsirisRexOcamsCamera::OsirisRexOcamsCamera(), Isis::RosettaOsirisCamera::RosettaOsirisCamera(), Isis::RosettaVirtisCamera::RosettaVirtisCamera(), Isis::ThemisVisCamera::SetBand(), Isis::NewHorizonsMvicFrameCamera::SetBand(), Isis::VimsGroundMap::SetFocalPlane(), Isis::VimsSkyMap::SetFocalPlane(), Isis::PushFrameCameraDetectorMap::SetFramelet(), Isis::ApolloPanoramicDetectorMap::SetParent(), Isis::RadarPulseMap::SetParent(), Isis::CameraDetectorMap::SetParent(), Isis::LineScanCameraDetectorMap::SetParent(), Isis::RollingShutterCameraDetectorMap::SetParent(), Isis::VariableLineScanCameraDetectorMap::SetParent(), Isis::SsiCamera::SsiCamera(), Isis::TgoCassisCamera::TgoCassisCamera(), Isis::UvvisCamera::UvvisCamera(), Isis::VikingCamera::VikingCamera(), and Isis::VoyagerCamera::VoyagerCamera().

◆ SetUniversalGround() [1/4]

bool Isis::Camera::SetUniversalGround ( const double latitude,
const double longitude )
virtual

Sets the lat/lon values to get the sample/line values.

Parameters
latitudeLatitude coordinate of the point
longitudeLongitude coordinate of the point
Returns
bool Returns true if the Universal Ground was set successfully and false if it was not

Reimplemented in Isis::CSMCamera.

Definition at line 382 of file Camera.cpp.

References Isis::Angle::Degrees, p_groundMap, RawFocalPlanetoImage(), Isis::CameraGroundMap::SetGround(), and Isis::Spice::target().

Referenced by ComputeAzimuth(), Isis::SmtkMatcher::getLineSample(), Isis::CameraPointInfo::SetGround(), and Isis::UniversalGroundMap::SetUniversalGround().

◆ SetUniversalGround() [2/4]

bool Isis::Sensor::SetUniversalGround ( const double latitude,
const double longitude,
bool backCheck = true )
inherited

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.

Parameters
latitudePlanetocentric latitude.
longitudePositive east longitude.
backCheckIf 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.
Returns
bool True if the look direction intersects the target.
History
2017-03-23 Kris Becker - Added support for occlusion tests

Definition at line 363 of file Sensor.cpp.

References Isis::Spice::bodyRotation(), Isis::ShapeModel::clearSurfacePoint(), Isis::Sensor::Coordinate(), Isis::Angle::Degrees, Isis::Spice::instrumentPosition(), Isis::Sensor::SetGroundLocal(), and Isis::Spice::target().

◆ SetUniversalGround() [3/4]

bool Isis::Camera::SetUniversalGround ( const double latitude,
const double longitude,
const double radius )
virtual

Sets the lat/lon/radius values to get the sample/line values.

Parameters
latitudeLatitude coordinate of the cube
longitudeLongitude coordinate of the cube
radiusRadius coordinate of the cube
Returns
bool Returns True if the Universal Ground was set successfully and False if it was not

Reimplemented in Isis::CSMCamera.

Definition at line 538 of file Camera.cpp.

References Isis::Angle::Degrees, Isis::Distance::Meters, p_groundMap, RawFocalPlanetoImage(), Isis::CameraGroundMap::SetGround(), and Isis::Spice::target().

◆ SetUniversalGround() [4/4]

bool Isis::Sensor::SetUniversalGround ( const double latitude,
const double longitude,
const double radius,
bool backCheck = true )
inherited

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.

Parameters
latitudePlanetocentric latitude in degrees.
longitudePositive east longitude in degrees.
radiusRadius in meters.
backCheckIf 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.
Returns
bool True if the look direction intersects the target.
History
2017-03-23 Kris Becker - Added support for occlusion test

Definition at line 405 of file Sensor.cpp.

References Isis::Spice::bodyRotation(), Isis::ShapeModel::clearSurfacePoint(), Isis::Sensor::Coordinate(), Isis::Angle::Degrees, Isis::Spice::instrumentPosition(), Isis::Distance::Meters, Isis::Sensor::SetGroundLocal(), and Isis::Spice::target().

◆ SkyMap()

CameraSkyMap * Isis::Camera::SkyMap ( )

Returns a pointer to the CameraSkyMap object.

Returns
CameraSkyMap*

Definition at line 2896 of file Camera.cpp.

References p_skyMap.

Referenced by Isis::LineScanCamera::SkyMap(), and Isis::VimsCamera::VimsCamera().

◆ SlantDistance()

double Isis::Sensor::SlantDistance ( ) const
virtualinherited

Return the distance between the spacecraft and surface point in kmv.

Returns
double Slant distance.

Reimplemented in Isis::CSMCamera.

Definition at line 646 of file Sensor.cpp.

References Isis::Spice::instrumentBodyFixedPosition(), and Isis::Spice::target().

Referenced by Isis::PushFrameCameraGroundMap::FindSpacecraftDistance(), and Isis::CameraPointInfo::GetPointInfo().

◆ Slope()

void Isis::Camera::Slope ( double & slope,
bool & success )

Calculates the slope at the current point by computing the angle between the local surface normal and the ellipsoid surface normal.

If there is a failure during the process, such as there not being an intersection, then success will be false and slope will not be modified.

Parameters
[out]slopeThe slope angle in degrees
[out]successIf the slope was successfully calculated

Definition at line 1706 of file Camera.cpp.

References GetLocalNormal(), Isis::RAD2DEG, and Isis::Spice::target().

◆ SolarDistance()

double Isis::Sensor::SolarDistance ( ) const
virtualinherited

Returns the distance between the sun and surface point in AU.

Returns
double Solar distance.

Reimplemented in Isis::CSMCamera.

Definition at line 682 of file Sensor.cpp.

References Isis::Displacement::kilometers(), Isis::Spice::sunPosition(), and Isis::Spice::target().

Referenced by Isis::CameraPointInfo::GetPointInfo().

◆ solarLongitude()

Longitude Isis::Spice::solarLongitude ( )
virtualinherited

Returns the solar longitude.

Returns
double The Solar Longitude

Definition at line 1521 of file Spice.cpp.

References Isis::Spice::computeSolarLongitude(), Isis::Spice::m_et, and Isis::Spice::m_solarLongitude.

Referenced by Isis::CameraPointInfo::GetPointInfo(), and Isis::Spice::init().

◆ SpacecraftAltitude()

double Isis::Sensor::SpacecraftAltitude ( )
inherited

Returns the distance from the spacecraft to the subspacecraft point in km.

It uses the ellipsoid, not the shape model.

Returns
double Spacecraft altitude.

Definition at line 703 of file Sensor.cpp.

References Isis::Spice::instrumentPosition(), Isis::Sensor::LocalRadius(), and Isis::Spice::subSpacecraftPoint().

Referenced by Isis::CrismCamera::CrismCamera(), Isis::CameraPointInfo::GetPointInfo(), LoadCache(), and Isis::MiniRF::MiniRF().

◆ SpacecraftAzimuth()

double Isis::Camera::SpacecraftAzimuth ( )

Return the Spacecraft Azimuth.

Returns
double Spacecraft Azimuth
Todo
Get appropriate radius at the subscraft point

Definition at line 1968 of file Camera.cpp.

References ComputeAzimuth(), and Isis::Spice::subSpacecraftPoint().

Referenced by Isis::CameraPointInfo::GetPointInfo().

◆ spacecraftNameLong()

QString Isis::Camera::spacecraftNameLong ( ) const
virtual

This method returns the full spacecraft name.

Returns
QString

Implements Isis::Sensor.

Reimplemented in Isis::IdealCamera.

Definition at line 2936 of file Camera.cpp.

References m_spacecraftNameLong.

Referenced by Isis::GuiCamera::GuiCamera().

◆ spacecraftNameShort()

QString Isis::Camera::spacecraftNameShort ( ) const
virtual

This method returns the shortened spacecraft name.

Returns
QString

Implements Isis::Sensor.

Reimplemented in Isis::IdealCamera.

Definition at line 2946 of file Camera.cpp.

References m_spacecraftNameShort.

Referenced by Isis::GuiCamera::GuiCamera().

◆ SpacecraftSurfaceVector()

void Isis::Sensor::SpacecraftSurfaceVector ( double scSurfaceVector[3]) const
inherited

Sets the vector between the spacecraft and surface point in body-fixed.

Parameters
scSurfaceVectorThe direction vector from the observer to the surface intersection.
Author
2011-12-20 Tracie Sucharski

Definition at line 634 of file Sensor.cpp.

References Isis::Sensor::m_lookB.

◆ SpkCenterId()

int Isis::Camera::SpkCenterId ( ) const
virtual

Provides the center of motion body for SPK NAIF kernel.

This virtual method may need to be implemented in each camera model providing the NAIF integer code for the center of motion of the object identified by the SpkTargetId() code. This is typically the targeted body for a particular image observation, but may be unique depending upon the design of the SPK mission kernels.

This value can be easily determined by using the NAIF spacit application that sumarizes binary kernels on the SPK kernel used for a particular instrument on a spacecraft. spacit will additionally require a leap seconds kernel (LSK). For example, the output of the MESSENGER SPK camera supporting the MDIS camera below indicates it is Venus.

Segment ID : msgr_20050903_20061125_recon002.nio
Target Body : Body -236, MESSENGER
Center Body : Body 2, VENUS BARYCENTER
Reference frame: Frame 1, J2000
SPK Data Type : Type 1
Description : Modified Difference Array
UTC Start Time : 2006 OCT 16 19:25:41.111
UTC Stop Time : 2006 OCT 31 22:14:24.040
ET Start Time : 2006 OCT 16 19:26:46.293
ET Stop time : 2006 OCT 31 22:15:29.222
virtual iTime time() const
Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions.
Definition Spice.cpp:891
This class is used to create and store valid Isis targets.
Definition Target.h:63

The SpkCenterId value is found in the "Center Body" entry (2). The center of motion is most likely the targeted body for the image and this is provided by the naifBodyCode() method (in the Spice class). If this is not consistently the case for a particular mission, then camera models will need to reimplement this method.

Returns
int NAIF code for SPK center of motion body for an instrument

Reimplemented in Isis::CSMCamera, and Isis::IdealCamera.

Definition at line 3035 of file Camera.cpp.

References Isis::Spice::naifBodyCode().

◆ SpkReferenceId()

virtual int Isis::Camera::SpkReferenceId ( ) const
pure virtual

Provides reference frame for instruments SPK NAIF kernel.

This pure virtual method must be implemented in each camera model providing the reference frame NAIF ID code found in the mission SPK kernel. This is typically J2000, but may be relative to other frames.

This value can be easily determined by using the NAIF spacit application that sumarizes binary kernels on the SPK kernel used for a particular instrument on a spacecraft. spacit will additionally require a leap seconds kernel (LSK). For example, the output of the MESSENGER SPK camera supporting the MDIS camera below indicates it is indeed the J2000 reference frame:

Segment ID : msgr_20050903_20061125_recon002.nio
Target Body : Body -236, MESSENGER
Center Body : Body 2, VENUS BARYCENTER
Reference frame: Frame 1, J2000
SPK Data Type : Type 1
Description : Modified Difference Array
UTC Start Time : 2006 OCT 16 19:25:41.111
UTC Stop Time : 2006 OCT 31 22:14:24.040
ET Start Time : 2006 OCT 16 19:26:46.293
ET Stop time : 2006 OCT 31 22:15:29.222

The SpkReferenceId value is found in the "Reference frame" entry (1).

Returns
int NAIF code for SPK reference frame for an instrument

Implemented in Isis::ApolloMetricCamera, Isis::ApolloPanoramicCamera, Isis::CSMCamera, Isis::IdealCamera, Isis::IssNACamera, Isis::IssWACamera, Isis::VimsCamera, Isis::Chandrayaan1M3Camera, Isis::HiresCamera, Isis::LwirCamera, Isis::NirCamera, Isis::UvvisCamera, Isis::ClipperNacRollingShutterCamera, Isis::ClipperPushBroomCamera, Isis::ClipperWacFcCamera, Isis::DawnFcCamera, Isis::DawnVirCamera, Isis::SsiCamera, Isis::HayabusaAmicaCamera, Isis::HayabusaNirsCamera, Isis::Hyb2OncCamera, Isis::JunoCamera, Isis::KaguyaMiCamera, Isis::KaguyaTcCamera, Isis::LoHighCamera, Isis::LoMediumCamera, Isis::LroNarrowAngleCamera, Isis::LroWideAngleCamera, Isis::MiniRF, Isis::Mariner10Camera, Isis::MdisCamera, Isis::HrscCamera, Isis::MexHrscSrcCamera, Isis::MocNarrowAngleCamera, Isis::MocWideAngleCamera, Isis::CrismCamera, Isis::CTXCamera, Isis::HiriseCamera, Isis::MarciCamera, Isis::MsiCamera, Isis::NewHorizonsLeisaCamera, Isis::NewHorizonsLorriCamera, Isis::NewHorizonsMvicFrameCamera, Isis::NewHorizonsMvicTdiCamera, Isis::ThemisIrCamera, Isis::ThemisVisCamera, Isis::OsirisRexOcamsCamera, Isis::RosettaOsirisCamera, Isis::RosettaVirtisCamera, Isis::TgoCassisCamera, Isis::VikingCamera, and Isis::VoyagerCamera.

◆ SpkTargetId()

int Isis::Camera::SpkTargetId ( ) const
virtual

Provides target code for instruments SPK NAIF kernel.

This virtual method may need to be implemented in each camera model providing the target NAIF ID code found in the mission SPK kernel. This is typically the spacecraft ID code.

This value can be easily determined by using the NAIF spacit application that sumarizes binary kernels on the SPK kernel used for a particular instrument on a spacecraft. spacit will additionally require a leap seconds kernel (LSK). For example, the output of the MESSENGER SPK camera supporting the MDIS camera below indicates it is indeed the MESSENGER spacecraft:

Segment ID : msgr_20050903_20061125_recon002.nio
Target Body : Body -236, MESSENGER
Center Body : Body 2, VENUS BARYCENTER
Reference frame: Frame 1, J2000
SPK Data Type : Type 1
Description : Modified Difference Array
UTC Start Time : 2006 OCT 16 19:25:41.111
UTC Stop Time : 2006 OCT 31 22:14:24.040
ET Start Time : 2006 OCT 16 19:26:46.293
ET Stop time : 2006 OCT 31 22:15:29.222

The SpkTargetId value is found in the "Target Body" entry (-236).

For most cases, this is the NAIF SPK code returned by the naifSpkCode() method (in the Spice class). Some instrument camera models may need to override this method if this is not case.

Returns
int NAIF code for the SPK target for an instrument

Reimplemented in Isis::ApolloMetricCamera, Isis::IdealCamera, Isis::JunoCamera, Isis::MiniRF, Isis::MdisCamera, Isis::TgoCassisCamera, Isis::VikingCamera, and Isis::VoyagerCamera.

Definition at line 2993 of file Camera.cpp.

References Isis::Spice::naifSpkCode().

◆ StartEndEphemerisTimes()

pair< double, double > Isis::Camera::StartEndEphemerisTimes ( )

Calculates the start and end ephemeris times.

These times are found by looping through the bands and finding the ephemeris times for the upper left and bottom right pixels in the image. The start time (shutter open time) is the minimum value of those ephemeris times. The end time (shutter close time) is the maximum value of those ephemeris times. This method must be called before a call to the Spice::createCache() method. It is called in the LoadCache() method.

Returns
pair<double, double> A pair containing the start and end ephemeris times
Exceptions
iException::Programmer- "Unable to find time range for the spice kernels."
See also
createCache()
LoadCache()
Author
2011-02-02 Jeannie Walldren
History
2011-02-02 Jeannie Walldren - Original version.

Definition at line 2509 of file Camera.cpp.

References Bands(), Isis::AlphaCube::BetaLines(), Isis::AlphaCube::BetaSamples(), p_alphaCube, Isis::IException::Programmer, SetBand(), SetImage(), and Isis::Spice::time().

Referenced by LoadCache().

◆ storeResult()

void Isis::Spice::storeResult ( QString name,
SpiceValueType type,
QVariant value )
protectedinherited

Definition at line 1165 of file Spice.cpp.

◆ storeValue()

void Isis::Spice::storeValue ( QString key,
int index,
SpiceValueType type,
QVariant value )
protectedinherited

Definition at line 1201 of file Spice.cpp.

◆ subSolarPoint()

void Isis::Spice::subSolarPoint ( double & lat,
double & lon )
virtualinherited

Returns the sub-solar latitude/longitude in universal coordinates (0-360 positive east, ocentric)

Parameters
latSub-solar latitude
lonSub-solar longitude
See also
setTime()
Exceptions
Isis::IException::Programmer- "You must call SetTime first."

Reimplemented in Isis::CSMCamera.

Definition at line 1341 of file Spice.cpp.

References Isis::NaifStatus::CheckErrors(), Isis::Spice::m_et, Isis::Spice::m_uB, Isis::PI, Isis::IException::Programmer, Isis::Spice::radii(), and Isis::Spice::target().

Referenced by Isis::CameraPointInfo::GetPointInfo(), Isis::Sensor::LocalSolarTime(), and SunAzimuth().

◆ subSpacecraftPoint()

void Isis::Spice::subSpacecraftPoint ( double & lat,
double & lon )
virtualinherited

Returns the sub-spacecraft latitude/longitude in universal coordinates (0-360 positive east, ocentric)

Parameters
latSub-spacecraft latitude
lonSub-spacecraft longitude
See also
setTime()
Exceptions
Isis::IException::Programmer- "You must call SetTime first."

Reimplemented in Isis::CSMCamera.

Definition at line 1290 of file Spice.cpp.

References Isis::NaifStatus::CheckErrors(), Isis::SpicePosition::Coordinate(), Isis::Spice::m_bodyRotation, Isis::Spice::m_et, Isis::Spice::m_instrumentPosition, Isis::PI, Isis::IException::Programmer, Isis::Spice::radii(), Isis::SpiceRotation::ReferenceVector(), and Isis::Spice::target().

Referenced by Isis::CameraPointInfo::GetPointInfo(), GroundRangeResolution(), Isis::Sensor::SpacecraftAltitude(), and SpacecraftAzimuth().

◆ SunAzimuth()

double Isis::Camera::SunAzimuth ( )

Returns the Sun Azimuth.

Returns
double Sun Azimuth
Todo
Get appropriate radius at the subsolar point

Definition at line 1954 of file Camera.cpp.

References ComputeAzimuth(), and Isis::Spice::subSolarPoint().

Referenced by Isis::CameraPointInfo::GetPointInfo().

◆ sunPosition() [1/2]

SpicePosition * Isis::Spice::sunPosition ( ) const
virtualinherited

Accessor method for the sun position.

Returns
iTime Sun position for the image.
Author
Steven Lambright
History
2011-02-09 Steven Lambright - Original version.

Reimplemented in Isis::CSMCamera.

Definition at line 1601 of file Spice.cpp.

References Isis::Spice::m_sunPosition.

Referenced by Isis::Sensor::SolarDistance().

◆ sunPosition() [2/2]

void Isis::Spice::sunPosition ( double p[3]) const
virtualinherited

Fills the input vector with sun position information, in either body-fixed or J2000 reference frame and km units.

Parameters
p[]Sun position
See also
setTime()

Reimplemented in Isis::CSMCamera.

Definition at line 909 of file Spice.cpp.

References Isis::Spice::m_et, Isis::Spice::m_uB, and Isis::IException::Programmer.

Referenced by Isis::CameraPointInfo::GetPointInfo().

◆ sunToBodyDist()

double Isis::Spice::sunToBodyDist ( ) const
virtualinherited

Definition at line 1395 of file Spice.cpp.

◆ target()

Target * Isis::Spice::target ( ) const
virtualinherited

Returns a pointer to the target object.

Returns
string

Definition at line 1380 of file Spice.cpp.

References Isis::Spice::m_target.

Referenced by BasicMapping(), basicRingMapping(), Isis::Sensor::Coordinate(), Isis::FindTool::distancePerPixel(), Isis::CSMCamera::EmissionAngle(), Isis::Sensor::EmissionAngle(), Isis::Sensor::GetLatitude(), GetLocalNormal(), Isis::Sensor::GetLongitude(), Isis::Sensor::GetSurfacePoint(), Isis::CameraGroundMap::GetXY(), Isis::UniversalGroundMap::GroundRange(), GroundRangeResolution(), Isis::Sensor::HasSurfaceIntersection(), Isis::Sensor::IgnoreElevationModel(), Isis::ImportImagesWorkOrder::importConfirmedImages(), Isis::CSMCamera::IncidenceAngle(), Isis::Sensor::IncidenceAngle(), LoadCache(), Isis::Sensor::LocalRadius(), Isis::Sensor::LocalRadius(), Isis::Sensor::LocalRadius(), NorthAzimuth(), Isis::CSMCamera::PhaseAngle(), RawFocalPlanetoImage(), Isis::CameraGroundMap::SetGround(), Isis::VimsGroundMap::SetGround(), SetGround(), Isis::CSMCamera::SetGround(), Isis::Sensor::SetGround(), SetGround(), Isis::CSMCamera::SetGround(), Isis::Sensor::SetGroundLocal(), SetImage(), Isis::CSMCamera::SetImage(), SetImage(), Isis::Sensor::SetLookDirection(), Isis::CSMCamera::SetLookDirection(), SetRightAscensionDeclination(), Isis::CSMCamera::setTarget(), Isis::Sensor::setTime(), SetUniversalGround(), Isis::Sensor::SetUniversalGround(), SetUniversalGround(), Isis::Sensor::SetUniversalGround(), Isis::Sensor::SlantDistance(), Slope(), Isis::Sensor::SolarDistance(), Isis::Spice::subSolarPoint(), and Isis::Spice::subSpacecraftPoint().

◆ targetCenterDistance()

double Isis::Spice::targetCenterDistance ( ) const
virtualinherited

Calculates and returns the distance from the spacecraft to the target center.

Returns
double Distance to the center of the target from the spacecraft

Reimplemented in Isis::CSMCamera.

Definition at line 925 of file Spice.cpp.

References Isis::SpicePosition::Coordinate(), Isis::Spice::m_bodyRotation, Isis::Spice::m_instrumentPosition, and Isis::SpiceRotation::ReferenceVector().

Referenced by Isis::CameraPointInfo::GetPointInfo().

◆ targetName()

QString Isis::Spice::targetName ( ) const
inherited

Returns the QString name of the target.

Returns
QString

Definition at line 1390 of file Spice.cpp.

References Isis::Spice::m_target, and Isis::Target::name().

◆ time()

iTime Isis::Spice::time ( ) const
virtualinherited

Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions.

Returns
iTime the currently set ephemeris time
Exceptions
IException::Programmer"Unable to retrieve the time Spice::setTime must be called first."

Definition at line 891 of file Spice.cpp.

References Isis::Spice::m_et, and Isis::IException::Programmer.

Referenced by Isis::RadarSlantRangeMap::ComputeA(), Isis::CameraPointInfo::GetPointInfo(), 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::RosettaOsirisCamera::ShutterOpenCloseTimes(), Isis::TgoCassisCamera::ShutterOpenCloseTimes(), Isis::VikingCamera::ShutterOpenCloseTimes(), Isis::VoyagerCamera::ShutterOpenCloseTimes(), Isis::FramingCamera::ShutterOpenCloseTimes(), StartEndEphemerisTimes(), and Isis::UvvisCamera::UvvisCamera().

◆ UniversalLatitude()

double Isis::Sensor::UniversalLatitude ( ) const
virtualinherited

Returns the planetocentric latitude, in degrees, at the surface intersection point in the body fixed coordinate system.

Returns
double Universal latitude, in degrees.

Definition at line 212 of file Sensor.cpp.

References Isis::Angle::degrees(), and Isis::Sensor::GetLatitude().

Referenced by Isis::QnetCubeDistanceFilter::filter(), Isis::SmtkMatcher::getLatLon(), Isis::CameraPointInfo::GetPointInfo(), GroundRangeResolution(), Isis::PixelFOV::instantaneousFov(), NorthAzimuth(), Isis::ControlNetFilter::PointLatLonFilter(), RawFocalPlanetoImage(), SetRightAscensionDeclination(), and Isis::UniversalGroundMap::UniversalLatitude().

◆ UniversalLongitude()

double Isis::Sensor::UniversalLongitude ( ) const
virtualinherited

Returns the positive east, 0-360 domain longitude, in degrees, at the surface intersection point in the body fixed coordinate system.

Returns
double Universal longitude, in degrees.

Definition at line 235 of file Sensor.cpp.

References Isis::Angle::degrees(), and Isis::Sensor::GetLongitude().

Referenced by Isis::SmtkMatcher::getLatLon(), Isis::CameraPointInfo::GetPointInfo(), GroundRangeResolution(), Isis::PixelFOV::instantaneousFov(), Isis::Sensor::LocalSolarTime(), Isis::ControlNetFilter::PointLatLonFilter(), RawFocalPlanetoImage(), ringRangeResolution(), SetRightAscensionDeclination(), and Isis::UniversalGroundMap::UniversalLongitude().

Friends And Related Symbol Documentation

◆ RadarGroundMap

friend class RadarGroundMap
friend

A friend class to calculate focal length.

Definition at line 492 of file Camera.h.

Referenced by Isis::MiniRF::MiniRF().

◆ RadarSlantRangeMap

friend class RadarSlantRangeMap
friend

A friend class to calculate focal length.

Definition at line 493 of file Camera.h.

Referenced by Isis::MiniRF::MiniRF().

Member Data Documentation

◆ m_allowDownsizing

bool Isis::Spice::m_allowDownsizing
privateinherited

Indicates whether to allow downsizing.

Definition at line 411 of file Spice.h.

Referenced by Isis::Spice::defaultInit().

◆ m_BJ

SpiceDouble Isis::Spice::m_BJ[3][3]
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.

Definition at line 374 of file Spice.h.

◆ m_bodyFrameCode

SpiceInt* Isis::Spice::m_bodyFrameCode
privateinherited

Naif's BODY_FRAME_CODE value.

It is read from the labels, if it exists. Otherwise, it's calculated by the init() method.

Definition at line 423 of file Spice.h.

Referenced by Isis::Spice::defaultInit(), Isis::Spice::init(), Isis::Spice::naifBodyFrameCode(), and Isis::Spice::~Spice().

◆ m_bodyRotation

◆ m_cacheSize

SpiceDouble* Isis::Spice::m_cacheSize
privateinherited

Cache size. Note: This value is 1 for Framing cameras.

Definition at line 401 of file Spice.h.

Referenced by Isis::Spice::createCache(), Isis::Spice::defaultInit(), Isis::Spice::setTime(), and Isis::Spice::~Spice().

◆ m_ckCode

SpiceInt* Isis::Spice::m_ckCode
privateinherited

Camera kernel (CK) code.

Definition at line 419 of file Spice.h.

Referenced by Isis::Spice::defaultInit(), Isis::Spice::init(), Isis::Spice::naifCkCode(), and Isis::Spice::~Spice().

◆ m_dec

SpiceDouble Isis::Sensor::m_dec
privateinherited

Decliation (sky latitude)

Definition at line 242 of file Sensor.h.

Referenced by Isis::Sensor::computeRaDec(), and Isis::Sensor::Declination().

◆ m_endTime

iTime* Isis::Spice::m_endTime
privateinherited

Corrected end (shutter close) time of the observation.

Definition at line 400 of file Spice.h.

Referenced by Isis::Spice::cacheEndTime(), Isis::Spice::createCache(), Isis::Spice::defaultInit(), Isis::Spice::setTime(), and Isis::Spice::~Spice().

◆ m_endTimePadding

SpiceDouble* Isis::Spice::m_endTimePadding
privateinherited

Kernels pvl group EndPadding keyword value.

Definition at line 404 of file Spice.h.

Referenced by Isis::Spice::createCache(), Isis::Spice::defaultInit(), Isis::Spice::init(), and Isis::Spice::~Spice().

◆ m_et

◆ m_ikCode

SpiceInt* Isis::Spice::m_ikCode
privateinherited

Instrument kernel (IK) code.

Definition at line 420 of file Spice.h.

Referenced by Isis::Spice::defaultInit(), Isis::Spice::init(), Isis::Spice::naifIkCode(), and Isis::Spice::~Spice().

◆ m_instrumentId

QString Isis::Camera::m_instrumentId
protected

The InstrumentId as it appears on the cube.

Definition at line 495 of file Camera.h.

Referenced by Camera(), and instrumentId().

◆ m_instrumentNameLong

QString Isis::Camera::m_instrumentNameLong
protected

Full instrument name.

Definition at line 497 of file Camera.h.

Referenced by Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Camera(), 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::CSMCamera::init(), instrumentNameLong(), 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::SsiCamera::SsiCamera(), Isis::TgoCassisCamera::TgoCassisCamera(), Isis::ThemisIrCamera::ThemisIrCamera(), Isis::ThemisVisCamera::ThemisVisCamera(), Isis::UvvisCamera::UvvisCamera(), Isis::VikingCamera::VikingCamera(), Isis::VimsCamera::VimsCamera(), and Isis::VoyagerCamera::VoyagerCamera().

◆ m_instrumentNameShort

QString Isis::Camera::m_instrumentNameShort
protected

Shortened instrument name.

Definition at line 498 of file Camera.h.

Referenced by Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Camera(), 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::CSMCamera::init(), instrumentNameShort(), 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::SsiCamera::SsiCamera(), Isis::TgoCassisCamera::TgoCassisCamera(), Isis::ThemisIrCamera::ThemisIrCamera(), Isis::ThemisVisCamera::ThemisVisCamera(), Isis::UvvisCamera::UvvisCamera(), Isis::VikingCamera::VikingCamera(), Isis::VimsCamera::VimsCamera(), and Isis::VoyagerCamera::VoyagerCamera().

◆ m_instrumentPosition

◆ m_instrumentRotation

SpiceRotation* Isis::Spice::m_instrumentRotation
privateinherited

◆ m_kernels

QVector<QString>* Isis::Spice::m_kernels
privateinherited

Vector containing kernels filenames.

Definition at line 396 of file Spice.h.

Referenced by Isis::Spice::createCache(), Isis::Spice::defaultInit(), Isis::Spice::load(), and Isis::Spice::~Spice().

◆ m_lookB

◆ m_naifKeywords

PvlObject* Isis::Spice::m_naifKeywords
privateinherited

NaifKeywords PvlObject from cube.

Definition at line 427 of file Spice.h.

Referenced by Isis::Spice::getStoredNaifKeywords(), and Isis::Spice::init().

◆ m_newLookB

◆ m_ra

SpiceDouble Isis::Sensor::m_ra
privateinherited

Right ascension (sky longitude)

Definition at line 241 of file Sensor.h.

Referenced by Isis::Sensor::computeRaDec(), and Isis::Sensor::RightAscension().

◆ m_sclkCode

SpiceInt* Isis::Spice::m_sclkCode
privateinherited

Spacecraft clock correlation kernel (SCLK) code.

Definition at line 421 of file Spice.h.

Referenced by Isis::Spice::defaultInit(), Isis::Spice::init(), Isis::Spice::naifSclkCode(), and Isis::Spice::~Spice().

◆ m_solarLongitude

Longitude* Isis::Spice::m_solarLongitude
protectedinherited

Body rotation solar longitude value.

Definition at line 383 of file Spice.h.

Referenced by Isis::Spice::computeSolarLongitude(), Isis::Spice::defaultInit(), Isis::Spice::init(), Isis::Spice::solarLongitude(), and Isis::Spice::~Spice().

◆ m_spacecraftNameLong

QString Isis::Camera::m_spacecraftNameLong
protected

Full spacecraft name.

Definition at line 499 of file Camera.h.

Referenced by Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Camera(), 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::CSMCamera::init(), 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(), spacecraftNameLong(), 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().

◆ m_spacecraftNameShort

QString Isis::Camera::m_spacecraftNameShort
protected

Shortened spacecraft name.

Definition at line 500 of file Camera.h.

Referenced by Isis::ApolloMetricCamera::ApolloMetricCamera(), Isis::ApolloPanoramicCamera::ApolloPanoramicCamera(), Camera(), 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::CSMCamera::init(), 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(), spacecraftNameShort(), 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().

◆ m_spkBodyCode

SpiceInt* Isis::Spice::m_spkBodyCode
privateinherited

Spacecraft and planet ephemeris kernel (SPK) body code.

Definition at line 422 of file Spice.h.

Referenced by Isis::Spice::computeSolarLongitude(), Isis::Spice::defaultInit(), Isis::Spice::init(), and Isis::Spice::~Spice().

◆ m_spkCode

SpiceInt* Isis::Spice::m_spkCode
privateinherited

Spacecraft and planet ephemeris kernel (SPK) code.

Definition at line 418 of file Spice.h.

Referenced by Isis::Spice::defaultInit(), Isis::Spice::init(), Isis::Spice::naifSpkCode(), and Isis::Spice::~Spice().

◆ m_startTime

iTime* Isis::Spice::m_startTime
privateinherited

Corrected start (shutter open) time of the observation.

Definition at line 399 of file Spice.h.

Referenced by Isis::Spice::cacheStartTime(), Isis::Spice::createCache(), Isis::Spice::defaultInit(), Isis::Spice::setTime(), and Isis::Spice::~Spice().

◆ m_startTimePadding

SpiceDouble* Isis::Spice::m_startTimePadding
privateinherited

Kernels pvl group StartPadding keyword value.

Definition at line 403 of file Spice.h.

Referenced by Isis::Spice::createCache(), Isis::Spice::defaultInit(), Isis::Spice::init(), and Isis::Spice::~Spice().

◆ m_sunPosition

◆ m_target

◆ m_uB

SpiceDouble Isis::Spice::m_uB[3]
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 369 of file Spice.h.

Referenced by Isis::Sensor::IncidenceAngle(), LocalPhotometricAngles(), Isis::Sensor::PhaseAngle(), Isis::Spice::setTime(), Isis::Spice::subSolarPoint(), and Isis::Spice::sunPosition().

◆ m_usingAle

bool Isis::Spice::m_usingAle
privateinherited

Indicate whether we are reading values from an ISD returned from ALE.

Definition at line 432 of file Spice.h.

Referenced by Isis::Spice::computeSolarLongitude(), Isis::Spice::init(), and Isis::Spice::readValue().

◆ m_usingNaif

bool Isis::Spice::m_usingNaif
privateinherited

Indicates whether we are reading values from the NaifKeywords PvlObject in cube.

Definition at line 429 of file Spice.h.

Referenced by Isis::Spice::computeSolarLongitude(), Isis::Spice::init(), and Isis::Spice::readValue().

◆ p_alphaCube

◆ p_bands

int Isis::Camera::p_bands
private

The number of bands in the image.

Definition at line 538 of file Camera.h.

Referenced by Bands(), Camera(), GroundRangeResolution(), RaDecRange(), and ringRangeResolution().

◆ p_childBand

int Isis::Camera::p_childBand
private

Band value for child.

Definition at line 564 of file Camera.h.

Referenced by Band(), Camera(), exposureDuration(), exposureDuration(), and SetBand().

◆ p_childLine

◆ p_childSample

◆ p_detectorMap

◆ p_distortionMap

CameraDistortionMap* Isis::Camera::p_distortionMap
private

A pointer to the DistortionMap.

Definition at line 565 of file Camera.h.

Referenced by Camera(), DistortionMap(), RawFocalPlanetoImage(), SetDistortionMap(), SetImage(), SetImage(), SetRightAscensionDeclination(), and ~Camera().

◆ p_focalLength

double Isis::Camera::p_focalLength
private

The focal length, in units of millimeters.

Definition at line 519 of file Camera.h.

Referenced by Camera(), DetectorResolution(), FocalLength(), and SetFocalLength().

◆ p_focalPlaneMap

CameraFocalPlaneMap* Isis::Camera::p_focalPlaneMap
private

A pointer to the FocalPlaneMap.

Definition at line 566 of file Camera.h.

Referenced by Camera(), FocalPlaneMap(), RawFocalPlanetoImage(), SetFocalPlaneMap(), SetImage(), SetImage(), SetRightAscensionDeclination(), and ~Camera().

◆ p_geometricTilingEndSize

int Isis::Camera::p_geometricTilingEndSize
private

The ideal geometric tile size to end with when projecting.

Definition at line 574 of file Camera.h.

Referenced by GetGeometricTilingHint(), and SetGeometricTilingHint().

◆ p_geometricTilingStartSize

int Isis::Camera::p_geometricTilingStartSize
private

The ideal geometric tile size to start with when projecting.

Definition at line 572 of file Camera.h.

Referenced by GetGeometricTilingHint(), and SetGeometricTilingHint().

◆ p_groundMap

CameraGroundMap* Isis::Camera::p_groundMap
private

◆ p_groundRangeComputed

bool Isis::Camera::p_groundRangeComputed
private

Flag showing if ground range was computed successfully.

Definition at line 533 of file Camera.h.

Referenced by Camera(), and GroundRangeResolution().

◆ p_ignoreProjection

bool Isis::Camera::p_ignoreProjection
private

Whether or no to ignore the Projection.

Definition at line 543 of file Camera.h.

Referenced by Camera(), IgnoreProjection(), LoadCache(), RawFocalPlanetoImage(), SetImage(), SetImage(), and SetRightAscensionDeclination().

◆ p_lines

int Isis::Camera::p_lines
private

The number of lines in the image.

Definition at line 537 of file Camera.h.

Referenced by Camera(), GroundRangeResolution(), Lines(), RaDecRange(), RaDecResolution(), and ringRangeResolution().

◆ p_maxdec

double Isis::Camera::p_maxdec
private

The maximum declination.

Definition at line 546 of file Camera.h.

Referenced by RaDecRange().

◆ p_maxlat

double Isis::Camera::p_maxlat
private

The maximum latitude.

Definition at line 523 of file Camera.h.

Referenced by BasicMapping(), GroundRange(), and GroundRangeResolution().

◆ p_maxlon

double Isis::Camera::p_maxlon
private

The maximum longitude.

Definition at line 525 of file Camera.h.

Referenced by BasicMapping(), GroundRange(), and GroundRangeResolution().

◆ p_maxlon180

double Isis::Camera::p_maxlon180
private

The maximum longitude in the 180 domain.

Definition at line 531 of file Camera.h.

Referenced by GroundRange(), and GroundRangeResolution().

◆ p_maxobliqueres

double Isis::Camera::p_maxobliqueres
private

The maximum oblique resolution.

Definition at line 529 of file Camera.h.

Referenced by GroundRangeResolution(), and HighestObliqueImageResolution().

◆ p_maxra

double Isis::Camera::p_maxra
private

The maxumum right ascension.

Definition at line 548 of file Camera.h.

Referenced by RaDecRange().

◆ p_maxra180

double Isis::Camera::p_maxra180
private

The maximum right ascension in the 180 domain.

Definition at line 550 of file Camera.h.

Referenced by RaDecRange().

◆ p_maxres

double Isis::Camera::p_maxres
private

The maximum resolution.

Definition at line 527 of file Camera.h.

Referenced by GroundRangeResolution(), LowestImageResolution(), and ringRangeResolution().

◆ p_maxRingLongitude

double Isis::Camera::p_maxRingLongitude
private

The maximum ring longitude (azimuth)

Definition at line 557 of file Camera.h.

Referenced by basicRingMapping(), ringRange(), and ringRangeResolution().

◆ p_maxRingLongitude180

double Isis::Camera::p_maxRingLongitude180
private

The maximum ring longitude in the 180 domain.

Definition at line 559 of file Camera.h.

Referenced by ringRange(), and ringRangeResolution().

◆ p_maxRingRadius

double Isis::Camera::p_maxRingRadius
private

The maximum ring radius.

Definition at line 555 of file Camera.h.

Referenced by basicRingMapping(), ringRange(), and ringRangeResolution().

◆ p_mindec

double Isis::Camera::p_mindec
private

The minimum declination.

Definition at line 545 of file Camera.h.

Referenced by RaDecRange().

◆ p_minlat

double Isis::Camera::p_minlat
private

The minimum latitude.

Definition at line 522 of file Camera.h.

Referenced by BasicMapping(), GroundRange(), and GroundRangeResolution().

◆ p_minlon

double Isis::Camera::p_minlon
private

The minimum longitude.

Definition at line 524 of file Camera.h.

Referenced by BasicMapping(), GroundRange(), and GroundRangeResolution().

◆ p_minlon180

double Isis::Camera::p_minlon180
private

The minimum longitude in the 180 domain.

Definition at line 530 of file Camera.h.

Referenced by GroundRange(), and GroundRangeResolution().

◆ p_minobliqueres

double Isis::Camera::p_minobliqueres
private

The minimum oblique resolution.

Definition at line 528 of file Camera.h.

Referenced by GroundRangeResolution(), and LowestObliqueImageResolution().

◆ p_minra

double Isis::Camera::p_minra
private

The minimum right ascension.

Definition at line 547 of file Camera.h.

Referenced by RaDecRange().

◆ p_minra180

double Isis::Camera::p_minra180
private

The minimum right ascension in the 180 domain.

Definition at line 549 of file Camera.h.

Referenced by RaDecRange().

◆ p_minres

double Isis::Camera::p_minres
private

The minimum resolution.

Definition at line 526 of file Camera.h.

Referenced by BasicMapping(), basicRingMapping(), GroundRangeResolution(), HighestImageResolution(), and ringRangeResolution().

◆ p_minRingLongitude

double Isis::Camera::p_minRingLongitude
private

The minimum ring longitude (azimuth)

Definition at line 556 of file Camera.h.

Referenced by basicRingMapping(), ringRange(), and ringRangeResolution().

◆ p_minRingLongitude180

double Isis::Camera::p_minRingLongitude180
private

The minimum ring longitude in the 180 domain.

Definition at line 558 of file Camera.h.

Referenced by ringRange(), and ringRangeResolution().

◆ p_minRingRadius

double Isis::Camera::p_minRingRadius
private

The minimum ring radius.

Definition at line 554 of file Camera.h.

Referenced by basicRingMapping(), ringRange(), and ringRangeResolution().

◆ p_pixelPitch

double Isis::Camera::p_pixelPitch
private

The pixel pitch, in millimeters per pixel.

Definition at line 520 of file Camera.h.

Referenced by Camera(), DetectorResolution(), PixelPitch(), and SetPixelPitch().

◆ p_pointComputed

◆ p_projection

Projection* Isis::Camera::p_projection
private

◆ p_raDecRangeComputed

bool Isis::Camera::p_raDecRangeComputed
private

Flag showing if the raDec range has been computed successfully.

Definition at line 552 of file Camera.h.

Referenced by Camera(), and RaDecRange().

◆ p_referenceBand

int Isis::Camera::p_referenceBand
private

The reference band.

Definition at line 540 of file Camera.h.

Referenced by Camera(), HasReferenceBand(), and ReferenceBand().

◆ p_ringRangeComputed

bool Isis::Camera::p_ringRangeComputed
private

Flag showing if ring range was computed successfully.

Definition at line 561 of file Camera.h.

Referenced by Camera(), and ringRangeResolution().

◆ p_samples

int Isis::Camera::p_samples
private

The number of samples in the image.

Definition at line 536 of file Camera.h.

Referenced by Camera(), GroundRangeResolution(), RaDecRange(), RaDecResolution(), ringRangeResolution(), and Samples().

◆ p_skyMap

CameraSkyMap* Isis::Camera::p_skyMap
private

A pointer to the SkyMap.

Definition at line 569 of file Camera.h.

Referenced by Camera(), SetRightAscensionDeclination(), SetSkyMap(), SkyMap(), and ~Camera().


The documentation for this class was generated from the following files: