20 class CameraDetectorMap;
21 class CameraFocalPlaneMap;
22 class CameraDistortionMap;
23 class CameraGroundMap;
246 virtual bool SetImage(
const double sample,
const double line);
247 virtual bool SetImage(
const double sample,
const double line,
const double deltaT);
251 const double radius);
257 Angle & emission,
bool &success);
258 void Slope(
double &slope,
bool &success);
266 virtual void SetBand(
const int band);
267 virtual double Sample()
const;
268 virtual int Band()
const;
269 virtual double Line()
const;
271 bool GroundRange(
double &minlat,
double &maxlat,
double &minlon,
272 double &maxlon,
Pvl &pvl);
273 bool ringRange(
double &minRingRadius,
double &maxRingRadius,
274 double &minRingLongitude,
double &maxRingLongitude,
Pvl &pvl);
302 const int band = -1)
const;
314 double &mindec,
double &maxdec);
341 static double GroundAzimuth(
double glat,
double glon,
double slat,
348 int CacheSize(
double startTime,
double endTime);
This class is used to rewrite the "alpha" keywords out of the AlphaCube group or Instrument group.
Defines an angle and provides unit conversions.
Convert between parent image coordinates and detector coordinates.
Distort/undistort focal plane coordinates.
Convert between distorted focal plane and detector coordinates.
Convert between undistorted focal plane and ground coordinates.
double NorthAzimuth()
Returns the North Azimuth.
std::pair< double, double > StartEndEphemerisTimes()
Calculates the start and end ephemeris times.
virtual double SampleResolution()
Returns the sample resolution at the current position in meters.
QString m_spacecraftNameLong
Full spacecraft name.
double p_maxRingLongitude180
The maximum ring longitude in the 180 domain.
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,...
AlphaCube * p_alphaCube
A pointer to the AlphaCube.
double p_mindec
The minimum declination.
Projection * p_projection
A pointer to the Projection.
void GroundRangeResolution()
Computes the ground range and min/max resolution.
double p_maxres
The maximum resolution.
virtual double exposureDuration() const
Return the exposure duration for the pixel that the camera is set to.
double p_maxobliqueres
The maximum oblique resolution.
double p_focalLength
The focal length, in units of millimeters.
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.
double p_minra
The minimum right ascension.
bool p_raDecRangeComputed
Flag showing if the raDec range has been computed successfully.
virtual ~Camera()
Destroys the Camera Object.
int ParentLines() const
Returns the number of lines in the parent alphacube.
void SetSkyMap(CameraSkyMap *map)
Sets the Sky Map.
virtual int SpkReferenceId() const =0
Provides reference frame for instruments SPK NAIF kernel.
virtual double DetectorResolution()
Returns the detector resolution at the current position in meters.
double LowestObliqueImageResolution()
Returns the lowest/worst oblique resolution in the entire image.
double SpacecraftAzimuth()
Return the Spacecraft Azimuth.
CameraSkyMap * p_skyMap
A pointer to the SkyMap.
CameraDetectorMap * DetectorMap()
Returns a pointer to the CameraDetectorMap object.
double CelestialNorthClockAngle()
Computes the celestial north clock angle at the current line/sample or ra/dec.
double p_maxra
The maxumum right ascension.
virtual int CkReferenceId() const =0
Provides the NAIF reference code for an instruments CK kernel.
virtual double Line() const
Returns the current line number.
void GetGeometricTilingHint(int &startSize, int &endSize)
This will get the geometric tiling hint; these values are typically used for ProcessRubberSheet::SetT...
double RaDecResolution()
Returns the RaDec resolution.
void IgnoreProjection(bool ignore)
Set whether or not the camera should ignore the Projection.
CameraDetectorMap * p_detectorMap
A pointer to the DetectorMap.
Camera(Cube &cube)
Constructs the Camera object.
bool IntersectsLongitudeDomain(Pvl &pvl)
Checks whether the ground range intersects the longitude domain or not.
double SunAzimuth()
Returns the Sun Azimuth.
double PixelPitch() const
Returns the pixel pitch.
double p_minobliqueres
The minimum oblique resolution.
double p_minres
The minimum resolution.
int ReferenceBand() const
Returns the reference band.
double p_maxlon180
The maximum longitude in the 180 domain.
double p_maxRingRadius
The maximum ring radius.
CameraSkyMap * SkyMap()
Returns a pointer to the CameraSkyMap object.
virtual int CkFrameId() const =0
Provides the NAIF frame code for an instruments CK kernel.
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.
int p_referenceBand
The reference band.
QString m_instrumentId
The InstrumentId as it appears on the cube.
double p_minRingLongitude180
The minimum ring longitude in the 180 domain.
int ParentSamples() const
Returns the number of samples in the parent alphacube.
virtual double ObliquePixelResolution(bool useLocal=true)
Returns the oblique pixel resolution at the current position in meters/pixel.
void BasicMapping(Pvl &map)
Writes the basic mapping group to the specified Pvl.
int Lines() const
Returns the number of lines in the image.
CameraType
This enum defines the types of cameras supported in this class.
@ PushFrame
Push Frame Camera.
@ LineScan
Line Scan Camera.
@ Csm
Community Sensor Model Camera.
@ RollingShutter
RollingShutter.
int p_geometricTilingEndSize
The ideal geometric tile size to end with when projecting.
virtual double Sample() const
Returns the current sample number.
void ringRangeResolution()
Analogous to above GroundRangeResolution method.
QString spacecraftNameLong() const
This method returns the full spacecraft name.
bool p_groundRangeComputed
Flag showing if ground range was computed successfully.
virtual double PixelResolution()
Returns the pixel resolution at the current position in meters/pixel.
bool ringRange(double &minRingRadius, double &maxRingRadius, double &minRingLongitude, double &maxRingLongitude, Pvl &pvl)
Analogous to the above Ground Range method.
double OffNadirAngle()
Return the off nadir angle in degrees.
virtual bool SetImage(const double sample, const double line)
Sets the sample/line values of the image to get the lat/lon values.
void SetGeometricTilingHint(int startSize=128, int endSize=8)
This method sets the best geometric tiling size for projecting from this camera model.
virtual double LineResolution()
Returns the line resolution at the current position in meters.
void SetFocalLength()
Reads the focal length from the instrument kernel.
QString instrumentNameLong() const
This method returns the full instrument name.
void SetPixelPitch()
Reads the Pixel Pitch from the instrument kernel.
double FocalLength() const
Returns the focal length.
virtual int Band() const
Returns the current band.
void SetDetectorMap(CameraDetectorMap *map)
Sets the Detector Map.
double p_maxlat
The maximum latitude.
int p_samples
The number of samples in the image.
bool HasProjection()
Checks to see if the camera object has a projection.
int p_lines
The number of lines in the image.
bool InCube()
This returns true if the current Sample() or Line() value is outside of the cube (meaning the point m...
double p_minlat
The minimum latitude.
double p_childSample
Sample value for child.
void LoadCache()
This loads the spice cache big enough for this image.
virtual bool SetUniversalGround(const double latitude, const double longitude)
Sets the lat/lon values to get the sample/line values.
virtual CameraType GetCameraType() const =0
Returns the type of camera that was created.
double ComputeAzimuth(const double lat, const double lon)
Computes the image azimuth value from your current position (origin) to a point of interest specified...
QString instrumentNameShort() const
This method returns the shortened instrument name.
bool p_pointComputed
Flag showing if Sample/Line has been computed.
void SetFocalPlaneMap(CameraFocalPlaneMap *map)
Sets the Focal Plane Map.
virtual double ObliqueLineResolution(bool useLocal=true)
Returns the oblique line resolution at the current position in meters.
double p_minra180
The minimum right ascension in the 180 domain.
bool p_ignoreProjection
Whether or no to ignore the Projection.
QString m_instrumentNameShort
Shortened instrument name.
CameraFocalPlaneMap * p_focalPlaneMap
A pointer to the FocalPlaneMap.
void LocalPhotometricAngles(Angle &phase, Angle &incidence, Angle &emission, bool &success)
Calculates LOCAL photometric angles using the DEM (not ellipsoid).
void GetLocalNormal(double normal[3])
This method will find the local normal at the current (sample, line) and set it to the passed in arra...
QString instrumentId()
This method returns the InstrumentId as it appears in the cube.
CameraGroundMap * p_groundMap
A pointer to the GroundMap.
CameraDistortionMap * DistortionMap()
Returns a pointer to the CameraDistortionMap object.
double HighestImageResolution()
Returns the highest/best resolution in the entire image.
virtual bool SetGround(Latitude latitude, Longitude longitude)
Sets the lat/lon values to get the sample/line values.
QString spacecraftNameShort() const
This method returns the shortened spacecraft name.
double HighestObliqueImageResolution()
Returns the highest/best oblique resolution in the entire image.
virtual int SpkTargetId() const
Provides target code for instruments SPK NAIF kernel.
QString m_spacecraftNameShort
Shortened spacecraft name.
bool p_ringRangeComputed
Flag showing if ring range was computed successfully.
double p_minlon
The minimum longitude.
virtual bool IsBandIndependent()
Virtual method that checks if the band is independent.
virtual double ObliqueSampleResolution(bool useLocal=true)
Returns the oblique sample resolution at the current position in m.
bool GroundRange(double &minlat, double &maxlat, double &minlon, double &maxlon, Pvl &pvl)
Computes the Ground Range.
double p_maxRingLongitude
The maximum ring longitude (azimuth)
int p_bands
The number of bands in the image.
virtual double ObliqueDetectorResolution(bool useLocal=true)
This method returns the Oblique Detector Resolution if the Look Vector intersects the target and if t...
void SetGroundMap(CameraGroundMap *map)
Sets the Ground Map.
bool RaDecRange(double &minra, double &maxra, double &mindec, double &maxdec)
Computes the RaDec range.
double p_minRingLongitude
The minimum ring longitude (azimuth)
CameraDistortionMap * p_distortionMap
A pointer to the DistortionMap.
double p_maxdec
The maximum declination.
double p_minRingRadius
The minimum ring radius.
void basicRingMapping(Pvl &map)
Writes the basic mapping group for ring plane to the specified Pvl.
int CacheSize(double startTime, double endTime)
This method calculates the spice cache size.
void Slope(double &slope, bool &success)
Calculates the slope at the current point by computing the angle between the local surface normal and...
double p_maxra180
The maximum right ascension in the 180 domain.
bool HasReferenceBand() const
Checks to see if the Camera object has a reference band.
bool RawFocalPlanetoImage()
Computes the image coordinate for the current universal ground point.
double p_pixelPitch
The pixel pitch, in millimeters per pixel.
double LowestImageResolution()
Returns the lowest/worst resolution in the entire image.
int Samples() const
Returns the number of samples in the image.
virtual QList< QPointF > PixelIfovOffsets()
Returns the pixel ifov offsets from center of pixel, which defaults to the (pixel pitch * summing mod...
CameraFocalPlaneMap * FocalPlaneMap()
Returns a pointer to the CameraFocalPlaneMap object.
virtual bool SetRightAscensionDeclination(const double ra, const double dec)
Sets the right ascension declination.
double p_minlon180
The minimum longitude in the 180 domain.
void SetDistortionMap(CameraDistortionMap *map, bool deleteExisting=true)
Sets the Distortion Map.
int p_childBand
Band value for child.
double p_childLine
Line value for child.
virtual double resolution()
Returns the resolution of the camera.
virtual void SetBand(const int band)
Virtual method that sets the band number.
CameraGroundMap * GroundMap()
Returns a pointer to the CameraGroundMap object.
virtual int SpkCenterId() const
Provides the center of motion body for SPK NAIF kernel.
QString m_instrumentNameLong
Full instrument name.
double p_maxlon
The maximum longitude.
int p_geometricTilingStartSize
The ideal geometric tile size to start with when projecting.
int Bands() const
Returns the number of bands in the image.
Convert between undistorted focal plane and ra/dec coordinates.
IO Handler for Isis Cubes.
This class is designed to encapsulate the concept of a Latitude.
This class is designed to encapsulate the concept of a Longitude.
Base class for Map Projections.
Container for cube-like labels.
Convert between undistorted focal plane coordinate (slant range) and ground coordinates.
Convert between radar ground range and slant range.
Class for computing sensor ground coordinates.
Define shapes and provide utilities for Isis targets.
This class defines a body-fixed surface point.
This is free and unencumbered software released into the public domain.