9#include "ApolloPanoramicCamera.h"
11#include "ApolloPanIO.h"
12#include "ApolloPanoramicDetectorMap.h"
16#include "CameraDistortionMap.h"
17#include "CameraFocalPlaneMap.h"
18#include "IException.h"
21#include "LineScanCameraDetectorMap.h"
22#include "LineScanCameraGroundMap.h"
23#include "LineScanCameraSkyMap.h"
25#include "PvlKeyword.h"
41 double constantTimeOffset = 0.0,
42 additionalPreroll = 0.0,
43 additiveLineTimeError = 0.0,
44 multiplicativeLineTimeError = 0.0;
66 QString msg =
"File does not appear to be an Apollo image";
67 throw IException(IException::User, msg, _FILEINFO_);
78 additiveLineTimeError =
getDouble(ikernKey);
81 multiplicativeLineTimeError =
getDouble(ikernKey);
83 Pvl &lab = *cube.
label();
84 PvlGroup &inst = lab.findGroup(
"Instrument", Pvl::Traverse);
85 QString stime = (QString)inst[
"StartTime"];
87 str2et_c(stime.toLatin1().data(), &etStart);
88 stime = (QString) inst[
"StopTime"];
90 str2et_c(stime.toLatin1().data(), &etStop);
91 iTime isisTime( (QString) inst[
"StartTime"]);
95 double lineRate = ( (double) inst[
"LineExposureDuration"] )*0.005;
97 lineRate *= 1.0 + multiplicativeLineTimeError;
98 lineRate += additiveLineTimeError;
99 etStart += additionalPreroll * lineRate;
100 etStart += constantTimeOffset;
109 (etStart+etStop)/2.0,
110 (
double)lineRate, &lab);
119 PvlGroup &kernel = lab.findGroup(
"Kernels", Pvl::Traverse);
123 double sampleBoreSight = 0.0;
124 double lineBoreSight = 0.0;
137 PvlGroup &instP = lab.findGroup(
"Kernels", Pvl::Traverse);
ApolloPanoramicCamera(Cube &lab)
Constructs an Apollo Panoramic Camera object using the image labels.
double m_residualMean
Max interior orientation residual vector length.
double m_residualMax
Mean (average) of interior orientation residual vector length.
int m_CkFrameId
CK "Camera Matrix" kernel frame ID.
double m_residualStdev
Standard deviation of interior orientation residual vector length.
Convert between parent image (aka encoder aka machine) coordinates and detector coordinates.
double maxResidual()
Max interior orientation residual vector length, accesor.
double stdevResidual()
Standard deviation of interior orientation residual vector lengths, accesor.
double meanResidual()
Mean (average) of interior orientation residual vector lengths, accesor.
void SetStartingDetectorSample(const double sample)
Set the starting detector sample.
void SetDetectorSampleSumming(const double summing)
Set sample summing mode.
Distort/undistort focal plane coordinates.
Convert between distorted focal plane and detector coordinates.
void SetDetectorOffset(const double sampleOffset, const double lineOffset)
Set the detector offset.
void SetDetectorOrigin(const double sample, const double line)
Set the detector origin.
QString m_spacecraftNameLong
Full spacecraft name.
void SetFocalLength()
Reads the focal length from the instrument kernel.
void SetPixelPitch()
Reads the Pixel Pitch from the instrument kernel.
void LoadCache()
This loads the spice cache big enough for this image.
QString m_instrumentNameShort
Shortened instrument name.
QString m_spacecraftNameShort
Shortened spacecraft name.
QString m_instrumentNameLong
Full instrument name.
IO Handler for Isis Cubes.
Pvl * label() const
Returns a pointer to the IsisLabel object associated with the cube.
Convert between undistorted focal plane and ground coordinates.
LineScanCamera(Isis::Cube &cube)
Constructs the LineScanCamera object.
Convert between undistorted focal plane and ra/dec coordinates.
void setTime(const iTime &time)
By setting the time you essential set the position of the spacecraft and body as indicated in the cla...
SpiceInt naifIkCode() const
This returns the NAIF IK code to use when reading from instrument kernels.
SpiceDouble getDouble(const QString &key, int index=0)
This returns a value from the NAIF text pool.
Parse and return pieces of a time string.
This is free and unencumbered software released into the public domain.
QString toString(const LinearAlgebra::Vector &vector, int precision)
A global function to format LinearAlgebra::Vector as a QString with the given precision.
Namespace for the standard library.