9#include "LroNarrowAngleCamera.h"
13#include "CameraFocalPlaneMap.h"
14#include "IException.h"
17#include "LineScanCameraDetectorMap.h"
18#include "LineScanCameraGroundMap.h"
19#include "LineScanCameraSkyMap.h"
20#include "LroNarrowAngleDistortionMap.h"
21#include "NaifStatus.h"
47 QString msg =
"File does not appear to be a Lunar Reconnaissance Orbiter Image: ";
49 msg +=
" is not a supported instrument kernel code for Lunar Reconnaissance Orbiter.";
58 double constantTimeOffset = 0.0,
59 additionalPreroll = 0.0,
60 additiveLineTimeError = 0.0,
61 multiplicativeLineTimeError = 0.0;
70 additiveLineTimeError =
getDouble(ikernKey);
73 multiplicativeLineTimeError =
getDouble(ikernKey);
78 QString stime = inst[
"SpacecraftClockPrerollCount"];
85 etStart =
iTime((QString)inst[
"PrerollTime"]).
Et();
89 double csum = inst[
"SpatialSumming"];
90 double lineRate = (double) inst[
"LineExposureDuration"] / 1000.0;
91 double ss = inst[
"SampleFirstPixel"];
94 lineRate *= 1.0 + multiplicativeLineTimeError;
95 lineRate += additiveLineTimeError;
96 etStart += additionalPreroll * lineRate;
97 etStart += constantTimeOffset;
103 detectorMap->SetDetectorSampleSumming(csum);
104 detectorMap->SetStartingDetectorSample(ss);
111 double sampleBoreSight =
getDouble(ikernKey);
114 double lineBoreSight =
getDouble(ikernKey);
116 focalMap->SetDetectorOrigin(sampleBoreSight, lineBoreSight);
117 focalMap->SetDetectorOffset(0.0, 0.0);
Convert between distorted focal plane and detector coordinates.
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.
@ Programmer
This error is for when a programmer made an API call that was illegal.
Convert between parent image coordinates and detector coordinates.
Convert between undistorted focal plane and ground coordinates.
Generic class for Line Scan Cameras.
Convert between undistorted focal plane and ra/dec coordinates.
LRO Narrow Angle Camera Model.
LroNarrowAngleCamera(Cube &cube)
Constructor for the LRO NAC Camera Model.
Distort/undistort focal plane coordinates.
static void CheckErrors(bool resetNaif=true)
This method looks for any naif errors that might have occurred.
Contains multiple PvlContainers.
Container for cube-like labels.
@ Traverse
Search child objects.
void setTime(const iTime &time)
By setting the time you essential set the position of the spacecraft and body as indicated in the cla...
virtual iTime getClockTime(QString clockValue, int sclkCode=-1, bool clockTicks=false)
This converts the spacecraft clock ticks value (clockValue) to an iTime.
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.
double Et() const
Returns the ephemeris time (TDB) representation of the time as a double.
This is free and unencumbered software released into the public domain.
QString toString(bool boolToConvert)
Global function to convert a boolean to a string.
Namespace for the standard library.