9#include "LoMediumCamera.h"
10#include "LoMediumDistortionMap.h"
11#include "LoCameraFiducialMap.h"
16#include "CameraDetectorMap.h"
17#include "CameraDistortionMap.h"
18#include "CameraFocalPlaneMap.h"
19#include "CameraGroundMap.h"
20#include "CameraSkyMap.h"
23#include "NaifStatus.h"
62 QString msg =
"File does not appear to be a Lunar Orbiter image: ";
64 msg +=
" is not a supported instrument kernel code for Lunar Orbiter.";
71 QString spacecraft = inst[
"SpacecraftName"];
72 QString instId = inst[
"InstrumentId"];
75 if(inst.hasKeyword(
"FiducialSamples")) {
78 else if(inst.hasKeyword(
"BoresightSample")) {
82 string msg =
"Unknown focal plane map type: ";
83 msg +=
"Labels must include fiducials or boresight";
95 double time =
iTime((QString)inst[
"StartTime"]).
Et();
102 focalMap->SetDetectorOrigin(0.0, 0.0);
107 double boresightSample = inst[
"BoresightSample"];
108 double boresightLine = inst[
"BoresightLine"];
110 focalMap->SetDetectorOrigin(boresightSample, boresightLine);
124 if ( spacecraft.contains(
"3") ) {
127 else if ( spacecraft.contains(
"4") ) {
130 else if ( spacecraft.contains(
"5") ) {
134 QString msg =
"File does not appear to be an LunarOrbiter 3,4,5 image";
168 double exposureDuration) {
169 pair<iTime, iTime> shuttertimes;
Convert between parent image coordinates and detector coordinates.
Convert between distorted focal plane and detector coordinates.
Convert between undistorted focal plane and ground coordinates.
QString m_spacecraftNameLong
Full spacecraft name.
virtual double exposureDuration() const
Return the exposure duration for the pixel that the camera is set to.
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.
Convert between undistorted focal plane and ra/dec coordinates.
IO Handler for Isis Cubes.
Pvl * label() const
Returns a pointer to the IsisLabel object associated with the cube.
Generic class for Framing Cameras.
@ User
A type of error that could only have occurred due to a mistake on the user's part (e....
@ Programmer
This error is for when a programmer made an API call that was illegal.
Computes map from image coordinates to focal plane based on fiducials.
Defines the Lunar Orbiter Medium Resolution camera class.
int m_ckFrameId
LO 3,4,5 CK frame id.
FocalPlaneMapType
This enum defines the types of focal plane maps supported in this class.
@ Fiducial
Fiducial Focal Plane Map.
@ Boresight
Boresight Focal Plane Map.
virtual std::pair< iTime, iTime > ShutterOpenCloseTimes(double time, double exposureDuration)
Returns the shutter open and close times.
LoMediumCamera(Cube &cube)
Initialize the LoMedium 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 time() const
Returns the ephemeris time in seconds which was used to obtain the spacecraft and sun positions.
virtual SpicePosition * instrumentPosition() const
Accessor method for the instrument position.
SpiceInt naifIkCode() const
This returns the NAIF IK code to use when reading from instrument kernels.
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.
Namespace for the standard library.