22#include "csm/RasterGM.h"
78 virtual bool SetImage(
const double sample,
const double line);
83 virtual bool SetUniversalGround(
const double latitude,
const double longitude,
double radius);
100 virtual void subSpacecraftPoint(
double &lat,
double &lon,
double line,
double sample);
131 std::vector<double> getSensorPartials(
int index,
SurfacePoint groundPoint);
146 void init(
Cube &cube, QString pluginName, QString modelName, QString stateString);
148 csm::RasterGM *m_model;
151 void isisToCsmPixel(
double line,
double sample, csm::ImageCoord &csmPixel)
const;
152 void csmToIsisPixel(csm::ImageCoord csmPixel,
double &line,
double &sample)
const;
QString getModelState() const
Get the CSM Model state string to re-create the CSM Model.
virtual void computeSolarLongitude(iTime et)
Computes the solar longitude for the given ephemeris time.
virtual double DetectorResolution()
Compute the detector resolution in meters per pixel for the current set point.
std::vector< int > getParameterIndices(csm::param::Set paramSet) const
Get the indices of the parameters that belong to a set.
CSMCamera(Cube &cube)
Constructor for an ISIS Camera model that uses a Community Sensor Model (CSM) for the principal trans...
void setTarget(Pvl label)
Set the Target object for the camera model.
QString getParameterUnits(int index)
Get the units of the parameter at a particular index.
virtual int CkFrameId() const
CK frame ID - - Instrument Code from spacit run on CK.
void init(Cube &cube, QString pluginName, QString modelName, QString stateString)
Init method which performs most of the setup for the CSM Camera Model inside ISIS.
double getParameterCovariance(int index1, int index2)
Get the covariance between two parameters.
virtual bool SetImage(const double sample, const double line)
Set the image sample and line for the Camera Model and then compute the corresponding image time,...
virtual QList< QPointF > PixelIfovOffsets()
Returns the pixel ifov offsets from center of pixel.
virtual void setTime(const iTime &time)
Set the time and update the sensor position and orientation.
virtual double parentLine() const
Returns the currently set parent line for the camera model.
virtual SpicePosition * sunPosition() const
Get the SpicePosition object that contains the state information for the sun in J2000.
~CSMCamera()
Destroys the CSMCamera object.
double getParameterValue(int index)
Get the value of a parameter.
virtual double SampleResolution()
Compute the sample resolution in meters per pixel for the current set point.
virtual void subSpacecraftPoint(double &lat, double &lon)
Get the latitude and longitude of the sub-spacecraft point at the currently set time.
virtual bool SetUniversalGround(const double latitude, const double longitude)
Set the latitude and longitude for the Camera Model and then compute the corresponding image time,...
virtual double LineResolution()
Compute the line resolution in meters per pixel for the current set point.
virtual double ObliqueLineResolution(bool useLocal=true)
Compute the oblique line resolution in meters per pixel for the current set point.
virtual CameraType GetCameraType() const
The CSM camera needs a bogus type for now.
virtual int SpkReferenceId() const
SPK Reference ID - J2000.
void csmToIsisPixel(csm::ImageCoord csmPixel, double &line, double &sample) const
Convert a CSM pixel coordinate to an ISIS pixel coordinate.
virtual double IncidenceAngle() const
Compute the incidence angle at the currently set ground point.
virtual double RightAscension()
Computes the Right Ascension of the currently set image coordinate.
virtual int CkReferenceId() const
CK Reference ID - J2000.
csm::EcefCoord isisToCsmGround(const SurfacePoint &groundPt) const
Convert an ISIS ground point into a CSM ground point.
virtual std::vector< double > ImagePartials()
Compute the partial derivatives of the ground point with respect to the line and sample at the curren...
QString getParameterName(int index)
Get the name of the parameter.
virtual double CelestialNorthClockAngle()
Computes the celestial north clock angle at the current line/sample or ra/dec.
SurfacePoint csmToIsisGround(const csm::EcefCoord &groundPt) const
Convert a CSM ground point into an ISIS ground point.
virtual double Declination()
Computes the Declination of the currently set image coordinate.
void applyParameterCorrection(int index, double correction)
Adjust the value of a parameter.
virtual void subSolarPoint(double &lat, double &lon)
Returns the sub-solar latitude/longitude in universal coordinates (0-360 positive east,...
virtual std::vector< double > GroundPartials()
Compute the partial derivatives of the sample, line with respect to the x, y, z coordinates of the gr...
virtual bool SetRightAscensionDeclination(const double ra, const double dec)
Given the ra/dec compute the look direction.
virtual SpicePosition * instrumentPosition() const
Get the SpicePosition object the contains the state information for the sensor in J2000.
virtual double PhaseAngle() const
Compute the phase angle at the currently set ground point.
virtual double ObliqueSampleResolution(bool useLocal=true)
Compute the oblique sample resolution in meters per pixel for the current set point.
std::vector< double > sensorPositionBodyFixed() const
Get the position of the sensor in the body fixed coordinate system at the currently set time.
void isisToCsmPixel(double line, double sample, csm::ImageCoord &csmPixel) const
The reference time that all model image times are relative to.
virtual double EmissionAngle() const
Compute the emission angle at the currently set ground point.
virtual void instrumentBodyFixedPosition(double p[3]) const
Get the position of the sensor in the body fixed coordinate system at the currently set time.
virtual SpiceRotation * instrumentRotation() const
Get the SpiceRotation object the contains the orientation of the sensor relative to J2000.
virtual double parentSample() const
Returns the currently set parent sample for the camera model.
virtual double ObliqueDetectorResolution(bool useLocal=true)
Compute the oblique detector resolution in meters per pixel for the current set point.
virtual SpiceRotation * bodyRotation() const
Get the SpiceRotation object the contains the orientation of the target body relative to J2000.
virtual double SolarDistance() const
Computes the distance to the sun from the currently set ground point.
iTime m_refTime
CSM sensor model.
virtual double SlantDistance() const
Compute the slant distance from the sensor to the ground point at the currently set time.
virtual bool SetGround(Latitude latitude, Longitude longitude)
Set the latitude and longitude for the Camera Model and then compute the corresponding image time,...
virtual bool SetLookDirection(const std::vector< double > lookB)
Sets the look direction of the spacecraft.
virtual int SpkCenterId() const
SPK Center ID - 6 (Saturn)
virtual double targetCenterDistance() const
Calculates and returns the distance from the spacecraft to the target center at the currently set tim...
CameraType
This enum defines the types of cameras supported in this class.
@ Csm
Community Sensor Model Camera.
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.
Container for cube-like labels.
virtual iTime time() const
Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions.
Obtain SPICE position information for a body.
Obtain SPICE rotation information for a body.
This class defines a body-fixed surface point.
Parse and return pieces of a time string.
This is free and unencumbered software released into the public domain.