Isis 3 Programmer Reference
Isis::MocNarrowAngleCamera Class Reference

MOC Narrow Angle Camera Model. More...

#include <MocNarrowAngleCamera.h>

Inheritance diagram for Isis::MocNarrowAngleCamera:
Collaboration diagram for Isis::MocNarrowAngleCamera:

## Public Types

enum  CameraType {
Point
}
This enum defines the types of cameras supported in this class. More...

## Public Member Functions

MocNarrowAngleCamera (Cube &cube)
Constructor for the Mgs MOC Narrow Angle Camera Model. More...

~MocNarrowAngleCamera ()
Destroys the MocNarrowAngleCamera object. More...

virtual int CkFrameId () const
CK frame ID - - Instrument Code from spacit run on CK. More...

virtual int CkReferenceId () const
CK Reference ID - J2000. More...

virtual int SpkReferenceId () const
SPK Reference ID - J2000. More...

virtual CameraType GetCameraType () const
Returns the LineScan type of camera, as enumerated in the Camera class. More...

LineScanCameraGroundMapGroundMap ()
Returns a pointer to the LineScanCameraGroundMap object. More...

Returns a pointer to the LineScanCameraSkyMap object. More...

Returns a pointer to the LineScanCameraDetectorMap object. More...

bool SetImage (const double sample, const double line)
Sets the sample/line values of the image to get the lat/lon values. More...

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

bool SetUniversalGround (const double latitude, const double longitude)
Sets the lat/lon values to get the sample/line values. More...

bool SetUniversalGround (const double latitude, const double longitude, const double radius)
Sets the lat/lon/radius values to get the sample/line values. More...

bool SetUniversalGround (const double latitude, const double longitude, bool backCheck=true)
This is the opposite routine for SetLookDirection. More...

bool SetUniversalGround (const double latitude, const double longitude, const double radius, bool backCheck=true)
This overloaded method has the opposite function as SetLookDirection. More...

bool SetGround (Latitude latitude, Longitude longitude)
Sets the lat/lon values to get the sample/line values. More...

bool SetGround (const SurfacePoint &surfacePt)
Sets the lat/lon/radius values to get the sample/line values. More...

bool SetGround (const SurfacePoint &surfacePt, bool backCheck=true)
This overloaded method has the opposite function as SetLookDirection. More...

bool SetRightAscensionDeclination (const double ra, const double dec)
Sets the right ascension declination. More...

void LocalPhotometricAngles (Angle &phase, Angle &incidence, Angle &emission, bool &success)
Calculates LOCAL photometric angles using the DEM (not ellipsoid). More...

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

bool HasProjection ()
Checks to see if the camera object has a projection. More...

virtual bool IsBandIndependent ()
Virtual method that checks if the band is independent. More...

int ReferenceBand () const
Returns the reference band. More...

bool HasReferenceBand () const
Checks to see if the Camera object has a reference band. More...

virtual void SetBand (const int band)
Virtual method that sets the band number. More...

double Sample ()
Returns the current sample number. More...

int Band ()
Returns the current band. More...

double Line ()
Returns the current line number. More...

bool GroundRange (double &minlat, double &maxlat, double &minlon, double &maxlon, Pvl &pvl)
Computes the Ground Range. More...

bool ringRange (double &minRingRadius, double &maxRingRadius, double &minRingLongitude, double &maxRingLongitude, Pvl &pvl)
Analogous to the above Ground Range method. More...

bool IntersectsLongitudeDomain (Pvl &pvl)
Checks whether the ground range intersects the longitude domain or not. More...

double PixelResolution ()
Returns the pixel resolution at the current position in meters/pixel. More...

double LineResolution ()
Returns the line resolution at the current position in meters. More...

double SampleResolution ()
Returns the sample resolution at the current position in meters. More...

double DetectorResolution ()
Returns the detector resolution at the current position in meters. More...

double ObliqueDetectorResolution ()
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. More...

double ObliqueSampleResolution ()
Returns the oblique sample resolution at the current position in m. More...

double ObliqueLineResolution ()
Returns the oblique line resolution at the current position in meters. More...

double ObliquePixelResolution ()
Returns the oblique pixel resolution at the current position in meters/pixel. More...

virtual double resolution ()
Returns the resolution of the camera. More...

double LowestImageResolution ()
Returns the lowest/worst resolution in the entire image. More...

double HighestImageResolution ()
Returns the highest/best resolution in the entire image. More...

double LowestObliqueImageResolution ()
Returns the lowest/worst oblique resolution in the entire image. More...

double HighestObliqueImageResolution ()
Returns the highest/best oblique resolution in the entire image. More...

void BasicMapping (Pvl &map)
Writes the basic mapping group to the specified Pvl. More...

void basicRingMapping (Pvl &map)
Writes the basic mapping group for ring plane to the specified Pvl. More...

double FocalLength () const
Returns the focal length. More...

double PixelPitch () const
Returns the pixel pitch. More...

virtual double exposureDuration () const
Return the exposure duration for the pixel that the camera is set to. More...

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

virtual QList< QPointF > PixelIfovOffsets ()
Returns the pixel ifov offsets from center of pixel, which defaults to the (pixel pitch * summing mode ) / 2. More...

int Samples () const
Returns the number of samples in the image. More...

int Lines () const
Returns the number of lines in the image. More...

int Bands () const
Returns the number of bands in the image. More...

int ParentLines () const
Returns the number of lines in the parent alphacube. More...

int ParentSamples () const
Returns the number of samples in the parent alphacube. More...

double CelestialNorthClockAngle ()
Computes the celestial north clock angle at the current line/sample or ra/dec. More...

bool RaDecRange (double &minra, double &maxra, double &mindec, double &maxdec)

Returns a pointer to the CameraDistortionMap object. More...

CameraFocalPlaneMapFocalPlaneMap ()
Returns a pointer to the CameraFocalPlaneMap object. More...

QString instrumentNameLong () const
This method returns the full instrument name. More...

QString instrumentNameShort () const
This method returns the shortened instrument name. More...

QString spacecraftNameLong () const
This method returns the full spacecraft name. More...

QString spacecraftNameShort () const
This method returns the shortened spacecraft name. More...

Sets the Distortion Map. More...

void SetFocalPlaneMap (CameraFocalPlaneMap *map)
Sets the Focal Plane Map. More...

Sets the Detector Map. More...

void SetGroundMap (CameraGroundMap *map)
Sets the Ground Map. More...

Sets the Sky Map. More...

double NorthAzimuth ()
Returns the North Azimuth. More...

double SunAzimuth ()
Returns the Sun Azimuth. More...

double SpacecraftAzimuth ()
Return the Spacecraft Azimuth. More...

Return the off nadir angle in degrees. More...

void IgnoreProjection (bool ignore)
Set whether or not the camera should ignore the Projection. More...

This loads the spice cache big enough for this image. More...

std::pair< double, double > StartEndEphemerisTimes ()
Calculates the start and end ephemeris times. More...

int CacheSize (double startTime, double endTime)
This method calculates the spice cache size. More...

void GetGeometricTilingHint (int &startSize, int &endSize)
This will get the geometric tiling hint; these values are typically used for ProcessRubberSheet::SetTiling(...). More...

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

virtual int SpkTargetId () const
Provides target code for instruments SPK NAIF kernel. More...

virtual int SpkCenterId () const
Provides the center of motion body for SPK NAIF kernel. More...

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

bool SetLookDirection (const double v[3])
Sets the look direction of the spacecraft. More...

bool HasSurfaceIntersection () const
Returns if the last call to either SetLookDirection or SetUniversalGround had a valid intersection with the target. More...

void Coordinate (double p[3]) const
Returns the x,y,z of the surface intersection in BodyFixed km. More...

double UniversalLatitude () const
Returns the planetocentric latitude, in degrees, at the surface intersection point in the body fixed coordinate system. More...

Latitude GetLatitude () const
Returns a planetocentric latitude object at the surface intersection point in body fixed. More...

double UniversalLongitude () const
Returns the positive east, 0-360 domain longitude, in degrees, at the surface intersection point in the body fixed coordinate system. More...

Longitude GetLongitude () const
Returns a positive east, 0-360 domain longitude object at the surface intersection point in the body fixed coordinate system. More...

SurfacePoint GetSurfacePoint () const
Returns the surface point (most efficient accessor). More...

Returns the local radius at the intersection point. More...

Distance LocalRadius (Latitude lat, Longitude lon)
Returns the local radius at the intersection point. More...

Distance LocalRadius (double lat, double lon)
Returns the local radius at the intersection point. More...

double PhaseAngle () const
Returns the phase angle in degrees. More...

double EmissionAngle () const
Returns the emission angle in degrees. More...

double IncidenceAngle () const
Returns the incidence angle in degrees. More...

void LookDirection (double v[3]) const
Returns the look direction in the camera coordinate system. More...

std::vector< double > lookDirectionJ2000 () const
Returns the look direction in the camera coordinate system. More...

std::vector< double > lookDirectionBodyFixed () const
Returns the look direction in the body fixed coordinate system. More...

double RightAscension ()
Returns the right ascension angle (sky longitude). More...

double Declination ()
Returns the declination angle (sky latitude). More...

void SpacecraftSurfaceVector (double scSurfaceVector[3]) const
Sets the vector between the spacecraft and surface point in body-fixed. More...

double SlantDistance () const
Return the distance between the spacecraft and surface point in kmv. More...

double LocalSolarTime ()
Return the local solar time in hours. More...

double SolarDistance () const
Returns the distance between the sun and surface point in AU. More...

double SpacecraftAltitude ()
Returns the distance from the spacecraft to the subspacecraft point in km. More...

void IgnoreElevationModel (bool ignore)
This allows you to ignore the cube elevation model and use the ellipse. More...

void instrumentPosition (double p[3]) const
Returns the spacecraft position in body-fixed frame km units. More...

SpicePositioninstrumentPosition () const
Accessor method for the instrument position. More...

void instrumentBodyFixedPosition (double p[3]) const
Returns the spacecraft position in body-fixed frame km units. More...

void sunPosition (double p[3]) const
Fills the input vector with sun position information, in either body-fixed or J2000 reference frame and km units. More...

SpicePositionsunPosition () const
Accessor method for the sun position. More...

double targetCenterDistance () const
Calculates and returns the distance from the spacecraft to the target center. More...

Longitude solarLongitude ()
Returns the solar longitude. More...

void instrumentBodyFixedVelocity (double v[3]) const
Returns the spacecraft velocity in body-fixed frame km/sec units. More...

iTime time () const
Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions. More...

Returns the radii of the body in km. More...

void createCache (iTime startTime, iTime endTime, const int size, double tol)
This method creates an internal cache of spacecraft and sun positions over a specified time range. More...

iTime cacheStartTime () const
Accessor method for the cache start time. More...

iTime cacheEndTime () const
Accessor method for the cache end time. More...

void subSpacecraftPoint (double &lat, double &lon)
Returns the sub-spacecraft latitude/longitude in universal coordinates (0-360 positive east, ocentric) More...

void subSolarPoint (double &lat, double &lon)
Returns the sub-solar latitude/longitude in universal coordinates (0-360 positive east, ocentric) More...

Targettarget () const
Returns a pointer to the target object. More...

QString targetName () const
Returns the QString name of the target. More...

iTime getClockTime (QString clockValue, int sclkCode=-1)
This converts the spacecraft clock ticks value (clockValue) to an iTime. More...

SpiceDouble getDouble (const QString &key, int index=0)
This returns a value from the NAIF text pool. More...

SpiceInt getInteger (const QString &key, int index=0)
This returns a value from the NAIF text pool. More...

QString getString (const QString &key, int index=0)
This returns a value from the NAIF text pool. More...

SpiceRotationbodyRotation () const
Accessor method for the body rotation. More...

SpiceRotationinstrumentRotation () const
Accessor method for the instrument rotation. More...

Returns true if the kernel group has kernel files. More...

bool isTimeSet ()
Returns true if time has been initialized. More...

SpiceInt naifBodyCode () const
This returns the NAIF body code of the target indicated in the labels. More...

SpiceInt naifSpkCode () const
This returns the NAIF SPK code to use when reading from SPK kernels. More...

SpiceInt naifCkCode () const
This returns the NAIF CK code to use when reading from CK kernels. More...

SpiceInt naifIkCode () const
This returns the NAIF IK code to use when reading from instrument kernels. More...

SpiceInt naifSclkCode () const
This returns the NAIF SCLK code to use when reading from instrument kernels. More...

SpiceInt naifBodyFrameCode () const
This returns the NAIF body frame code. More...

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

## 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. More...

## Protected Types

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

## Protected Member Functions

void SetFocalLength (double v)
Sets the focal length. More...

void SetFocalLength ()
Reads the focal length from the instrument kernel. More...

void SetPixelPitch (double v)
Sets the pixel pitch. More...

void SetPixelPitch ()
Reads the Pixel Pitch from the instrument kernel. More...

void SetGeometricTilingHint (int startSize=128, int endSize=8)
This method sets the best geometric tiling size for projecting from this camera model. More...

QVariant readValue (QString key, SpiceValueType type, int index=0)
This should be used for reading ALL text naif kernel values. More...

void storeResult (QString name, SpiceValueType type, QVariant value)

QVariant getStoredResult (QString name, SpiceValueType type)

void storeValue (QString key, int index, SpiceValueType type, QVariant value)

QVariant readStoredValue (QString key, SpiceValueType type, int index)

## Protected Attributes

QString m_instrumentNameLong
Full instrument name. More...

QString m_instrumentNameShort
Shortened instrument name. More...

QString m_spacecraftNameLong
Full spacecraft name. More...

QString m_spacecraftNameShort
Shortened spacecraft name. More...

SpiceDouble m_uB [3]
This contains the sun position (u) in the bodyfixed reference frame (B). More...

SpiceDouble m_BJ [3][3]
This contains the transformation matrix from J2000 (J) to Body fixed (B). More...

## Detailed Description

MOC Narrow Angle Camera Model.

This is the camera model for the Mars Global Surveyor MOC narrow angle camera.

History:

2008-08-08 Steven Lambright Now using the new LoadCache(...) method instead of CreateCache(...).

2009-03-07 Debbie A. Cook Removed reference to obsolute CameraDetectorMap methods

2009-08-28 Steven Lambright - Changed inheritance to no longer inherit directly from Camera

2011-05-03 Jeannie Walldren - Updated unitTest to test for new methods. Updated documentation. Removed Mgs namespace wrap inside Isis namespace. Added Isis Disclaimer to files. Added NAIF error check to constructor.

2012-07-06 Debbie A. Cook, Updated Spice members to be more compliant with Isis coding standards. References #972.

2015-08-12 Ian Humphrey and Makayla Shepherd - Added new data members and methods to get spacecraft and instrument names. Extended unit test to test these methods.

2015-10-16 Ian Humphrey - Removed declarations of spacecraft and instrument members and methods and removed implementation of these methods since Camera now handles this. References #2335.

Definition at line 58 of file MocNarrowAngleCamera.h.

## Member Enumeration Documentation

 inherited

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

Enumerator
Framing

Framing Camera.

PushFrame

Push Frame Camera.

LineScan

Line Scan Camera.

Point

Point Camera.

Definition at line 362 of file Camera.h.

 protectedinherited

NAIF value primitive type.

Enumerator
SpiceDoubleType

SpiceDouble type.

SpiceStringType

SpiceString type.

SpiceIntType

SpiceInt type.

SpiceByteCodeType

SpiceByteCode type.

Definition at line 344 of file Spice.h.

## Constructor & Destructor Documentation

 Isis::MocNarrowAngleCamera::MocNarrowAngleCamera ( Cube & cube )

Constructor for the Mgs MOC Narrow Angle Camera Model.

Parameters
 lab Pvl label from an MOC NAC image.
History:
2011-05-03 Jeannie Walldren - Added NAIF error check.

Definition at line 44 of file MocNarrowAngleCamera.cpp.

 Isis::MocNarrowAngleCamera::~MocNarrowAngleCamera ( )
inline

Destroys the MocNarrowAngleCamera object.

Definition at line 63 of file MocNarrowAngleCamera.h.

## Member Function Documentation

 int Isis::Camera::Band ( )
inherited

Returns the current band.

Returns
int Band

Definition at line 2704 of file Camera.cpp.

References Isis::Camera::p_childBand.

 int Isis::Camera::Bands ( ) const
inherited

Returns the number of bands in the image.

Returns
int Number of Bands

Definition at line 2798 of file Camera.cpp.

References Isis::Camera::p_bands.

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

Writes the basic mapping group to the specified Pvl.

Parameters
 pvl Pvl to write mapping group to

Definition at line 1372 of file Camera.cpp.

Referenced by Isis::ImagePolygon::Create().

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

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

Parameters
 pvl Pvl to write mapping group to

Definition at line 1401 of file Camera.cpp.

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

Accessor method for the body rotation.

Returns
iTime Body rotation for the image.
History:
2011-02-09 Steven Lambright - Original version.

Definition at line 1465 of file Spice.cpp.

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

Accessor method for the cache end time.

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

Definition at line 678 of file Spice.cpp.

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

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.

Exceptions
 iException::Programmer - "A cache has already been created."
createCache()
History:
2011-02-02 Jeannie Walldren - Original version.

Definition at line 2531 of file Camera.cpp.

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

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

Accessor method for the cache start time.

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

Definition at line 663 of file Spice.cpp.

 double Isis::Camera::CelestialNorthClockAngle ( )
inherited

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 3029 of file Camera.cpp.

 virtual int Isis::MocNarrowAngleCamera::CkFrameId ( ) const
inlinevirtual

CK frame ID - - Instrument Code from spacit run on CK.

Returns
int The appropriate instrument code for the "Camera-matrix" Kernel Frame ID

Implements Isis::Camera.

Definition at line 71 of file MocNarrowAngleCamera.h.

 virtual int Isis::MocNarrowAngleCamera::CkReferenceId ( ) const
inlinevirtual

CK Reference ID - J2000.

Returns
int The appropriate instrument code for the "Camera-matrix" Kernel Reference ID

Implements Isis::Camera.

Definition at line 79 of file MocNarrowAngleCamera.h.

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

Returns the x,y,z of the surface intersection in BodyFixed km.

Parameters
 p[] The coordinate of the surface intersection.

Definition at line 211 of file Sensor.cpp.

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

This method creates an internal cache of spacecraft and sun positions over a specified time range.

The SPICE kernels are then immediately unloaded. This allows multiple instances of the Spice object to be created as the NAIF toolkit can clash if multiple sets of SPICE kernels are loaded. Note that the cache size is specified as an argument. Therefore, times requested via setTime() which are not directly loaded in the cache will be interpolated. If the instrument position is not cached and cacheSize is greater than 3, the tolerance is passed to the SpicePosition Memcache2HermiteCache() method.

Note: Before this method is called, the private variables m_cacheSize, m_startTime and m_endTime must be set. This is done in the Camera classes using the methods SetCacheSize() and SetStartEndEphemerisTime().

Parameters
 startTime Starting ephemeris time to cache endTime Ending ephemeris time to cache size Size of the cache. tol Tolerance.
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 569 of file Spice.cpp.

References _FILEINFO_, and Isis::iTime::Et().

 double Isis::Sensor::Declination ( )
inherited

Returns the declination angle (sky latitude).

Returns
double Declination angle, in degrees.

Definition at line 564 of file Sensor.cpp.

inlineinherited

Returns a pointer to the LineScanCameraDetectorMap object.

Returns

Definition at line 88 of file LineScanCamera.h.

References Isis::Camera::DetectorMap().

 double Isis::Camera::DetectorResolution ( )
inherited

Returns the detector resolution at the current position in meters.

Returns
double The detector resolution

Definition at line 621 of file Camera.cpp.

inherited

Returns a pointer to the CameraDistortionMap object.

Returns

Definition at line 2828 of file Camera.cpp.

References Isis::Camera::p_distortionMap.

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

Returns the emission angle in degrees.

Returns
double Emission angle, in degrees.

Definition at line 339 of file Sensor.cpp.

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

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 3055 of file Camera.cpp.

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

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

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

Definition at line 3069 of file Camera.cpp.

 double Isis::Camera::FocalLength ( ) const
inherited
 CameraFocalPlaneMap * Isis::Camera::FocalPlaneMap ( )
inherited
 virtual CameraType Isis::LineScanCamera::GetCameraType ( ) const
inlinevirtualinherited

Returns the LineScan type of camera, as enumerated in the Camera class.

Returns
CameraType LineScan camera type.

Implements Isis::Camera.

Definition at line 61 of file LineScanCamera.h.

References Isis::Camera::LineScan.

 iTime Isis::Spice::getClockTime ( QString clockValue, int sclkCode = -1 )
inherited

This converts the spacecraft clock ticks value (clockValue) to an iTime.

Use this when possible because naif calls (such as scs2e_c) cannot be called when not using naif.

Definition at line 969 of file Spice.cpp.

References Isis::toString().

 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
 key Name of NAIF keyword to obtain from the pool index If 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 958 of file Spice.cpp.

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

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

Parameters
 startSize Tiling start size endSize Tiling end size

Definition at line 2609 of file Camera.cpp.

 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
 key Name of NAIF keyword to obtain from the pool index If 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 944 of file Spice.cpp.

 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 236 of file Sensor.cpp.

Referenced by Isis::StereoTool::calculateElevation(), and Isis::Sensor::UniversalLatitude().

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

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

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

Definition at line 1504 of file Camera.cpp.

Referenced by Isis::Camera::LocalPhotometricAngles().

 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 260 of file Sensor.cpp.

Referenced by Isis::StereoTool::calculateElevation(), and Isis::Sensor::UniversalLongitude().

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

 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
 key Name of NAIF keyword to obtain from the pool index If 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 1172 of file Spice.cpp.

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

Returns the surface point (most efficient accessor).

Returns
SurfacePoint Coordinate for the surface intersection.

Definition at line 270 of file Sensor.cpp.

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

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
 glat The latitude of the ground point glon The longitude of the ground point slat The latitude of the subspacecraft or subsolar point slon The longitude of the subspacecraft or subsolar point
Returns
double The azimuth in degrees

Definition at line 2255 of file Camera.cpp.

References Isis::PI().

 LineScanCameraGroundMap* Isis::LineScanCamera::GroundMap ( )
inlineinherited

Returns a pointer to the LineScanCameraGroundMap object.

Returns
LineScanCameraGroundMap*

Definition at line 70 of file LineScanCamera.h.

References Isis::Camera::GroundMap().

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

Computes the Ground Range.

Parameters
 minlat The minimum latitude maxlat The maximum latitude minlon The minimum longitude maxlon The maximum longitude pvl The 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 1198 of file Camera.cpp.

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

Returns true if the kernel group has kernel files.

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

Definition at line 1380 of file Spice.cpp.

 bool Isis::Camera::HasProjection ( )
inherited

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 2642 of file Camera.cpp.

References Isis::Camera::p_projection.

Referenced by Isis::CubeViewport::CubeViewport(), and Isis::ImagePolygon::initCube().

 bool Isis::Camera::HasReferenceBand ( ) const
inherited

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 2674 of file Camera.cpp.

References Isis::Camera::p_referenceBand.

 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 201 of file Sensor.cpp.

 double Isis::Camera::HighestImageResolution ( )
inherited

Returns the highest/best resolution in the entire image.

Returns
double The highest/best resolution in the entire image

Definition at line 726 of file Camera.cpp.

References Isis::Camera::GroundRangeResolution(), and Isis::Camera::p_minres.

 double Isis::Camera::HighestObliqueImageResolution ( )
inherited

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

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

Definition at line 748 of file Camera.cpp.

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

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

Parameters
 ignore Indicates whether the elevation model is ignored.

Definition at line 75 of file Sensor.cpp.

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

Set whether or not the camera should ignore the Projection.

Parameters
 ignore

Definition at line 2917 of file Camera.cpp.

References Isis::Camera::p_ignoreProjection.

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

Returns the incidence angle in degrees.

This does not use the surface model.

Returns
double Incidence angle, in degrees.

Definition at line 350 of file Sensor.cpp.

 bool Isis::Camera::InCube ( )
inherited

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 2623 of file Camera.cpp.

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

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

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

Definition at line 755 of file Spice.cpp.

References _FILEINFO_.

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

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

Parameters
 v[] Spacecraft velocity

Definition at line 773 of file Spice.cpp.

References _FILEINFO_.

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

This method returns the full instrument name.

Returns
QString

Implements Isis::Sensor.

Reimplemented in Isis::IdealCamera.

Definition at line 2878 of file Camera.cpp.

References Isis::Camera::m_instrumentNameLong.

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

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

This method returns the shortened instrument name.

Returns
QString

Implements Isis::Sensor.

Reimplemented in Isis::IdealCamera.

Definition at line 2888 of file Camera.cpp.

References Isis::Camera::m_instrumentNameShort.

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

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

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

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

Definition at line 742 of file Spice.cpp.

 SpicePosition * Isis::Spice::instrumentPosition ( ) const
inherited

Accessor method for the instrument position.

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

Definition at line 1454 of file Spice.cpp.

 SpiceRotation * Isis::Spice::instrumentRotation ( ) const
inherited

Accessor method for the instrument rotation.

Returns
iTime Instrument rotation for the image.
History:
2011-02-09 Steven Lambright - Original version.

Definition at line 1476 of file Spice.cpp.

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

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

Parameters
 pvl The 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 1181 of file Camera.cpp.

References Isis::Camera::GroundRange().

 bool Isis::Camera::IsBandIndependent ( )
virtualinherited

Virtual method that checks if the band is independent.

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

Definition at line 2653 of file Camera.cpp.

 bool Isis::Spice::isTimeSet ( )
inherited

Returns true if time has been initialized.

Returns
bool true if time has been set

Definition at line 1431 of file Spice.cpp.

 double Isis::Camera::Line ( )
inherited
 double Isis::Camera::LineResolution ( )
inherited

Returns the line resolution at the current position in meters.

Returns
double The line resolution

Definition at line 664 of file Camera.cpp.

 int Isis::Camera::Lines ( ) const
inherited

Returns the number of lines in the image.

Returns
int Number of Lines

Definition at line 2788 of file Camera.cpp.

References Isis::Camera::p_lines.

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

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
 phase The local phase angle to be calculated emission The local emission angle to be calculated incidence The local incidence angle to be calculated

Definition at line 1659 of file Camera.cpp.

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.

Returns
Distance The local radius at the surface intersection.

Definition at line 282 of file Sensor.cpp.

 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 300 of file Sensor.cpp.

References Isis::Target::shape(), and Isis::Spice::target().

 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 316 of file Sensor.cpp.

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

 double Isis::Sensor::LocalSolarTime ( )
inherited

Return the local solar time in hours.

Returns
double Local solar time, in hours.

Definition at line 648 of file Sensor.cpp.

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

 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 515 of file Sensor.cpp.

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

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

Returns the look direction in the body fixed coordinate system.

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

Definition at line 527 of file Sensor.cpp.

References Isis::Sensor::m_lookB.

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

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

Returns the look direction in the camera coordinate system.

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

Definition at line 541 of file Sensor.cpp.

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

 double Isis::Camera::LowestImageResolution ( )
inherited

Returns the lowest/worst resolution in the entire image.

Returns
double The lowest/worst resolution in the image

Definition at line 715 of file Camera.cpp.

References Isis::Camera::GroundRangeResolution(), and Isis::Camera::p_maxres.

 double Isis::Camera::LowestObliqueImageResolution ( )
inherited

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

Returns
double The lowest/worst oblique resolution in the image

Definition at line 737 of file Camera.cpp.

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

Referenced by Isis::Camera::SpkCenterId().

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

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

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

Referenced by Isis::CrismCamera::CrismCamera().

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

 double Isis::Camera::NorthAzimuth ( )
inherited

Returns the North Azimuth.

Returns
double North Azimuth

Definition at line 1910 of file Camera.cpp.

 double Isis::Camera::ObliqueDetectorResolution ( )
inherited

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

Returns
double

Definition at line 595 of file Camera.cpp.

Referenced by Isis::Camera::ObliqueLineResolution(), and Isis::Camera::ObliqueSampleResolution().

 double Isis::Camera::ObliqueLineResolution ( )
inherited

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

Definition at line 676 of file Camera.cpp.

 double Isis::Camera::ObliquePixelResolution ( )
inherited

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 701 of file Camera.cpp.

 double Isis::Camera::ObliqueSampleResolution ( )
inherited

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

Definition at line 653 of file Camera.cpp.

inherited

Return the off nadir angle in degrees.

Returns

Definition at line 2213 of file Camera.cpp.

 int Isis::Camera::ParentLines ( ) const
inherited

Returns the number of lines in the parent alphacube.

Returns
int Number of Lines in parent alphacube

Definition at line 2808 of file Camera.cpp.

References Isis::AlphaCube::AlphaLines(), and Isis::Camera::p_alphaCube.

 int Isis::Camera::ParentSamples ( ) const
inherited

Returns the number of samples in the parent alphacube.

Returns
int Number of Samples in the parent alphacube

Definition at line 2818 of file Camera.cpp.

References Isis::AlphaCube::AlphaSamples(), and Isis::Camera::p_alphaCube.

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

Returns the phase angle in degrees.

This does not use the surface model.

Returns
double Phase angle, in degrees.

Definition at line 327 of file Sensor.cpp.

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

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.

Reimplemented from Isis::Sensor.

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

Definition at line 2757 of file Camera.cpp.

References Isis::Camera::DetectorMap(), and Isis::Camera::PixelPitch().

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

 double Isis::Camera::PixelPitch ( ) const
inherited
 double Isis::Camera::PixelResolution ( )
inherited

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

Returns
double The pixel resolution

Definition at line 686 of file Camera.cpp.

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

Parameters
 minra Minimum right ascension value maxra Maximum right ascension value mindec Minimum declination value maxdec Maximum declination value
Returns
bool Returns true if the range computation was successful and false if it was not

Definition at line 1724 of file Camera.cpp.

inherited

Returns

Definition at line 1866 of file Camera.cpp.

Referenced by Isis::Camera::CelestialNorthClockAngle().

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

 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
 key The naif keyword,value name type The naif value's primitive type index The index into the naif keyword array to read

Definition at line 1004 of file Spice.cpp.

References _FILEINFO_.

Referenced by Isis::IdealCamera::IdealCamera().

 int Isis::Camera::ReferenceBand ( ) const
inherited

Returns the reference band.

Returns
int Reference Band

Definition at line 2663 of file Camera.cpp.

References Isis::Camera::p_referenceBand.

 double Isis::Camera::resolution ( )
virtualinherited

Returns the resolution of the camera.

Returns
double pixel resolution

Reimplemented from Isis::Sensor.

Definition at line 2724 of file Camera.cpp.

References Isis::Camera::PixelResolution().

 double Isis::Sensor::RightAscension ( )
inherited

Returns the right ascension angle (sky longitude).

Returns
double The angle of right ascension, in degrees.

Definition at line 553 of file Sensor.cpp.

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

Analogous to the above Ground Range method.

Computes Range on the ring plane

Parameters
 minRingRadius The minimum ring radius maxRingRadius The maximum ring radius minRingLongitude The minimum ring longitude maxRingLongitude The maximum ring longitude pvl The 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 1302 of file Camera.cpp.

 double Isis::Camera::Sample ( )
inherited

Returns the current sample number.

Returns
double Sample Number

Definition at line 2694 of file Camera.cpp.

References Isis::Camera::p_childSample.

 double Isis::Camera::SampleResolution ( )
inherited

Returns the sample resolution at the current position in meters.

Returns
double The sample resolution

Definition at line 642 of file Camera.cpp.

 int Isis::Camera::Samples ( ) const
inherited

Returns the number of samples in the image.

Returns
int Number of Samples

Definition at line 2778 of file Camera.cpp.

References Isis::Camera::p_samples.

 void Isis::Camera::SetBand ( const int band )
virtualinherited

Virtual method that sets the band number.

Parameters
 band Band Number

Definition at line 2684 of file Camera.cpp.

References Isis::Camera::p_childBand.

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

Sets the Detector Map.

This object will take ownership of the detector map pointer.

Parameters
 *map Pointer to a CameraDetectorMap object

Definition at line 2383 of file Camera.cpp.

References Isis::Camera::p_detectorMap.

 void Isis::Camera::SetDistortionMap ( CameraDistortionMap * map )
inherited

Sets the Distortion Map.

This object will take ownership of the distortion map pointer.

Parameters
 *map Pointer to a CameraDistortionMap object

Definition at line 2353 of file Camera.cpp.

References Isis::Camera::p_distortionMap.

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

Sets the focal length.

Parameters
 v Focal Length

Definition at line 3006 of file Camera.cpp.

References Isis::Camera::p_focalLength.

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

Sets the Focal Plane Map.

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

Parameters
 *map Pointer to a CameraFocalPlaneMap object

Definition at line 2368 of file Camera.cpp.

References Isis::Camera::p_focalPlaneMap.

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

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
 startSize The tile size to start with; default 128 endSize The tile size to give up at; default 8

Definition at line 2558 of file Camera.cpp.

 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
 backCheck If true this method will check the lat/lon point to see if it falls on the backside of the target (or beyond the horizon). If false this test will not occur. Defaults to true.
Returns
bool

Definition at line 441 of file Sensor.cpp.

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

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

Parameters
 latitude Latitude coordinate of the point longitude Longitude coordinate of the point
Returns
bool Returns true if the Universal Ground was set successfully and false if it was not

Definition at line 413 of file Camera.cpp.

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

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

Parameters
 latitude Latitude coordinate of the point longitude Longitude coordinate of the point
Returns
bool Returns true if the Universal Ground was set successfully and false if it was not

Definition at line 444 of file Camera.cpp.

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

Sets the Ground Map.

This object will take ownership of the ground map pointer.

Parameters
 *map Pointer to a CameraGroundMap object

Definition at line 2398 of file Camera.cpp.

References Isis::Camera::p_groundMap.

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

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

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
 sample Sample coordinate of the cube. line Line coordinate of the cube. deltaT seconds from the center exposure time
Returns
bool Returns True if the image was set successfully and False if it was not.

Definition at line 240 of file Camera.cpp.

 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 156 of file Sensor.cpp.

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

Sets the pixel pitch.

Parameters
 v Pixel Pitch

Definition at line 3015 of file Camera.cpp.

References Isis::Camera::p_pixelPitch.

 bool Isis::Camera::SetRightAscensionDeclination ( const double ra, const double dec )
inherited

Sets the right ascension declination.

Parameters
 ra Right ascension value dec Declination value
Returns
bool Returns true if the declination was set successfully and false if it was not

Definition at line 1451 of file Camera.cpp.

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

Sets the Sky Map.

This object will take ownership of the sky map pointer.

Parameters
 *map Pointer to a CameraSkyMap object

Definition at line 2412 of file Camera.cpp.

References Isis::Camera::p_skyMap.

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

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
 time Ephemeris time.

Definition at line 112 of file Sensor.cpp.

 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
 latitude Planetocentric latitude. longitude Positive east longitude. backCheck If true this method will check the lat/lon point to see if it falls on the backside of the target (or beyond the horizon). If false this test will not occur. Defaults to true.
Returns
bool True if the look direction intersects the target.

Definition at line 371 of file Sensor.cpp.

 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
 latitude Planetocentric latitude in degrees. longitude Positive east longitude in degrees. radius Radius in meters. backCheck If true this method will check the lat/lon point to see if it falls on the backside of the target (or beyond the horizon). If false this test will not occur. Defaults to true.
Returns
bool True if the look direction intersects the target.

Definition at line 406 of file Sensor.cpp.

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

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

Parameters
 latitude Latitude coordinate of the point longitude Longitude coordinate of the point
Returns
bool Returns true if the Universal Ground was set successfully and false if it was not

Definition at line 392 of file Camera.cpp.

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

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

Parameters
 latitude Latitude coordinate of the cube longitude Longitude coordinate of the cube radius Radius coordinate of the cube
Returns
bool Returns True if the Universal Ground was set successfully and False if it was not

Definition at line 555 of file Camera.cpp.

inlineinherited

Returns a pointer to the LineScanCameraSkyMap object.

Returns

Definition at line 79 of file LineScanCamera.h.

References Isis::Camera::SkyMap().

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

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

Returns
double Slant distance.

Definition at line 625 of file Sensor.cpp.

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

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

Returns
double Solar distance.

Definition at line 665 of file Sensor.cpp.

 Longitude Isis::Spice::solarLongitude ( )
inherited

Returns the solar longitude.

Returns
double The Solar Longitude

Definition at line 1363 of file Spice.cpp.

 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 689 of file Sensor.cpp.

 double Isis::Camera::SpacecraftAzimuth ( )
inherited

Return the Spacecraft Azimuth.

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

Definition at line 1951 of file Camera.cpp.

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

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

This method returns the full spacecraft name.

Returns
QString

Implements Isis::Sensor.

Reimplemented in Isis::IdealCamera.

Definition at line 2898 of file Camera.cpp.

References Isis::Camera::m_spacecraftNameLong.

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

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

This method returns the shortened spacecraft name.

Returns
QString

Implements Isis::Sensor.

Reimplemented in Isis::IdealCamera.

Definition at line 2908 of file Camera.cpp.

References Isis::Camera::m_spacecraftNameShort.

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

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

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

Parameters
 scSurfaceVector The direction vector from the observer to the surface intersection.

Definition at line 613 of file Sensor.cpp.

References Isis::Sensor::m_lookB.

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

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
*

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::VimsCamera, Isis::IssWACamera, Isis::IssNACamera, and Isis::IdealCamera.

Definition at line 2997 of file Camera.cpp.

References Isis::Spice::naifBodyCode().

 virtual int Isis::MocNarrowAngleCamera::SpkReferenceId ( ) const
inlinevirtual

SPK Reference ID - J2000.

Returns
int The appropriate instrument code for the Spacecraft Kernel Reference ID

Implements Isis::Camera.

Definition at line 87 of file MocNarrowAngleCamera.h.

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

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

Definition at line 2955 of file Camera.cpp.

References Isis::Spice::naifSpkCode().

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

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.

Exceptions
 iException::Programmer - "Unable to find time range for the spice kernels."
createCache()
History:
2011-02-02 Jeannie Walldren - Original version.

Definition at line 2488 of file Camera.cpp.

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

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

Parameters
 lat Sub-solar latitude lon Sub-solar longitude
setTime()
Exceptions
 Isis::IException::Programmer - "You must call SetTime first."

Definition at line 1238 of file Spice.cpp.

References _FILEINFO_, and Isis::PI().

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

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

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

Parameters
 lat Sub-spacecraft latitude lon Sub-spacecraft longitude
setTime()
Exceptions
 Isis::IException::Programmer - "You must call SetTime first."

Definition at line 1189 of file Spice.cpp.

References _FILEINFO_, and Isis::PI().

 double Isis::Camera::SunAzimuth ( )
inherited

Returns the Sun Azimuth.

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

Definition at line 1937 of file Camera.cpp.

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

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

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

Parameters
 p[] Sun position
setTime()

Definition at line 822 of file Spice.cpp.

References _FILEINFO_.

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

Accessor method for the sun position.

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

Definition at line 1443 of file Spice.cpp.

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

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

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

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

Definition at line 838 of file Spice.cpp.

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

Returns the QString name of the target.

Returns
QString

Definition at line 1287 of file Spice.cpp.

References Isis::Target::name().

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

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

References _FILEINFO_.

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

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 225 of file Sensor.cpp.

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

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

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 248 of file Sensor.cpp.

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

## Member Data Documentation

 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 369 of file Spice.h.

 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 364 of file Spice.h.

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