diff --git a/isis/src/apollo/apps/apollopangenck/Makefile b/isis/src/apollo/apps/apollopangenck/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..7578f0b21d038db6a5042c095cda9b34b6bb2570
--- /dev/null
+++ b/isis/src/apollo/apps/apollopangenck/Makefile
@@ -0,0 +1,7 @@
+ifeq ($(ISISROOT), $(BLANK))
+.SILENT:
+error:
+	echo "Please set ISISROOT";
+else
+	include $(ISISROOT)/make/isismake.apps
+endif
\ No newline at end of file
diff --git a/isis/src/apollo/apps/apollopangenck/apollopangenck.cpp b/isis/src/apollo/apps/apollopangenck/apollopangenck.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..f01f8233ae8d61de766418939eb0fa929e703ab9
--- /dev/null
+++ b/isis/src/apollo/apps/apollopangenck/apollopangenck.cpp
@@ -0,0 +1,1130 @@
+/**
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy & Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+
+//Isis.h and IsisDebug.h if needed
+#include "Isis.h"
+
+//C++ standard libraries if needed
+#include <math.h>
+
+//QT libraries if needed if needed
+
+//third party libraries if needed
+#include "NaifStatus.h"
+
+//Isis Headers if needed
+#include "Angle.h"
+#include "ApolloPanoramicCamera.h"
+#include "ApolloPanoramicDetectorMap.h"
+#include "AutoReg.h"
+#include "AutoRegFactory.h"
+#include "Camera.h"
+#include "CameraDetectorMap.h"
+#include "Centroid.h"
+#include "CentroidApolloPan.h"
+#include "Chip.h"
+#include "Cube.h"
+#include "CSVReader.h"
+#include "FileName.h"
+#include "IString.h"
+#include "iTime.h"
+#include "JP2Decoder.h"
+#include "LinearAlgebra.h"
+#include "ProcessImport.h"
+#include "Pvl.h"
+#include "PvlGroup.h"
+#include "PvlKeyword.h"
+#include "PvlObject.h"
+#include "PvlTranslationTable.h"
+#include "Spice.h"
+#include "SpicePosition.h"
+#include "SpiceRotation.h"
+#include "Table.h"
+#include "UserInterface.h"
+
+
+#define FIDL  26.72093    //spacing between fiducial marks in mm
+#define ROLLC  74.0846291699105  //constant to convert from V/H to roll speed in rads/sec
+
+#define NODES  87  //must be odd!!!  number of nodes to put in tables
+
+//constants for 5 micro resolution scans
+#define SCALE   10.0   //scale used for down sizingS patternS an search chips
+#define SEARCHh 1400.0  //number of lines (in 5-micron-pixels) in search space for the first fiducial
+#define SEARCHc  350.0  //number of samples per edge(in 5-micron-pixels) in each sub-search area
+#define AVERs  5286.0  //average smaples (in 5-micron-pixels) between fiducials
+#define AVERl  23459.0  //average diference (in 5-micron-pixels) between the top and bottom fiducials
+#define TRANS_N 28520.0  //nomimal dx between scan lines, scani x + 28532 = (approx) scani+1 x--also 
+                         //  the size of the search area for the first fiducial
+
+
+
+using namespace std;
+using namespace Isis;
+
+
+void crossp(double v1[3], double v2[3], double v1cv2[3]);
+void Geographic2GeocentricLunar(double geographic[3], double geocentric[3]);
+void MfromLeftEulers(double M[3][3], double omega, double phi, double kappa);
+void MfromVecLeftAngle(double M[3][3], double vec[3], double angle);
+void M2Q(double M[3][3], double Q[4]);
+
+
+double R_MOON[3];
+
+void IsisMain() {
+  UserInterface &ui = Application::GetUserInterface();
+  double  time0,//start time
+          time1,//end time
+          alti,  //altitude of the spacecraftmore
+          fmc,  //forward motion compensation rad/sec
+          horV,  //horizontal velocity km/sec
+          radV,  //radial velocity km/sec
+          rollV,//roll speed in rad/sec
+          led;  //line exposure duration in seconds
+
+  //***********
+
+  const QString fileName = ui.GetFileName("FROM");
+  CSVReader reader(fileName, true, 0, ',', true, true);
+
+  int numDataRows = reader.rows();
+
+  LinearAlgebra::Matrix tmp(3,3);
+  LinearAlgebra::Matrix phi0(3,3);
+  LinearAlgebra::Matrix omega0(3,3);
+  LinearAlgebra::Matrix kappa0(3,3);
+  LinearAlgebra::Matrix R0(3,3);
+  LinearAlgebra::Matrix R(3,3);
+  LinearAlgebra::Matrix sweep(3,3);
+  double mean_altitude_rate;
+  double horizontal_velocity;
+  double altitude;
+  double rollVelocity;
+  double rollAngularVelocity;
+
+  QString str;
+  CSVReader::CSVAxis row;
+  CSVReader::CSVAxis startRow;
+  CSVReader::CSVAxis stopRow;
+  QStringList outputListFwd;
+  QStringList outputListReverse;
+
+  int rowsProcessed = 0;
+
+  while (rowsProcessed < numDataRows-1) {
+    startRow = reader.getRow(rowsProcessed);
+    QString imageId = startRow[0];
+
+    do {
+      rowsProcessed++;
+      stopRow = reader.getRow(rowsProcessed);
+
+    } while (QString(stopRow[0]) == imageId);
+
+    stopRow = reader.getRow(rowsProcessed-1);
+
+    qDebug() << QString(stopRow[0]);
+    qDebug() << QString(startRow[0]);
+
+    // get data
+    QString strStartTime = startRow[6];
+    QString strStopTime = stopRow[7];
+    iTime startTime(strStartTime);
+    iTime stopTime(strStopTime);
+
+    qDebug() << strStartTime;
+    qDebug() << strStopTime;
+
+    double elapsedTime = stopTime - startTime;
+//    iTime centerTime((startTime) + elapsedTime/2.0);
+
+//    qDebug() << centerTime.UTC();
+
+//   QString ctrTime = "1971-08-03T16:41:01.46976245";
+//  QString ctrTime = "1971-08-03T16:41:01.57976245";
+    QString ctrTime = "1971-08-03T16:41:01.68976245";
+    iTime centerTime(ctrTime);
+
+    str = startRow[21];
+    mean_altitude_rate = str.toDouble();
+
+    str = startRow[22];
+    horizontal_velocity = str.toDouble();
+
+    str = startRow[23];
+    altitude = str.toDouble();
+
+    rollVelocity = sqrt(mean_altitude_rate*mean_altitude_rate +
+                        horizontal_velocity*horizontal_velocity);
+    fmc = rollVelocity/altitude;
+    rollAngularVelocity = fmc * ROLLC;
+
+    str = startRow[24];
+    Angle phi = Angle(str.toDouble(), Angle::Units::Degrees);
+    qDebug() << phi.toString();
+    double cosp = cos(phi.radians());
+    double sinp = sin(phi.radians());
+
+    str = startRow[25];
+    Angle kappa = Angle(str.toDouble(), Angle::Units::Degrees);
+    double cosk = cos(kappa.radians());
+    double sink = sin(kappa.radians());
+
+    str = startRow[26];
+    Angle omega = Angle(str.toDouble(), Angle::Units::Degrees);
+    double coso = cos(omega.radians());
+    double sino = sin(omega.radians());
+
+    // reset matrices to
+    phi0.clear();
+    omega0.clear();
+    kappa0.clear();
+
+    // form phi, omega, kappa matrices at time 0 (center of image)
+    phi0(0,0) = cosp;
+    phi0(0,2) = sinp;
+    phi0(1,1) = 1.0;
+    phi0(2,0) = -sinp;
+    phi0(2,2) = cosp;
+
+    omega0(0,0) = 1.0;
+    omega0(1,1) = coso;
+    omega0(1,2) = -sino;
+    omega0(2,1) = sino;
+    omega0(2,2) = coso;
+
+    kappa0(0,0) = cosk;
+    kappa0(0,1) = -sink;
+    kappa0(1,0) = sink;
+    kappa0(1,1) = cosk;
+    kappa0(2,2) = 1.0;
+
+    qDebug() << phi0;
+    qDebug() << omega0;
+    qDebug() << kappa0;
+
+    // create phi-omega-kappa rotation at time 0
+
+    tmp = prod(phi0,omega0);
+    R0 = prod(tmp,kappa0);
+
+    // add center time
+    // create output string
+    QString outstr;
+    outstr = QString("%1 %2 %3 %4 %5 %6 %7 %8 %9 %10").arg(centerTime.UTC()).
+        arg(R0(0,0)).arg(R0(0,1)).arg(R0(0,2)).arg(R0(1,0)).arg(R0(1,1)).arg(R0(1,2)).arg(R0(2,0)).
+        arg(R0(2,1)).arg(R0(2,2));
+
+    outputListReverse.append(outstr);
+
+
+    // loop backward in time from t0
+    iTime intervalTime;
+    double cacheSlope = 1.05*(elapsedTime)/(NODES-1);
+    for (int i=(NODES-1)/2-1; i>=0; i--) {
+
+      double relT =
+          double(i - (NODES-1)/2 + 0.5)*cacheSlope;  // interval center time relative to center line
+
+      intervalTime = centerTime + relT;
+
+      Angle theta = Angle(rollAngularVelocity * relT, Angle::Units::Radians); // sweep angle radians
+
+      sweep.clear();
+      sweep(0,0) = 1.0;
+      sweep(1,1) = cos(theta.radians());
+      sweep(1,2) = -sin(theta.radians());
+      sweep(2,1) = sin(theta.radians());
+      sweep(2,2) = cos(theta.radians());
+
+      R = prod(trans(sweep),R0);
+
+      // create output string
+      QString outstr;
+      outstr = QString("%1 %2 %3 %4 %5 %6 %7 %8 %9 %10").arg(intervalTime.UTC()).
+          arg(R(0,0)).arg(R(0,1)).arg(R(0,2)).arg(R(1,0)).arg(R(1,1)).arg(R(1,2)).arg(R(2,0)).
+          arg(R(2,1)).arg(R(2,2));
+
+      outputListReverse.append(outstr);
+    }
+
+    // loop forward in time from t0
+    for (int i=(NODES-1)/2+1; i<NODES; i++) {
+
+      double relT =
+          double(i - (NODES-1)/2 - 0.5)*cacheSlope;  // interval center time relative to center line
+
+      intervalTime = centerTime + relT;
+
+      Angle theta = Angle(rollAngularVelocity * relT, Angle::Units::Radians); // sweep angle radians
+
+      sweep.clear();
+      sweep(0,0) = 1.0;
+      sweep(1,1) = cos(theta.radians());
+      sweep(1,2) = -sin(theta.radians());
+      sweep(2,1) = sin(theta.radians());
+      sweep(2,2) = cos(theta.radians());
+
+      R = prod(trans(sweep),R0);
+
+      // create output string
+      QString outstr;
+      outstr = QString("%1 %2 %3 %4 %5 %6 %7 %8 %9 %10").arg(intervalTime.UTC()).
+          arg(R(0,0)).arg(R(0,1)).arg(R(0,2)).arg(R(1,0)).arg(R(1,1)).arg(R(1,2)).arg(R(2,0)).
+          arg(R(2,1)).arg(R(2,2));
+
+      outputListFwd.append(outstr);
+    }
+
+    //output Reverse list in reverse order
+    for (int i = outputListReverse.size()-1; i >= 0; i--) {
+      qDebug() << outputListReverse.at(i);
+    }
+
+    //output Fwd list
+    for (int i = 0; i < outputListFwd.size(); i++) {
+      qDebug() << outputListFwd.at(i);
+    }
+
+    int fred=1;
+  }
+
+
+//***********
+
+  Cube  panCube;
+  iTime  isisTime;
+  QString iStrTEMP;
+
+  int i,j,k,scFrameCode,insCode;
+
+  QString mission;
+
+  SpicePosition *spPos;
+  SpiceRotation *spRot;
+
+  //int nlines,nsamples,nbands;
+
+  double deg2rad = acos(-1.0)/180.0;
+
+  ProcessImport jp;
+  FileName transFile("$apollo15/translations/apollopantranstable.trn");
+  PvlTranslationTable transTable(transFile);
+  PvlGroup kernels_pvlG;
+
+
+  insCode = scFrameCode - 230;
+
+  try {
+    panCube.open(ui.GetFileName("FROM"),"rw");
+  }
+  catch (IException &e) {
+    throw IException(IException::User,
+                     "Unable to open the file [" + ui.GetFileName("FROM") + "] as a cube.",
+                     _FILEINFO_);
+  }
+
+  ////////////////////////////////////////////build the cube header instrament group
+  PvlGroup inst_pvlG("Instrument");
+
+  PvlKeyword keyword;
+
+  //four that are the same for every panaramic mission
+  keyword.setName("SpacecraftName");
+  keyword.setValue(mission);
+  inst_pvlG.addKeyword(keyword);
+
+  keyword.setName("InstrumentName");
+  keyword.setValue(transTable.Translate("InstrumentName","whatever"));
+  inst_pvlG.addKeyword(keyword);
+
+  keyword.setName("InstrumentId");
+  keyword.setValue(transTable.Translate("InstrumentId","whatever"));
+  inst_pvlG.addKeyword(keyword);
+
+  keyword.setName("TargetName");
+  keyword.setValue(transTable.Translate("TargetName","whatever"));
+  inst_pvlG.addKeyword(keyword);
+
+  //three that need to be calculated from input values
+  horV = ui.GetDouble("VEL_HORIZ");
+  radV = ui.GetDouble("VEL_RADIAL");
+  alti = ui.GetDouble("CRAFT_ALTITUDE");
+
+  //caculate the LineExposureDuration (led)
+  if( ui.WasEntered("V/H_OVERRIDE") )
+    fmc = ui.GetDouble("V/H_OVERRIDE")/1000.0;
+  else
+    //forward motion compensation is directly equivalent to V/H
+    fmc = sqrt(horV*horV + radV*radV)/alti;  
+  rollV = fmc*ROLLC;  //roll angular velcoity is equal to  V/H * constant    (units rad/sec)
+  //led = rad/mm * sec/rad = radians(2.5)/FIDL / rollV    (final units: sec/mm)
+  led = (2.5*acos(-1.0)/180.0)/rollV/FIDL;  
+
+  //use led and the number of mm to determine the start and stop times
+  isisTime = ui.GetString("GMT");
+
+  //calculate starting and stoping times
+  time0 = isisTime.Et() - led*FIDL*21.5;
+  time1 = time0 + led*FIDL*43;
+
+  isisTime = time0;
+  keyword.setName("StartTime");
+  keyword.setValue(iStrTEMP=isisTime.UTC());
+  inst_pvlG.addKeyword(keyword);
+
+  isisTime = time1;
+  keyword.setName("StopTime");
+  keyword.setValue(iStrTEMP=isisTime.UTC());
+  inst_pvlG.addKeyword(keyword);
+
+  keyword.setName("LineExposureDuration");
+  //converted led to msec/mm--negative sign to account for the anti-parallel time and line axes
+  keyword.setValue(iStrTEMP=toString(-led),"sec/mm");  
+  inst_pvlG.addKeyword(keyword);
+
+  panCube.putGroup(inst_pvlG);
+
+  ///////////////////////////////////The kernals group
+  kernels_pvlG.setName("Kernels");
+  kernels_pvlG.clear();
+
+  keyword.setName("NaifFrameCode");
+  keyword.setValue(toString(insCode));
+  kernels_pvlG.addKeyword(keyword);
+
+  keyword.setName("LeapSecond");
+  keyword.setValue( transTable.Translate("LeapSecond","File1") );
+  kernels_pvlG.addKeyword(keyword);
+
+  keyword.setName("TargetAttitudeShape");
+  keyword.setValue( transTable.Translate("TargetAttitudeShape", "File1") );
+  keyword.addValue( transTable.Translate("TargetAttitudeShape", "File2") );
+  keyword.addValue( transTable.Translate("TargetAttitudeShape", "File3") );
+  kernels_pvlG.addKeyword(keyword);
+
+  keyword.setName("TargetPosition");
+  keyword.setValue("Table");
+  keyword.addValue( transTable.Translate("TargetPosition", "File1") );
+  keyword.addValue( transTable.Translate("TargetPosition", "File2") );
+  kernels_pvlG.addKeyword(keyword);
+
+  keyword.setName("ShapeModel");
+  keyword.setValue( transTable.Translate("ShapeModel", "File1") );
+  kernels_pvlG.addKeyword(keyword);
+
+  keyword.setName("InstrumentPointing");
+  keyword.setValue("Table");
+  kernels_pvlG.addKeyword(keyword);
+
+  keyword.setName("InstrumentPosition");
+  keyword.setValue("Table");
+  kernels_pvlG.addKeyword(keyword);
+
+  keyword.setName("InstrumentAddendum");
+  keyword.setValue( transTable.Translate("InstrumentAddendum",mission));
+  kernels_pvlG.addKeyword(keyword);
+
+  panCube.putGroup(kernels_pvlG);
+
+  //////////////////////////////////////////attach a target rotation table
+  char frameName[32];
+  SpiceInt frameCode;
+  SpiceBoolean found;
+  //get the framecode from the body code (301=MOON)
+  cidfrm_c(301, sizeof(frameName), &frameCode, frameName, &found);  
+  if(!found) {
+    QString naifTarget = QString("IAU_MOOM");
+    namfrm_c(naifTarget.toLatin1().data(), &frameCode);
+    if(frameCode == 0) {
+      QString msg = "Can not find NAIF code for [" + naifTarget + "]";
+      throw IException(IException::Io, msg, _FILEINFO_);
+    }
+  }
+  spRot = new SpiceRotation(frameCode);
+  //create a table from starttime to endtime (streched by 3%) with NODES entries
+  spRot->LoadCache(time0-0.015*(time1-time0), time1+0.015*(time1-time0), NODES);  
+  Table tableTargetRot = spRot->Cache("BodyRotation");
+  tableTargetRot.Label() += PvlKeyword("Description", "Created by apollopaninit");
+  panCube.write(tableTargetRot);
+
+
+  //////////////////////////////////////////////////attach a sun position table
+  spPos = new SpicePosition(10,301);  //Position of the sun (10) WRT to the MOON (301)
+  //create a table from starttime to endtime (stretched by 3%) with NODES entries
+  spPos->LoadCache(time0-0.015*(time1-time0), time1+0.015*(time1-time0), NODES);  
+  Table tableSunPos = spPos->Cache("SunPosition");
+  tableSunPos.Label() += PvlKeyword("SpkTableStartTime", toString(time0-0.015*(time1-time0)));
+  tableSunPos.Label() += PvlKeyword("SpkTablleEndTime", toString(time1+0.015*(time1-time0)));
+  tableSunPos.Label() += PvlKeyword("Description", "Created by apollopaninit");
+  panCube.write(tableSunPos);  //attach the table to the cube
+
+
+  /////////////Finding the principal scan line position and orientation
+  //get the radii of the MOON
+  SpiceInt tempRadii = 0;
+  bodvcd_c(301,"RADII",3,&tempRadii,R_MOON);  //units are km
+  double  omega,phi,kappa;
+
+  std::vector<double>  posSel;  //Seleno centric position
+  std::vector<double> sunPos;  //sunPosition used to transform to J2000
+  std::vector<double> posJ20;  //camera position in J2000
+  posSel.resize(3);
+  sunPos.resize(3);
+  posJ20.resize(3);
+
+  double  temp,
+          vel[3] = { 0.0, 0.0, 0.0 },  //the total velocity vector (combined Horizonatal and normal components) 
+                   //  in km/sec
+          M[3][3] = { { 0.0, 0.0, 0.0 },
+                      { 0.0, 0.0, 0.0 },
+                      { 0.0, 0.0, 0.0 } },    //rotation matrix
+          zDir[] = { 0.0, 0.0, 1.0 },  //selenographic Z axis
+          northPN[3]  = { 0.0, 0.0, 0.0 }, //normal to the plane containing all the north/south directions, 
+                      //  that is plane containing 
+                      //  the origin, the z axis, and the primary point of intersection
+          northL[3] = { 0.0, 0.0, 0.0 },    //north direction vector in local horizontal plane
+          azm[3] = { 0.0, 0.0, 0.0 },   //azm direction of the veclocity vector in selenographic coordinates
+          azmP[3] = { 0.0, 0.0, 0.0 },  //azm rotated (partially) and projected into the image plane
+          norm[3] = { 0.0, 0.0, 0.0 },  //normal to the local horizontal plane
+          look[3] = { 0.0, 0.0, 0.0 };  //unit direction vector in the pincipal cameral look direction, 
+                    //  parallel to the vector from the center of the moon through the spacecraft
+
+  double  pos0[3] = { 0.0, 0.0, 0.0 },  //coordinate of the camera position
+          pInt[3] = { 0.0, 0.0, 0.0 };  //coordinate of the principle intersection point
+
+  /////////////////calculating the camera position for the center (principal scan line)
+  pos0[1] = ui.GetDouble("LON_NADIR")*deg2rad;
+  pos0[0] = ui.GetDouble("LAT_NADIR")*deg2rad;
+  pos0[2] = ui.GetDouble("CRAFT_ALTITUDE");  //units are km
+  Geographic2GeocentricLunar(pos0,pos0);    //function is written so the input can also be the 
+                                            //  output
+
+  /////////////////////calculating the camera orientation for the center (principal) scan line
+  pInt[1] = ui.GetDouble("LON_INT")*deg2rad;
+  pInt[0] = ui.GetDouble("LAT_INT")*deg2rad;
+  pInt[2] = 0.0;
+  Geographic2GeocentricLunar(pInt,pInt); //function is written so the input can also be the output
+  //calculate the unit look direction vector in object space
+  look[0] = -pos0[0] + pInt[0];
+  look[1] = -pos0[1] + pInt[1];
+  look[2] = -pos0[2] + pInt[2];
+  temp = sqrt(look[0]*look[0] + look[1]*look[1] + look[2]*look[2]);
+  look[0] /= temp;
+  look[1] /= temp;
+  look[2] /= temp;
+  //the local normal vector is equal to pInt0/|pInt0|
+  temp = sqrt(pInt[0]*pInt[0] + pInt[1]*pInt[1] + pInt[2]*pInt[2]);
+  norm[0] = pInt[0]/temp;
+  norm[1] = pInt[1]/temp;
+  norm[2] = pInt[2]/temp;
+  //omega and phi are defined so that M(phi)M(omega)look = [0 0 -1]  leaving only the roation 
+  //  around z axis to be found
+  omega = -atan2(look[1], look[2]);  //omega rotation to zero look[1]
+  phi   = atan2(-look[0], sin(omega)*look[1] - cos(omega)*look[2]);  //phi rotation to zero look[0]
+  //use the horizontal velocity vector direction to solve for the last rotation; we will make the 
+  //  image x axis parallel to the in-image-plane projection of the horizontal direction of flight.
+  //  The local normal cross the selenogrpahic z gives northPN (normal to the plane containing all 
+  //  the north/south directions), that is, the plane containing the origin, the z axis, and the 
+  //  primary point of intersection.
+  crossp(norm, zDir, northPN); 
+  
+  //The normal to the plane containing all the north/south directions cross the local normal 
+  //  direction gives the local north/south direction in the local normal plane
+  crossp(northPN,norm,northL);   
+  if (northL[2] < 0) {  //if by chance we got the south direction change the signs
+    northL[0] = -northL[0];
+    northL[1] = -northL[1];
+    northL[2] = -northL[2];
+  }
+  //define the rotation matrix to convert northL to the azimuth of flight.
+  //  A left handed rotation of "VEL_AZM" around the positive normal direction will convert northL 
+  //  to azm
+  MfromVecLeftAngle(M,norm,ui.GetDouble("VEL_AZM")*deg2rad);    
+  azm[0] = M[0][0]*northL[0] + M[0][1]*northL[1] + M[0][2]*northL[2];
+  azm[1] = M[1][0]*northL[0] + M[1][1]*northL[1] + M[1][2]*northL[2];
+  azm[2] = M[2][0]*northL[0] + M[2][1]*northL[1] + M[2][2]*northL[2];
+  //apply the two rotations we already know
+  MfromLeftEulers(M,omega,phi,0.0);
+  azmP[0] = M[0][0]*azm[0] + M[0][1]*azm[1] + M[0][2]*azm[2];
+  azmP[1] = M[1][0]*azm[1] + M[1][1]*azm[1] + M[1][2]*azm[2];
+  azmP[2] = M[2][0]*azm[2] + M[2][1]*azm[1] + M[2][2]*azm[2];
+  //subtract that portion of the azm that is perpindicular to the image plane (also the portion 
+  //  which is parallel to look) making azm a vector parrallel to the image plane
+  //  Further, since we're now rotated into some coordinate system that differs from 
+  //  the image coordinate system by only a kappa rotation making the vector parrallel to the 
+  //  image plan is as simple as zeroing the z component (and as pointless to further calculations 
+  //  as a nat's fart in hurricane) nevertheless it completes the logical transition
+  azmP[2] = 0.0;  
+
+  //finally the kappa rotation that will make azmP parallel (including sign) to the camera x axis                  
+  kappa = -atan2(-azmP[1], azmP[0]);  
+
+
+  ////////////////////Add an instrument position table
+  //Define the table records
+  TableRecord recordPos;  // reacord to be added to table
+  // add x,y,z position labels and ephemeris time et to record
+  TableField x("J2000X", TableField::Double);  
+  TableField y("J2000Y", TableField::Double);
+  TableField z("J2000Z", TableField::Double);
+  TableField t("ET", TableField::Double);
+  recordPos += x;
+  recordPos += y;
+  recordPos += z;
+  recordPos += t;
+  Table tablePos("InstrumentPosition", recordPos);
+  //now that the azm and norm vectors are defined 
+  //  the total velocity vector can be calcualted (km/sec)
+  vel[0] = horV*azm[0] + radV * norm[0];
+  vel[1] = horV*azm[1] + radV * norm[1];
+  vel[2] = horV*azm[2] + radV * norm[2];
+  //we'll provide a two ellement table (more is redundant because the motion is modeled as linear 
+  //  at this point)  we'll extend the nodes 3% beyond the edges of the images to be sure 
+  //  rounding errors don't cause problems
+  temp = 0.515*(time1-time0);  //3% extension
+  posSel[0] = pos0[0] - temp*vel[0];    //selenocentric coordinate calculation
+  posSel[1] = pos0[1] - temp*vel[1];
+  posSel[2] = pos0[2] - temp*vel[2];
+  //converting to J2000
+  temp = time0 - 0.005*(time1-time0);  //et just before the first scan line
+  spPos->SetEphemerisTime(temp);
+  spRot->SetEphemerisTime(temp);
+  //Despite being labeled as J2000, the coordinates for the instrument position are in fact in 
+  //  target centric coordinated rotated to a system centered at the target with aces parallel 
+  //  to J2000, whatever that means
+  posJ20 = spRot->J2000Vector(posSel); //J2000Vector calls rotates the position vector into J2000,
+                                       //  completing the transformation
+  recordPos[0] = posJ20[0];
+  recordPos[1] = posJ20[1];
+  recordPos[2] = posJ20[2];
+  recordPos[3] = temp;  //temp = et (right now anyway)
+  tablePos += recordPos;
+  tablePos.Label() += PvlKeyword("SpkTableStartTime",toString(temp));
+  //now the other node
+  temp = 0.515*(time1-time0);      //3% extension
+  posSel[0] = pos0[0] + temp*vel[0];    //selenocentric coordinate calculation
+  posSel[1] = pos0[1] + temp*vel[1];
+  posSel[2] = pos0[2] + temp*vel[2];
+  //converting to J2000
+  temp = time1 + 0.015*(time1-time0);  //et just after the last scan line
+  spPos->SetEphemerisTime(temp);
+  spRot->SetEphemerisTime(temp);
+  //Despite being labeled as J2000, the coordinates for the instrument position are in fact 
+  //  in target centric coordinated rotated to a system centered at the target with aces 
+  //  parallel to J2000, whatever that means
+  posJ20 = spRot->J2000Vector(posSel); //J2000Vector calls rotates the position vector into J2000,
+                                       //  completing the transformation
+  recordPos[0] = posJ20[0];
+  recordPos[1] = posJ20[1];
+  recordPos[2] = posJ20[2];
+  recordPos[3] = temp;  //temp = et (right now anyway)
+  tablePos += recordPos;
+  tablePos.Label() += PvlKeyword("SpkTableEndTime",toString(temp));
+  tablePos.Label() += PvlKeyword("CacheType","Linear");
+  tablePos.Label() += PvlKeyword("Description","Created by apollopaninit");
+  panCube.write(tablePos);  //now attach it to the table
+
+  /////////////////////////////attach a camera pointing table
+  double  cacheSlope,  //time between epoches in the table
+          rollComb,  //magnitude of roll relative to the center in the middle of the epoch
+          relT,  //relative time at the center of each epoch
+          Q[NODES][5],  //NODES four ellement unit quarternions and et (to be calculated).
+          gimVec[3],  //the direction of the gimbal rotation vector (to the cameras persepective 
+                      //  this is always changing because the camera is mounted to the roll frame 
+                      //  assembly which is mounted to the gimbal)
+          M0[3][3],  //rotation matrix of the previous epoch
+          Mtemp1[3][3],  //intermediate step in the multiplication of rotation matricies
+          Mtemp2[3][3],  //intermediate step in the multiplication of rotation matricies
+          Mdg[3][3],  //incremental rotation due the the gimbal motion in the camera frame
+          Mdr[3][3];  //the contribution of the roll motion in the camera frame during time 
+                      //  cacheSlope
+  std::vector <double> M_J2toT;  //rotation matrix from J2000 to the target frame
+  M_J2toT.resize(9);
+  //Table Definition
+  TableField q0("J2000Q0", TableField::Double);
+  TableField q1("J2000Q1", TableField::Double);
+  TableField q2("J2000Q2", TableField::Double);
+  TableField q3("J2000Q3", TableField::Double);
+  TableField et("ET", TableField::Double);
+  TableRecord recordRot;
+  recordRot += q0;
+  recordRot += q1;
+  recordRot += q2;
+  recordRot += q3;
+  recordRot += et;
+  Table tableRot("InstrumentPointing",recordRot);
+  //From the cameras perspective the gimbal motion is around a constantly changing axis, 
+  //  this is handled by combining a series of incremental rotations
+  MfromLeftEulers(M0, omega, phi, kappa);  //rotation matrix in the center Q[(NOPDES-1)/2]
+  spRot->SetEphemerisTime(isisTime.Et());
+  M_J2toT = spRot->Matrix();   //this actually gives the rotation from J2000 to target centric
+  for(j=0; j<3; j++)    //reformating M_J2toT to a 3x3
+    for(k=0; k<3; k++)
+      Mtemp1[j][k] = M_J2toT[3*j+k];
+  mxm_c(M0, Mtemp1, Mtemp2);
+  M2Q(Mtemp2, Q[(NODES-1)/2]);  //save the middle scan line quarternion
+
+  Q[(NODES-1)/2][4] = (time1 + time0)/2.0;  //time in the center of the image
+  //the total time is scaled up slightly so that nodes will extend just beyond the edge of the image
+  cacheSlope = 1.03*(time1 - time0)/(NODES-1);    
+  //Mdr is constant for all the forward time computations
+  MfromLeftEulers(Mdr,cacheSlope*rollV,0.0,0.0);  
+  for (i=(NODES-1)/2+1; i<NODES; i++) {    //moving foward in time first
+    Q[i][4] = Q[i-1][4] + cacheSlope;    //new time epoch
+    //epoch center time relative to the center line
+    relT = double(i - (NODES-1)/2 - 0.5)*cacheSlope;  
+    rollComb = relT*rollV;
+    gimVec[0] = 0.0;      //gimbal rotation vector direction in the middle of the epoch
+    gimVec[1] =  cos(rollComb);
+    gimVec[2] = -sin(rollComb);
+    //incremental rotation due to the gimbal (forward motion compensation)
+    MfromVecLeftAngle(Mdg, gimVec, fmc*cacheSlope);    
+    //the new rotation matrix is Transpose(Mdr)*Transpose(Mdg)*M0--NOTE the order swap and 
+    //  transposes are needed because both Mdr and Mdg were caculated in image space and need to be 
+    //  transposed to apply to object space
+    mtxm_c(Mdg, M0, Mtemp1);  
+    //M0 is now what would typically be considered the rotation matrix of an image.  It rotates a 
+    //  vector from the target centric space into camera space.  However, what is standard to 
+    //  include in the cube labels is a rotation from camera space to J2000.  M0 is therefore the 
+    //  transpose of the first part of this rotation.  Transpose(M0) is the rotation from camera 
+    //  space to target centric space
+    mtxm_c(Mdr, Mtemp1, M0);  
+    //now adding the rotation from the target frame to J2000
+    spRot->SetEphemerisTime(Q[i][4]);
+    //this actually gives the rotation from J2000 to target centric--hence the mxmt_c function being 
+    //  used later
+    M_J2toT = spRot->Matrix();   
+    for(j=0; j<3; j++)  //reformating M_J2toT to a 3x3
+      for(k=0; k<3; k++)
+        Mtemp1[j][k] = M_J2toT[3*j+k];
+    mxm_c(M0, Mtemp1, Mtemp2);
+    M2Q(Mtemp2, Q[i]);    //convert to a quarterion
+  }
+
+  MfromLeftEulers(M0, omega, phi, kappa);  //rotation matrix in the center Q[(NOPDES-1)/2]
+  //Mdr is constant for all the backward time computations
+  MfromLeftEulers(Mdr, -cacheSlope*rollV, 0.0, 0.0);    
+  for (i=(NODES-1)/2-1; i>=0; i--) {  //moving backward in time
+    Q[i][4] = Q[i+1][4] - cacheSlope;  //new time epoch
+    //epoch center time relative to the center line
+    relT = double(i  - (NODES-1)/2 + 0.5)*cacheSlope;  
+    rollComb = relT*rollV;
+    gimVec[0] = 0.0;      //gimbal rotation vector direction in the middle of the epoch
+    gimVec[1] =  cos(rollComb);
+    gimVec[2] = -sin(rollComb);
+    //incremental rotation due to the gimbal (forward motion compensation)
+    MfromVecLeftAngle(Mdg, gimVec, -fmc*cacheSlope);    
+    //the new rotation matrix is Transpose(Mdr)*Transpose(Mdg)*M0    NOTE the order swap and 
+    //  transposes are needed because both Mdr and Mdg were caculated in image space and need to be
+    //  transposed to apply to object space
+    mtxm_c(Mdg, M0, Mtemp1);  
+    //M0 is now what would typically be considered the rotation matrix of an image.  It rotates a 
+    //  vector from the target centric space into camera space.  However, what is standard to 
+    //  include in the cube labels is a rotation from camera space to J2000.  M0 is therefore the 
+    //  transpose of the first part of this rotation.  Transpose(M0) is the rotation from camera 
+    //  space to target centric space
+    mtxm_c(Mdr, Mtemp1, M0);  
+    //now adding the rotation from the target frame to J2000
+    spRot->SetEphemerisTime(Q[i][4]);
+    M_J2toT = spRot->Matrix();
+    for(j=0; j<3; j++)  //reformating M_J2toT to a 3x3
+      for(k=0; k<3; k++)
+        Mtemp1[j][k] = M_J2toT[3*j+k];
+    mxm_c(M0, Mtemp1, Mtemp2);
+    M2Q(Mtemp2, Q[i]);    //convert to a quarterion
+  }
+  //fill in the table
+  for (i=0; i<NODES; i++) {
+    recordRot[0] = Q[i][0];
+    recordRot[1] = Q[i][1];
+    recordRot[2] = Q[i][2];
+    recordRot[3] = Q[i][3];
+    recordRot[4] = Q[i][4];
+    tableRot += recordRot;
+  }
+  tableRot.Label() += PvlKeyword("CkTableStartTime", toString(Q[0][4]));
+  tableRot.Label() += PvlKeyword("CkTableEndTime", toString(Q[NODES-1][4]));
+  tableRot.Label() += PvlKeyword("Description", "Created by appollopan2isis");
+
+  keyword.setName("TimeDependentFrames");
+  keyword.setValue(toString(scFrameCode));
+  keyword.addValue("1");
+  tableRot.Label() += keyword;
+
+  keyword.setName("ConstantFrames");
+  keyword.setValue(toString(insCode));
+  keyword.addValue(toString(scFrameCode));
+  tableRot.Label() += keyword;
+
+  keyword.setName("ConstantRotation");
+  keyword.setValue("1");
+  for (i=1;i<9;i++)
+    if (i%4 == 0) keyword.addValue("1");
+    else keyword.addValue("0");
+  tableRot.Label() += keyword;
+  panCube.write(tableRot);
+
+
+  /////////////////////////Attach a table with all the measurements of the fiducial mark locations.
+  Chip patternS,searchS;   //scaled pattern and search chips
+  Cube  fidC;  //Fiducial image
+
+  //line and sample coordinates for looping through the panCube
+  double l=1,s=1,sample,line,sampleInitial=1,lineInitial=1,play;  
+
+  int  regStatus,
+       fidn,
+       panS,
+       refL,  //number of lines in the patternS
+       refS;  //number of samples in the patternS
+  Pvl pvl;
+
+  bool foundFirst=false;
+
+//  QString fileName;
+
+  panS = panCube.sampleCount();
+
+  //Table definition
+  TableRecord recordFid;
+  TableField indexFid("FID_INEX",TableField::Integer);
+  TableField xFid("X_COORD",TableField::Double);
+  TableField yFid("Y_COORD",TableField::Double);
+  recordFid += indexFid;
+  recordFid += xFid;
+  recordFid += yFid;
+  Table tableFid("Fiducial Measurement",recordFid);
+
+  //read the image resolutions and scale the constants acordingly
+  double  resolution = ui.GetDouble("MICRONS"),    //pixel size in microns
+          scale            = SCALE  *5.0/resolution,  //reduction scale for fast autoregistrations
+          searchHeight     = SEARCHh*5.0/resolution,  //number of lines (in 5-micron-pixels) in 
+                                                      //  search space for the first fiducial
+          searchCellSize   = SEARCHc*5.0/resolution,  //height/width of search chips block
+          averageSamples   = AVERs  *5.0/resolution,  //scaled smaples between fiducials
+          averageLines     = AVERl  *5.0/resolution;  //scaled average distance between the top and 
+                                                      //bottom fiducials
+
+  if( 15.0/resolution < 1.5) play=1.5;
+  else play = 15.0/resolution; 
+
+  //copy the patternS chip (the entire ApolloPanFiducialMark.cub)
+  FileName fiducialFileName("$apollo15/calibration/ApolloPanFiducialMark.cub");
+  fidC.open(fiducialFileName.expanded(),"r");
+  if( !fidC.isOpen() ) {
+    QString msg = "Unable to open the fiducial patternS cube: ApolloPanFiducialMark.cub\n";
+    throw IException(IException::User, msg, _FILEINFO_);
+  }
+  refL = fidC.lineCount();
+  refS = fidC.sampleCount();
+  //scaled pattern chip for fast matching
+  patternS.SetSize(int((refS-2)/SCALE), int((refL-2)/SCALE));  
+  patternS.TackCube((refS-1)/2, (refL-1)/2);
+  patternS.Load(fidC, 0, SCALE);
+
+  //parameters for maximum correlation autoregestration  
+  // see:  file:///usgs/pkgs/isis3nightly2011-09-21/isis/doc/documents/patternSMatch/patternSMatch.html#DistanceTolerance
+  FileName fiducialPvl("$apollo15/templates/apolloPanFiducialFinder.pvl");
+  pvl.read(fiducialPvl.expanded());  //read in the autoreg parameters
+  AutoReg *arS = AutoRegFactory::Create(pvl);
+
+  *arS->PatternChip()   = patternS;  //patternS chip is constant
+
+  //set up a centroid measurer
+  CentroidApolloPan centroid(resolution);
+  Chip inputChip,selectionChip;
+  inputChip.SetSize(int(ceil(200*5.0/resolution)), int(ceil(200*5.0/resolution)));
+//  fileName = ui.GetFileName("FROM");
+  if( panCube.pixelType() == 1)  //UnsignedByte
+    centroid.setDNRange(12, 1e99);  //8 bit bright target
+  else
+    centroid.setDNRange(3500, 1e99);  //16 bit bright target
+
+  Progress progress;
+  progress.SetText("Locating Fiducials");
+  progress.SetMaximumSteps(91);
+
+  //Search for the first fiducial, search sizes are constanst
+  searchS.SetSize(int(searchCellSize/scale),int(searchCellSize/scale));  
+  //now start searching along a horizontal line for the first fiducial mark
+  for(l = searchCellSize/2;
+      l<searchHeight+searchCellSize/2.0 && !foundFirst;
+      l+=searchCellSize-125*5.0/resolution) {
+    for (s = searchCellSize/2;
+         s < averageSamples + searchCellSize/2.0 && !foundFirst;
+         s += searchCellSize-125*5.0/resolution) {
+      searchS.TackCube(s, l);
+      searchS.Load(panCube, 0, scale);
+      *arS->SearchChip() = searchS;
+      regStatus = arS->Register();
+      if (regStatus == AutoReg::SuccessPixel) {
+        inputChip.TackCube(arS->CubeSample(), arS->CubeLine());
+        inputChip.Load(panCube, 0, 1);
+        inputChip.SetCubePosition(arS->CubeSample(), arS->CubeLine());
+        //continuous dynamic range selection
+        centroid.selectAdaptive(&inputChip, &selectionChip);    
+        //elliptical trimming/smoothing
+        if (centroid.elipticalReduction(&selectionChip, 95, play, 2000)) {  
+          //center of mass to reduce selection to a single measure
+          centroid.centerOfMass(&selectionChip, &sample, &line);    
+          inputChip.SetChipPosition(sample, line);
+          sampleInitial = inputChip.CubeSample();
+          lineInitial   = inputChip.CubeLine();
+          foundFirst = true;  //once the first fiducial is found stop
+        }
+      }
+    }
+  }
+  if(s>=averageLines+searchCellSize/2.0) {
+     QString msg = "Unable to locate a fiducial mark in the input cube [" + fileName + 
+                  "].  Check FROM and MICRONS parameters.";
+     throw IException(IException::Io, msg, _FILEINFO_);
+     return;
+  }
+  progress.CheckStatus();
+
+  //record first fiducial measurement in the table
+  recordFid[0] = 0;
+  recordFid[1] = sampleInitial;
+  recordFid[2] = lineInitial;
+  tableFid += recordFid;
+  for (s= sampleInitial, l=lineInitial, fidn=0;  s<panS;  s+=averageSamples, fidn++) {
+     //corrections for half spacing of center fiducials
+     if (fidn == 22) s -= averageSamples/2.0;
+     if (fidn == 23) s -= averageSamples/2.0;
+
+     //look for the bottom fiducial
+     searchS.TackCube(s,l+averageLines);
+     searchS.Load(panCube, 0, scale);
+     *arS->SearchChip()   = searchS;
+     regStatus = arS->Register();
+     if (regStatus == AutoReg::SuccessPixel) {
+       inputChip.TackCube(arS->CubeSample(), arS->CubeLine());
+       inputChip.Load(panCube,0,1);
+       inputChip.SetCubePosition(arS->CubeSample(), arS->CubeLine());
+     }
+     else {  //if autoreg is unsuccessful, a larger window will be used
+       inputChip.TackCube(s, l+averageLines);
+       inputChip.Load(panCube, 0, 1);
+       inputChip.SetCubePosition(s, l+averageLines);
+     }
+     centroid.selectAdaptive(&inputChip, &selectionChip);  //continuous dynamic range selection
+     //elliptical trimming/smoothing... if this fails move on
+     if (centroid.elipticalReduction(&selectionChip, 95, play, 2000) != 0 ) {      
+       //center of mass to reduce selection to a single measure
+       centroid.centerOfMass(&selectionChip, &sample, &line);      
+       inputChip.SetChipPosition(sample, line);
+       sample = inputChip.CubeSample();
+       line   = inputChip.CubeLine();
+       recordFid[0] = fidn*2+1;
+       recordFid[1] = sample;
+       recordFid[2] = line;
+       tableFid += recordFid;
+     }
+     progress.CheckStatus();
+
+     //look for the top fiducial
+     if (s == sampleInitial) //first time through the loop?
+       continue;  //then the top fiducial was already found
+     searchS.TackCube(s, l);
+     searchS.Load(panCube, 0, scale);
+     *arS->SearchChip()   = searchS;
+     regStatus = arS->Register();
+     if (regStatus == AutoReg::SuccessPixel) {
+       inputChip.TackCube(arS->CubeSample(), arS->CubeLine());
+       inputChip.Load(panCube, 0, 1);
+       inputChip.SetCubePosition(arS->CubeSample(), arS->CubeLine());
+     }
+     else {  //if autoreg is unsuccessful, a larger window will be used
+       inputChip.TackCube(s, l);
+       inputChip.Load(panCube, 0, 1);
+       inputChip.SetCubePosition(s, l);
+     }
+     centroid.selectAdaptive(&inputChip, &selectionChip);//continuous dynamic range selection
+     //inputChip.Write("inputTemp.cub");//debug
+     //selectionChip.Write("selectionTemp.cub");//debug
+     //elliptical trimming/smoothing... if this fails move on
+     if (centroid.elipticalReduction(&selectionChip, 95, play, 2000) !=0) {    
+       //center of mass to reduce selection to a single measure
+       centroid.centerOfMass(&selectionChip, &sample, &line);  
+       inputChip.SetChipPosition(sample, line);
+       //when finding the top fiducial both s and l are refined for a successful measurement, 
+       //  this will help follow trends in the scaned image
+       s = inputChip.CubeSample(); 
+       l = inputChip.CubeLine();
+       recordFid[0] = fidn*2;
+       recordFid[1] = s;
+       recordFid[2] = l;
+       tableFid += recordFid;
+     }
+     progress.CheckStatus();
+  }
+
+  panCube.write(tableFid);
+  //close the new cube
+  panCube.close(false);
+  panCube.open(ui.GetFileName("FROM"),"rw");
+ 
+  delete spPos;
+  delete spRot;
+
+//  Application::Log();
+
+  return;
+}
+
+
+void crossp(double v1[3],double v2[3],double v1cv2[3])
+{
+  //calcuate v1 cross v2
+  v1cv2[0] = v1[1]*v2[2] - v1[2]*v2[1];
+  v1cv2[1] = v1[2]*v2[0] - v1[0]*v2[2];
+  v1cv2[2] = v1[0]*v2[1] - v1[1]*v2[0];
+  return;
+}
+
+void Geographic2GeocentricLunar(double geographic[3], double geocentric[3])
+/*
+  given
+  geographic -> (Lat, Lon, H)
+
+  calc
+  geocentric <- (X, Y, Z)
+
+  Lat and Lon should be in radians
+*/
+{
+  double r,cosl;
+
+  r = R_MOON[0] + geographic[2];
+
+  cosl = cos(geographic[0]);
+
+  geocentric[2] = r*sin(geographic[0]);
+  geocentric[0] = r*cosl*cos(geographic[1]);
+  geocentric[1] = r*cosl*sin(geographic[1]);
+}
+
+void MfromLeftEulers(double M[3][3], double omega, double phi, double kappa)
+{
+  /*given three left handed Euler angles compute M 3x3 orthogonal rotation matrix
+
+    M    <-  3x3 rotation matrix
+    omega  ->  left handed rotation (rad) around the x axis
+    phi    ->  left handed rotation (rad) around the once rotated y axis
+    kappa  ->  left handed rotation (rad) around the twice rotated z axis
+  */
+
+  M[0][0] = cos(phi) * cos(kappa);
+  M[0][1] = sin(omega) * sin(phi) * cos(kappa) + cos(omega) * sin(kappa);
+  M[0][2] = -cos(omega) * sin(phi) * cos(kappa) + sin(omega) * sin(kappa);
+  M[1][0] = -cos(phi) * sin(kappa);
+  M[1][1] = -sin(omega) * sin(phi) * sin(kappa) + cos(omega) * cos(kappa);
+  M[1][2] = cos(omega) * sin(phi) * sin(kappa) + sin(omega) * cos(kappa);
+  M[2][0] = sin(phi);
+  M[2][1] = -sin(omega) * cos(phi);
+  M[2][2] = cos(omega) * cos(phi);
+
+}
+
+void MfromVecLeftAngle(double M[3][3], double vec[3], double angle)
+{
+  /*Define a roation matrix from a vector and a left handed angle
+    M    <- orthogonal rotation matrix
+    vec    -> 3 ellement vector defining the axis of rotation
+    angle  -> left handed angle of rotation (rad) around vec
+
+  */
+  double vs[3],l;
+
+  l = sqrt(vec[0]*vec[0] + vec[1]*vec[1] + vec[2]*vec[2]);
+  vs[0] = vec[0] / l;
+  vs[1] = vec[1] / l;
+  vs[2] = vec[2] / l;
+  //change the sign of angle to match subsequent math (written for right handed angles)
+  l = -angle;  //this makes this a right handed anlge
+  //calculate rotation matrix
+  M[0][0] = cos(l) + vs[0]*vs[0] * (1 - cos(l));
+  M[0][1] = vs[0] * vs[1] * (1 - cos(l)) - vs[2] * sin(l);
+  M[0][2] = vs[0] * vs[2] * (1 - cos(l)) + vs[1] * sin(l);
+
+  M[1][0] = vs[0] * vs[1] * (1 - cos(l)) + vs[2] * sin(l);
+  M[1][1] = cos(l) + vs[1]*vs[1] * (1 - cos(l));
+  M[1][2] = vs[1] * vs[2] * (1 - cos(l)) - vs[0] * sin(l);
+
+  M[2][0] = vs[0] * vs[2] * (1 - cos(l)) - vs[1] * sin(l);
+  M[2][1] = vs[1] * vs[2] * (1 - cos(l)) + vs[0] * sin(l);
+  M[2][2] = cos(l) + vs[2]*vs[2] * (1 - cos(l));
+}
+
+void M2Q(double M[3][3], double Q[4])
+{
+  /* given a rotation matrix decompose the quarternion
+
+    M  ->  3x3 orthogonal rotation matrix
+    Q  <-  four ellement unit quarternion
+
+  */
+
+  //following the decomposition algorithim given at: http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation
+
+  int index[3],i;
+  double temp;
+
+  //find the largest diagonal ellement in Md
+  temp = fabs(M[0][0]);
+  index[0] = 0;
+
+  for(i=1; i<2 ; i++)
+  {
+    if( fabs(M[i][i] ) > temp )
+    {
+      temp = fabs(M[i][i]);
+      index[0] = i;
+    }
+  }
+
+  index[1] = index[0] + 1;
+  if( index[1] > 2 )
+    index[1] -= 3;
+
+  index[2] = index[1] + 1;
+  if( index[2] > 2 )
+    index[2] -= 3;
+
+  temp = sqrt(1 + M[index[0]][index[0]] - M[index[1]][index[1]] - M[index[2]][index[2]]);
+
+  if( temp == 0 )
+  {
+    Q[0] = 1;
+    Q[1] = 0;
+    Q[2] = 0;
+    Q[3] = 0;
+    return;
+  }
+
+  Q[0] = (  M[index[2]][index[1]] - M[index[1]][index[2]]  ) / (2 * temp);
+  Q[index[1] + 1] = (M[index[0]][index[1]] + M[index[1]][index[0]]) / (2 * temp);
+  Q[index[2] + 1] = (M[index[2]][index[0]] + M[index[0]][index[2]]) / (2 * temp);
+
+  Q[index[0] + 1] = temp / 2;
+}
diff --git a/isis/src/apollo/apps/apollopangenck/apollopangenck.xml b/isis/src/apollo/apps/apollopangenck/apollopangenck.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0ecb51827cdb7fefd063604b764fb64469140226
--- /dev/null
+++ b/isis/src/apollo/apps/apollopangenck/apollopangenck.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<application name="apollopangenck" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://isis.astrogeology.usgs.gov/Schemas/Application/application.xsd">
+
+  <brief>
+    Generate files to be used as input to NAIF utility msopck.
+  </brief>
+
+  <description>
+    Generate files to be used as input to NAIF utility msopck. Location of Apollo Pan metadata csv
+    is /archive/missions/apollo_pan/AS15/CriticalData/PanData/MetadataCSVVersions/.
+  </description>
+
+  <history>
+    <change name="Ken Edmundson" date="2018-07-06">
+      TODO
+    </change>
+  </history>
+
+  <category>
+    <missionItem>Apollo</missionItem>
+  </category>
+
+  <seeAlso>
+    <applications>
+      <item>isis2std</item>
+    </applications>
+  </seeAlso>
+
+  <groups>
+    <group name="Files">
+      <parameter name="FROM">
+        <type>filename</type>
+        <fileMode>input</fileMode>
+        <brief>
+          Input Apollo Pan metadata csv file.
+        </brief>
+        <description>
+          Use this parameter to select the filename to import.
+        </description>
+        <filter>
+          *.csv
+        </filter>
+      </parameter>
+    </group>
+
+    <group name="Time">
+      <parameter name="GMT">
+        <type>string</type>
+        <brief>GMT format: YYYY-MM-DD HH:MM:SS.SSS</brief>
+        <description>GMT is space deliniated Year Month Day Hour Minute Seconds</description>
+      </parameter>
+    </group>    
+  </groups>
+</application>
diff --git a/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicCamera.cpp b/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicCamera.cpp
index e73055c90e04ea81b95fb0a574a3e49719d59d35..ddbb0fa72a3c5c72c74c71d9a4583fc5a6a7cb83 100644
--- a/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicCamera.cpp
+++ b/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicCamera.cpp
@@ -1,137 +1,164 @@
+/**
+ * @file
+ * $Revision: 1.7 $
+ * $Date: 2010/06/17 18:59:11 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
 #include "ApolloPanoramicCamera.h"
-
-#include "ApolloPanIO.h"
+//#include "ApolloPanIO.h"
+#include "ApolloPanoramicCameraFiducialMap.h"
 #include "ApolloPanoramicDetectorMap.h"
 
 #include <QString>
 
+#include "Affine.h"
+
 #include "CameraDistortionMap.h"
 #include "CameraFocalPlaneMap.h"
 #include "IException.h"
 #include "IString.h"
 #include "iTime.h"
-#include "LineScanCameraDetectorMap.h"
-#include "LineScanCameraGroundMap.h"
-#include "LineScanCameraSkyMap.h"
-#include "PvlGroup.h"
-#include "PvlKeyword.h"
+//#include "SampleScanCameraDetectorMap.h"
+#include "SampleScanCameraGroundMap.h"
+#include "SampleScanCameraSkyMap.h"
+#include "NaifStatus.h"
+//#include "VariableSampleScanCameraDetectorMap.h"
+//#include "PvlGroup.h"
+//#include "PvlKeyword.h"
 
 using namespace std;
 namespace Isis {
   /**
-   * Constructs an Apollo Panoramic Camera object using the image labels.
+   * Constructs the Apollo Panoramic Camera model object from the labels.
+   *
+   * This constructor uses the Pvl labels for Apollo Panoramic Camera Images.
    *
-   * @param lab Pvl label from an Apollo Panoramic image.
+   * @param lab Pvl label from an Apollo Panoramic Camera image.
+   * @internal
+   *   @history 2016-09-12 Ken Edmundson - Original version, sort of. Orrin Thomas did the original
+   *                       original. The camera model has changed significantly since.
    *
    */
-  ApolloPanoramicCamera::ApolloPanoramicCamera(Isis::Cube &cube) : Isis::LineScanCamera(cube) {
-    // Set up the camera info from ik/iak kernels
-    SetFocalLength(610.0);  //nominal (uncalibrated) focal length in mm from "Apollo 15 SIM Bay
-    // Photographic Equipment and Mission Summary" August, 1971
-    SetPixelPitch(0.005);   //internally all images are modeled as if they have 5 micron pixels
-    
-    double  constantTimeOffset = 0.0,
-    additionalPreroll = 0.0,
-    additiveLineTimeError = 0.0,
-    multiplicativeLineTimeError = 0.0;
-    
-    // Set up naming info
+  ApolloPanoramicCamera::ApolloPanoramicCamera(Isis::Cube &cube) : Isis::SampleScanCamera(cube) {
+    NaifStatus::CheckErrors();
+
     m_instrumentNameLong = "Panoramic Camera";
     m_instrumentNameShort = "Pan";
-    
+
     // Apollo15 Pan naif code = -915230
     if (naifIkCode() == -915230) {
       m_spacecraftNameLong = "Apollo 15";
       m_spacecraftNameShort = "Apollo15";
+      m_ckFrameId = -915230;
     }
     // Apollo16 Pan naif code = -916230
     else if (naifIkCode() == -916230) {
       m_spacecraftNameLong = "Apollo 16";
       m_spacecraftNameShort = "Apollo16";
+      m_ckFrameId = -916230;
     }
     // Apollo17 Pan naif code = -917230
     else if (naifIkCode() == -917230) {
       m_spacecraftNameLong = "Apollo 17";
       m_spacecraftNameShort = "Apollo17";
+      m_ckFrameId = -917230;
     }
     else {
-      QString msg = "File does not appear to be an Apollo image";
-      throw IException(IException::User, msg, _FILEINFO_);
+      QString msg = "File does not appear to be an Apollo Panoramic image";
+      msg += QString::number(naifIkCode());
+      msg += " is not a supported instrument kernel code for Apollo.";
+      throw IException(IException::Programmer, msg, _FILEINFO_);
     }
-    
-    //following keywords in InstrumentAddendum file
-    QString ikernKey = "INS" + toString((int)naifIkCode()) + "_CONSTANT_TIME_OFFSET";
-    constantTimeOffset = getDouble(ikernKey);
-    
-    ikernKey = "INS" + toString((int)naifIkCode()) + "_ADDITIONAL_PREROLL";
-    additionalPreroll = getDouble(ikernKey);
-    
-    ikernKey = "INS" + toString((int)naifIkCode()) + "_ADDITIVE_LINE_ERROR";
-    additiveLineTimeError = getDouble(ikernKey);
-    
-    ikernKey = "INS" + toString((int)naifIkCode()) + "_MULTIPLI_LINE_ERROR";
-    multiplicativeLineTimeError = getDouble(ikernKey);
-    
-    Pvl &lab = *cube.label(); 
+
+    // Get the Instrument label information needed to define the camera for this frame
+    Pvl &lab = *cube.label();
     PvlGroup &inst = lab.findGroup("Instrument", Pvl::Traverse);
-    QString stime = (QString)inst["StartTime"];  
-    SpiceDouble etStart;
-    str2et_c(stime.toLatin1().data(), &etStart);
-    stime = (QString) inst["StopTime"];
-    SpiceDouble etStop;
-    str2et_c(stime.toLatin1().data(), &etStop);
-    iTime isisTime( (QString) inst["StartTime"]);
-    
-    // Get other info from labels
-    // line exposure duration, sec/mm
-    double lineRate = ( (double) inst["LineExposureDuration"] )*0.005;    
-    
-    lineRate *= 1.0 + multiplicativeLineTimeError;
-    lineRate += additiveLineTimeError;
-    etStart += additionalPreroll * lineRate;
-    etStart += constantTimeOffset;
-    
-    setTime(isisTime);
-    
-    // Setup detector map
-    //note (etStart+etStop)/2.0 is the time in the middle of image 
-    //  (line = 0 after interior orientation)
-    ApolloPanoramicDetectorMap *detectorMap = 
-    new ApolloPanoramicDetectorMap((Camera *)this, 
-                                   (etStart+etStop)/2.0, 
-                                   (double)lineRate, &lab);
-    //interior orientation residual stats
-    m_residualMean = detectorMap->meanResidual();
-    m_residualMax = detectorMap->maxResidual();
-    m_residualStdev = detectorMap->stdevResidual();
-    
-    detectorMap->SetDetectorSampleSumming(1.0);
-    detectorMap->SetStartingDetectorSample(0.0);
+    QString spacecraft = (QString)inst["SpacecraftName"];
+    QString instId = (QString)inst["InstrumentId"];
+
+    // read focal length and pixel pitch from the instrument kernel
+    SetFocalLength();
+    SetPixelPitch();
+
+    ReadSampleRates(lab.fileName());
+
+    SpiceDouble etStart = iTime((QString)inst["StartTime"]).Et();
+    setTime(etStart);
+
+    // Setup fiducial mark affine transformation (in pixels)
+    PvlGroup &fiducials = lab.findGroup("Fiducials", Pvl::Traverse);
+    ApolloPanoramicCameraFiducialMap fid(fiducials, naifIkCode());
+
+    Affine* fiducialMap = fid.CreateTrans();
+
+    // Setup detector map for transform of parent image pixels to "detector" pixels
+    new VariableSampleScanCameraDetectorMap(this, p_sampleRates, fiducialMap);
+
     // Setup focal plane map
-    PvlGroup &kernel = lab.findGroup("Kernels", Pvl::Traverse);
-    CameraFocalPlaneMap *focalMap = new CameraFocalPlaneMap(this, (int) kernel["NaifFrameCode"]);
-    
-    //  Retrieve boresight location from instrument kernel (IK) (addendum?)
-    double sampleBoreSight = 0.0;  //Presently no NAIF keywords for this sensor
-    double lineBoreSight = 0.0;  //Presently no NAIF keywords for this sensor
-    
-    focalMap->SetDetectorOrigin(sampleBoreSight, lineBoreSight);
+    CameraFocalPlaneMap *focalMap = new CameraFocalPlaneMap(this, naifIkCode());
+
+//    focalMap->SetDetectorOrigin(114374.916541692, 11490.0);
+    focalMap->SetDetectorOrigin(0.0, 11490.0);
     focalMap->SetDetectorOffset(0.0, 0.0);
-    
+
+    //  Retrieve boresight location from instrument kernel (IK) (addendum?)
+//    double sampleBoreSight = 0.0;  //Presently no NAIF keywords for this sensor
+//    double lineBoreSight = 0.0;  //Presently no NAIF keywords for this sensor
+
     // Setup distortion map
     new CameraDistortionMap(this, -1.0);
-    //distMap->SetDistortion(naifIkCode());    Presently no NAIF keywords for this sensor
-    
+
     //Setup the ground and sky map
-    new LineScanCameraGroundMap(this);
-    new LineScanCameraSkyMap(this);
-    
-    PvlGroup &instP = lab.findGroup("Kernels", Pvl::Traverse);
-    m_CkFrameId = toInt(instP["NaifFrameCode"][0]);
-    m_CkFrameId = -int(-m_CkFrameId/1000)*1000;
-    
+    new SampleScanCameraGroundMap(this);
+    new SampleScanCameraSkyMap(this);
+
     LoadCache();
+    NaifStatus::CheckErrors();
+
+    delete fiducialMap;
+  }
+
+  /**
+   * @param filename
+   */
+  void ApolloPanoramicCamera::ReadSampleRates(QString filename) {
+    Table timesTable("SampleScanTimes", filename);
+
+    if(timesTable.Records() <= 0) {
+      QString msg = "Table [SampleScanTimes] in [";
+      msg += filename + "] must not be empty";
+      throw IException(IException::Unknown, msg, _FILEINFO_);
+    }
+
+    for(int i = 0; i < timesTable.Records(); i++) {
+      p_sampleRates.push_back(SampleRateChange((int)timesTable[i][2],
+                                           (double)timesTable[i][0],
+                                           timesTable[i][1]));
+    }
+
+    if(p_sampleRates.size() <= 0) {
+      QString msg = "There is a problem with the data within the Table ";
+      msg += "[SampleScanTimes] in [" + filename + "]";
+      throw IException(IException::Unknown, msg, _FILEINFO_);
+    }
   }
+
 }// end Isis namespace
 
 
diff --git a/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicCamera.h b/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicCamera.h
index 1a0e5bfceb849699e28ddb93035222fbb418b356..f0cd26a3d752ae12f02e8c29501484b80ab4bdc6 100644
--- a/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicCamera.h
+++ b/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicCamera.h
@@ -24,7 +24,8 @@
  *   http://www.usgs.gov/privacy.html.                                    
  */                                                                       
 
-#include "LineScanCamera.h"
+#include "SampleScanCamera.h"
+#include "VariableSampleScanCameraDetectorMap.h"
 
 namespace Isis {
   class PvlGroup;
@@ -48,9 +49,9 @@ namespace Isis {
      *                           members and methods and removed implementation of these methods
      *                           since Camera now handles this. References #2335. Fixed 
      *                           indentation.
-     *   @history 2017-06-28 Makayla Shepherd - Updated documentation. References #4807.
-     */        
-    class ApolloPanoramicCamera : public LineScanCamera {
+     *   @history 2016-09-12 Ken Edmundson - Major changes, deriving now from SampleScanCamera.
+     */
+    class ApolloPanoramicCamera : public SampleScanCamera {
     public:
       ApolloPanoramicCamera(Cube &lab);
 
@@ -64,7 +65,7 @@ namespace Isis {
       *         Kernel Frame ID
       */
       //this sensor was used on multiple missions so it is necessary to check which Apollo 
-      virtual int CkFrameId() const {return m_CkFrameId; }  
+      virtual int CkFrameId() const {return m_ckFrameId; }
 
       /** 
       * CK Reference ID - J2000
@@ -82,46 +83,13 @@ namespace Isis {
       */
       virtual int SpkReferenceId() const { return (1); }
 
-      /** 
-       * Returns residual summary statistics from interior orientation as a PvlGroup
-       * 
-       * @return PvlGroup Residuals report.
-       */
-      PvlGroup intOriResidualsReport();
-
-      /**
-       * Max interior orientation residual vector length, accesor
-       * 
-       * @return double Residual max
-       */
-      double intOriResidualMax()   const { return m_residualMax; }
-
-      /**
-       * Mean (average) of interior orientation residual vector length, accesor
-       * 
-       * @return double Residual mean
-       */
-      double intOriResidualMean()  const { return m_residualMean; }
-
-      /**
-       * Standard deviation of interior orientation residual vector length, accesor
-       * 
-       * @return double Residual standard deviation
-       */
-      double intOriResidualStdev() const { return m_residualStdev; }
-
     private:
-      //! Max interior orientation residual vector length
-      double m_residualMean;
-
-      //! Mean (average) of interior orientation residual vector length
-      double m_residualMax;
+      void ReadSampleRates(QString filename);
 
-      //! Standard deviation of interior orientation residual vector length
-      double m_residualStdev;
+      std::vector<SampleRateChange> p_sampleRates;
 
       //! CK "Camera Matrix" kernel frame ID
-      int m_CkFrameId;
+      int m_ckFrameId;
     };
 };
 
diff --git a/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicDetectorMap.cpp b/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicDetectorMap.cpp
index 66a768b83122e4b4f25f4898e05ef6174c05aeca..f04d28e6ea65fee5cc8b83b36110e05e61cf92d9 100644
--- a/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicDetectorMap.cpp
+++ b/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicDetectorMap.cpp
@@ -14,9 +14,9 @@ namespace Isis {
    * This method sets cube sample line coordinates from given Dector coordinates
    *
    * @param sample dector sample coordinate
+   *
    * @param line detector line coordinate
    *
-   * @return bool Always returns true
    */
     bool ApolloPanoramicDetectorMap::SetDetector(const double sample, const double line) {
       //given a detector coordinate and a time (read from the 'parent' camera class) 
@@ -28,11 +28,11 @@ namespace Isis {
       p_detectorSample = -sample;
 
       //convert from detector to fiducial coordinants
-      double fidL = (p_camera->time().Et() - m_etMiddle)/m_lineRate;
+//      double fidL = (p_camera->time().Et() - m_etMiddle)/m_lineRate;
       //double fidS = sample;  //conversion is identity so it is skiped
 
       //convert from fiducial coordinates to parent image coordinates
-      p_intOri.image2Machine(p_detectorSample, fidL, &p_parentSample, &p_parentLine);
+//      p_intOri.image2Machine(p_detectorSample, fidL, &p_parentSample, &p_parentLine);
 
       //cout << "fiducial values sent to IO: " << p_detectorSample << " " << fidL << endl; //debug
       //cout << "cube coordinates returned from IO: " << p_parentSample << " " << p_parentLine << endl;
@@ -43,9 +43,9 @@ namespace Isis {
    * This method sets dector sample line coordinates from given cube coordinates
    *
    * @param sample cube sample coordinate
+   *
    * @param line cube line coordinate
    *
-   * @return bool Always returns true
    */
     bool ApolloPanoramicDetectorMap::SetParent(const double sample, const double line) {
       //Given an image (aka 'Parent', aka encoder, aka machine) coordinate set the detector 
@@ -56,7 +56,7 @@ namespace Isis {
       //convert from machine to fiducial coordinates
       //cout << "cube coordinates sent to IO: " << sample << " " << line << endl; //debug
     
-      p_intOri.machine2Image(sample,line,&p_detectorSample, &p_detectorLine);
+//      p_intOri.machine2Image(sample,line,&p_detectorSample, &p_detectorLine);
 
       //cout << "fiducial coordinate return from IO: " << p_detectorSample << " " << p_detectorLine << endl;
       //convert from fiducial coordinates to detector/time coordinates
@@ -76,14 +76,18 @@ namespace Isis {
     /**
      * This method uses the ApolloPanIO class to compute transforamtion from cube to image 
      * (aka fiducial cooraintes)
+     *
+     * @return -1 failure
+     *
+     * @return  1 sucess
      * 
-     * @throws  IException::User "No FID_MEASURES table found in cube blobs."
-     * @throws  IException::User "Less than four FID_MEASURES found in cube blobs."
-     * @throws  IException::User "Insufficient Fiducial Observations for computation of the interior
-     *                            orientation. At least one vertical pair must be measured, many 
-     *                            more is recomented."
-     * 
-     * @returns int Returns 1 on success and -1 on failure.
+     * @throws  No FID_MEASURES table found in cube blobs.
+     *
+     * @throws  Less than four FID_MEASURES found in cube blobs.
+     *
+     * @throws  Insufficient Fiducial Observations for computation of 
+     *          the interior orientation.\nAt least one vertical pair 
+     *          must be measured, many more is recomented.
      */
     int ApolloPanoramicDetectorMap::initializeInteriorOrientation() {
       int i,nrec;
@@ -104,13 +108,13 @@ namespace Isis {
                          _FILEINFO_);
         return -1;
       }
-      p_intOri.initialize();
+//      p_intOri.initialize();
 
-      for(i=0;i<nrec;i++)  //input all the observations to the the Interior Orientation Class
-        p_intOri.fiducialObservation(tableFid[i][0], tableFid[i][1], tableFid[i][2]);
+//      for(i=0;i<nrec;i++)  //input all the observations to the the Interior Orientation Class
+//        p_intOri.fiducialObservation(tableFid[i][0], tableFid[i][1], tableFid[i][2]);
 
-      i = p_intOri.computeInteriorOrienation();
-      
+//      i = p_intOri.computeInteriorOrienation();
+      i = 1;
       if( i != 1) { //unsuccessful computation of the interior orienation
         throw IException(IException::User,"Insufficient Fiducial Observations for computation of "
                                           "the interior orientation.\nAt least one vertical pair "
diff --git a/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicDetectorMap.h b/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicDetectorMap.h
index 314ee440917ee0ea6aee9dca0ee22299ca7e7a72..3d943f19e2e77cfa57ea1adeba3b111ccb5a731c 100644
--- a/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicDetectorMap.h
+++ b/isis/src/apollo/objs/ApolloPanoramicCamera/ApolloPanoramicDetectorMap.h
@@ -25,7 +25,7 @@
  */                                                                       
 
 
-#include "ApolloPanIO.h"
+//#include "ApolloPanIO.h"
 #include "LineScanCameraDetectorMap.h"
 #include "Pvl.h"
 #include "PvlGroup.h"
@@ -43,7 +43,6 @@ namespace Isis {
      * @internal                                                              
      *   @history 2011-11-21 Orrin Thomas - Original version
      *   @history 2012-07-10 Orrin Thomas - Updated to current coding standards
-     *   @history 2017-06-28 Makayla Shepherd - Updated documentation. References #4807.
      */        
     class ApolloPanoramicDetectorMap : public CameraDetectorMap {
     public:
@@ -66,7 +65,7 @@ namespace Isis {
       }
 
       //! Destroys ApolloPanoramicDetectorMap object
-      virtual ~ApolloPanoramicDetectorMap() {};
+//      virtual ~ApolloPanoramicDetectorMap() {};
 
       virtual bool SetParent(const double sample, const double line);
 
@@ -79,52 +78,37 @@ namespace Isis {
        *
        * @param lineRate the time in seconds between lines
        *
-       * @return void
        */
       void SetLineRate(const double lineRate) {
         m_lineRate = lineRate;
       };
 
-      /**
-       * Return the time in seconds between scan lines
-       * 
-       * @return double Time in seconds between scan lines
-       */
+      //! Return the time in seconds between scan lines
       double LineRate() const {
         return m_lineRate;
       };
 
-      /**
-       * Mean (average) of interior orientation residual vector lengths, accesor
-       * 
-       * @return double Mean of interior orientation residual vector lengths
-       */
-      double  meanResidual() { return p_intOri.meanResiduals(); };
+      //! Mean (average) of interior orientation residual vector lengths, accesor
+//      double  meanResidual() { return p_intOri.meanResiduals(); };
 
-      /**
-       * Max interior orientation residual vector length, accesor
-       * 
-       * @return double Max interior orientation residual vector length
-       */
-      double   maxResidual() { return p_intOri.maxResiduals(); };
+      //! Max interior orientation residual vector length, accesor
+//      double   maxResidual() { return p_intOri.maxResiduals(); };
 
-      /**
-       * Standard deviation of interior orientation residual vector lengths, accesor
-       * 
-       * @return double Standard deviation of interior orientation residual vector lengths
-       */
-      double stdevResidual() { return p_intOri.stdevResiduals(); };
+      //! Standard deviation of interior orientation residual vector lengths, accesor
+//      double stdevResidual() { return p_intOri.stdevResiduals(); };
 
       private:
-        
-        double m_etMiddle; //!< Ephemeris time at the middle line 
-        double m_lineRate; //!< line exposure duration
-        Pvl *m_lab;        //!< Image label used to construct camera object
-
-        /**
-         * Class to preform transformations from cube coordiantes to image coordinates
-         */
-        ApolloPanIO p_intOri;
+        //! Ephemeris time at the middle line
+        double m_etMiddle;  
+
+        //!line exposure duration
+        double m_lineRate;
+
+        //! Image label used to construct camera object    
+        Pvl *m_lab;
+
+        //! Class to preform transformations from cube coordiantes to image coordinates
+//        ApolloPanIO p_intOri;
 
         int initializeInteriorOrientation();
     };
diff --git a/isis/src/apollo/objs/ApolloPanoramicCamera/Camera.plugin b/isis/src/apollo/objs/ApolloPanoramicCamera/Camera.plugin
index 50182636e0606901e5e2582f7b2d191a906920e0..57628262dc2d70a43e98d556889d29ac7c9304ab 100644
--- a/isis/src/apollo/objs/ApolloPanoramicCamera/Camera.plugin
+++ b/isis/src/apollo/objs/ApolloPanoramicCamera/Camera.plugin
@@ -1,14 +1,14 @@
-Group = Apollo15/Apollo_Pan
-  Library = ApolloPanoramicCamera
+Group = Apollo15/Pan
+  Library = ./ApolloPanoramicCamera
   Routine = ApolloPanoramicCameraPlugin
-  Version = 1
+  Version = 2
 EndGroup
-Group = Apollo16/Apollo_Pan
+Group = Apollo16/Pan
   Library = ApolloPanoramicCamera
   Routine = ApolloPanoramicCameraPlugin
   Version = 1
 EndGroup
-Group = Apollo17/Apollo_Pan
+Group = Apollo17/Pan
   Library = ApolloPanoramicCamera
   Routine = ApolloPanoramicCameraPlugin
   Version = 1
diff --git a/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/ApolloPanoramicCameraFiducialMap.cpp b/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/ApolloPanoramicCameraFiducialMap.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ef7a7d8b4200b1e2a35f91ec265aff2a18fbbd12
--- /dev/null
+++ b/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/ApolloPanoramicCameraFiducialMap.cpp
@@ -0,0 +1,92 @@
+#include "ApolloPanoramicCameraFiducialMap.h"
+
+#include "Affine.h"
+#include "CameraGroundMap.h"
+#include "CameraSkyMap.h"
+#include "IString.h"
+
+namespace Isis {
+  /** Constructs mapping between Apollo Panoramic Camera detectors and focal cylinder x/y.
+   *  This method sets the x-axis direction to -1 if the NAIF IK code is even
+   *  and to 1 if the code is odd.
+   *
+   * @param inst  Instrument group from the Pvl labels
+   * @param naifIkCode  Naif code of the Apollo Panoramic instrument for reading coefficients
+   *
+   */
+  ApolloPanoramicCameraFiducialMap::ApolloPanoramicCameraFiducialMap(PvlGroup &fiducials,
+                                                                     const int naifIkCode) {
+    // Get the Instrument label information needed to define the fiducial map for this frame
+    p_naifIkCode = naifIkCode;
+    ReadFiducials(fiducials);
+
+//     // Set the x-axis direction.
+//     int xdir;
+//     if(naifIkCode % 2 == 0) {
+//       xdir = -1;
+//     }
+//     else {
+//       xdir = 1;
+//     }
+    
+    //TODO Why is this commented out? I commented out the code above so we wouldn't get a compiler
+    //warning. 2018-07-14 mshepherd
+//    CreateTrans(xdir);
+  }
+
+
+  /**
+   *
+   * Reads the fiducials from the instrument group of the labels
+   * @param inst Instrument group from the Pvl labels
+   *
+   * @throws IException::User - "Unable to read fiducial mapping from cube
+   *             labels - Input cube must be processed in Isis 2 through
+   *             lofixlabel and converted to Isis 3 with pds2isis"
+   */
+  void ApolloPanoramicCameraFiducialMap::ReadFiducials(PvlGroup &fiducials) {
+
+    // Try to read the fiducials from the labels
+    try {
+      // Fiducial mapping to define the Focal Plane map
+      PvlKeyword &measuredSamples = fiducials["Sample"];
+      PvlKeyword &measuredLines = fiducials["Line"];
+      PvlKeyword &calibratedLines = fiducials["XCoordinates"];
+      PvlKeyword &calibratedSamples = fiducials["YCoordinates"];
+      for(int i = 0; i < measuredSamples.size(); i++) {
+        m_fidMeasuredSamples.push_back(toDouble(measuredSamples[i]));
+        m_fidMeasuredLines.push_back(toDouble(measuredLines[i]));
+        m_fidCalibratedLines.push_back(toDouble(calibratedLines[i]));
+        m_fidCalibratedSamples.push_back(toDouble(calibratedSamples[i]));
+      }
+    }
+    catch(IException &e) {
+      string msg = "Unable to read fiducial mapping from cube labels";
+      throw IException(e, IException::User, msg, _FILEINFO_);
+    }
+  }
+
+
+  /**
+   * Creates focal plane affine transform.
+   * @param xdir The x-axis direction.
+   *
+   *
+   * @throws IException::User - "Unable to create fiducial map."
+   */
+  Affine* ApolloPanoramicCameraFiducialMap::CreateTrans() {
+    Affine *fptrans = new Affine();
+
+    try {
+      fptrans->Solve(&m_fidMeasuredSamples[0], (double *) &m_fidMeasuredLines[0],
+                     (double *) &m_fidCalibratedSamples[0], (double *) &m_fidCalibratedLines[0],
+                     m_fidMeasuredSamples.size());
+    }
+    catch(IException &e) {
+      string msg = "Unable to create fiducial map.";
+      throw IException(IException::User, msg, _FILEINFO_);
+    }
+
+    return fptrans;
+  }
+}
diff --git a/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/ApolloPanoramicCameraFiducialMap.h b/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/ApolloPanoramicCameraFiducialMap.h
new file mode 100644
index 0000000000000000000000000000000000000000..27c0ab8386276749433078ab7b2ee17d4587342c
--- /dev/null
+++ b/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/ApolloPanoramicCameraFiducialMap.h
@@ -0,0 +1,70 @@
+#ifndef ApolloPanoramicCameraFiducialMap_h
+#define ApolloPanoramicCameraFiducialMap_h
+/**
+ * @file 
+ *  
+ *   Unless noted otherwise, the portions of Isis written by the USGS are public
+ *   domain. See individual third-party library and package descriptions for
+ *   intellectual property information,user agreements, and related information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or implied,
+ *   is made by the USGS as to the accuracy and functioning of such software
+ *   and related material nor shall the fact of distribution constitute any such
+ *   warranty, and no responsibility is assumed by the USGS in connection
+ *   therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html in a browser or see
+ *   the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#include "PvlGroup.h"
+
+using namespace std;
+
+namespace Isis {
+  class Affine;
+  /**
+   * @brief Computes map from image coordinates to focal plane based on fiducials
+   *
+   * The ApolloPanoramicCameraFiducialMap class allows for the computation of a transformation
+   * from image coordinates (sample,line) to focal cylinder coordinates (x,y) for
+   * the Apollo 15, 16, 17 Panoramic Cameras The
+   * transformation map is an affine transformation defined by values written in
+   * the Isis 3 Instrument group labels.
+   *
+   * This class will load the fiducial sample/line and x/y values from the labels,
+   * compute the coefficients of the affine transformation, and place the
+   * coefficients in to the data pool.  Typically these values are read from an
+   * iak, but for Lunar Orbiter they are frame dependent.
+   *
+   * @ingroup SpiceInstrumentsAndCameras
+   * @ingroup ApolloPanoramic
+   *
+   * @author 2016-09-07 Ken Edmundson
+   *
+   * @internal
+   *   @history 2016-09-07 Ken Edmundson - Original Version
+   */
+  class ApolloPanoramicCameraFiducialMap  {
+    public:
+      ApolloPanoramicCameraFiducialMap(PvlGroup &inst, const int naifIkCode);
+      //! Destroys ApolloPanoramicCameraFiducialMap object.
+      ~ApolloPanoramicCameraFiducialMap() {};
+
+      Affine* CreateTrans();
+
+    private:
+      void ReadFiducials(PvlGroup &inst);
+      std::vector<double> m_fidMeasuredSamples;   //!< Image sample positions of fiducial map
+      std::vector<double> m_fidMeasuredLines;     //!< Image line positions of fiducial map
+      std::vector<double> m_fidCalibratedSamples; //!< Focal plane X positions of fiducial map
+      std::vector<double> m_fidCalibratedLines;   //!< Focal plane Y positions of fiducial map
+
+      int p_naifIkCode;            //!< Naif instrument code
+
+  };
+};
+#endif
diff --git a/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/ApolloPanoramicCameraFiducialMap.truth b/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/ApolloPanoramicCameraFiducialMap.truth
new file mode 100644
index 0000000000000000000000000000000000000000..1845175eb9388f5f3b5006677c97e70c3ade9c8a
--- /dev/null
+++ b/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/ApolloPanoramicCameraFiducialMap.truth
@@ -0,0 +1,25 @@
+Unit Test for ApolloPanoramicCameraFiducialMap...
+Testing fiducial fit on full Apollo 15 Panoramic AS15-P-0116 tile 5 (39795 x 25448)
+FileName: AS15-P-0116_0005_TRIM.cub
+CK Frame: -915230
+
+testing four corners...
+
+Upper Left
+  (1 , 1) => (Xfp, Yfp) = (63.0117796745100520 , 148.8404313509815324)
+Upper Left OK
+
+Upper Right
+  (1, 39795) => (Xfp, Yfp) = (62.7868969997623338 , -51.2210664535820328)
+Upper Right OK
+
+Lower Left
+  (1, 1) => (Xfp, Yfp) = (-61.5404808995972417 , 148.8119557628731684)
+Lower Left OK
+
+Lower Right
+  (1, 39795) => (Xfp, Yfp) = (-61.7653635743449598 , -51.2495420416903897)
+Lower Right OK
+
+
+-------------------------------------
diff --git a/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/Makefile b/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f122bc88227c5c7ebd108dea5d339d1d2e074d82
--- /dev/null
+++ b/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/Makefile
@@ -0,0 +1,7 @@
+ifeq ($(ISISROOT), $(BLANK))
+.SILENT:
+error:
+	echo "Please set ISISROOT";
+else
+	include $(ISISROOT)/make/isismake.objs
+endif
\ No newline at end of file
diff --git a/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/unitTest.cpp b/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/unitTest.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c690fe4ef93d28e802a11279ae5913a276e36640
--- /dev/null
+++ b/isis/src/apollo/objs/ApolloPanoramicCameraFiducialMap/unitTest.cpp
@@ -0,0 +1,298 @@
+/**
+ * @file
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are public
+ *   domain. See individual third-party library and package descriptions for 
+ *   intellectual property information,user agreements, and related information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or implied,
+ *   is made by the USGS as to the accuracy and functioning of such software 
+ *   and related material nor shall the fact of distribution constitute any such 
+ *   warranty, and no responsibility is assumed by the USGS in connection 
+ *   therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html in a browser or see 
+ *   the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#include <iomanip>
+#include <iostream>
+
+#include "Camera.h"
+#include "CameraDetectorMap.h"
+#include "CameraDistortionMap.h"
+#include "CameraFactory.h"
+#include "CameraFocalPlaneMap.h"
+#include "FileName.h"
+#include "IException.h"
+#include "iTime.h"
+#include "Preference.h"
+#include "Pvl.h"
+
+using namespace std;
+using namespace Isis;
+
+int main(void) {
+  Preference::Preferences(true);
+
+  cout << "Unit Test for ApolloPanoramicCameraFiducialMap..." << endl;
+
+  try {
+
+    cout << "Testing fiducial fit on full Apollo 15 Panoramic AS15-P-0116 tile 5 (39795 x 25448)" << endl;
+    Cube tile5("/work/projects/progteam/kedmundson/Apollo/PAN/AS15/testCubes/trimmed/AS15-P-0116_0005_TRIM.cub", "r");
+    Camera *cam = CameraFactory::Create(tile5);
+
+    cout << "FileName: " << FileName(tile5.fileName()).name() << endl;
+    cout << "CK Frame: " << cam->instrumentRotation()->Frame() << endl << endl;
+    cout.setf(std::ios::fixed);
+    cout << setprecision(9);
+
+    // Test four corners detector to distorted focal plane
+    cout << "testing four corners detector to distorted focal plane..." << endl << endl;
+    
+    // upper left pixel
+    double samp = 1.0;
+    double line = 1.0;
+    double knownUpperLeftX = 63.011779675;
+    double knownUpperLeftY = 148.840431351;
+
+    // convert from detector to distorted focal plane
+    if(cam->FocalPlaneMap()->SetDetector(samp, line)) {
+      double focalPlaneX = cam->FocalPlaneMap()->FocalPlaneX();
+      double focalPlaneY = cam->FocalPlaneMap()->FocalPlaneY();
+      
+      cout << "Upper Left" << endl << setprecision(0) << "  (" << samp << " , " << line
+           << ") => (Xfp, Yfp) = (" << setprecision(16) << focalPlaneX << " , " << focalPlaneY
+           << ")" << endl;
+	   
+      if(fabs(focalPlaneX - knownUpperLeftX) < 1E-9 &&
+          fabs(focalPlaneY - knownUpperLeftY) < 1E-9) {
+        cout << "Upper Left OK" << endl << endl;
+      }
+      else {
+        cout << setprecision(16) << "Upper Left X off by: " << focalPlaneX - knownUpperLeftX << endl;
+        cout << setprecision(16) << "Upper Left Y off by: " << focalPlaneY - knownUpperLeftY << endl;
+      }
+    }
+
+    // upper right pixel
+    samp = cam->Samples();
+    double knownUpperRightX = 62.786897000;
+    double knownUpperRightY = -51.221066454;
+
+    // convert from detector to distorted focal plane
+    if(cam->FocalPlaneMap()->SetDetector(samp, line)) {
+      double focalPlaneX = cam->FocalPlaneMap()->FocalPlaneX();
+      double focalPlaneY = cam->FocalPlaneMap()->FocalPlaneY();
+      cout << "Upper Right" << endl << "  (1, " << setprecision(0) << samp << ") => (Xfp, Yfp) = (" << setprecision(16) << focalPlaneX << " , " << focalPlaneY << ")" << endl;
+
+      if(fabs(focalPlaneX - knownUpperRightX) < 1E-9 &&
+          fabs(focalPlaneY - knownUpperRightY) < 1E-9) {
+        cout << "Upper Right OK" << endl << endl;
+      }
+      else {
+        cout << setprecision(16) << "Upper Right X off by: " << focalPlaneX - knownUpperRightX << endl;
+        cout << setprecision(16) << "Upper Right Y off by: " << focalPlaneY - knownUpperRightY << endl;
+      }
+    }
+
+    // lower left pixel
+    samp = 1.0;
+    line = cam->Lines();
+    double knownLowerLeftX = -61.5404808995972417;
+    double knownLowerLeftY = 148.8119557628731684;
+
+    // convert from detector to distorted focal plane
+    if(cam->FocalPlaneMap()->SetDetector(samp, line)) {
+      double focalPlaneX = cam->FocalPlaneMap()->FocalPlaneX();
+      double focalPlaneY = cam->FocalPlaneMap()->FocalPlaneY();
+      cout << "Lower Left" << endl << "  (1, " << setprecision(0) << samp << ") => (Xfp, Yfp) = (" << setprecision(16) << focalPlaneX << " , " << focalPlaneY << ")" << endl;
+
+      if(fabs(focalPlaneX - knownLowerLeftX) < 1E-9 &&
+          fabs(focalPlaneY - knownLowerLeftY) < 1E-9) {
+        cout << "Lower Left OK" << endl << endl;
+      }
+      else {
+        cout << setprecision(16) << "Lower Left X off by: " << focalPlaneX - knownLowerLeftX << endl;
+        cout << setprecision(16) << "Lower Left Y off by: " << focalPlaneY - knownLowerLeftY << endl;
+      }
+    }
+
+    // lower right pixel
+    samp = cam->Samples();
+    line = cam->Lines();
+    double knownLowerRightX = -61.7653635743449598;
+    double knownLowerRightY = -51.2495420416903897;
+
+    // convert from detector to distorted focal plane
+    if(cam->FocalPlaneMap()->SetDetector(samp, line)) {
+      double focalPlaneX = cam->FocalPlaneMap()->FocalPlaneX();
+      double focalPlaneY = cam->FocalPlaneMap()->FocalPlaneY();
+      cout << "Lower Right" << endl << "  (1, " << setprecision(0) << samp << ") => (Xfp, Yfp) = (" << setprecision(16) << focalPlaneX << " , " << focalPlaneY << ")" << endl;
+
+      if(fabs(focalPlaneX - knownLowerRightX) < 1E-9 &&
+          fabs(focalPlaneY - knownLowerRightY) < 1E-9) {
+        cout << "Lower Right OK" << endl << endl;
+      }
+      else {
+        cout << setprecision(16) << "Lower Right X off by: " << focalPlaneX - knownLowerRightX << endl;
+        cout << setprecision(16) << "Lower Right Y off by: " << focalPlaneY - knownLowerRightY << endl;
+      }
+      cout  << endl << "-------------------------------------" << endl;
+    }
+    
+    // Test four corners distorted focal plane to detector
+    cout << "testing four corners distorted focal plane to detector..." << endl << endl;
+    
+    // upper left pixel
+    double distortedFocalPlaneX = 63.011779675;
+    double distortedFocalPlaneY = 148.840431351;
+    double knownUpperLeftSample = 1.0;
+    double knownUpperLeftLine = 1.0;
+
+    // convert from detector to distorted focal plane
+    if(cam->DistortionMap()->SetUndistortedFocalPlane(distortedFocalPlaneX, distortedFocalPlaneY)) {
+      double sample = cam->DetectorMap()->ParentSample();
+      double line = cam->DetectorMap()->ParentLine();
+      
+      cout << "Upper Left" << endl << setprecision(16) << "  (" << distortedFocalPlaneX << " , "
+           << distortedFocalPlaneY
+           << ") => (sample, line) = (" << setprecision(16) << sample << " , " << line
+           << ")" << endl;
+	   
+      if(fabs(sample - knownUpperLeftSample) < 1E-9 &&
+          fabs(line - knownUpperLeftLine) < 1E-9) {
+        cout << "Upper Left OK" << endl << endl;
+      }
+      else {
+        cout << setprecision(16) << "Upper Left sample off by: " << sample - knownUpperLeftSample << endl;
+        cout << setprecision(16) << "Upper Left line off by: " << line - knownUpperLeftLine << endl;
+      }
+    }
+    
+    
+    delete cam;
+  }
+/*
+    cout << "Testing high fiducial fit on a full 34530 x 8750 frame" << endl;
+    Cube ch("$lo/testData/4164H_Full_mirror.cub", "r");
+    Camera *camh = CameraFactory::Create(ch);
+
+    cout << "FileName: " << FileName(ch.fileName()).name() << endl;
+    cout << "CK Frame: " << camh->instrumentRotation()->Frame() << endl << endl;
+    cout.setf(std::ios::fixed);
+    cout << setprecision(9);
+
+    // Test all four corners and center pixel to make sure the conversions are correct
+    // Upper left pixel
+    samp = 1.0;
+    line = 1.0;
+    knownUpperLeftX = 125.8894771096694;
+    knownUpperLeftY = -31.23569821243375;
+
+    // Now Convert from detector to distorted focal plane
+    if(camh->FocalPlaneMap()->SetDetector(samp, line)) {
+      double focalPlaneX = camh->FocalPlaneMap()->FocalPlaneX();
+      double focalPlaneY = camh->FocalPlaneMap()->FocalPlaneY();
+      if(fabs(focalPlaneX - knownUpperLeftX) < 1E-9 &&
+          fabs(focalPlaneY - knownUpperLeftY) < 1E-9) {
+        cout << "Upper left corner OK" << endl;
+      }
+      else {
+        cout << setprecision(16) << "Upper left X off by: " << focalPlaneX - knownUpperLeftX << endl;
+        cout << setprecision(16) << "Upper left Y off by: " << focalPlaneY - knownUpperLeftY << endl;
+      }
+    }
+
+    // Upper right pixel
+    samp = camh->Samples();
+    knownUpperRightX = -114.13710918057000754;
+    knownUpperRightY = -31.21483142132193;
+
+    // Now Convert from detector to distorted focal plane
+    if(camh->FocalPlaneMap()->SetDetector(samp, line)) {
+      double focalPlaneX = camh->FocalPlaneMap()->FocalPlaneX();
+      double focalPlaneY = camh->FocalPlaneMap()->FocalPlaneY();
+
+      if(fabs(focalPlaneX - knownUpperRightX) < 1E-9 &&
+          fabs(focalPlaneY - knownUpperRightY) < 1E-9) {
+        cout << "Upper right corner OK" << endl;
+      }
+      else {
+        cout << setprecision(18) << "Upper right X off by: " << focalPlaneX - knownUpperRightX << endl;
+        cout << setprecision(18) << "Upper right Y off by: " << focalPlaneY - knownUpperRightY << endl;
+      }
+    }
+
+    // Lower left pixel
+    samp = 1.0;
+    line = camh->Lines();
+    knownLowerLeftX = 125.9405233275204;
+    knownLowerLeftY = 29.52307388869981;
+
+    // Now Convert from detector to distorted focal plane
+    if(camh->FocalPlaneMap()->SetDetector(samp, line)) {
+      double focalPlaneX = camh->FocalPlaneMap()->FocalPlaneX();
+      double focalPlaneY = camh->FocalPlaneMap()->FocalPlaneY();
+      if(fabs(focalPlaneX - knownLowerLeftX) < 1E-9 &&
+          fabs(focalPlaneY - knownLowerLeftY) < 1E-9) {
+        cout << "Lower left corner OK" << endl;
+      }
+      else {
+        cout << setprecision(16) << "Lower left X off by: " << focalPlaneX - knownLowerLeftX << endl;
+        cout << setprecision(16) << "Lower left Y off by: " << focalPlaneY - knownLowerLeftY << endl;
+      }
+    }
+
+    // Lower right pixel
+    samp = camh->Samples();
+    line = camh->Lines();
+    knownLowerRightX = -114.0860629627191;
+    knownLowerRightY = 29.54394067981162;
+
+    // Now Convert from detector to distorted focal plane
+    if(camh->FocalPlaneMap()->SetDetector(samp, line)) {
+      double focalPlaneX = camh->FocalPlaneMap()->FocalPlaneX();
+      double focalPlaneY = camh->FocalPlaneMap()->FocalPlaneY();
+      if(fabs(focalPlaneX - knownLowerRightX) < 1E-9 &&
+          fabs(focalPlaneY - knownLowerRightY) < 1E-9) {
+        cout << "Lower right corner OK" << endl;
+      }
+      else {
+        cout << setprecision(16) << "Lower right X off by: " << focalPlaneX - knownLowerRightX << endl;
+        cout << setprecision(16) << "Lower right Y off by: " << focalPlaneY - knownLowerRightY << endl;
+      }
+    }
+
+    // Center pixel
+    samp = camh->Samples() / 2;
+    line = camh->Lines() / 2;
+    double knownCenterX = 5.90517988076963;//119.9912428434887;
+    double knownCenterY = -0.8493513951460194;//-30.39329207495764;
+
+    // Now Convert from detector to distorted focal plane
+    if(camh->FocalPlaneMap()->SetDetector(samp, line)) {
+      double focalPlaneX = camh->FocalPlaneMap()->FocalPlaneX();
+      double focalPlaneY = camh->FocalPlaneMap()->FocalPlaneY();
+      if(fabs(focalPlaneX - knownCenterX) < 1E-9 &&
+          fabs(focalPlaneY - knownCenterY) < 1E-9) {
+        cout << "Center corner OK" << endl;
+      }
+      else {
+        cout << setprecision(16) << "Center X off by: " << focalPlaneX - knownCenterX << endl;
+        cout << setprecision(16) << "Center Y off by: " << focalPlaneY - knownCenterY << endl;
+      }
+    }
+
+    delete camh;
+  }
+*/
+  catch(IException &e) {
+    e.print();
+  }
+}
+
diff --git a/isis/src/base/objs/Camera/Camera.h b/isis/src/base/objs/Camera/Camera.h
index b955731bb2aac6e88a6725ad70e61ad779cd9128..dccdf31037b78a162620e138da1c935d622fce63 100644
--- a/isis/src/base/objs/Camera/Camera.h
+++ b/isis/src/base/objs/Camera/Camera.h
@@ -365,6 +365,7 @@ namespace Isis {
       enum CameraType {
         Framing,    //!< Framing Camera
         PushFrame,  //!< Push Frame Camera
+        SampleScan, //!< Sample Scan Camera
         LineScan,   //!< Line Scan Camera
         Radar,      //!< Radar Camera
         Point       //!< Point Camera
diff --git a/isis/src/base/objs/CameraFocalPlaneMap/CameraFocalPlaneMap.cpp b/isis/src/base/objs/CameraFocalPlaneMap/CameraFocalPlaneMap.cpp
index f498c9eca0bee1eed45c5d7e7a1f32be7f5eab18..ef07040e8eb3f517911b06709cda27889b1e3ac3 100644
--- a/isis/src/base/objs/CameraFocalPlaneMap/CameraFocalPlaneMap.cpp
+++ b/isis/src/base/objs/CameraFocalPlaneMap/CameraFocalPlaneMap.cpp
@@ -159,7 +159,6 @@ namespace Isis {
   bool CameraFocalPlaneMap::SetFocalPlane(const double dx, const double dy) {
     p_focalPlaneX = dx;
     p_focalPlaneY = dy;
-
     p_centeredDetectorSample = p_itranss[0] + (p_itranss[1] * dx) + (p_itranss[2] * dy);
     p_centeredDetectorLine   = p_itransl[0] + (p_itransl[1] * dx) + (p_itransl[2] * dy);
     ComputeUncentered();
@@ -167,7 +166,7 @@ namespace Isis {
   }
 
 
-  /** Compute distorted focal plane coordinate from detector position (sampel,line)
+  /** Compute distorted focal plane coordinate from detector position (sample,line)
    *
    * This method will compute both the distorted focal plane x/y and centered
    * detector position given a detector position
@@ -249,49 +248,37 @@ namespace Isis {
   }
 
 
-  /**
-   * @returns The distorted focal plane x
-   */
+  //! Return distorted focal plane x
   double CameraFocalPlaneMap::FocalPlaneX() const {
     return p_focalPlaneX;
   }
 
 
-  /**
-   * @returns The distorted focal plane y
-   */
+  //! Return distorted focal plane y
   double CameraFocalPlaneMap::FocalPlaneY() const {
     return p_focalPlaneY;
   }
 
 
-  /**
-   * @returns The detector sample
-   */
+  //! Return detector sample
   double CameraFocalPlaneMap::DetectorSample() const {
     return p_detectorSample;
   }
 
 
-  /**
-   * @returns The detector line
-   */
+  //! Return detector line
   double CameraFocalPlaneMap::DetectorLine() const {
     return p_detectorLine;
   }
 
 
-  /**
-   * @returns The centered detector sample
-   */
+  //! Return centered detector sample
   double CameraFocalPlaneMap::CenteredDetectorSample() const {
     return p_centeredDetectorSample;
   }
 
 
-  /**
-   * @returns The centered detector line
-   */
+  //! Return centered detector line
   double CameraFocalPlaneMap::CenteredDetectorLine() const {
     return p_centeredDetectorLine;
   }
@@ -312,17 +299,13 @@ namespace Isis {
   }
 
 
-  /**
-   * @returns The detector line origin
-   */
+  //! Return detector line origin
   double CameraFocalPlaneMap::DetectorLineOrigin() const {
     return p_detectorLineOrigin;
   }
 
 
-  /**
-   * @returns The detector sample origin
-   */
+  //! Return detector sample origin
   double CameraFocalPlaneMap::DetectorSampleOrigin() const {
     return p_detectorSampleOrigin;
   }
@@ -344,27 +327,19 @@ namespace Isis {
   }
 
 
-  /**
-   * @returns The detector line offset
-   */
+  //! Return detector line offset
   double CameraFocalPlaneMap::DetectorLineOffset() const {
     return p_detectorLineOffset;
   }
 
 
-  /**
-   * @returns The detector sample offset
-   */
+  //! Return detector sample offset
   double CameraFocalPlaneMap::DetectorSampleOffset() const {
     return p_detectorSampleOffset;
   }
 
 
-  /**
-   * Set the affine coefficients for converting destorted (x,y) to a detector Line
-   * 
-   * @param transL Vector of the affine coefficients
-   */
+  //! Set the affine coefficients for converting destorted (x,y) to a detector Line
   void CameraFocalPlaneMap::SetTransL(const QVector<double> transL) {
    for (int i=0; i<3; ++i) {
      p_itransl[i] = transL[i];
@@ -372,11 +347,7 @@ namespace Isis {
   }
 
 
-  /**
-   * Set the affine coefficients for converting destorted (x,y) to a detector Sample
-   * 
-   * @param transS Vector of the affine coefficients
-   */
+  //! Set the affine coefficients for converting destorted (x,y) to a detector Sample
   void CameraFocalPlaneMap::SetTransS(const QVector<double> transS) {
    for (int i=0; i<3; ++i) {
      p_itranss[i] = transS[i];
@@ -384,11 +355,7 @@ namespace Isis {
   }
 
 
-  /**
-   * Set the affine coefficients for converting detector (sample,line) to a distorted X
-   * 
-   * @param transX Vector of the affine coefficients
-   */
+  //! Set the affine coefficients for converting detector (sample,line) to a distorted X
   void CameraFocalPlaneMap::SetTransX(const QVector<double> transX) {
    for (int i=0; i<3; ++i) {
      p_transx[i] = transX[i];
@@ -396,11 +363,7 @@ namespace Isis {
   }
 
 
-  /**
-   * Set the affine coefficients for converting detector (sample,line) to a distorted Y
-   * 
-   * @param transY Vector of the affine coefficients
-   */
+  //! Set the affine coefficients for converting detector (sample,line) to a distorted Y
   void CameraFocalPlaneMap::SetTransY(const QVector<double> transY) {
    for (int i=0; i<3; ++i) {
      p_transy[i] = transY[i];
@@ -408,33 +371,25 @@ namespace Isis {
   }
 
 
-  /**
-   * @return The affine coefficients for converting detector (sample,line) to a distorted X
-   */
+  //! Return the affine coefficients for converting detector (sample,line) to a distorted X
   const double *CameraFocalPlaneMap::TransX() const{
     return p_transx;
   }
 
 
-  /**
-   * @returns The affine coefficients for converting detector (sample,line) to distorted Y
-   */
+  //! Return the affine coefficients for converting detector (sample,line) to distorted Y
   const double *CameraFocalPlaneMap::TransY() const{
     return p_transy;
   }
 
 
-  /**
-   * @returns The affine coefficients for converting distorted (x,y) to a detector Sample
-   */
+  //! Return the affine coefficients for converting distorted (x,y) to a detector Sample
   const double *CameraFocalPlaneMap::TransS() const{
     return p_itranss;
   }
 
 
-  /**
-   * @returns The affine coefficients for converting distorted (x,y) to a detector Line
-   */
+  //! Return the affine coefficients for converting distorted (x,y) to a detector Line
   const double *CameraFocalPlaneMap::TransL() const{
     return p_itransl;
   }
diff --git a/isis/src/base/objs/LineScanCameraGroundMap/LineScanCameraGroundMap.cpp b/isis/src/base/objs/LineScanCameraGroundMap/LineScanCameraGroundMap.cpp
index 6b7056bbbcedb84f12353591d0a74c4bbf4f1232..ee98483f69f2bf85ef9e1fc64f66a0d3933419ab 100644
--- a/isis/src/base/objs/LineScanCameraGroundMap/LineScanCameraGroundMap.cpp
+++ b/isis/src/base/objs/LineScanCameraGroundMap/LineScanCameraGroundMap.cpp
@@ -62,7 +62,7 @@ class LineOffsetFunctor :
 
     LineOffsetFunctor(Isis::Camera *camera, const Isis::SurfacePoint &surPt) {
       m_camera = camera;
-      m_surfacePoint = surPt;
+      surfacePoint = surPt;
     }
 
 
@@ -96,7 +96,7 @@ class LineOffsetFunctor :
       m_camera->Sensor::setTime(et);
  
       // Set ground
-      if (!m_camera->Sensor::SetGround(m_surfacePoint, false)) {
+      if (!m_camera->Sensor::SetGround(surfacePoint, false)) {
         IString msg = "Sensor::SetGround failed for surface point in LineScanCameraGroundMap.cpp"
                       " LineOffsetFunctor";
         throw IException(IException::Programmer, msg, _FILEINFO_);
@@ -112,22 +112,22 @@ class LineOffsetFunctor :
       // SetUndistortedFocalPlane was failing a majority of the time, causing most SetGround calls
       // to fail. Even when it did succeed, it was producing non-continous return values.
         // Set the undistorted focal plane coordinates
-      //  if (!m_camera->DistortionMap()->SetUndistortedFocalPlane(ux, uy)) {
-      //    IString msg = "DistortionMap::SetUndistoredFocalPlane failed for surface point in "
-      //                  "LineScanCameraGroundMap.cpp LineOffsetFunctor";
-      //    throw IException(IException::Programmer, msg, _FILEINFO_);
-      //  }
+//        if (!m_camera->DistortionMap()->SetUndistortedFocalPlane(ux, uy)) {
+//          IString msg = "DistortionMap::SetUndistoredFocalPlane failed for surface point in "
+//                        "LineScanCameraGroundMap.cpp LineOffsetFunctor";
+//          throw IException(IException::Programmer, msg, _FILEINFO_);
+//        }
 
         // Get the natural (distorted focal plane coordinates)
-      //  dx = m_camera->DistortionMap()->FocalPlaneX();
-      //  dy = m_camera->DistortionMap()->FocalPlaneY();
-      //  std::cout << "use dist" << std::endl;
-      //}
+//        dx = m_camera->DistortionMap()->FocalPlaneX();
+//        dy = m_camera->DistortionMap()->FocalPlaneY();
+//        std::cout << "use dist" << std::endl;
+//      }
 
 
       // Try to use SetUndistortedFocalPlane, if that does not work use the distorted x,y
       // under the assumption (bad|good) that extrapolating the distortion
-      // is causing the distorted x,y to be way off the sensor, and thus not very good anyway.
+      // is causing the distorted x to be way off the sensor, and thus not very good anyway.
       if (m_camera->DistortionMap()->SetUndistortedFocalPlane(ux, uy)) {
         // Get the natural (distorted focal plane coordinates)
         dx = m_camera->DistortionMap()->FocalPlaneX();
@@ -151,7 +151,7 @@ class LineOffsetFunctor :
 
 
   private:
-    SurfacePoint m_surfacePoint;
+    SurfacePoint surfacePoint;
     Camera* m_camera;
 };
 
@@ -187,7 +187,7 @@ class SensorSurfacePointDistanceFunctor :
         throw IException(IException::Programmer, msg, _FILEINFO_);
       }
       m_camera->Sensor::setTime(et);
-      if (!m_camera->Sensor::SetGround(surfacePoint, false)) {
+      if(!m_camera->Sensor::SetGround(surfacePoint, false)) {
          IString msg = "Sensor::SetGround failed for surface point in LineScanCameraGroundMap.cpp"
                        "SensorSurfacePointDistanceFunctor";
       }
@@ -289,8 +289,8 @@ namespace Isis {
     //CameraDistortionMap *distortionMap = p_camera->DistortionMap();
     //CameraFocalPlaneMap *focalMap = p_camera->FocalPlaneMap();
 
-    double approxTime = 0;
-    double approxOffset = 0;
+    double approxTime=0;
+    double approxOffset=0;
     double lookC[3] = {0.0, 0.0, 0.0};
     double ux = 0.0;
     double uy = 0.0;
@@ -306,20 +306,20 @@ namespace Isis {
     LineOffsetFunctor offsetFunc(p_camera,surfacePoint);
     SensorSurfacePointDistanceFunctor distanceFunc(p_camera,surfacePoint);
 
-    // METHOD #1
-    // Use the line given as a start point for the secant method root search. 
-    if (approxLine >= 0.5) {
-
-      // convert the approxLine to an approximate time and offset
-      p_camera->DetectorMap()->SetParent(p_camera->ParentSamples() / 2.0, approxLine);
+    /*********************************************************************************************
+    if an approximate point is given use that as a start point for the secant method root search
+    *********************************************************************************************/
+    if (approxLine > 0) {
+      //convert the approxLine to an approximate time and offset
+      p_camera->DetectorMap()->SetParent(p_camera->ParentSamples() / 2, p_camera->ParentLines());
+//    p_camera->DetectorMap()->SetParent(p_camera->ParentSamples() / 2, approxLine);
       approxTime = p_camera->time().Et();
   
       approxOffset = offsetFunc(approxTime);
 
-      // Check to see if there is no need to improve this root, it's good enough
-      if (fabs(approxOffset) < 1e-2) { 
+      if (fabs(approxOffset) < 1e-2) { //no need to iteratively improve this root, it's good enough
         p_camera->Sensor::setTime(approxTime);
-        // check to make sure the point isn't behind the planet
+        //check to make sure the point isn't behind the planet
         if (!p_camera->Sensor::SetGround(surfacePoint, true)) {
           return Failure;
         } 
@@ -335,7 +335,7 @@ namespace Isis {
 
       double fl, fh, xl, xh;
 
-      // starting times for the secant method, kept within the domain of the cache
+      //starting times for the secant method, kept within the domain of the cache
       xh = approxTime;
       if (xh + lineRate < cacheEnd) {
         xl = xh + lineRate;
@@ -344,7 +344,7 @@ namespace Isis {
         xl = xh - lineRate;
       }
 
-      // starting offsets
+      //starting offsets
       fh = approxOffset;  //the first is already calculated
       fl = offsetFunc(xl);
 
@@ -361,7 +361,7 @@ namespace Isis {
         double f = offsetFunc(etGuess);
 
 
-        // elliminate the node farthest away from the current best guess
+        //elliminate the node farthest away from the current best guess
         if (fabs( xl- etGuess) > fabs( xh - etGuess)) {  
           xl = etGuess;
           fl = f;
@@ -371,10 +371,11 @@ namespace Isis {
           fh = f;
         }
 
-        // See if we converged on the point so set up the undistorted focal plane values and return
+        //See if we converged on the point so set up the undistorted
+        //  focal plane values and return
         if (fabs(f) < 1e-2) {
-          p_camera->Sensor::setTime(approxTime);
-          // check to make sure the point isn't behind the planet
+          p_camera->Sensor::setTime(etGuess);
+          //check to make sure the point isn't behind the planet
           if (!p_camera->Sensor::SetGround(surfacePoint, true)) {
             return Failure;
           } 
@@ -387,13 +388,14 @@ namespace Isis {
 
           return Success;       
         }
-      } // End itteration using a guess
-      // return Failure; // Removed to let the lagrange method try to find the line if secant fails
-    } // End use a guess
+      }
+      return Failure;
+    }
 
 
-    // METHOD #2
-    // The guess or middle line did not work so try estimating with a quadratic
+    /**********************************************************************************************
+    no estimate given for the approximate line--quadratic approximation root finding
+    **********************************************************************************************/
     // The offsets are typically quadratic, so three points will be used to approximate a quadratic
     // as a first order attempt to find the root location(s)
 
@@ -408,7 +410,7 @@ namespace Isis {
 
     timeNodes[0] = cacheStart;
     timeNodes[2] = cacheEnd;
-    timeNodes[1] = (cacheStart+cacheEnd) / 2.0; // middle time
+    timeNodes[1] = (cacheStart+cacheEnd) / 2.0; //middle time
 
     double quadPoly[3];
     double temp;
@@ -417,7 +419,7 @@ namespace Isis {
       offsetNodes[i] = offsetFunc(timeNodes[i]);
     }
    
-    // centralize and normalize the data for stability in root finding
+    //centralize and normalize the data for stability in root finding
     timeAverage = (timeNodes[0] + timeNodes[1] + timeNodes[2]) / 3.0;
     timeNodes[0] -= timeAverage;
     timeNodes[1] -= timeAverage;
@@ -459,10 +461,8 @@ namespace Isis {
     // Now that we have the coefficients of the quadratic look for roots 
     // (see Numerical Recipes Third Edition page 227)
     temp = quadPoly[1] * quadPoly[1] - 4.0 * quadPoly[0] * quadPoly[2];  //discriminant
-
-    // THIS IS A PREMATURE FAILURE RETURN. IT SHOULD TRY THE NEXT METHON BEFORE FAILING
     if (temp < 0.0) {
-      return Failure;  // there are apparently not any real roots on this image
+      return Failure;  //there are apparently not any real roots on this image
     }
 
     if (quadPoly[1] >= 0.0) {
@@ -480,44 +480,41 @@ namespace Isis {
       root.push_back(quadPoly[2]/temp);
     }
 
-    // check to see if the roots are in the time interval of the cache
+    //check to see if the roots are in the time interval of the cache
     for (int i=root.size()-1; i>=0; i--) {
       if ( root[i] < timeNodes[0] || root[i] > timeNodes[2] ) {
         root.removeAt(i);
       }
     }
      
-    // return the calculated roots to the original system
+    //return the calculated roots to the original system
     for (int i=0; i<root.size(); i++) {
       root[i] = root[i]/scale + timeAverage;
     }
 
-    // THIS IS A PREMATURE FAILURE RETURN. IT SHOULD TRY THE NEXT METHON BEFORE FAILING
     if (root.size() == 0) {
-      return Failure;  // there are apparently not any roots on this image
+      return Failure;  //there are apparently not any roots on this image
     }
 
     // At the time of this writing ISIS made no attempt to support any sensors that were not "1 to 1".
-    // Meaning they imaged the same point on the ground in multiple lines of the image
+    // Meaning that imaged the same point on the ground in multiple lines of the image
     // therefore we must somehow reduce multiple possible roots to a single one,  the legacy 
     // code (replaced with this code) did this based on distance from the sensor to the target
     // the shortest distance being the winner.  For legacy consistency I have used the same logic below.  
 
-    for (int i=0; i<root.size(); i++) {  // Offset/dist calculation loop
+    for (int i=0; i<root.size(); i++) {  //Offset/dist calculation loop
       dist << distanceFunc(root[i]);
       offset << offsetFunc(root[i]);
     }
 
     // Save the root with the smallest dist
-    {
-      int j=0;   
-      for (int i=1; i<root.size(); i++) {
-        if (dist[i] < dist[j]) j=i;
-      }      
-        
-      approxTime = root[j];  // Now we have our time
-      approxOffset = offset[j];  // The offsets are saved to avoid recalculating it later
-    }
+    int j=0;   
+    for (int i=1, j=0; i<root.size(); i++) {
+      if (dist[i] < dist[j]) j=i;
+    }      
+      
+    approxTime = root[j];  // Now we have our time
+    approxOffset = offset[j];  // The offsets are saved to avoid recalculating it later
 
     if (fabs(approxOffset) < 1.0e-2) { // No need to iteratively improve this root, it's good enough
       p_camera->Sensor::setTime(approxTime);
@@ -537,9 +534,10 @@ namespace Isis {
       return Success;
     }
 
-
-    // METHOD #3
-    // Estimated line and quadratic approximation insufficient, try Brent's method
+    /**********************************************************************************************
+    no estimate given for the approximate line, quadratic approximation insufficient, use Brent's
+    method
+    **********************************************************************************************/
     // The offsets are typically quadratic, so three points will be used to approximate a quadratic
     // as a first order attempt to find the root location(s)
 
@@ -562,14 +560,14 @@ namespace Isis {
       pt << offsetNodes[i] / scale;
       pts << pt; 
     }
-
+ 
     for (int i=0; i<root.size(); i++) {
       QList <double> pt;
       pt << root[i];
       pt << offset[i];
       pts << pt; 
     }
-
+  
     qSort(pts.begin(), pts.end(), ptXLessThan);
     
     root.clear();
@@ -580,6 +578,7 @@ namespace Isis {
         if (FunctionTools::brentsRootFinder <LineOffsetFunctor> (offsetFunc, pts[i-1], pts[i],
                                                                  1.0e-3, 200, temp)) {
           root << temp;
+
         }
       }      
     }
@@ -607,15 +606,12 @@ namespace Isis {
     }
 
     // Save the root with the smallest dist
-    {
-      int j=0;   
-      for (int i=1; i<root.size(); i++) {
-        if (dist[i] < dist[j]) j=i;
-      }
-
-      p_camera->Sensor::setTime(root[j]);
+    for (int i=1, j=0; i<root.size(); i++) {
+      if (dist[i] < dist[j]) j=i;
     }
 
+    p_camera->Sensor::setTime(root[j]);
+
     // No need to make sure the point isn't behind the planet, it was done above
     p_camera->Sensor::LookDirection(lookC);
     ux = p_camera->FocalLength() * lookC[0] / lookC[2];
diff --git a/isis/src/base/objs/SampleScanCamera/Makefile b/isis/src/base/objs/SampleScanCamera/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f122bc88227c5c7ebd108dea5d339d1d2e074d82
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCamera/Makefile
@@ -0,0 +1,7 @@
+ifeq ($(ISISROOT), $(BLANK))
+.SILENT:
+error:
+	echo "Please set ISISROOT";
+else
+	include $(ISISROOT)/make/isismake.objs
+endif
\ No newline at end of file
diff --git a/isis/src/base/objs/SampleScanCamera/SampleScanCamera.cpp b/isis/src/base/objs/SampleScanCamera/SampleScanCamera.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..6b7fa5e90fc1a72b1d5cf0d88609ae1d3cba190f
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCamera/SampleScanCamera.cpp
@@ -0,0 +1,71 @@
+/**
+ * @file
+ * $Revision: 1.1 $
+ * $Date: 2009/08/31 15:11:49 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#include "SampleScanCamera.h"
+
+namespace Isis {
+  /**
+   * Constructs the SampleScanCamera object
+   *
+   * @param cube Cube used to create the parent Camera object
+   */
+  SampleScanCamera::SampleScanCamera(Isis::Cube &cube) : Camera(cube) {
+  }
+  
+  /** 
+   * Returns the SampleScan type of camera, as enumerated in the Camera
+   * class. 
+   * @return CameraType SampleScan camera type.
+   */
+  virtual CameraType GetCameraType() const {
+    return SampleScan;
+  }
+  
+  /**
+   * Returns a pointer to the SampleScanCameraGroundMap object
+   *
+   * @return SampleScanCameraGroundMap*
+   */
+  SampleScanCameraGroundMap *GroundMap() {
+    return (SampleScanCameraGroundMap *)Camera::GroundMap();
+  };
+  
+  /**
+   * Returns a pointer to the SampleScanCameraSkyMap object
+   *
+   * @return SampleScanCameraSkyMap*
+   */
+  SampleScanCameraSkyMap *SkyMap() {
+    return (SampleScanCameraSkyMap *)Camera::SkyMap();
+  };
+  
+  /**
+   * Returns a pointer to the SampleScanCameraDetectorMap object
+   *
+   * @return SampleScanCameraDetectorMap*
+   */
+  SampleScanCameraDetectorMap *DetectorMap() {
+    return (SampleScanCameraDetectorMap *)Camera::DetectorMap();
+  };
+};
+
diff --git a/isis/src/base/objs/SampleScanCamera/SampleScanCamera.h b/isis/src/base/objs/SampleScanCamera/SampleScanCamera.h
new file mode 100644
index 0000000000000000000000000000000000000000..b2fefbfd5b4126e343a22c3935c5e1f253b39b66
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCamera/SampleScanCamera.h
@@ -0,0 +1,63 @@
+#ifndef SAMPLESCANCAMERA_H
+#define SAMPLESCANCAMERA_H
+/**
+ * @file
+ * $Revision: 1.1 $
+ * $Date: 2009/08/31 15:11:49 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#include "Camera.h"
+
+namespace Isis {
+  class SampleScanCameraGroundMap;
+  class SampleScanCameraDetectorMap;
+  class SampleScanCameraSkyMap;
+
+  /**
+   * @brief Generic class for Sample Scan Cameras
+   *
+   * This class is used to abstract out sample scan camera functionality from
+   * children classes.
+   *
+   * @ingroup SpiceInstrumentsAndCameras
+   * @author 2016-09-12 Ken Edmundson
+   *
+   * @internal
+   *   @history 2016-09-12 Ken Edmundson - Original version.
+   *  
+   *   @todo Implement more functionality in this class and abstract away from the children
+   */
+
+  class SampleScanCamera : public Camera {
+    public:
+      SampleScanCamera(Isis::Cube &cube);
+
+      virtual CameraType GetCameraType();
+      SampleScanCameraGroundMap *GroundMap();
+      SampleScanCameraSkyMap *SkyMap();
+      SampleScanCameraDetectorMap *DetectorMap();
+
+    private:
+      SampleScanCamera(const SampleScanCamera &); //!< Copying cameras is not allowed
+      SampleScanCamera &operator=(const SampleScanCamera &); //!< Assigning cameras is not allowed
+  };
+};
+
+#endif
diff --git a/isis/src/base/objs/SampleScanCamera/SampleScanCamera.truth b/isis/src/base/objs/SampleScanCamera/SampleScanCamera.truth
new file mode 100644
index 0000000000000000000000000000000000000000..ed64237ffae45dcdb0e9d297560b7b0f6039583b
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCamera/SampleScanCamera.truth
@@ -0,0 +1,4 @@
+Camera = Framing?   0
+Camera = LineScan?  1
+Camera = PushFrame? 0
+Camera = Radar?     0
diff --git a/isis/src/base/objs/SampleScanCamera/unitTest.cpp b/isis/src/base/objs/SampleScanCamera/unitTest.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..789bf7d2a202f0b752c3c449a7dc1f3583d7b6fe
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCamera/unitTest.cpp
@@ -0,0 +1,67 @@
+/**
+ * @file
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are public
+ *   domain. See individual third-party library and package descriptions for
+ *   intellectual property information,user agreements, and related information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or implied,
+ *   is made by the USGS as to the accuracy and functioning of such software
+ *   and related material nor shall the fact of distribution constitute any such
+ *   warranty, and no responsibility is assumed by the USGS in connection
+ *   therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html in a browser or see
+ *   the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#include "Cube.h"
+#include "FileName.h"
+#include "IException.h"
+#include "SampleScanCamera.h"
+#include "Preference.h"
+#include "Pvl.h"
+
+using namespace std;
+using namespace Isis;
+
+class MyCamera : public SampleScanCamera {
+  public:
+    MyCamera(Cube &cube) : SampleScanCamera(cube) { }
+
+    virtual int CkFrameId() const {
+      string msg = "CK Frame ID is unqiue to mission-specific cameras";
+      throw IException(IException::Unknown, msg, _FILEINFO_);
+    }
+
+    virtual int CkReferenceId() const {
+      string msg = "CK Reference ID is unique to mission-specific cameras";
+      throw IException(IException::Unknown, msg, _FILEINFO_);
+    }
+
+    virtual int SpkReferenceId() const {
+      string msg = "SPK Reference ID is unique to mission-specific cameras";
+      throw IException(IException::Unknown, msg, _FILEINFO_);
+    }
+    
+    // These are pure virtual within Sensor that must be overriden
+    virtual QString instrumentNameLong() const { return QString("Sample Scan"); }
+    virtual QString instrumentNameShort() const { return QString("LS"); }
+    virtual QString spacecraftNameLong() const { return QString("Sample Scan 1"); }
+    virtual QString spacecraftNameShort() const { return QString("LS1"); }
+};
+
+int main() {
+  Preference::Preferences(true);
+  Cube cube("$mgs/testData/ab102401.lev2.cub", "r");
+  MyCamera cam(cube);
+
+  cout << "Camera = Framing?     " << (cam.GetCameraType() == Camera::Framing) << endl;
+  cout << "Camera = SampleScan?  " << (cam.GetCameraType() == Camera::SampleScan) << endl;
+  cout << "Camera = LineScan?    " << (cam.GetCameraType() == Camera::LineScan) << endl;
+  cout << "Camera = PushFrame?   " << (cam.GetCameraType() == Camera::PushFrame) << endl;
+  cout << "Camera = Radar?       " << (cam.GetCameraType() == Camera::Radar) << endl;
+}
diff --git a/isis/src/base/objs/SampleScanCameraDetectorMap/Makefile b/isis/src/base/objs/SampleScanCameraDetectorMap/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f122bc88227c5c7ebd108dea5d339d1d2e074d82
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraDetectorMap/Makefile
@@ -0,0 +1,7 @@
+ifeq ($(ISISROOT), $(BLANK))
+.SILENT:
+error:
+	echo "Please set ISISROOT";
+else
+	include $(ISISROOT)/make/isismake.objs
+endif
\ No newline at end of file
diff --git a/isis/src/base/objs/SampleScanCameraDetectorMap/SampleScanCameraDetectorMap.cpp b/isis/src/base/objs/SampleScanCameraDetectorMap/SampleScanCameraDetectorMap.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..777b889ab5e0aceb0689566d90e1a7a9ca17ebef
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraDetectorMap/SampleScanCameraDetectorMap.cpp
@@ -0,0 +1,137 @@
+/**
+ * @file
+ * $Revision: 1.1.1.1 $
+ * $Date: 2006/10/31 23:18:08 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#include "SampleScanCameraDetectorMap.h"
+
+#include "CameraFocalPlaneMap.h"
+#include "iTime.h"
+
+namespace Isis {
+
+  /** Construct a detector map for sample scan cameras
+   *
+   * @param parent    The parent camera model for the detector map
+   * @param etStart   starting ephemeris time in seconds
+   *                  at the left of the first sample
+   * @param sampleRate  the time in seconds between samples
+   *
+   */
+  SampleScanCameraDetectorMap(Camera *parent, const double etStart, const double sampleRate) :
+    CameraDetectorMap(parent) {
+    p_etStart = etStart;
+    p_sampleRate = sampleRate;
+  }
+
+
+  //! Destructor
+  virtual ~SampleScanCameraDetectorMap() {};
+
+  /** Reset the starting ephemeris time
+   *
+   * Use this method to reset the starting time of the left edge of
+   * the first sample in the parent image. That is the time, prior
+   * to cropping, scaling, or padding. Usually this will not need
+   * to be done unless the time changes between bands.
+   *
+   * @param etStart starting ephemeris time in seconds
+   *
+   */
+  void SetStartTime(const double etStart) {
+    p_etStart = etStart;
+  };
+
+
+  /** Reset the sample rate
+   *
+   * Use this method to reset the time between samples. Usually this
+   * will not need to be done unless the rate changes between bands.
+   *
+   * @param sampleRate the time in seconds between samples
+   *
+   */
+  void SetSampleRate(const double sampleRate) {
+    p_sampleRate = sampleRate;
+  };
+
+
+  /**
+   * Returns the time in seconds between scan columns
+   * 
+   * @return double The time in seconds between scan columns
+   */
+  double SampleRate() const {
+    return p_sampleRate;
+  };
+      
+  /** Compute parent position from a detector coordinate
+   *
+   * This method will compute a parent sample given a
+   * detector coordinate.  The parent sample will be computed using the
+   * the time in the parent camera
+   *
+   * @param sample Sample number in the detector
+   * @param line Line number in the detector
+   *
+   * @return conversion successful
+   */
+  bool SampleScanCameraDetectorMap::SetDetector(const double sample, const double line) {
+    if (!CameraDetectorMap::SetDetector(sample, line))
+      return false;
+
+    double etDiff = p_camera->time().Et() - p_etStart;
+    p_parentSample = etDiff / p_sampleRate + 0.5;
+    return true;
+  }
+
+  /** Compute detector position from a parent image coordinate
+   *
+   * This method will compute the detector position from the parent
+   * line/sample coordinate.  The parent sample will be used to set the
+   * appropriate time in the parent camera.
+   *
+   * @param sample Sample number in the parent image
+   * @param line Line number in the parent image
+   *
+   * @return conversion successful
+   */
+  bool SampleScanCameraDetectorMap::SetParent(const double sample, const double line) {
+    if (!CameraDetectorMap::SetParent(sample, line))
+      return false;
+
+    p_detectorSample = p_camera->FocalPlaneMap()->DetectorSampleOffset();
+
+    double etSample = p_etStart - p_sampleRate * (sample - 0.5);
+    p_camera->setTime(etSample);
+    return true;
+  }
+
+  /**
+   * Returns the starting time at the right edge of the last sample in the parent image
+   * 
+   * @return double The starting time at the right edge of the last sample in the parent image
+   */
+  double SampleScanCameraDetectorMap::StartTime() const {
+    return p_etStart;
+  }
+
+}
diff --git a/isis/src/base/objs/SampleScanCameraDetectorMap/SampleScanCameraDetectorMap.h b/isis/src/base/objs/SampleScanCameraDetectorMap/SampleScanCameraDetectorMap.h
new file mode 100644
index 0000000000000000000000000000000000000000..980b828f2dac44dfb596384762d8d373857a0bfa
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraDetectorMap/SampleScanCameraDetectorMap.h
@@ -0,0 +1,65 @@
+/**
+ * @file
+ * $Revision: 1.3 $
+ * $Date: 2009/03/07 17:57:27 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#ifndef SampleScanCameraDetectorMap_h
+#define SampleScanCameraDetectorMap_h
+
+#include "CameraDetectorMap.h"
+
+namespace Isis {
+  /** Convert between parent image coordinates and detector coordinates
+   *
+   * This class is used to convert between parent detector coordinates
+   * (sample/line) and detector coordinates for a sample scan camera.
+   *
+   * @ingroup Camera
+   *
+   * @see Camera
+   *
+   * @author 2016-09-07 Ken Edmundson
+   *
+   * @internal
+   *   @history 2016-09-07 Ken Edmundson Original version.
+   *
+   */
+  class SampleScanCameraDetectorMap : public CameraDetectorMap {
+    public:
+
+      SampleScanCameraDetectorMap(Camera *parent, const double etStart, const double sampleRate);
+
+      virtual ~SampleScanCameraDetectorMap() {};
+
+      void SetStartTime(const double etStart);
+      void SetSampleRate(const double sampleRate);
+      double SampleRate() const;
+
+      virtual bool SetParent(const double sample, const double line);
+      virtual bool SetDetector(const double sample, const double line);
+      double StartTime() const;
+
+    private:
+      double p_etStart;     //!< Starting time at the left of the 1st parent sample
+      double p_sampleRate;    //!< iTime between samples in parent cube
+  };
+};
+#endif
diff --git a/isis/src/base/objs/SampleScanCameraDetectorMap/SampleScanCameraDetectorMap.truth b/isis/src/base/objs/SampleScanCameraDetectorMap/SampleScanCameraDetectorMap.truth
new file mode 100644
index 0000000000000000000000000000000000000000..6347fe6d38f458077e14c2efcd5624b000c19da3
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraDetectorMap/SampleScanCameraDetectorMap.truth
@@ -0,0 +1 @@
+This class will be tested by the applications and the individual Camera models.
diff --git a/isis/src/base/objs/SampleScanCameraDetectorMap/unitTest.cpp b/isis/src/base/objs/SampleScanCameraDetectorMap/unitTest.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d29f6a0a3117f27e7834dbb1f64a8b2014ea3d9d
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraDetectorMap/unitTest.cpp
@@ -0,0 +1,8 @@
+#include <iostream>
+#include "Preference.h"
+
+using namespace std;
+int main() {
+  Isis::Preference::Preferences(true);
+  cout << "This class will be tested by the applications and the individual Camera models." << endl;
+}
diff --git a/isis/src/base/objs/SampleScanCameraGroundMap/Makefile b/isis/src/base/objs/SampleScanCameraGroundMap/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f122bc88227c5c7ebd108dea5d339d1d2e074d82
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraGroundMap/Makefile
@@ -0,0 +1,7 @@
+ifeq ($(ISISROOT), $(BLANK))
+.SILENT:
+error:
+	echo "Please set ISISROOT";
+else
+	include $(ISISROOT)/make/isismake.objs
+endif
\ No newline at end of file
diff --git a/isis/src/base/objs/SampleScanCameraGroundMap/SampleScanCameraGroundMap.cpp b/isis/src/base/objs/SampleScanCameraGroundMap/SampleScanCameraGroundMap.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ab57d2eb3b1c859916f15db58d546e326d41c4f4
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraGroundMap/SampleScanCameraGroundMap.cpp
@@ -0,0 +1,398 @@
+/**
+ * @file
+ * $Revision: 1.7 $
+ * $Date: 2010/06/17 18:59:11 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#include "SampleScanCameraGroundMap.h"
+
+#include <iostream>
+#include <iomanip>
+
+#include <QTime>
+#include <QList>
+#include <QFile>
+#include <QTextStream>
+
+#include "IException.h"
+#include "IString.h"
+#include "Camera.h"
+#include "CameraDistortionMap.h"
+#include "CameraFocalPlaneMap.h"
+#include "Distance.h"
+#include "FunctionTools.h"
+#include "iTime.h"
+#include "Latitude.h"
+#include "Longitude.h"
+#include "SampleScanCameraDetectorMap.h"
+#include "Statistics.h"
+#include "SurfacePoint.h"
+
+
+using namespace std;
+using namespace Isis;
+
+    
+
+
+namespace Isis {
+
+  /** 
+   * Constructor
+   *
+   * @param cam pointer to camera model
+   */
+  SampleScanCameraGroundMap::SampleScanCameraGroundMap(Camera *cam) : CameraGroundMap(cam) {}
+
+
+  /** 
+   * Destructor
+   *
+   */
+  SampleScanCameraGroundMap::~SampleScanCameraGroundMap() {}
+
+  /** 
+   * Compute undistorted focal plane coordinate from ground position
+   *
+   * @param lat planetocentric latitude in degrees
+   * @param lon planetocentric longitude in degrees
+   *
+   * @return conversion was successful
+   */
+  bool SampleScanCameraGroundMap::SetGround(const Latitude &lat,
+      const Longitude &lon) {
+    Distance radius(p_camera->LocalRadius(lat, lon));
+
+    if (radius.isValid()) {
+      return SetGround(SurfacePoint(lat, lon, radius));
+    }
+    else {
+      return false;
+    }
+  }
+
+
+  /** 
+   * Compute undistorted focal plane coordinate from ground position
+   *
+   * @param lat planetocentric latitude in degrees
+   * @param lon planetocentric longitude in degrees
+   * @param radius local radius in meters
+   *
+   * @return conversion was successful
+   */
+  bool SampleScanCameraGroundMap::SetGround(const SurfacePoint &surfacePoint,
+                                            const int &approxSample) {
+    FindFocalPlaneStatus status = FindFocalPlane(approxSample, surfacePoint);
+    if (status == Success)
+      return true;
+
+    return false;
+  }
+  
+
+  /** 
+   * Compute undistorted focal plane coordinate from ground position
+   *
+   * @param surfacePoint 3D point on the surface of the planet
+   *
+   * @return conversion was successful
+   */
+  bool SampleScanCameraGroundMap::SetGround(const SurfacePoint &surfacePoint) {
+    FindFocalPlaneStatus status = FindFocalPlane(-1, surfacePoint);
+
+    if (status == Success)
+      return true;
+
+    return false;
+  }
+
+
+  /**
+   * Returns the spacecraft distance
+   * 
+   * @param sample The sample of the image
+   * @param &surfacePoint The surface point we want to find the distance from
+   * 
+   * @return double The spacecraft distance
+   */
+  double SampleScanCameraGroundMap::FindSpacecraftDistance(int sample,
+      const SurfacePoint &surfacePoint) {
+
+    CameraDetectorMap *detectorMap = p_camera->DetectorMap();
+    detectorMap->SetParent(sample, p_camera->ParentLines() / 2);
+    if (!p_camera->Sensor::SetGround(surfacePoint, false)) {
+      return DBL_MAX;
+    }
+
+    return p_camera->SlantDistance();
+  }
+
+
+  /**
+   * Finds where the surface point hits the image. If successful it sets the forcal plane 
+   * corrdinates
+   * 
+   * TODO Ken document this
+   * 
+   * @param &approxLine 
+   * @param &surfacePoint
+   */
+  SampleScanCameraGroundMap::FindFocalPlaneStatus
+      SampleScanCameraGroundMap::FindFocalPlane(const int &approxLine,
+                                              const SurfacePoint &surfacePoint) {
+    double approxTime=0;
+    double approxOffset=0;
+    double lookC[3] = {0.0, 0.0, 0.0};
+    double ux = 0.0;
+    double uy = 0.0;
+    const double cacheStart = p_camera->Spice::cacheStartTime().Et();
+    const double cacheEnd = p_camera->Spice::cacheEndTime().Et();
+
+    double sampleRate
+        = ((SampleScanCameraDetectorMap *)p_camera->DetectorMap())->SampleRate();
+
+    if (sampleRate == 0.0)
+      return Failure;
+
+    SampleOffsetFunctor offsetFunc(p_camera,surfacePoint);
+
+    // parent center sample, line used as first approximation
+    p_camera->DetectorMap()->SetParent(p_camera->ParentSamples()/2, p_camera->ParentLines()/2);
+    approxTime = p_camera->time().Et();
+
+    approxOffset = offsetFunc(approxTime);
+
+    if (fabs(approxOffset) < 1e-2) { //no need to iteratively improve this root, it's good enough
+      p_camera->Sensor::setTime(approxTime);
+
+      // ensure point isn't behind the planet
+      if (!p_camera->Sensor::SetGround(surfacePoint, true)) {
+        return Failure;
+      }
+      p_camera->Sensor::LookDirection(lookC);
+      ux = p_camera->FocalLength() * lookC[0] / lookC[2];
+      uy = p_camera->FocalLength() * lookC[1] / lookC[2];
+
+      p_focalPlaneX = ux;
+      p_focalPlaneY = uy;
+
+      return Success;
+    }
+
+    double fl, fh, xl, xh;
+
+    //starting times for the secant method, kept within the domain of the cache
+    xh = approxTime;
+    if (xh + sampleRate < cacheEnd) {
+      xl = xh + sampleRate;
+    }
+    else {
+      xl = xh - sampleRate;
+    }
+
+    //starting offsets
+    fh = approxOffset;  //the first is already calculated
+    fl = offsetFunc(xl);
+
+    // Iterate to refine the given approximate time that the instrument imaged the ground point
+    for (int j=0; j < 10; j++) {
+      if (fl-fh == 0.0) {
+        return Failure;
+      }
+      double etGuess = xl + (xh - xl) * fl / (fl - fh);
+
+      if (etGuess < cacheStart) etGuess = cacheStart;
+      if (etGuess > cacheEnd) etGuess = cacheEnd;
+
+      double f = offsetFunc(etGuess);
+
+      // eliminate the node farthest away from the current best guess
+      if (fabs( xl- etGuess) > fabs( xh - etGuess)) {
+        xl = etGuess;
+        fl = f;
+      }
+      else {
+        xh = etGuess;
+        fh = f;
+      }
+
+      // if converged on point set focal plane values and return
+      if (fabs(f) < 1e-2) {
+        p_camera->Sensor::setTime(etGuess);
+
+        // ensure point isn't behind the planet
+        if (!p_camera->Sensor::SetGround(surfacePoint, true)) {
+          return Failure;
+        }
+        p_camera->Sensor::LookDirection(lookC);
+        ux = p_camera->FocalLength() * lookC[0] / lookC[2];
+        uy = p_camera->FocalLength() * lookC[1] / lookC[2];
+
+        if (!p_camera->FocalPlaneMap()->SetFocalPlane(ux, uy)) {
+          IString msg = "FocalPlaneMap::SetFocalPlane failed for surface point in "
+                        "SampleScanCameraGroundMap.cpp SampleOffsetFunctor";
+          throw IException(IException::Programmer, msg, _FILEINFO_);
+        }
+
+        p_focalPlaneX = ux;
+        p_focalPlaneY = uy;
+
+        return Success;
+      }
+    }
+    return Failure;
+  }
+
+
+  /**
+   * Compute ground position from focal plane coordinate
+   *
+   * This method will compute the ground position given an
+   * undistorted focal plane coordinate.  Note that the latitude/longitude
+   * value can be obtained from the camera pointer passed into the constructor.
+   *
+   * @param ux undistorted focal plane x in millimeters
+   * @param uy undistorted focal plane y in millimeters
+   * @param uz undistorted focal plane z in millimeters
+   *
+   * @return @b bool If conversion was successful
+   *
+   * TODO: what is implication of this????????
+   */
+  bool SampleScanCameraGroundMap::SetFocalPlane(const double ux, const double uy, const double uz) {
+    return CameraGroundMap::SetFocalPlane(ux, uy, uz);
+  }
+
+  
+  /**
+    * Sample 
+    * 
+    * @param camera The camera
+    * @param surPoint A pointer to the surface point
+    */ 
+  SampleScanCameraGroundMap::SampleOffsetFunctor::SampleOffsetFunctor(Isis::Camera *camera, 
+                                                                      const Isis::SurfacePoint &surPt) {
+    m_camera = camera;
+    m_surfacePoint = surPt;
+  }
+
+  
+  /** Compute the number of samples between the current sample (i.e., the sample imaged at the et
+    *  as set in the camera model) and the sample number where the argument et would hit the focal
+    *  plane.
+    *  
+    * @param et The et at the new postion
+    *
+    * @return Sample off (see description)
+    */
+  double SampleScanCameraGroundMap::SampleOffsetFunctor::operator()(double et) {
+    double lookC[3] = {0.0, 0.0, 0.0};
+    double ux = 0.0;
+    double uy = 0.0;
+    double dx = 0.0;
+    double dy = 0.0;
+
+    // Verify the time is with the cache bounds
+    double startTime = m_camera->cacheStartTime().Et();
+    double endTime = m_camera->cacheEndTime().Et();
+    if (et < startTime || et > endTime) {
+      IString msg = "Ephemeris time passed to SampleOffsetFunctor is not within the image "
+                    "cache bounds";
+      throw IException(IException::Programmer, msg, _FILEINFO_);
+    }
+    
+    m_camera->Sensor::setTime(et);
+
+    // Set ground
+    if (!m_camera->Sensor::SetGround(m_surfacePoint, false)) {
+      IString msg = "Sensor::SetGround failed for surface point in SampleScanCameraGroundMap.cpp"
+                    " SampleOffsetFunctor";
+      throw IException(IException::Programmer, msg, _FILEINFO_);
+    }
+  
+    // Calculate the undistorted focal plane coordinates
+
+    m_camera->Sensor::LookDirection(lookC);
+    ux = m_camera->FocalLength() * lookC[0] / lookC[2];
+    uy = m_camera->FocalLength() * lookC[1] / lookC[2];
+
+    // Try to use SetUndistortedFocalPlane, if that does not work use the distorted x,y
+    // under the assumption (bad|good) that extrapolating the distortion
+    // is causing the distorted x to be way off the sensor, and thus not very good anyway.
+    if (m_camera->DistortionMap()->SetUndistortedFocalPlane(ux, uy)) {
+      // Get the natural (distorted focal plane coordinates)
+      dx = m_camera->DistortionMap()->FocalPlaneX();
+      dy = m_camera->DistortionMap()->FocalPlaneY();
+    }
+    else {
+      dx = ux;
+      dy = uy;
+    }
+
+    if (!m_camera->FocalPlaneMap()->SetFocalPlane(dx, dy)) {
+      IString msg = "FocalPlaneMap::SetFocalPlane failed for surface point in "
+                    "SampleScanCameraGroundMap.cpp SampleOffsetFunctor";
+      throw IException(IException::Programmer, msg, _FILEINFO_);
+    }
+
+    // return sample offset in pixels
+    return m_camera->FocalPlaneMap()->CenteredDetectorSample();
+  }
+
+
+  /**
+   * TODO Ken document this
+   */
+  SampleScanCameraGroundMap::SensorSurfacePointDistanceFunctor::SensorSurfacePointDistanceFunctor
+      (Isis::Camera *camera, const Isis::SurfacePoint &surPt) {
+    m_camera = camera;
+    m_surfacePoint = surPt;
+  }
+
+  /**
+   * TODO Ken document this
+   */
+  double SampleScanCameraGroundMap::SensorSurfacePointDistanceFunctor::operator()(double et) {
+    double s[3], p[3];
+
+    //verify the time is with the cache bounds
+    double startTime = m_camera->cacheStartTime().Et();
+    double endTime = m_camera->cacheEndTime().Et();
+
+    if (et < startTime || et > endTime) {
+      IString msg = "Ephemeris time passed to SensorSurfacePointDistanceFunctor is not within the "
+                    "image cache bounds";
+      throw IException(IException::Programmer, msg, _FILEINFO_);
+    }
+    m_camera->Sensor::setTime(et);
+    if(!m_camera->Sensor::SetGround(m_surfacePoint, false)) {
+        IString msg = "Sensor::SetGround failed for surface point in SampleScanCameraGroundMap.cpp"
+                      "SensorSurfacePointDistanceFunctor";
+    }
+    m_camera->instrumentPosition(s);
+    m_camera->Coordinate(p);
+    return sqrt((s[0] - p[0]) * (s[0] - p[0]) +
+                (s[1] - p[1]) * (s[1] - p[1]) +
+                (s[2] - p[2]) * (s[2] - p[2]) );  //distance
+  }
+}
+
+
diff --git a/isis/src/base/objs/SampleScanCameraGroundMap/SampleScanCameraGroundMap.h b/isis/src/base/objs/SampleScanCameraGroundMap/SampleScanCameraGroundMap.h
new file mode 100644
index 0000000000000000000000000000000000000000..24f026508b16a986d1e704164e259ebc3c5aa7d2
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraGroundMap/SampleScanCameraGroundMap.h
@@ -0,0 +1,116 @@
+/**
+ * @file
+ * $Revision: 1.6 $
+ * $Date: 2010/06/17 18:59:12 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#ifndef SampleScanCameraGroundMap_h
+#define SampleScanCameraGroundMap_h
+
+#include "CameraGroundMap.h"
+
+namespace Isis {
+  /** Convert between undistorted focal plane and ground coordinates
+   *
+   * This class is used to convert between undistorted focal plane
+   * coordinates (x/y) in millimeters and ground coordinates lat/lon
+   * for sample scan cameras.
+   *
+   * @ingroup Camera
+   *
+   * @see Camera
+   *
+   * @author 2012-09-12 Ken Edmundson
+   *
+   * @internal
+   *
+   *   @history 2012-09-12 Ken Edmundson - Original version
+   *   @history 2018-07-14 Makayla Shepherd - Updated documentation
+   *
+   */
+  class SampleScanCameraGroundMap : public CameraGroundMap {
+    public:
+
+      //! Constructor
+      SampleScanCameraGroundMap(Camera *cam);
+
+      //! Destructor
+      virtual ~SampleScanCameraGroundMap();
+
+      virtual bool SetGround(const Latitude &lat, const Longitude &lon);
+      virtual bool SetGround(const SurfacePoint &surfacePoint);
+      virtual bool SetGround(const SurfacePoint &surfacePoint, const int &approxSample);
+
+      virtual bool SetFocalPlane(const double ux, const double uy, const double uz);
+
+
+    protected:
+      enum FindFocalPlaneStatus {
+        Success,
+        BoundingProblem,
+        Failure
+      };
+
+      FindFocalPlaneStatus FindFocalPlane(const int &approxSample,
+                                          const SurfacePoint &surfacePoint);
+      double FindSpacecraftDistance(int sample, const SurfacePoint &surfacePoint);
+      
+    private:
+      /**
+      * @author 2012-05-09 Orrin Thomas
+      *
+      * @internal
+      */
+      class SampleOffsetFunctor : public std::unary_function<double, double > {
+      public:
+        
+        SampleOffsetFunctor(Isis::Camera *camera, const Isis::SurfacePoint &surPt);
+        ~SampleOffsetFunctor();
+        
+        double operator()(double et);
+        
+      private:
+        SurfacePoint m_surfacePoint;
+        Camera *m_camera;
+      };
+      
+      
+      /**
+      * @author 2012-05-09 Orrin Thomas
+      *
+      * @internal
+      */
+      class SensorSurfacePointDistanceFunctor : public std::unary_function<double, double > {
+        public:
+          
+          SensorSurfacePointDistanceFunctor(Isis::Camera *camera, const Isis::SurfacePoint &surPt);
+          ~SensorSurfacePointDistanceFunctor();
+          
+          double operator()(double et);
+          
+        private:
+          SurfacePoint m_surfacePoint;
+          Camera* m_camera;
+      };
+  };
+  
+  
+};
+#endif
diff --git a/isis/src/base/objs/SampleScanCameraGroundMap/SampleScanCameraGroundMap.truth b/isis/src/base/objs/SampleScanCameraGroundMap/SampleScanCameraGroundMap.truth
new file mode 100644
index 0000000000000000000000000000000000000000..9652a044c607e045ba0320730fed13a1c51df052
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraGroundMap/SampleScanCameraGroundMap.truth
@@ -0,0 +1,3 @@
+This class is mostly tested by the applications and the individual Camera models.
+attempting to back project a point behind the planet into the image (this should throw an error)
+**ERROR** Requested position does not project in camera model; no surface intersection.
diff --git a/isis/src/base/objs/SampleScanCameraGroundMap/backup/SampleScanCameraGroundMap.cpp b/isis/src/base/objs/SampleScanCameraGroundMap/backup/SampleScanCameraGroundMap.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..5c1c1a8989b304428c2f7973322a7f93347bdc74
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraGroundMap/backup/SampleScanCameraGroundMap.cpp
@@ -0,0 +1,693 @@
+/**
+ * @file
+ * $Revision: 1.7 $
+ * $Date: 2010/06/17 18:59:11 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#include "SampleScanCameraGroundMap.h"
+
+#include <iostream>
+#include <iomanip>
+
+#include <QTime>
+#include <QList>
+#include <QFile>
+#include <QTextStream>
+
+#include "IException.h"
+#include "IString.h"
+#include "Camera.h"
+#include "CameraDistortionMap.h"
+#include "CameraFocalPlaneMap.h"
+#include "Distance.h"
+#include "SampleScanCameraDetectorMap.h"
+#include "iTime.h"
+#include "Latitude.h"
+#include "Longitude.h"
+#include "Statistics.h"
+#include "SurfacePoint.h"
+#include "FunctionTools.h"
+
+
+using namespace std;
+using namespace Isis;
+
+//bool ptXLessThan(const QList<double> l1, const QList<double> l2);
+
+/**
+ * @author 2012-05-09 Orrin Thomas
+ *
+ * @internal
+ */
+class SampleOffsetFunctor :
+  public std::unary_function<double, double > {
+  public:
+
+    SampleOffsetFunctor(Isis::Camera *camera, const Isis::SurfacePoint &surPt) {
+      m_camera = camera;
+      surfacePoint = surPt;
+    }
+
+
+    ~SampleOffsetFunctor() {}
+
+
+    /** Compute the number of samples between the current sample (i.e., the sample imaged at the et
+     *  as set in the camera model) and the sample number where the argument et would hit the focal
+     *  plane.
+     *  
+     * @param et The et at the new postion
+     *
+     * @return Sample off (see description)
+     */
+    double operator()(double et) {
+      double lookC[3] = {0.0, 0.0, 0.0};
+      double ux = 0.0;
+      double uy = 0.0;
+      double dx = 0.0;
+      double dy = 0.0;
+
+      // Verify the time is with the cache bounds
+      double startTime = m_camera->cacheStartTime().Et();
+      double endTime = m_camera->cacheEndTime().Et();
+      if (et < startTime || et > endTime) {
+        IString msg = "Ephemeris time passed to SampleOffsetFunctor is not within the image "
+                      "cache bounds";
+        throw IException(IException::Programmer, msg, _FILEINFO_);
+      }
+     
+      m_camera->Sensor::setTime(et);
+ 
+      // Set ground
+      if (!m_camera->Sensor::SetGround(surfacePoint, false)) {
+        IString msg = "Sensor::SetGround failed for surface point in SampleScanCameraGroundMap.cpp"
+                      " SampleOffsetFunctor";
+        throw IException(IException::Programmer, msg, _FILEINFO_);
+      }
+   
+      // Calculate the undistorted focal plane coordinates
+
+      m_camera->Sensor::LookDirection(lookC);
+      ux = m_camera->FocalLength() * lookC[0] / lookC[2];
+      uy = m_camera->FocalLength() * lookC[1] / lookC[2];
+
+      // Try to use SetUndistortedFocalPlane, if that does not work use the distorted x,y
+      // under the assumption (bad|good) that extrapolating the distortion
+      // is causing the distorted x to be way off the sensor, and thus not very good anyway.
+      if (m_camera->DistortionMap()->SetUndistortedFocalPlane(ux, uy)) {
+        // Get the natural (distorted focal plane coordinates)
+        dx = m_camera->DistortionMap()->FocalPlaneX();
+        dy = m_camera->DistortionMap()->FocalPlaneY();
+      }
+      else {
+        dx = ux;
+        dy = uy;
+      }
+
+//      if (!m_camera->FocalPlaneMap()->SetFocalPlane(dx, dy)) {
+//        IString msg = "FocalPlaneMap::SetFocalPlane failed for surface point in "
+//                      "SampleScanCameraGroundMap.cpp SampleOffsetFunctor";
+//        throw IException(IException::Programmer, msg, _FILEINFO_);
+//      }
+
+      // return sample offset in pixels
+      return (dx/0.005);
+    }
+
+/*
+    double operator()(double et) {
+      double lookC[3] = {0.0, 0.0, 0.0};
+      double ux = 0.0;
+      double uy = 0.0;
+      double dx = 0.0;
+      double dy = 0.0;
+
+      // Verify the time is with the cache bounds
+      double startTime = m_camera->cacheStartTime().Et();
+      double endTime = m_camera->cacheEndTime().Et();
+      if (et < startTime || et > endTime) {
+        IString msg = "Ephemeris time passed to SampleOffsetFunctor is not within the image "
+                      "cache bounds";
+        throw IException(IException::Programmer, msg, _FILEINFO_);
+      }
+
+      m_camera->Sensor::setTime(et);
+
+      // Set ground
+      if (!m_camera->Sensor::SetGround(surfacePoint, false)) {
+        IString msg = "Sensor::SetGround failed for surface point in SampleScanCameraGroundMap.cpp"
+                      " SampleOffsetFunctor";
+        throw IException(IException::Programmer, msg, _FILEINFO_);
+      }
+
+      // Calculate the undistorted focal plane coordinates
+
+      m_camera->Sensor::LookDirection(lookC);
+      ux = m_camera->FocalLength() * lookC[0] / lookC[2];
+      uy = m_camera->FocalLength() * lookC[1] / lookC[2];
+
+      // Try to use SetUndistortedFocalPlane, if that does not work use the distorted x,y
+      // under the assumption (bad|good) that extrapolating the distortion
+      // is causing the distorted x to be way off the sensor, and thus not very good anyway.
+      if (m_camera->DistortionMap()->SetUndistortedFocalPlane(ux, uy)) {
+        // Get the natural (distorted focal plane coordinates)
+        dx = m_camera->DistortionMap()->FocalPlaneX();
+        dy = m_camera->DistortionMap()->FocalPlaneY();
+      }
+      else {
+        dx = ux;
+        dy = uy;
+      }
+
+      if (!m_camera->FocalPlaneMap()->SetFocalPlane(dx, dy)) {
+        IString msg = "FocalPlaneMap::SetFocalPlane failed for surface point in "
+                      "SampleScanCameraGroundMap.cpp SampleOffsetFunctor";
+        throw IException(IException::Programmer, msg, _FILEINFO_);
+      }
+
+      // Return the offset
+//      return (m_camera->FocalPlaneMap()->DetectorSampleOffset() -
+//              m_camera->FocalPlaneMap()->DetectorSample());
+      return (m_camera->FocalPlaneMap()->DetectorSampleOffset() -
+              m_camera->FocalPlaneMap()->DetectorSample());
+    }
+*/
+  private:
+    SurfacePoint surfacePoint;
+    Camera* m_camera;
+};
+
+
+/**
+ * @author 2012-05-09 Orrin Thomas
+ *
+ * @internal
+ */
+class SensorSurfacePointDistanceFunctor : 
+  public std::unary_function<double, double > {
+
+  public:
+    SensorSurfacePointDistanceFunctor(Isis::Camera *camera, const Isis::SurfacePoint &surPt) {
+      m_camera = camera;
+      surfacePoint = surPt;
+    }
+
+
+    ~SensorSurfacePointDistanceFunctor() {}
+
+
+    double operator()(double et) {
+      double s[3], p[3];
+
+      //verify the time is with the cache bounds
+      double startTime = m_camera->cacheStartTime().Et();
+      double endTime = m_camera->cacheEndTime().Et();
+
+      if (et < startTime || et > endTime) {
+        IString msg = "Ephemeris time passed to SensorSurfacePointDistanceFunctor is not within the image "
+                      "cache bounds";
+        throw IException(IException::Programmer, msg, _FILEINFO_);
+      }
+      m_camera->Sensor::setTime(et);
+      if(!m_camera->Sensor::SetGround(surfacePoint, false)) {
+         IString msg = "Sensor::SetGround failed for surface point in SampleScanCameraGroundMap.cpp"
+                       "SensorSurfacePointDistanceFunctor";
+      }
+      m_camera->instrumentPosition(s);
+      m_camera->Coordinate(p);
+      return sqrt((s[0] - p[0]) * (s[0] - p[0]) +
+                  (s[1] - p[1]) * (s[1] - p[1]) +
+                  (s[2] - p[2]) * (s[2] - p[2]) );  //distance
+    }
+
+  private:
+    SurfacePoint surfacePoint;
+    Camera* m_camera;
+};
+
+
+namespace Isis {
+
+  /** Constructor
+   *
+   * @param cam pointer to camera model
+   */
+  SampleScanCameraGroundMap::SampleScanCameraGroundMap(Camera *cam) : CameraGroundMap(cam) {}
+
+
+  /** Destructor
+   *
+   */
+  SampleScanCameraGroundMap::~SampleScanCameraGroundMap() {}
+
+  /** Compute undistorted focal plane coordinate from ground position
+   *
+   * @param lat planetocentric latitude in degrees
+   * @param lon planetocentric longitude in degrees
+   *
+   * @return conversion was successful
+   */
+  bool SampleScanCameraGroundMap::SetGround(const Latitude &lat,
+      const Longitude &lon) {
+    Distance radius(p_camera->LocalRadius(lat, lon));
+
+    if (radius.isValid()) {
+      return SetGround(SurfacePoint(lat, lon, radius));
+    }
+    else {
+      return false;
+    }
+  }
+
+
+  /** Compute undistorted focal plane coordinate from ground position
+   *
+   * @param lat planetocentric latitude in degrees
+   * @param lon planetocentric longitude in degrees
+   * @param radius local radius in meters
+   *
+   * @return conversion was successful
+   */
+  bool SampleScanCameraGroundMap::SetGround(const SurfacePoint &surfacePoint,
+                                            const int &approxSample) {
+    FindFocalPlaneStatus status = FindFocalPlane(approxSample, surfacePoint);
+    if (status == Success)
+      return true;
+
+    return false;
+  }
+  
+
+  /** Compute undistorted focal plane coordinate from ground position
+   *
+   * @param surfacePoint 3D point on the surface of the planet
+   *
+   * @return conversion was successful
+   */
+  bool SampleScanCameraGroundMap::SetGround(const SurfacePoint &surfacePoint) {
+    FindFocalPlaneStatus status = FindFocalPlane(-1, surfacePoint);
+
+    if (status == Success)
+      return true;
+
+    return false;
+  }
+
+
+  double SampleScanCameraGroundMap::FindSpacecraftDistance(int sample,
+      const SurfacePoint &surfacePoint) {
+
+    CameraDetectorMap *detectorMap = p_camera->DetectorMap();
+    detectorMap->SetParent(sample, p_camera->ParentLines() / 2);
+    if (!p_camera->Sensor::SetGround(surfacePoint, false)) {
+      return DBL_MAX;
+    }
+
+    return p_camera->SlantDistance();
+  }
+
+
+  SampleScanCameraGroundMap::FindFocalPlaneStatus
+      SampleScanCameraGroundMap::FindFocalPlane(const int &approxSample,
+                                                const SurfacePoint &surfacePoint) {
+
+    double approxTime=0;
+    double approxOffset=0;
+    double lookC[3] = {0.0, 0.0, 0.0};
+    double ux = 0.0;
+    double uy = 0.0;
+    const double cacheStart = p_camera->Spice::cacheStartTime().Et();
+    const double cacheEnd = p_camera->Spice::cacheEndTime().Et();
+
+    double sampleRate = ((SampleScanCameraDetectorMap *)p_camera->DetectorMap())->SampleRate();
+
+    if (sampleRate == 0.0)
+      return Failure;
+
+    SampleOffsetFunctor offsetFunc(p_camera,surfacePoint);
+    SensorSurfacePointDistanceFunctor distanceFunc(p_camera,surfacePoint);
+
+    // #1 try use secant method using midsample as start point
+
+    // if an approximate point is given use that as a start point for the secant method root search
+    //if (approxSample > 0) {
+      //convert the approxSample to an approximate time and offset
+      double midSample = p_camera->ParentSamples()/2.0;
+      double midLine = p_camera->ParentLines()/2.0;
+      p_camera->DetectorMap()->SetParent(midSample, midLine);
+      approxTime = p_camera->time().Et();
+
+      approxOffset = offsetFunc(approxTime);
+
+      if (fabs(approxOffset) < 1e-2) { //no need to iteratively improve this root, it's good enough
+        p_camera->Sensor::setTime(approxTime);
+        //check to make sure the point isn't behind the planet
+        if (!p_camera->Sensor::SetGround(surfacePoint, true)) {
+          return Failure;
+        }
+        p_camera->Sensor::LookDirection(lookC);
+        ux = p_camera->FocalLength() * lookC[0] / lookC[2];
+        uy = p_camera->FocalLength() * lookC[1] / lookC[2];
+
+        p_focalPlaneX = ux;
+        p_focalPlaneY = uy;
+
+        return Success;
+      }
+
+      double fl, fh, xl, xh;
+
+      //starting times for the secant method, kept within the domain of the cache
+      xh = approxTime;
+      if (xh + sampleRate < cacheEnd) {
+        xl = xh + sampleRate;
+      }
+      else {
+        xl = xh - sampleRate;
+      }
+double etGuess;
+      //starting offsets
+      fh = approxOffset;  //the first is already calculated
+      fl = offsetFunc(xl);
+      double fprevious = approxOffset;
+
+      // Iterate to refine the given approximate time that the instrument imaged the ground point
+      for (int j=0; j < 10; j++) {
+        if (fl-fh == 0.0)
+          break;
+
+        etGuess = xl + (xh - xl) * fl / (fl - fh);
+
+        if (etGuess < cacheStart)
+          etGuess = cacheStart;
+
+        if (etGuess > cacheEnd)
+          etGuess = cacheEnd;
+
+        double f = offsetFunc(etGuess);
+
+        // if f is not changing anymore, we stop iterating
+        double convergedcheck;
+        if (f != 0.0)
+          convergedcheck = fabs(f-fprevious)/fabs(f);
+        else
+          convergedcheck = fabs(f-fprevious);
+//      if (fabs(convergedcheck) < 1e-5) {
+        if (fabs(convergedcheck) < 1e-3) {
+          // now, if f is less than our tolerance, we're done
+          // if f is not less than our tolerance, we jump down to the next step, determining the
+          // coefficients of a quadratic with a "reasonable" interval, which we have hopefully
+          // narrowed down in the secant method
+//        if (fabs(f) < 1e-2) {
+          if (fabs(f) < 1.0) {
+            p_camera->Sensor::setTime(etGuess);
+
+            // check to make sure the point isn't behind the planet
+            if (!p_camera->Sensor::SetGround(surfacePoint, true))
+              break;
+
+            p_camera->Sensor::LookDirection(lookC);
+            ux = p_camera->FocalLength() * lookC[0] / lookC[2];
+            uy = p_camera->FocalLength() * lookC[1] / lookC[2];
+
+            p_focalPlaneX = ux;
+            p_focalPlaneY = uy;
+
+            return Success;
+          }
+          else
+            break;
+        }
+
+        // eliminate node farthest away from current best guess and continue
+        if (fabs( xl- etGuess) > fabs( xh - etGuess)) {
+          xl = etGuess;
+          fl = f;
+        }
+        else {
+          xh = etGuess;
+          fh = f;
+        }
+        fprevious = f;
+      }
+
+      return Failure;
+  }
+
+
+  /* KLE 2016-09-12 below is the rest of the code from LineScanCameraGroundMap, hoping secant method
+ * is initially good enough for pan
+    //
+    // no estimate given for the approximate line--quadratic approximation root finding
+    //
+    // The offsets are typically quadratic, so three points will be used to approximate a quadratic
+    // as a first order attempt to find the root location(s)
+
+    // The three nodes to be used to approximate the quadratic
+    double offsetNodes[3];
+    double timeNodes[3];
+    double timeAverage;
+    double scale;
+    QList<double> root;
+    QList<double> offset;
+    QList<double> dist;
+
+    timeNodes[0] = cacheStart;
+    timeNodes[2] = cacheEnd;
+    timeNodes[1] = (cacheStart+cacheEnd) / 2.0; //middle time
+
+    double quadPoly[3];
+    double temp;
+
+    for (int i=0; i<3; i++) {
+      offsetNodes[i] = offsetFunc(timeNodes[i]);
+    }
+   
+    //centralize and normalize the data for stability in root finding
+    timeAverage = (timeNodes[0] + timeNodes[1] + timeNodes[2]) / 3.0;
+    timeNodes[0] -= timeAverage;
+    timeNodes[1] -= timeAverage;
+    timeNodes[2] -= timeAverage;
+
+    scale = 1.0 / sqrt((timeNodes[0] - timeNodes[2]) * 
+                       (timeNodes[0] - timeNodes[2]) + 
+                       (offsetNodes[0] - offsetNodes[2]) * 
+                       (offsetNodes[0] - offsetNodes[2]));
+
+    timeNodes[0] *= scale;
+    timeNodes[1] *= scale;
+    timeNodes[2] *= scale;
+
+    offsetNodes[0] *= scale;
+    offsetNodes[1] *= scale;
+    offsetNodes[2] *= scale;
+
+    // Use lagrange interpolating polynomials to find the coefficients of the quadratic, 
+    // there are many ways to do this; I chose to do it this way because it is pretty straight 
+    // forward and cheap
+    quadPoly[0] = quadPoly[1] = quadPoly[2] = 0.0;
+
+    temp = offsetNodes[0] / ((timeNodes[0] - timeNodes[1]) * (timeNodes[0] - timeNodes[2]));
+    quadPoly[0] += temp;
+    quadPoly[1] += temp * (-timeNodes[1] - timeNodes[2]);
+    quadPoly[2] += temp * timeNodes[1] * timeNodes[2];
+
+    temp = offsetNodes[1] / ((timeNodes[1] - timeNodes[0]) * (timeNodes[1] - timeNodes[2]));
+    quadPoly[0] += temp;
+    quadPoly[1] += temp * (-timeNodes[0] - timeNodes[2]);
+    quadPoly[2] += temp * timeNodes[0] * timeNodes[2];
+      
+    temp = offsetNodes[2] / ((timeNodes[2] - timeNodes[0]) * (timeNodes[2] - timeNodes[1]));
+    quadPoly[0] += temp;
+    quadPoly[1] += temp * (-timeNodes[0] - timeNodes[1]);
+    quadPoly[2] += temp * timeNodes[0] * timeNodes[1];
+
+    // Now that we have the coefficients of the quadratic look for roots 
+    // (see Numerical Recipes Third Edition page 227)
+    temp = quadPoly[1] * quadPoly[1] - 4.0 * quadPoly[0] * quadPoly[2];  //discriminant
+    if (temp < 0.0) {
+      return Failure;  //there are apparently not any real roots on this image
+    }
+
+    if (quadPoly[1] >= 0.0) {
+      temp = -0.5 * (quadPoly[1] + sqrt(temp));
+    }
+    else {
+      temp = -0.5 * (quadPoly[1] - sqrt(temp));
+    }
+
+    if (quadPoly[0] != 0.0) {
+      root.push_back(temp/quadPoly[0]);
+    }
+
+    if (quadPoly[2] != 0.0) {
+      root.push_back(quadPoly[2]/temp);
+    }
+
+    //check to see if the roots are in the time interval of the cache
+    for (int i=root.size()-1; i>=0; i--) {
+      if ( root[i] < timeNodes[0] || root[i] > timeNodes[2] ) {
+        root.removeAt(i);
+      }
+    }
+     
+    //return the calculated roots to the original system
+    for (int i=0; i<root.size(); i++) {
+      root[i] = root[i]/scale + timeAverage;
+    }
+
+    if (root.size() == 0) {
+      return Failure;  //there are apparently not any roots on this image
+    }
+
+    // At the time of this writing ISIS made no attempt to support any sensors that were not "1 to 1".
+    // Meaning that imaged the same point on the ground in multiple lines of the image
+    // therefore we must somehow reduce multiple possible roots to a single one,  the legacy 
+    // code (replaced with this code) did this based on distance from the sensor to the target
+    // the shortest distance being the winner.  For legacy consistency I have used the same logic below.  
+
+    for (int i=0; i<root.size(); i++) {  //Offset/dist calculation loop
+      dist << distanceFunc(root[i]);
+      offset << offsetFunc(root[i]);
+    }
+
+    // Save the root with the smallest dist
+    int j=0;   
+    for (int i=1, j=0; i<root.size(); i++) {
+      if (dist[i] < dist[j]) j=i;
+    }      
+      
+    approxTime = root[j];  // Now we have our time
+    approxOffset = offset[j];  // The offsets are saved to avoid recalculating it later
+
+    if (fabs(approxOffset) < 1.0e-2) { // No need to iteratively improve this root, it's good enough
+      p_camera->Sensor::setTime(approxTime);
+
+      // Check to make sure the point isn't behind the planet
+      if (!p_camera->Sensor::SetGround(surfacePoint, true)) {
+        return Failure;
+      }
+       
+      p_camera->Sensor::LookDirection(lookC);
+      ux = p_camera->FocalLength() * lookC[0] / lookC[2];
+      uy = p_camera->FocalLength() * lookC[1] / lookC[2];
+     
+      p_focalPlaneX = ux;
+      p_focalPlaneY = uy;
+
+      return Success;
+    }
+
+    //
+    // no estimate given for the approximate line, quadratic approximation insufficient, use Brent's
+    // method
+    //
+    // The offsets are typically quadratic, so three points will be used to approximate a quadratic
+    // as a first order attempt to find the root location(s)
+
+    // The above sections are sufficient for finding the correct times for the vast majority of 
+    // back projection solutions.  The following section exists for those few particularly
+    // stuborn problems.  They are typically characterised by being significantly non-quadratic.
+    // Examples mostly include images with very long exposure times.
+    //
+    // Further, while the preceeding sections is intended to be fast, this section is intended to be
+    // thurough.  Brents method (Numerical Recipies 454 - 456) will be used to find all the roots,
+    // that are bracketed by the five points defined in the quadratic solution method above.
+    // The root with the shortest distance to the camera will be returned
+
+    // Get everything ordered for iteration combine and sort the five already defined points
+    QList <QList <double> > pts;
+
+    for (int i=0; i<3; i++) {
+      QList <double> pt;
+      pt << timeNodes[i] / scale + timeAverage;
+      pt << offsetNodes[i] / scale;
+      pts << pt; 
+    }
+ 
+    for (int i=0; i<root.size(); i++) {
+      QList <double> pt;
+      pt << root[i];
+      pt << offset[i];
+      pts << pt; 
+    }
+  
+    qSort(pts.begin(), pts.end(), ptXLessThan);
+    
+    root.clear();
+    for (int i=1; i<pts.size(); i++) {
+      // If the signs of the two offsets are not the same they bracket at least one root
+      if ( (pts[i-1][1] > 0) - (pts[i-1][1] < 0) != (pts[i][1] > 0) - (pts[i][1] < 0) ) {
+        double temp;
+        if (FunctionTools::brentsRootFinder <LineOffsetFunctor> (offsetFunc, pts[i-1], pts[i],
+                                                                 1.0e-3, 200, temp)) {
+          root << temp;
+
+        }
+      }      
+    }
+
+    // Discard any roots that are looking through the planet
+    for (int i = root.size()-1; i>=0; i--) {
+      p_camera->Sensor::setTime(root[i]);
+      //check to make sure the point isn't behind the planet
+      if (!p_camera->Sensor::SetGround(surfacePoint, true)) {
+        root.removeAt(i);
+      }
+    }
+
+    // If none of the roots remain...
+    if (root.size() == 0) {
+      return Failure;
+    }
+
+    // Choose from the remaining roots, the solution with the smallest distance to target
+    dist.clear();
+    offset.clear();
+    for (int i=0; i<root.size(); i++) {  // Offset/dist calculation loop
+      dist << distanceFunc(root[i]);
+      offset << offsetFunc(root[i]);
+    }
+
+    // Save the root with the smallest dist
+    for (int i=1, j=0; i<root.size(); i++) {
+      if (dist[i] < dist[j]) j=i;
+    }
+
+    p_camera->Sensor::setTime(root[j]);
+
+    // No need to make sure the point isn't behind the planet, it was done above
+    p_camera->Sensor::LookDirection(lookC);
+    ux = p_camera->FocalLength() * lookC[0] / lookC[2];
+    uy = p_camera->FocalLength() * lookC[1] / lookC[2];
+     
+    p_focalPlaneX = ux;
+    p_focalPlaneY = uy;
+       
+    return Success;
+  }
+*/
+}
+
+
+//bool ptXLessThan(const QList<double> l1, const QList<double> l2) {
+//  return l1[0] < l2[0];
+//}
+
diff --git a/isis/src/base/objs/SampleScanCameraGroundMap/backup/SampleScanCameraGroundMap.h b/isis/src/base/objs/SampleScanCameraGroundMap/backup/SampleScanCameraGroundMap.h
new file mode 100644
index 0000000000000000000000000000000000000000..5f134d22944e1141ba68e6ce5703a9d57bf67fe3
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraGroundMap/backup/SampleScanCameraGroundMap.h
@@ -0,0 +1,73 @@
+/**
+ * @file
+ * $Revision: 1.6 $
+ * $Date: 2010/06/17 18:59:12 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#ifndef SampleScanCameraGroundMap_h
+#define SampleScanCameraGroundMap_h
+
+#include "CameraGroundMap.h"
+
+namespace Isis {
+  /** Convert between undistorted focal plane and ground coordinates
+   *
+   * This class is used to convert between undistorted focal plane
+   * coordinates (x/y) in millimeters and ground coordinates lat/lon
+   * for sample scan cameras.
+   *
+   * @ingroup Camera
+   *
+   * @see Camera
+   *
+   * @author 2012-09-12 Ken Edmundson
+   *
+   * @internal
+   *
+   *   @history 2012-09-12 Ken Edmundson - Original version
+   *
+   */
+  class SampleScanCameraGroundMap : public CameraGroundMap {
+    public:
+
+      //! Constructor
+      SampleScanCameraGroundMap(Camera *cam);
+
+      //! Destructor
+      virtual ~SampleScanCameraGroundMap();
+
+      virtual bool SetGround(const Latitude &lat, const Longitude &lon);
+      virtual bool SetGround(const SurfacePoint &surfacePoint);
+      virtual bool SetGround(const SurfacePoint &surfacePoint, const int &approxSample);
+
+    protected:
+      enum FindFocalPlaneStatus {
+        Success,
+        BoundingProblem,
+        Failure
+      };
+
+      FindFocalPlaneStatus FindFocalPlane(const int &approxSample,
+                                          const SurfacePoint &surfacePoint);
+      double FindSpacecraftDistance(int sample, const SurfacePoint &surfacePoint);
+
+  };
+};
+#endif
diff --git a/isis/src/base/objs/SampleScanCameraGroundMap/unitTest.cpp b/isis/src/base/objs/SampleScanCameraGroundMap/unitTest.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e46e87e23a65958e4295a715cfb1b39a3fbade87
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraGroundMap/unitTest.cpp
@@ -0,0 +1,26 @@
+#include "Preference.h"
+#include <iostream>
+#include "Preference.h"
+#include "IException.h"
+#include "CameraPointInfo.h"
+
+
+using namespace std;
+using namespace Isis;
+int main() {
+  Isis::Preference::Preferences(true);
+  cerr << "This class is mostly tested by the applications and the individual Camera models." << endl;
+
+  //create a camera for the test cube
+  QString inputFile = "$base/testData/LRONAC_M139722912RE_cropped.cub";
+  CameraPointInfo campt;  
+  campt.SetCube(inputFile);
+
+  cerr << "attempting to back project a point behind the planet into the image (this should throw an error)\n";
+  try {
+    campt.SetGround(90.0, 0.0, true);
+    
+  }catch (IException &e) {
+    e.print();
+  }
+}
diff --git a/isis/src/base/objs/SampleScanCameraSkyMap/Makefile b/isis/src/base/objs/SampleScanCameraSkyMap/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f122bc88227c5c7ebd108dea5d339d1d2e074d82
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraSkyMap/Makefile
@@ -0,0 +1,7 @@
+ifeq ($(ISISROOT), $(BLANK))
+.SILENT:
+error:
+	echo "Please set ISISROOT";
+else
+	include $(ISISROOT)/make/isismake.objs
+endif
\ No newline at end of file
diff --git a/isis/src/base/objs/SampleScanCameraSkyMap/SampleScanCameraSkyMap.cpp b/isis/src/base/objs/SampleScanCameraSkyMap/SampleScanCameraSkyMap.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..db25f5b672aa1417496c2b37285c0759069d0428
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraSkyMap/SampleScanCameraSkyMap.cpp
@@ -0,0 +1,153 @@
+/**
+ * @file
+ * $Revision: 1.1.1.1 $
+ * $Date: 2006/10/31 23:18:08 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#include "SampleScanCameraSkyMap.h"
+#include "CameraFocalPlaneMap.h"
+#include "CameraDistortionMap.h"
+#include "iTime.h"
+#include "SampleScanCameraDetectorMap.h"
+
+namespace Isis {
+  
+  /**
+   * Constructor
+   * 
+   * @param parent The parent camera
+   */
+  SampleScanCameraSkyMap(Camera *parent) : CameraSkyMap(parent) {};
+
+  /**
+   * Destructor
+   */
+  ~SampleScanCameraSkyMap() {};
+      
+  /** Compute undistorted focal plane coordinate from ra/dec
+   *
+   * @param ra    right ascension in degrees
+   * @param dec   declination in degrees
+   *
+   * @return conversion was successful
+   * @todo what happens if we are looking behind the focal plane?????
+   * @todo what happens if we are looking parallel to the focal plane??
+   * @todo can lookC[2] == zero imply parallel
+   * @todo can this all be solved by restricting the physical size of
+   * the focal plane?
+   */
+  bool SampleScanCameraSkyMap::SetSky(const double ra, const double dec) {
+    // Get beginning bounding time and offset for iterative loop
+    p_camera->Sensor::setTime(p_camera->Spice::cacheStartTime());
+    p_camera->Sensor::SetRightAscensionDeclination(ra, dec);
+
+    double lookC[3];
+    p_camera->Sensor::LookDirection(lookC);
+    double ux = p_camera->FocalLength() * lookC[0] / lookC[2];
+    double uy = p_camera->FocalLength() * lookC[1] / lookC[2];
+
+    CameraDistortionMap *distortionMap = p_camera->DistortionMap();
+    if(!distortionMap->SetUndistortedFocalPlane(ux, uy)) return false;
+    double dx = distortionMap->FocalPlaneX();
+    double dy = distortionMap->FocalPlaneY();
+
+    CameraFocalPlaneMap *focalMap = p_camera->FocalPlaneMap();
+    if(!focalMap->SetFocalPlane(dx, dy)) return false;
+    double startOffset = focalMap->DetectorSampleOffset() -
+                         focalMap->DetectorSample();
+
+    // Get ending bounding time and offset for iterative loop
+    p_camera->Sensor::setTime(p_camera->Spice::cacheEndTime());
+    p_camera->Sensor::SetRightAscensionDeclination(ra, dec);
+
+    p_camera->Sensor::LookDirection(lookC);
+    ux = p_camera->FocalLength() * lookC[0] / lookC[2];
+    uy = p_camera->FocalLength() * lookC[1] / lookC[2];
+
+    if(!distortionMap->SetUndistortedFocalPlane(ux, uy)) return false;
+    dx = distortionMap->FocalPlaneX();
+    dy = distortionMap->FocalPlaneY();
+
+    if(!focalMap->SetFocalPlane(dx, dy)) return false;
+    double endOffset = focalMap->DetectorSampleOffset() -
+                       focalMap->DetectorSample();
+
+    // Make sure we are in the image
+    if((startOffset < 0.0) && (endOffset < 0.0)) return false;
+    if((startOffset > 0.0) && (endOffset > 0.0)) return false;
+
+    // Get everything ordered for iteration
+    double fl, fh, xl, xh;
+    if(startOffset < endOffset) {
+      fl = startOffset;
+      fh = endOffset;
+      xl = p_camera->Spice::cacheStartTime().Et();
+      xh = p_camera->Spice::cacheEndTime().Et();
+    }
+    else {
+      fl = endOffset;
+      fh = startOffset;
+      xl = p_camera->Spice::cacheEndTime().Et();
+      xh = p_camera->Spice::cacheStartTime().Et();
+    }
+
+    // Iterate to find the time at which the instrument imaged the ground point
+    SampleScanCameraDetectorMap *detectorMap =
+      (SampleScanCameraDetectorMap *) p_camera->DetectorMap();
+    double timeTol = detectorMap->SampleRate() / 10.0;
+    for(int j = 0; j < 30; j++) {
+      double etGuess = xl + (xh - xl) * fl / (fl - fh);
+      p_camera->Sensor::setTime(etGuess);
+      p_camera->Sensor::SetRightAscensionDeclination(ra, dec);
+      p_camera->Sensor::LookDirection(lookC);
+      ux = p_camera->FocalLength() * lookC[0] / lookC[2];
+      uy = p_camera->FocalLength() * lookC[1] / lookC[2];
+
+      if(!distortionMap->SetUndistortedFocalPlane(ux, uy)) return false;
+      dx = distortionMap->FocalPlaneX();
+      dy = distortionMap->FocalPlaneY();
+
+      if(!focalMap->SetFocalPlane(dx, dy)) return false;
+      double f = focalMap->DetectorSampleOffset() -
+                 focalMap->DetectorSample();
+
+      double delTime;
+      if(f < 0.0) {
+        delTime = xl - etGuess;
+        xl = etGuess;
+        fl = f;
+      }
+      else {
+        delTime = xh - etGuess;
+        xh = etGuess;
+        fh = f;
+      }
+
+      // See if we converged on the point so set up the undistorted
+      // focal plane values and return
+      if(fabs(delTime) < timeTol || f == 0.0) {
+        p_focalPlaneX = ux;
+        p_focalPlaneY = uy;
+        return true;
+      }
+    }
+    return false;
+  }
+}
diff --git a/isis/src/base/objs/SampleScanCameraSkyMap/SampleScanCameraSkyMap.h b/isis/src/base/objs/SampleScanCameraSkyMap/SampleScanCameraSkyMap.h
new file mode 100644
index 0000000000000000000000000000000000000000..64e1e158ce33c4e856e2d5e3e5e4fb73345d511e
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraSkyMap/SampleScanCameraSkyMap.h
@@ -0,0 +1,56 @@
+/**
+ * @file
+ * $Revision: 1.1.1.1 $
+ * $Date: 2006/10/31 23:18:08 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#ifndef SampleScanCameraSkyMap_h
+#define SampleScanCameraSkyMap_h
+
+#include "CameraSkyMap.h"
+
+namespace Isis {
+  /** Convert between undistorted focal plane and ra/dec coordinates
+   *
+   * This class is used to convert between undistorted focal plane
+   * coordinates (x/y) in millimeters and sky (ra/dec).  This
+   * class handles the case of sample scan cameras.
+   *
+   * @ingroup Camera
+   *
+   * @see Camera
+   *
+   * @author 2012-09-12 Ken Edmundson
+   *
+   * @internal
+   *   @history 2012-09-12 Ken Edmundson - Original version.
+   *
+   */
+  class SampleScanCameraSkyMap : public CameraSkyMap {
+    public:
+
+      SampleScanCameraSkyMap(Camera *parent) : CameraSkyMap(parent);
+
+      virtual ~SampleScanCameraSkyMap();
+
+      virtual bool SetSky(const double ra, const double dec);
+  };
+};
+#endif
diff --git a/isis/src/base/objs/SampleScanCameraSkyMap/SampleScanCameraSkyMap.truth b/isis/src/base/objs/SampleScanCameraSkyMap/SampleScanCameraSkyMap.truth
new file mode 100644
index 0000000000000000000000000000000000000000..6347fe6d38f458077e14c2efcd5624b000c19da3
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraSkyMap/SampleScanCameraSkyMap.truth
@@ -0,0 +1 @@
+This class will be tested by the applications and the individual Camera models.
diff --git a/isis/src/base/objs/SampleScanCameraSkyMap/unitTest.cpp b/isis/src/base/objs/SampleScanCameraSkyMap/unitTest.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..eddcf72b5c1d9bf5af9385cff2ee61cac3e8428d
--- /dev/null
+++ b/isis/src/base/objs/SampleScanCameraSkyMap/unitTest.cpp
@@ -0,0 +1,8 @@
+#include "Preference.h"
+#include <iostream>
+
+using namespace std;
+int main() {
+  Isis::Preference::Preferences(true);
+  cout << "This class will be tested by the applications and the individual Camera models." << endl;
+}
diff --git a/isis/src/base/objs/VariableLineScanCameraDetectorMap/VariableLineScanCameraDetectorMap.cpp b/isis/src/base/objs/VariableLineScanCameraDetectorMap/VariableLineScanCameraDetectorMap.cpp
index 93a0bc2538343ff0e54aeeeeaf76b931b9b617c3..0961f633b2416578d941d8719284822c761ad5b2 100644
--- a/isis/src/base/objs/VariableLineScanCameraDetectorMap/VariableLineScanCameraDetectorMap.cpp
+++ b/isis/src/base/objs/VariableLineScanCameraDetectorMap/VariableLineScanCameraDetectorMap.cpp
@@ -75,7 +75,7 @@ namespace Isis {
     double currEt = p_camera->time().Et();
     int rateIndex = p_lineRates.size() - 1;
 
-    while (rateIndex >= 0 && currEt < p_lineRates[rateIndex].GetStartEt() - 0.5) {
+    while (rateIndex > 0 && currEt < p_lineRates[rateIndex].GetStartEt()) {
       rateIndex --;
     }
 
diff --git a/isis/src/base/objs/VariableLineScanCameraDetectorMap/VariableLineScanCameraDetectorMap.h b/isis/src/base/objs/VariableLineScanCameraDetectorMap/VariableLineScanCameraDetectorMap.h
index fa70680cab253f7ccd84a0b85275549be534f863..f18edad377b99ce5fe0b0c06e75d5b67f36dcdc0 100644
--- a/isis/src/base/objs/VariableLineScanCameraDetectorMap/VariableLineScanCameraDetectorMap.h
+++ b/isis/src/base/objs/VariableLineScanCameraDetectorMap/VariableLineScanCameraDetectorMap.h
@@ -61,6 +61,11 @@ namespace Isis {
    *                           #4476.
    *   @history 2016-10-27 Jeannie Backer - Moved constructor documentation and destructor to
    *                           cpp file. References #4476.
+   *   @history 2017-01-09 Ken Edmundson - In SetDetector method, in loop over line rates, 0.5 lines was
+   *                           being subtracted from the line rate starting ephemeris time. This is wrong
+   *                           and was probably copy/pasted from the SetParent method below. Supposedly
+   *                           this had been addressed by #4435 which was closed, but the correction was
+   *                           not in the code. References #4435.
    *
    */
   class VariableLineScanCameraDetectorMap : public LineScanCameraDetectorMap {
diff --git a/isis/src/base/objs/VariableSampleScanCameraDetectorMap/Makefile b/isis/src/base/objs/VariableSampleScanCameraDetectorMap/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f122bc88227c5c7ebd108dea5d339d1d2e074d82
--- /dev/null
+++ b/isis/src/base/objs/VariableSampleScanCameraDetectorMap/Makefile
@@ -0,0 +1,7 @@
+ifeq ($(ISISROOT), $(BLANK))
+.SILENT:
+error:
+	echo "Please set ISISROOT";
+else
+	include $(ISISROOT)/make/isismake.objs
+endif
\ No newline at end of file
diff --git a/isis/src/base/objs/VariableSampleScanCameraDetectorMap/VariableSampleScanCameraDetectorMap.cpp b/isis/src/base/objs/VariableSampleScanCameraDetectorMap/VariableSampleScanCameraDetectorMap.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..2d12a49cf44e59bdc358084eac48406b20e1d701
--- /dev/null
+++ b/isis/src/base/objs/VariableSampleScanCameraDetectorMap/VariableSampleScanCameraDetectorMap.cpp
@@ -0,0 +1,169 @@
+/**
+ * @file
+ * $Revision: 1.2 $
+ * $Date: 2008/08/08 22:02:36 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#include "VariableSampleScanCameraDetectorMap.h"
+#include "Affine.h"
+#include "CameraFocalPlaneMap.h"
+#include "iTime.h"
+
+namespace Isis {
+  VariableSampleScanCameraDetectorMap::VariableSampleScanCameraDetectorMap(Camera *parent,
+      std::vector< SampleRateChange > &sampleRates, Affine *fiducialMap) :
+      SampleScanCameraDetectorMap(parent, sampleRates[0].GetStartEt(),
+                                  sampleRates[0].GetSampleScanRate()),
+                                  p_sampleRates(sampleRates) {
+
+    // transx, transy are affine coefficients transforming from parent (Sp,Lp) to fiducial coordinate
+    // system (Sf, Lf)
+    // get coefficients of forward transform
+    m_transx = fiducialMap->Coefficients(1);
+    m_transy = fiducialMap->Coefficients(2);
+
+    // Correct the Affine order - move the constant to the front
+    m_transx.insert(m_transx.begin(), m_transx[2]);
+    m_transx.pop_back();
+    m_transy.insert(m_transy.begin(), m_transy[2]);
+    m_transy.pop_back();
+
+    // transs, transl are affine coefficients transforming from detector (FSC) (S,L) to parent (S,L)
+    // get coefficients of inverse transform
+    m_transs = fiducialMap->InverseCoefficients(1);
+    m_transl = fiducialMap->InverseCoefficients(2);
+
+    // Correct the Affine order - move the constant to the front
+    m_transs.insert(m_transs.begin(), m_transs[2]);
+    m_transs.pop_back();
+    m_transl.insert(m_transl.begin(), m_transl[2]);
+    m_transl.pop_back();
+  };
+
+
+  /** Compute parent image sample/line from a detector sample/line
+   *
+   * This method computes parent sample/line from detector sample/line.
+   *
+   * TODO: modify/remove this comment - This method will compute a parent sample given a
+   * detector coordinate. The parent sample will be computed using the
+   * the time in the parent camera
+   *
+   * @param sample detector sample
+   * @param line   detector line
+   *
+   * @return conversion successful
+   *
+   * NOTE: Calling base classes results in unnecessary computations. Just set detector sample/line
+   *       directly.
+   */
+  bool VariableSampleScanCameraDetectorMap::SetDetector(const double sample, const double line) {
+
+    p_detectorSample = sample;
+    p_detectorLine   = line;
+
+    // currentEt is our known ephemeris time
+    double currentEt = p_camera->time().Et();
+    int rateIndex = p_sampleRates.size() - 1;
+
+    while(rateIndex >= 0 && currentEt > p_sampleRates[rateIndex].GetStartEt()) {
+      rateIndex --;
+    }
+
+    if(rateIndex < 0) {
+      return false;
+    }
+
+    int rateStartSample = p_sampleRates[rateIndex].GetStartSample();
+    double rateStartEt = p_sampleRates[rateIndex].GetStartEt();
+    double rate = p_sampleRates[rateIndex].GetSampleScanRate();
+
+    double etDiff = -(currentEt - rateStartEt);
+
+    double fiducialSample = etDiff / rate + rateStartSample;
+
+    // affine transformation from detector S/L to parent S/L
+    // detector is fiducial coordinate system in pixels
+    p_parentSample = m_transs[0] + fiducialSample * m_transs[1] + line * m_transs[2];
+    p_parentLine   = m_transl[0] + fiducialSample * m_transl[1] + line * m_transl[2];
+
+    SetSampleRate(rate);
+
+    return true;
+  }
+
+  /** Compute detector sample/line from a parent image sample/line
+   *
+   * This method computes detector sample/line from parent sample/line. The detector sample is used
+   * to retrieve time from the samplescantimes table stored in cube.
+   *
+   * TODO: samplescantimes table in cube needs to change to contain detector
+   *       samples in fiducial coordinate system (FCS) instead of parent image samples
+   *
+   * @param sample parent image sample
+   * @param line   parent image line
+   *
+   * @return conversion successful
+   *
+   * NOTE: Calling base classes results in unnecessary computations. Just set parent sample/line
+   *       directly, then determine time.
+   */
+  bool VariableSampleScanCameraDetectorMap::SetParent(const double sample, const double line) {
+
+    p_parentSample = sample;
+    p_parentLine = line;
+
+    // affine transformation from parent S/L to detector S/L
+    // detector is fiducial coordinate system in pixels
+    p_detectorSample = m_transx[0] + sample * m_transx[1] + line * m_transx[2];
+    p_detectorLine   = m_transy[0] + sample * m_transy[1] + line * m_transy[2];
+
+    int rateIndex = p_sampleRates.size() - 1;
+
+//    while (rateIndex >= 0 && sample < p_sampleRates[rateIndex].GetStartSample() - 0.5) {
+//      rateIndex --;
+//    }
+    while (rateIndex >= 0 && p_detectorSample < p_sampleRates[rateIndex].GetStartSample() - 0.5) {
+      rateIndex --;
+    }
+
+    if (rateIndex < 0) {
+      return false;
+    }
+
+    int rateStartSample = p_sampleRates[rateIndex].GetStartSample();
+    double rateStartEt = p_sampleRates[rateIndex].GetStartEt();
+    double rate = p_sampleRates[rateIndex].GetSampleScanRate();
+
+    // TODO: confirm calculation of et, questions about application of 1/2 pixel here.
+    //  double et = rateStartEt - (sample - rateStartSample + 0.5) * rate;
+//  double et = rateStartEt - (sample - rateStartSample) * rate;
+    double et = rateStartEt - (p_detectorSample - rateStartSample) * rate;
+
+    // TODO: see Orrin's comment in ApolloPanoramicDetectorMap::SetParent()
+    p_detectorSample = 0.0;
+
+    SetSampleRate(rate);
+
+    p_camera->setTime(et);
+
+    return true;
+  }
+}
diff --git a/isis/src/base/objs/VariableSampleScanCameraDetectorMap/VariableSampleScanCameraDetectorMap.h b/isis/src/base/objs/VariableSampleScanCameraDetectorMap/VariableSampleScanCameraDetectorMap.h
new file mode 100644
index 0000000000000000000000000000000000000000..c3c50db9863114e7c086c49249f9947e56d05f19
--- /dev/null
+++ b/isis/src/base/objs/VariableSampleScanCameraDetectorMap/VariableSampleScanCameraDetectorMap.h
@@ -0,0 +1,114 @@
+/**
+ * @file
+ * $Revision: 1.3 $
+ * $Date: 2009/03/07 18:02:33 $
+ *
+ *   Unless noted otherwise, the portions of Isis written by the USGS are
+ *   public domain. See individual third-party library and package descriptions
+ *   for intellectual property information, user agreements, and related
+ *   information.
+ *
+ *   Although Isis has been used by the USGS, no warranty, expressed or
+ *   implied, is made by the USGS as to the accuracy and functioning of such
+ *   software and related material nor shall the fact of distribution
+ *   constitute any such warranty, and no responsibility is assumed by the
+ *   USGS in connection therewith.
+ *
+ *   For additional information, launch
+ *   $ISISROOT/doc//documents/Disclaimers/Disclaimers.html
+ *   in a browser or see the Privacy &amp; Disclaimers page on the Isis website,
+ *   http://isis.astrogeology.usgs.gov, and the USGS privacy and disclaimers on
+ *   http://www.usgs.gov/privacy.html.
+ */
+
+#ifndef VariableSampleScanCameraDetectorMap_h
+#define VariableSampleScanCameraDetectorMap_h
+
+#include "SampleScanCameraDetectorMap.h"
+
+using namespace std;
+
+namespace Isis {
+  class Affine;
+  class SampleRateChange;
+
+  /** Convert between parent image coordinates and detector coordinates
+   *
+   * This class is used to convert between parent detector coordinates
+   * (sample/line) and detector coordinates for a sample scan camera.
+   *
+   * @author 2016-09-07 Ken Edmundson
+   *
+   * @ingroup Camera
+   * @see Camera
+   *
+   * @internal
+   *   @history 2008-08-08 Ken Edmundson Original version
+   *
+   */
+  class VariableSampleScanCameraDetectorMap : public SampleScanCameraDetectorMap {
+    public:
+      /**
+       * Constructs a VariableSampleScanCameraDetectorMap.
+       *
+       * @param parent The camera
+       * @param p_sampleRates This should be a vector with an entry for every
+       *          scan rate change in it. The pair consists of the sample number and
+       *          ET of the changed time; the first entry should be sample 1 and the last
+       *          entry should be one line past the end of the image. See
+       *          HrscCamera for an example of a VariableLineScanCamera and Apollo Panoramic
+       *          for an example of a VariableSampleScanCamera.
+       */
+      VariableSampleScanCameraDetectorMap(Camera *parent,
+                                          std::vector< SampleRateChange > &sampleRates,
+                                          Affine *fiducialMap);
+
+      //! Destructor
+      virtual ~VariableSampleScanCameraDetectorMap() {};
+
+      virtual bool SetParent(const double sample, const double line);
+
+      virtual bool SetDetector(const double sample, const double line);
+
+    private:
+      std::vector< SampleRateChange > &p_sampleRates;
+
+      vector<double> m_transx; /**< affine transformation from parent S/L to detector S/L */
+      vector<double> m_transy; /**< detector is fiducial coordinate system in pixels */
+
+      vector<double> m_transs; /**< affine transformation from detector S/L to parent S/L */
+      vector<double> m_transl;
+  };
+
+
+  /**
+   *
+   * @author ????-??-?? Unknown
+   *
+   * @internal
+   */
+  class SampleRateChange {
+    public:
+      SampleRateChange(int sample, double stime, double rate) {
+        p_sample = sample;
+        p_stime = stime;
+        p_rate = rate;
+      };
+
+      int GetStartSample() {
+        return p_sample;
+      }
+      double GetStartEt() {
+        return p_stime;
+      }
+      double GetSampleScanRate() {
+        return p_rate;
+      }
+
+    private:
+      int p_sample;
+      double p_stime;
+      double p_rate;
+  };
+};
+#endif
diff --git a/isis/src/base/objs/VariableSampleScanCameraDetectorMap/VariableSampleScanCameraDetectorMap.truth b/isis/src/base/objs/VariableSampleScanCameraDetectorMap/VariableSampleScanCameraDetectorMap.truth
new file mode 100644
index 0000000000000000000000000000000000000000..6347fe6d38f458077e14c2efcd5624b000c19da3
--- /dev/null
+++ b/isis/src/base/objs/VariableSampleScanCameraDetectorMap/VariableSampleScanCameraDetectorMap.truth
@@ -0,0 +1 @@
+This class will be tested by the applications and the individual Camera models.
diff --git a/isis/src/base/objs/VariableSampleScanCameraDetectorMap/unitTest.cpp b/isis/src/base/objs/VariableSampleScanCameraDetectorMap/unitTest.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d29f6a0a3117f27e7834dbb1f64a8b2014ea3d9d
--- /dev/null
+++ b/isis/src/base/objs/VariableSampleScanCameraDetectorMap/unitTest.cpp
@@ -0,0 +1,8 @@
+#include <iostream>
+#include "Preference.h"
+
+using namespace std;
+int main() {
+  Isis::Preference::Preferences(true);
+  cout << "This class will be tested by the applications and the individual Camera models." << endl;
+}
diff --git a/isis/src/qisis/objs/TrackTool/TrackTool.cpp b/isis/src/qisis/objs/TrackTool/TrackTool.cpp
index 1a7a0cb148065f8588b483e5b3c695e16be55317..11d08c9c28c78dfb4e19f0d67ed5cababefcd074 100644
--- a/isis/src/qisis/objs/TrackTool/TrackTool.cpp
+++ b/isis/src/qisis/objs/TrackTool/TrackTool.cpp
@@ -6,6 +6,7 @@
 
 #include "Camera.h"
 #include "Distance.h"
+#include "CameraFocalPlaneMap.h"
 #include "MdiCubeViewport.h"
 #include "Projection.h"
 #include "RingPlaneProjection.h"
@@ -26,6 +27,18 @@ namespace Isis {
   TrackTool::TrackTool(QStatusBar *parent) : Tool(parent) {
     p_sbar = parent;
 
+    p_xLabel = new QLabel(p_sbar);
+    p_xLabel->setText("W 999999");
+    p_xLabel->setMinimumSize(p_xLabel->sizeHint());
+    p_xLabel->setToolTip("x Image Coordinate");
+    p_sbar->addPermanentWidget(p_xLabel);
+    
+    p_yLabel = new QLabel(p_sbar);
+    p_yLabel->setText("W 999999");
+    p_yLabel->setMinimumSize(p_yLabel->sizeHint());
+    p_yLabel->setToolTip("y Image Coordinate");
+    p_sbar->addPermanentWidget(p_yLabel);
+
     p_sampLabel = new QLabel(p_sbar);
     p_sampLabel->setText("W 999999");
     p_sampLabel->setMinimumSize(p_sampLabel->sizeHint());
@@ -208,6 +221,10 @@ namespace Isis {
           double lon = cvp->camera()->UniversalLongitude();
           p_latLabel->setText(QString("Lat %1").arg(lat));
           p_lonLabel->setText(QString("Lon %1").arg(lon));
+          double x = cvp->camera()->FocalPlaneMap()->FocalPlaneX();
+          double y = cvp->camera()->FocalPlaneMap()->FocalPlaneY();;
+          p_xLabel->setText(QString("x %1").arg(x));
+          p_yLabel->setText(QString("y %1").arg(y));
         }
         else {
           double rad = cvp->camera()->LocalRadius().meters();
@@ -215,6 +232,8 @@ namespace Isis {
           //??? p_latLabel->setToolTip("Radius Position");
           p_latLabel->setText(QString("Rad %1").arg(rad));
           p_lonLabel->setText(QString("Lon %1").arg(lon));
+          p_xLabel->setText("x n/a");
+          p_yLabel->setText("y n/a");
         }
       }
       else {
@@ -331,6 +350,8 @@ namespace Isis {
     p_redLabel->setText("R N/A");
     p_grnLabel->setText("G N/A");
     p_bluLabel->setText("B N/A");
+    p_xLabel->setText("x n/a");
+    p_yLabel->setText("y n/a");
   }
 
 
diff --git a/isis/src/qisis/objs/TrackTool/TrackTool.h b/isis/src/qisis/objs/TrackTool/TrackTool.h
index 3df567b71f42255be63df1b4fdaad159eab3fabc..911e08bf7ebd0dd819a979db35e61de092616d9a 100644
--- a/isis/src/qisis/objs/TrackTool/TrackTool.h
+++ b/isis/src/qisis/objs/TrackTool/TrackTool.h
@@ -72,6 +72,8 @@ namespace Isis {
       QLabel *p_redLabel;           //!< Red label
       QLabel *p_grnLabel;           //!< Green label
       QLabel *p_bluLabel;           //!< Blue label
+      QLabel *p_xLabel;             //!< x image coordinate label
+      QLabel *p_yLabel;             //!< y image coordinate label
       WarningWidget *mWarningWidget;  //!< Warning Widget
   };
 };
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/Makefile b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..7578f0b21d038db6a5042c095cda9b34b6bb2570
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/Makefile
@@ -0,0 +1,7 @@
+ifeq ($(ISISROOT), $(BLANK))
+.SILENT:
+error:
+	echo "Please set ISISROOT";
+else
+	include $(ISISROOT)/make/isismake.apps
+endif
\ No newline at end of file
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/socetlinescankeywords_noExtrapolation.cpp b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/socetlinescankeywords_noExtrapolation.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..63453a5699a8f31d5618179233ac46b1c9bd154a
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/socetlinescankeywords_noExtrapolation.cpp
@@ -0,0 +1,886 @@
+#include "Isis.h"
+
+#include <fstream>
+#include <iomanip>
+#include <iostream>
+#include <math.h>
+#include <sstream>
+#include <stdlib.h>
+#include <string>
+
+#include "Camera.h"
+#include "CameraDetectorMap.h"
+#include "CameraDistortionMap.h"
+#include "CameraFocalPlaneMap.h"
+#include "CameraGroundMap.h"
+#include "Constants.h"
+#include "Distance.h"
+#include "FileName.h"
+#include "IException.h"
+#include "IString.h"
+#include "iTime.h"
+#include "LineScanCameraDetectorMap.h"
+#include "NaifStatus.h"
+#include "Process.h"
+#include "TProjection.h"
+#include "Pvl.h"
+#include "Spice.h"
+#include "Table.h"
+#include "VariableLineScanCameraDetectorMap.h"
+
+using namespace std;
+using namespace Isis;
+
+double GetHRSCLineRates(Cube *cube, vector<LineRateChange> &lineRates, double &HRSCNadirCenterTime);
+
+void IsisMain() {
+
+  // Use a regular Process
+  Process p;
+
+  // Get user parameters and error check 
+  UserInterface &ui = Application::GetUserInterface();
+  QString from = ui.GetFileName("FROM");
+  QString to = FileName(ui.GetFileName("TO")).expanded();
+  double HRSCNadirCenterTime = ui.GetDouble("HRSC_NADIRCENTERTIME");
+
+  // Open input cube and Make sure this is a lev1 image (ie, not map projected)
+  Cube cube;
+  cube.open(from);
+
+  if (cube.isProjected()) {
+    QString msg = "Input images is a map projected cube ... not a level 1 image";
+    throw IException(IException::User, msg, _FILEINFO_);
+  }
+
+  // Initialize the camera
+  Cube *input = p.SetInputCube("FROM");
+  Pvl *cubeHeader = input->label();
+  Camera *cam = input->camera();
+  CameraDetectorMap *detectorMap = cam->DetectorMap();
+  CameraFocalPlaneMap *focalMap = cam->FocalPlaneMap();
+  CameraDistortionMap *distortionMap = cam->DistortionMap();
+  CameraGroundMap *groundMap = cam->GroundMap();
+
+  // Make sure the image contains the InstrumentPointing (aka CK) blob/table
+  PvlGroup test = cube.label()->findGroup("Kernels", Pvl::Traverse);
+  QString InstrumentPointing = (QString) test["InstrumentPointing"];
+  if (InstrumentPointing != "Table") {
+    QString msg = "Input image does not contain needed SPICE blobs...run spiceinit with attach=yes.";
+    throw IException(IException::User, msg, _FILEINFO_);
+  }
+
+  // Open output line scanner keyword file
+  ofstream toStrm;
+  toStrm.open(to.toLatin1().data(), ios::trunc);
+  if (toStrm.bad()) {
+    QString msg = "Unable to open output TO file";
+    throw IException(IException::User, msg, _FILEINFO_);
+  }
+
+  // Get required keywords from instrument and band groups
+  PvlGroup inst = cube.label()->findGroup("Instrument", Pvl::Traverse);
+  QString instrumentId = (QString) inst["InstrumentId"];
+
+  bool isMocNA = false;
+//TO DO: UNCOMMENT THIS LINES ONCE MOC IS WORKING IN SS
+//  bool     isMocWARed = false;
+  bool isHiRise = false;
+  bool isCTX = false;
+  bool isLroNACL = false;
+  bool isLroNACR = false;
+  bool isHRSC = false;
+//TO DO: UNCOMMENT THESE LINE ONCE MOC IS WORKING IN SS
+//  if (instrumentId == "MOC") {
+//    PvlGroup band = cube.label()->findGroup("BandBin", Pvl::Traverse);
+//    QString filter = (QString) band["FilterName"];
+//
+//    if (strcmp(filter.toAscii().data(), "BROAD_BAND") == 0)
+//      isMocNA = true;
+//    else if (strcmp(filter.toAscii().data(), "RED") == 0)
+//      isMocWARed = true;
+//    else if (strcmp(filter.toAscii().data(), "BLUE") == 0) {
+//      QString msg = "MOC WA Blue filter images not supported for Socet Set mapping";
+//      throw IException(IException::User, msg, _FILEINFO_);
+//    }
+//  }
+//  else if (instrumentId == "IdealCamera") {
+//TO DO: DELETE THIS LINE ONCE MOC IS WORKING IN SS
+  if (instrumentId == "IdealCamera") {
+    PvlGroup orig = cube.label()->findGroup("OriginalInstrument",  Pvl::Traverse);
+    QString origInstrumentId = (QString) orig["InstrumentId"];
+    if (origInstrumentId == "HIRISE") {
+      isHiRise = true;
+    }
+    else {
+      QString msg = "Unsupported instrument: " + origInstrumentId;
+      throw IException(IException::User, msg, _FILEINFO_);
+    }
+  }
+  else if (instrumentId == "HIRISE") {
+    isHiRise = true;
+  }
+  else if (instrumentId == "CTX") {
+    isCTX = true;
+  }
+  else if (instrumentId == "NACL") {
+    isLroNACL = true;
+  }
+  else if (instrumentId == "NACR") {
+    isLroNACR = true;
+  }
+  else if (instrumentId == "HRSC") {
+    isHRSC = true;
+  }
+  else {
+    QString msg = "Unsupported instrument: " + instrumentId;
+    throw IException(IException::User, msg, _FILEINFO_);
+  }
+  
+  int ikCode = cam->naifIkCode();
+
+  // Get Focal Length.
+  // NOTE:
+  //   For MOC Wide Angle, cam->focal_length returns the focal length
+  //      in pixels, so we must convert from pixels to mm using the PIXEL_SIZE
+  //      of 0.007 mm gotten from $ISIS3DATA/mgs/kernels/ik/moc20.ti.  (The  
+  //      PIXEL_PITCH value gotten from cam->PixelPitch is 1.0 since the
+  //      focal length used by ISIS in this case is in pixels)
+  //      For reference: the MOC WA blue filter pixel size needs an adjustment
+  //      of 1.000452 (see p_scale in MocWideAngleDistortionMap.cpp), so that
+  //      the final blue filter pixel size = (0.007 / 1.000452)
+  //
+  //   For all other cameras, cam->focal_length returns the focal
+  //      length in mm, as needed by Socet Set
+
+  double focal = cam->FocalLength();  // focal length returned in mm
+
+//NOTE: UNCOMMENT CODE BELOW WHEN MOC IS WORKING IN SS
+//  if (isMocWARed)
+//    focal = focal * 0.007;  // pixel to mm conversion
+
+  // Get instrument summing modes
+  int csum = (int) detectorMap->SampleScaleFactor();
+  int dsum = (int) detectorMap->LineScaleFactor();
+
+  if (isLroNACL || isLroNACR || isHRSC) {
+    dsum = csum;
+  }
+
+  // Calculate location of boresight in image space, these are zero-based values
+  //
+  // Note: For MOC NA, the boresight is at the image center
+  //       For MOC WA, MRO HiRISE, MRO CTX, LRO_NACL, LRO_NACR and HRSC the
+  //       boresight is not at the detector center, but the boresight is at the
+  //       center of a NOPROJ'ED MRO HIRISE image
+
+  // Get line/samp of boresight pixel in detector space (summing == 1) 
+  focalMap->SetFocalPlane(0.0, 0.0);
+  double detectorBoresightSample = focalMap->DetectorSample();
+  double detectorBoresightLine = focalMap->DetectorLine();
+
+  // Convert sample of boresight pixel in detector into image space
+  // (summing, etc., is accounted for.)
+  detectorMap->SetDetector(detectorBoresightSample, detectorBoresightLine);
+  double boresightSample = detectorMap->ParentSample();
+
+  // Set Atmospheric correction coefficients to 0
+  double atmco[4] = {0.0, 0.0, 0.0, 0.0};
+
+  // Get totalLines, totalSamples and account for summed images
+  int totalLines = cube.lineCount();
+  int totalSamples = cube.sampleCount();
+
+  // Get the Interval Time in seconds and calculate
+  // scan duration in seconds
+  double scanDuration = 0.0;
+  double intTime = 0.0;
+
+  int numIntTimes = 0.0;
+  vector<LineRateChange> lineRates;
+  if (isHRSC) {
+    scanDuration = GetHRSCLineRates(&cube, lineRates, HRSCNadirCenterTime);
+
+    numIntTimes = lineRates.size();
+
+    if (numIntTimes == 1) {
+      intTime = lineRates.at(0).GetLineScanRate();
+    }
+    if (numIntTimes <= 0) {
+      QString msg = "HRSC: Invalid number of scan times";
+      throw IException(IException::Programmer, msg, _FILEINFO_);
+    }
+  }
+  else {
+    intTime = detectorMap->LineRate();  //LineRate is in seconds
+    scanDuration = intTime * totalLines;
+  }
+
+    // For reference, this is the code if calculating interval time
+    // via LineExposureDuration keyword off image labels:
+    //
+    // if (isMocNA || isMocWARed)
+    //   intTime = exposureDuration * (double) dsum / 1000.0;
+    // else if (isHiRise)
+    //   intTime = exposureDuration * (double) dsum / 1000000.0;
+
+  // Get along and cross scan pixel size for NA and WA sensors.
+  // NOTE:  
+  //     1) The MOC WA pixel size is gotten from moc20.ti and is 7 microns
+  //         HRSC pixel size is from the Instrument Addendum file
+  //     2) For others, cam->PixelPitch() returns the pixel pitch (size) in mm.
+  double alongScanPxSize = 0.0;
+  double crossScanPxSize = 0.0;
+//TO DO: UNCOMMENT THESE LINES ONCE MOC IS WORKING IN SS
+//  if (isMocWARed || isHRSC) { 
+  if (isHRSC) {
+    alongScanPxSize = csum * 0.007;
+    crossScanPxSize = dsum * 0.007;
+  }
+  else {
+    crossScanPxSize = dsum * cam->PixelPitch();
+
+    // Get the ephemeris time, ground position and undistorted focal plane X
+    // coordinate at the center line/samp of image
+    cam->SetImage(cube.sampleCount() / 2.0, cube.lineCount() / 2.0);
+
+    double tMid = cam->time().Et();
+
+    const double latCenter = cam->UniversalLatitude();
+    const double lonCenter = cam->UniversalLongitude();
+    const double radiusCenter = cam->LocalRadius().meters();
+
+    double uXCenter = distortionMap->UndistortedFocalPlaneX();
+
+    // from the ground position at the image center, increment the ephemeris
+    // time by the line rate and map the ground position into the sensor in
+    // undistorted focal plane coordinates
+
+    cam->setTime(iTime(tMid + intTime));
+    double uX, uY;
+    groundMap->GetXY(latCenter, lonCenter, radiusCenter, &uX, &uY);
+
+    // the along scan pixel size is the difference in focal plane X coordinates
+    alongScanPxSize = abs(uXCenter - uX);
+  }
+
+  // Now that we have totalLines, totalSamples, alongScanPxSize and 
+  // crossScanPxSize, fill the Interior Orientation Coefficient arrays
+  double ioCoefLine[10];
+  double ioCoefSample[10];
+  for (int i = 0; i <= 9; i++) {
+    ioCoefLine[i] = 0.0;
+    ioCoefSample[i] = 0.0;
+  }
+
+  ioCoefLine[0] = totalLines / 2.0;
+  ioCoefLine[1] = 1.0 / alongScanPxSize;
+
+  ioCoefSample[0] = totalSamples / 2.0;
+  ioCoefSample[2] = 1.0 / crossScanPxSize;
+
+  // Update the Rectification Terms found in the base sensor class
+  double rectificationTerms[6];
+  rectificationTerms[0] = totalLines / 2.0;
+  rectificationTerms[1] = 0.0;
+  rectificationTerms[2] = 1.0;
+  rectificationTerms[3] = totalSamples / 2.0;
+  rectificationTerms[4] = 1.0;
+  rectificationTerms[5] = 0.0;
+
+  // Fill the triangulation parameters array
+  double triParams[18];
+  for (int i = 0; i <= 17; i++)
+    triParams[i] = 0.0;
+
+  triParams[15] = focal;
+
+  // Set the Center Ground Point at the SOCET Set image, in radians
+  double centerGp[3];
+  double radii[3] = {0.0, 0.0, 0.0};
+  Distance Dradii[3];
+
+  cam->radii(Dradii);
+  radii[0] = Dradii[0].kilometers();
+  radii[1] = Dradii[1].kilometers();
+  radii[2] = Dradii[2].kilometers();
+
+  cam->SetImage(boresightSample, totalLines / 2.0);
+
+  centerGp[0] = DEG2RAD *
+                  TProjection::ToPlanetographic(cam->UniversalLatitude(), radii[0], radii[2]);
+  centerGp[1] = DEG2RAD * TProjection::To180Domain(cam->UniversalLongitude());
+  centerGp[2] = 0.0;
+  //**** NOTE: in the import_pushbroom SOCET SET program, centerGp[2] will be set to the SS
+  //**** project's gp_origin_z
+
+  // Now get keyword values that depend on ephemeris data.
+
+  // First get the ephemeris time and camera Lat Lon at image center line, boresight sample.
+  double centerLine = double(totalLines) / 2.0;
+
+  cam->SetImage(boresightSample, centerLine); //set to boresight of image
+  double etCenter = cam->time().Et();
+
+  // Get the sensor position at the image center in ographic lat,
+  // +E lon domain 180 coordinates, radians, height in meters
+  double sensorPosition[3] = {0.0, 0.0, 0.0};
+  double ocentricLat, e360Lon;
+  cam->subSpacecraftPoint(ocentricLat, e360Lon);
+  sensorPosition[0] = DEG2RAD * TProjection::ToPlanetographic(ocentricLat, radii[0], radii[2]);
+  sensorPosition[1] = DEG2RAD * TProjection::To180Domain(e360Lon);
+  sensorPosition[2] = cam->SpacecraftAltitude() * 1000.0;
+
+  // Build the ephem data.  If the image label contains the InstrumentPosition
+  // table, use it as a guide for number and spacing of Ephem points. 
+  // Otherwise (i.e, for dejittered HiRISE images), the number and spacing of
+  // ephem points based on hardcoded dtEphem value
+
+  // Using the InstrumentPosition table as a guide build the ephem data
+  QList< QList<double> > ephemPts;
+  QList< QList<double> > ephemRates;
+
+  PvlGroup kernels = cube.label()->findGroup("Kernels", Pvl::Traverse);
+  QString InstrumentPosition = (QString) kernels["InstrumentPosition"];
+
+  int numEphem = 0;      // number of ephemeris points
+  double dtEphem = 0.0;  // delta time of ephemeris points, seconds
+  if (InstrumentPosition == "Table") {
+    printf("InstrumentPosition is from Table\n");
+    // Labels contain SPK blob
+    // set up Ephem pts/rates number and spacing
+    Table tablePosition("InstrumentPosition", cubeHeader->fileName());
+    numEphem = tablePosition.Records();
+
+    // increase the number of ephem nodes by 20%.  This is somewhat random but
+    // generally intended to compensate for having equally time spaced nodes
+    // instead of of the potentially more efficient placement used by spiceinit
+    numEphem = int(double(numEphem) * 1.2);
+
+    // if numEphem calculated from SPICE blobs is too sparse for SOCET Set,
+    // multiply it by a factor of 30
+    // (30X was settled upon empirically.  In the future, make this an input parameter)
+    if (numEphem <= 10) {
+      numEphem = tablePosition.Records() * 30;
+    }
+  
+    // make the number of nodes odd
+    numEphem  = (numEphem % 2) == 1 ? numEphem : numEphem + 1;
+
+    // SOCET has a max number of ephem pts of 10000, and we're going to add twenty...
+    if (numEphem > 10000 - 20) {
+      numEphem = 9979;
+    }
+
+    dtEphem = scanDuration / double(numEphem);
+
+//WORKAROUND TO NOT EXTRAPOLATE (must increase numEphem after dtEphem established):
+//ALSO: Pad by 22 so that we can get an ultimate pad of 20 points for pos AND vel
+//because we must 'manually' compute velocities for now.
+    numEphem = numEphem + 22;
+
+    // build tables of ephemeris points and velocities
+    double et = etCenter - (((numEphem - 1) / 2) * dtEphem);
+    for (int i = 0; i < numEphem; i++) {
+      cam->setTime(iTime(et));
+      SpiceRotation *bodyRot = cam->bodyRotation();
+      vector<double> pos = bodyRot->ReferenceVector(cam->instrumentPosition()->Coordinate());
+//TO DO: UNCOMMENT THE FOLLOWING LINE WHEN VELOCITY BLOBS ARE CORRECT IN ISIS
+      //vector<double> vel = bodyRot->ReferenceVector(cam->instrumentPosition()->Velocity());
+
+      //Add the ephemeris position and velocity to their respective lists, in meters and meters/sec
+      QList<double> ephemPt;
+      QList<double> ephemRate;
+      ephemPts.append(ephemPt << pos[0] * 1000 << pos[1] * 1000 << pos[2] * 1000);
+//TO DO: UNCOMMENT THE FOLLOWING LINE WHEN VELOCITY BLOBS ARE CORRECT IN ISIS
+      //ephemRates.append(ephemRate << vel[0] * 1000 << vel[1] * 1000 << vel[2] * 1000);
+
+      et += dtEphem;
+    }
+
+// WORK AROUND TO NOT EXTRAPOLATE - comment out the following:
+////TO DO: WHEN VELOCITY BLOBS ARE CORRECT IN ISIS, linearly interpolate 10 nodes rather than 11
+////       (need 11 now for computation of velocity at first and last ephemeris point)
+//    // linearly interpolate 11 additional nodes before line 1 (SOCET requires this)
+//    for (int i = 0; i < 11; i++) {
+//      double vec[3] = {0.0, 0.0, 0.0};
+//      vec[0] = ephemPts[0][0] + (ephemPts[0][0] - ephemPts[1][0]);
+//      vec[1] = ephemPts[0][1] + (ephemPts[0][1] - ephemPts[1][1]);
+//      vec[2] = ephemPts[0][2] + (ephemPts[0][2] - ephemPts[1][2]);
+//      QList<double> ephemPt;
+//      ephemPts.prepend (ephemPt << vec[0] << vec[1] << vec[2]);
+//
+////TO DO: UNCOMMENT THE FOLLOWING LINES WHEN VELOCITY BLOBS ARE CORRECT IN ISIS
+//      //vec[0] = ephemRates[0][0] + (ephemRates[0][0] - ephemRates[1][0]);
+//      //vec[1] = ephemRates[0][1] + (ephemRates[0][1] - ephemRates[1][1]);
+//      //vec[2] = ephemRates[0][2] + (ephemRates[0][2] - ephemRates[1][2]);
+//      //QList<double> ephemRate;
+//      //ephemRates.prepend (ephemRate << vec[0] << vec[1] << vec[2]);
+//    }
+//
+////TO DO: WHEN VELOCITY BLOBS ARE CORRECT IN ISIS, linearly interpolate 10 nodes rather than 11
+////       (need 11 now for computation of velocity at first and last ephemeris point)
+//    // linearly interpolate 11 additional nodes after the last line (SOCET requires this)
+//    for (int i = 0; i < 11; i++) {
+//      double vec[3] = {0.0, 0.0, 0.0};
+//      int index = ephemPts.size() - 1;
+//      vec[0] = ephemPts[index][0] + (ephemPts[index][0] - ephemPts[index - 1][0]);
+//      vec[1] = ephemPts[index][1] + (ephemPts[index][1] - ephemPts[index - 1][1]);
+//      vec[2] = ephemPts[index][2] + (ephemPts[index][2] - ephemPts[index - 1][2]);
+//      QList<double> ephemPt;
+//      ephemPts.append(ephemPt << vec[0] << vec[1] << vec[2]);
+//
+////TO DO: UNCOMMENT THE FOLLOWING LINES WHEN VELOCITY BLOBS ARE CORRECT IN ISIS
+//      //vec[0] = ephemRates[index][0] + (ephemRates[index][0] - ephemRates[index - 1][0]);
+//      //vec[1] = ephemRates[index][1] + (ephemRates[index][1] - ephemRates[index - 1][1]);
+//      //vec[2] = ephemRates[index][2] + (ephemRates[index][2] - ephemRates[index - 1][2]);
+//      //QList<double> ephemRate;
+//      //ephemRates.append(ephemRate << vec[0] << vec[1] << vec[2]);
+//    }
+//
+//    numEphem += 20;
+//
+//TO DO: DELETE THE FOLLOWING LINES WHEN VELOCITY BLOBS ARE CORRECT IN ISIS
+    // Compute the spacecraft velocity at each ephemeris point
+    double deltaTime = 2.0 * dtEphem;
+    //WORKAROUND TO NOT EXTRAPOLATE (remove count of extra points to the position QList)):
+    numEphem = numEphem - 2;
+    for (int i = 0; i < numEphem; i++) {
+      double vec[3] = {0.0, 0.0, 0.0};
+      vec[0] = (ephemPts[i+2][0] - ephemPts[i][0]) / deltaTime;
+      vec[1] = (ephemPts[i+2][1] - ephemPts[i][1]) / deltaTime;
+      vec[2] = (ephemPts[i+2][2] - ephemPts[i][2]) / deltaTime;
+      QList<double> ephemRate;
+      ephemRates.append(ephemRate << vec[0] << vec[1] << vec[2]);
+    }
+
+  }
+  else {
+    printf("Instrument Position is NOT from Table\n");
+    // Calculate the number of ephemeris points that are needed, based on the
+    // value of dtEphem (Delta-Time-Ephemeris).  SOCET SET needs the ephemeris
+    // points to exceed the image range for interpolation.  For now, attempt a
+    // padding of 10 ephemeris points on either side of the image.
+
+    if (isMocNA || isHiRise || isCTX || isLroNACL || isLroNACR || isHRSC) {
+      // Try increment of every 300 image lines
+      dtEphem = 300 * intTime;  // Make this a user definable increment?
+    }
+    else { // Set increment for WA images to one second
+      dtEphem = 1.0;
+    }
+
+    // Pad by 10 ephem pts on each side of the image
+    numEphem = (int)(scanDuration / dtEphem) + 20;
+
+    // if numEphem is even, make it odd so that the number of ephemeris points
+    // is equal on either side of T_CENTER
+    if ((numEphem % 2) == 0) {
+      numEphem++;
+    }
+
+//TO DO: DELETE THE FOLLOWING LINE WHEN VELOCITY BLOBS ARE CORRECT IN ISIS
+    numEphem = numEphem + 2; // Add two for calculation of velocity vectors...
+
+    // Find the ephemeris time for the first ephemeris point, and from that, get
+    // to_ephem needed by SOCET (to_ephem is relative to etCenter)
+    double et = etCenter - (((numEphem - 1) / 2) * dtEphem);
+    for (int i = 0; i < numEphem; i++) {
+      cam->setTime(iTime(et));
+      SpiceRotation *bodyRot = cam->bodyRotation();
+      vector<double> pos = bodyRot->ReferenceVector(cam->instrumentPosition()->Coordinate());
+//TO DO: UNCOMMENT THE FOLLOWING LINE WHEN VELOCITY BLOBS ARE CORRECT IN ISIS
+      //vector<double> vel = bodyRot->ReferenceVector(cam->instrumentPosition()->Velocity());
+
+      //Add the ephemeris position and velocity to their respective lists, in meters and meters/sec
+      QList<double> ephemPt;
+      QList<double> ephemRate;
+      ephemPts.append(ephemPt << pos[0] * 1000 << pos[1] * 1000 << pos[2] * 1000);
+//TO DO: UNCOMMENT THE FOLLOWING LINE WHEN VELOCITY BLOBS ARE CORRECT IN ISIS
+      //ephemRates.append(ephemRate << vel[0] * 1000 << vel[1] * 1000 << vel[2] * 1000);
+
+      et += dtEphem;
+    }
+//TO DO: DELETE THE FOLLOWING LINES WHEN VELOCITY BLOBS ARE CORRECT IN ISIS
+    // Compute the spacecraft velocity at each ephemeris point
+    // (We must do this when blobs are not attached because the Spice Class
+    // stores in memory the same data that would be in a blob...even when reading NAIF kernels)
+    double deltaTime = 2.0 * dtEphem;
+    numEphem = numEphem - 2; // set numEphem back to the number we need output
+    for (int i = 0; i < numEphem; i++) {
+      double vec[3] = {0.0, 0.0, 0.0};
+      vec[0] = (ephemPts[i+2][0] - ephemPts[i][0]) / deltaTime;
+      vec[1] = (ephemPts[i+2][1] - ephemPts[i][1]) / deltaTime;
+      vec[2] = (ephemPts[i+2][2] - ephemPts[i][2]) / deltaTime;
+      QList<double> ephemRate;
+      ephemRates.append(ephemRate << vec[0] << vec[1] << vec[2]);
+    }
+  }
+
+  //update ephem stats
+  double etFirstEphem = etCenter - (((numEphem - 1) / 2) * dtEphem);
+  double t0Ephem = etFirstEphem - etCenter;
+
+  // Using the intrumentPointing table as a guide build the quarternions
+  // for simplicity sake we'll leave the mountingAngles as identity
+  // and store the complete rotation from body fixed to camera in the
+  // quarternions
+
+  //set up quaternions number and spacing
+  Table tablePointing("InstrumentPointing", cubeHeader->fileName());
+
+  //number of quaternions
+  int numQuaternions = tablePointing.Records();
+
+  // increase the number of quaternions nodes by 20%. This is somewhat random but
+  // generally intended to compensate for having equally time spaced nodes
+  // instead of of the potentially more efficient placement used by spiceinit
+  numQuaternions = (int)(numQuaternions * 1.2);
+
+  // if numQuaternions calculated from SPICE blobs is too sparse for SOCET Set,
+  // mulitiply it by a factor of 30
+  // (30X was settled upon emperically.  In the future, make this an input parameter)
+  if (numQuaternions <= 10) {
+    numQuaternions = tablePointing.Records() * 30;
+  }
+  
+  //make the number of nodes odd
+  numQuaternions = (numQuaternions % 2) == 1 ? numQuaternions : numQuaternions + 1;
+
+  // SOCET has a max number of quaternions of 20000, and we're going to add twenty...
+  if (numQuaternions > 20000 - 20) {
+    numQuaternions = 19180;
+  }
+
+  double dtQuat = scanDuration / double(numQuaternions);
+
+//WORKAROUND TO NOT EXTRAPOLATE (must increase numQuaterions after dtQtat established):
+  numQuaternions = numQuaternions + 20;
+
+  // build the tables of values
+  QList< QList<double> > quaternions;
+  double et = etCenter - (((numQuaternions - 1) / 2) * dtQuat);
+
+  for (int i = 0; i < numQuaternions; i++) {
+    cam->setTime(iTime(et));
+    vector<double> j2000ToBodyFixedMatrixVector = cam->bodyRotation()->Matrix();
+    vector<double> j2000ToCameraMatrixVector = cam->instrumentRotation()->Matrix();
+    double quaternion[4] = {0.0, 0.0, 0.0, 0.0};
+
+    double j2000ToBodyFixedRotationMatrix[3][3], //rotation from J2000 to target (aka body, planet)
+           j2000ToCameraRotationMatrix[3][3], //rotation from J2000 to spacecraft
+           cameraToBodyFixedRotationMatrix[3][3]; //rotation from camera to target
+
+    // reformat vectors to 3x3 rotation matricies
+    for (int j = 0; j < 3; j++) {
+      for (int k = 0; k < 3; k++) {
+        j2000ToBodyFixedRotationMatrix[j][k] = j2000ToBodyFixedMatrixVector[3 * j + k];
+        j2000ToCameraRotationMatrix[j][k] = j2000ToCameraMatrixVector[3 * j + k];
+      }
+    }
+
+    // get the quaternion
+    mxmt_c(j2000ToBodyFixedRotationMatrix, j2000ToCameraRotationMatrix,
+           cameraToBodyFixedRotationMatrix);
+    m2q_c(cameraToBodyFixedRotationMatrix, quaternion);
+
+    // add the quaternion to the list of quaternions
+    QList<double> quat;
+    quaternions.append(quat << quaternion[1] << quaternion[2] << quaternion[3] <<
+                                quaternion[0]);
+    //note also that the order is changed to match socet
+
+    et += dtQuat;
+  }
+
+// WORK AROUND TO NOT EXTRAPOLATE - comment out the following:
+//  // linearly interpolate 10 additional nodes before the first quaternion (SOCET requires this)
+//  for (int i = 0; i < 10; i++) {
+//    double vec[4] = {0.0, 0.0, 0.0, 0.0};
+//    vec[0] = quaternions[0][0] + (quaternions[0][0] - quaternions[1][0]);
+//    vec[1] = quaternions[0][1] + (quaternions[0][1] - quaternions[1][1]);
+//    vec[2] = quaternions[0][2] + (quaternions[0][2] - quaternions[1][2]);
+//    vec[3] = quaternions[0][3] + (quaternions[0][3] - quaternions[1][3]);
+//    QList<double> quat;
+//    quaternions.prepend (quat << vec[0] << vec[1] << vec[2] << vec[3]);
+//  }
+//
+//  // linearly interpolate 10 additional nodes after the last quaternion (SOCET requires this)
+//  for (int i = 0; i < 10; i++) {
+//    double vec[4] = {0.0, 0.0, 0.0, 0.0};
+//    int index = quaternions.size() - 1;
+//    vec[0] = quaternions[index][0] + (quaternions[index][0] - quaternions[index - 1][0]);
+//    vec[1] = quaternions[index][1] + (quaternions[index][1] - quaternions[index - 1][1]);
+//    vec[2] = quaternions[index][2] + (quaternions[index][2] - quaternions[index - 1][2]);
+//    vec[3] = quaternions[index][3] + (quaternions[index][3] - quaternions[index - 1][3]);
+//    QList<double> quat;
+//    quaternions.append(quat << vec[0] << vec[1] << vec[2] << vec[3]);
+//  }
+//  
+//  //update quaternions stats
+//  numQuaternions += 20;
+
+  //ephemeris time of the first quarternion
+  double et0Quat = etCenter - (((numQuaternions - 1) / 2) * dtQuat);
+
+  //quadratic time of the first quarternion
+  double qt0Quat = et0Quat - etCenter;
+
+  //query remaining transformation parameters from Camera Classes
+  //transformation to distortionless focal plane
+  double zDirection = distortionMap->ZDirection();
+
+  //transformation from DistortionlessFocalPlane to FocalPlane
+  vector<double> opticalDistCoefs = distortionMap->OpticalDistortionCoefficients();
+
+  // For instruments with less than 3 distortion coefficients, set the
+  // unused ones to 0.0
+  opticalDistCoefs.resize(3, 0);
+    
+  //transformation from focal plane to detector
+  const double *iTransS = focalMap->TransS();
+  const double *iTransL = focalMap->TransL();
+  double detectorSampleOrigin = focalMap->DetectorSampleOrigin();
+  double detectorLineOrigin = focalMap->DetectorLineOrigin();
+
+  //transformation from detector to cube
+  double startingSample = detectorMap->AdjustedStartingSample();
+  double startingLine = detectorMap->AdjustedStartingLine();
+  double sampleSumming = detectorMap->SampleScaleFactor();
+  double etStart = ((LineScanCameraDetectorMap *)detectorMap)->StartTime();
+  double lineOffset = focalMap->DetectorLineOffset();
+
+  // We are done with computing keyword values, so output the Line Scanner
+  // Keyword file.
+
+  // This is the SOCET SET base sensor class keywords portion of support file:
+  toStrm.setf(ios::scientific);
+  toStrm << "RECTIFICATION_TERMS" << endl;
+  toStrm << "        " << setprecision(14) << rectificationTerms[0] << " " <<
+              rectificationTerms[1] << " " << rectificationTerms[2] << endl;
+  toStrm << "        " << rectificationTerms[3] << " " << rectificationTerms[4] <<
+              " " << rectificationTerms[5] << endl;
+
+  toStrm << "GROUND_ZERO ";
+  toStrm << centerGp[0] << " " << centerGp[1] << " " << centerGp[2] << endl;
+
+  toStrm << "LOAD_PT ";
+  toStrm << centerGp[0] << " " << centerGp[1] << " " << centerGp[2] << endl;
+
+  toStrm << "COORD_SYSTEM 1" << endl;
+
+  toStrm << "IMAGE_MOTION 0" << endl;
+
+  // This is the line scanner sensor model portion of support file:
+  toStrm << "SENSOR_TYPE USGSAstroLineScannerKLEv" << endl;
+  toStrm << "SENSOR_MODE UNKNOWN" << endl;
+
+  toStrm << "FOCAL " << focal << endl;
+
+  toStrm << "ATMCO";
+  for (int i = 0; i < 4; i++) {
+    toStrm << " " << atmco[i];
+  }
+  toStrm << endl;
+
+  toStrm << "IOCOEF_LINE";
+  for (int i = 0; i < 10; i++) {
+    toStrm << " " << ioCoefLine[i];
+  }
+  toStrm << endl;
+
+  toStrm << "IOCOEF_SAMPLE";
+  for (int i = 0; i < 10; i++) {
+    toStrm << " " << ioCoefSample[i];
+  }
+  toStrm << endl;
+
+  toStrm << "ABERR    0" << endl;
+  toStrm << "ATMREF   0" << endl;
+  toStrm << "PLATFORM   1" << endl;
+  toStrm << "SOURCE_FLAG  1" << endl;
+  toStrm << "SINGLE_EPHEMERIDE  0" << endl;
+
+  //Note, for TRI_PARAMETERS, we print the first element separate from the rest so that the array
+  //starts in the first column.  Otherwise, SOCET Set will treat the array as a comment
+  toStrm << "TRI_PARAMETERS" << endl;
+  toStrm << triParams[0];
+  for (int i = 1; i < 18; i++) {
+    toStrm << " " << triParams[i];
+  }
+  toStrm << endl;
+
+  toStrm << setprecision(25) << "T_CENTER  ";
+  double tCenter = 0.0;
+  if (isHRSC) {
+    tCenter = etCenter - HRSCNadirCenterTime;
+    toStrm << tCenter << endl;
+  }
+  else {
+    toStrm << tCenter << endl;
+  }
+
+  toStrm << "DT_EPHEM  " << dtEphem << endl;
+
+  toStrm << "T0_EPHEM  ";
+  if (isHRSC) {
+    double t = tCenter + t0Ephem;
+    toStrm << t << endl;
+  }
+  else {
+    toStrm << t0Ephem << endl;
+  }
+
+  toStrm << "NUMBER_OF_EPHEM   " << numEphem << endl;
+
+  toStrm << "EPHEM_PTS" << endl;
+//TO DO: DELETE THE FOLLOWING LINE WHEN VELOCITY BLOBS ARE CORRECT IN ISIS
+  for (int i = 1; i <= numEphem; i++) {
+//TO DO: UNCOMMENT THE FOLLOWING LINE WHEN VELOCITY BLOBS ARE CORRECT IN ISIS
+  //for (int i = 0; i < numEphem; i++) {
+    toStrm << " " << ephemPts[i][0];
+    toStrm << " " << ephemPts[i][1];
+    toStrm << " " << ephemPts[i][2] << endl;
+  }
+
+  toStrm  << "\n\nEPHEM_RATES" << endl;
+  for (int i = 0; i < numEphem; i++) {
+    toStrm << " " << ephemRates[i][0];
+    toStrm << " " << ephemRates[i][1];
+    toStrm << " " << ephemRates[i][2] << endl;
+  }
+ 
+  toStrm << "\n\nDT_QUAT " << dtQuat << endl;
+
+  toStrm << "T0_QUAT ";
+
+  if (isHRSC) {
+    double t = tCenter + qt0Quat;
+    toStrm << t << endl;
+  }
+  else {
+    toStrm << qt0Quat << endl;
+  }
+
+  toStrm << "NUMBER_OF_QUATERNIONS  " << numQuaternions << endl;
+  toStrm << "QUATERNIONS" << endl;
+  for (int i = 0; i < numQuaternions; i++) {
+    toStrm << " " << quaternions[i][0]; 
+    toStrm << " " << quaternions[i][1];
+    toStrm << " " << quaternions[i][2];
+    toStrm << " " << quaternions[i][3] << endl;
+  }
+
+  toStrm << "\n\nSCAN_DURATION " << scanDuration << endl;
+
+  if (isHRSC && numIntTimes > 1) {
+    toStrm << "\nNUMBER_OF_INT_TIMES " << numIntTimes << endl;
+    toStrm  << "INT_TIMES" << endl;
+    for (int i = 0; i < numIntTimes; i++) {
+      LineRateChange lr = lineRates.at(i);
+      toStrm << " " << lr.GetStartLine();
+      //toStrm << " " << lr.GetStartEt() - tCenter;
+      toStrm << " " << lr.GetStartEt();
+      toStrm << " " << lr.GetLineScanRate() << endl;
+    }
+  }
+  else {
+    toStrm << "INT_TIME " << intTime << endl;
+  }
+
+  toStrm << "\nALONG_SCAN_PIXEL_SIZE  " << alongScanPxSize << endl;
+  toStrm << "CROSS_SCAN_PIXEL_SIZE  " << crossScanPxSize << endl;
+
+  toStrm << "\nCENTER_GP";
+  for (int i = 0; i < 3; i++) {
+    toStrm << " " << centerGp[i];
+  }
+  toStrm << endl;
+
+  toStrm << "SENSOR_POSITION";
+  for (int i = 0; i < 3; i++) {
+    toStrm << " " << sensorPosition[i];
+  }
+  toStrm << endl;
+
+  toStrm << "MOUNTING_ANGLES";
+  double mountingAngles[3] = {0.0, 0.0, 0.0};
+  for (int i = 0; i < 3; i++) {
+    toStrm << " " << mountingAngles[i];
+  }
+  toStrm << endl;
+
+  toStrm << "\nTOTAL_LINES " << totalLines << endl;
+  toStrm << "TOTAL_SAMPLES " << totalSamples << endl;
+  toStrm << "\n\n\n" << endl;
+
+  toStrm << "IKCODE  " << ikCode << endl;
+  toStrm << "ISIS_Z_DIRECTION  " << zDirection << endl;
+
+  toStrm << "OPTICAL_DIST_COEF";
+  for (int i = 0; i < 3; i++) {
+    toStrm << " " << opticalDistCoefs[i];
+  }
+  toStrm << endl;
+
+  toStrm << "ITRANSS";
+  for (int i = 0; i < 3; i++) {
+    toStrm << " " << iTransS[i];
+  }
+  toStrm << endl;
+
+  toStrm << "ITRANSL";
+  for (int i = 0; i < 3; i++) {
+    toStrm << " " << iTransL[i];
+  }
+  toStrm << endl;
+
+  toStrm << "DETECTOR_SAMPLE_ORIGIN " << detectorSampleOrigin << endl;
+  toStrm << "DETECTOR_LINE_ORIGIN " << detectorLineOrigin << endl;
+  toStrm << "DETECTOR_LINE_OFFSET  " << lineOffset << endl;
+  toStrm << "DETECTOR_SAMPLE_SUMMING  " << sampleSumming << endl;
+
+  toStrm << "STARTING_SAMPLE " << startingSample << endl;
+  toStrm << "STARTING_LINE " << startingLine << endl;
+
+  // if cube has been cropped, recompute etStart
+  if (cube.hasGroup("AlphaCube")) {
+    cube.camera()->SetImage(1, 0.5);
+    etStart = cube.camera()->time().Et();
+  }
+
+  toStrm << "STARTING_EPHEMERIS_TIME " << setprecision(25) << etStart + tCenter << endl;
+  toStrm << "CENTER_EPHEMERIS_TIME " << etCenter + tCenter << endl;
+} // end main
+
+// method to retrieve line exposure rates from hrsc cube
+double GetHRSCLineRates(Cube *cube, vector<LineRateChange> &lineRates,
+                        double &HRSCNadirCenterTime) {
+
+  Camera *cam = cube->camera();
+
+  double scanDuration = 0.0;
+  double lineRate;
+  double currentLineRate = -1.0;
+
+  // loop over image lines
+  int nLines = cam->Lines();
+  for (int i = 1; i <= nLines; i++) {
+    cam->SetImage(1, i);
+
+    lineRate = cam->DetectorMap()->LineRate();
+
+    scanDuration += lineRate;
+
+    if (lineRate == currentLineRate) {
+      continue;
+    }
+
+    currentLineRate = lineRate;
+
+    lineRates.push_back(LineRateChange(i, cam->time().Et()-HRSCNadirCenterTime, currentLineRate));
+  }
+
+  return scanDuration;
+}  // end GetHRSCLineRates
+
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/socetlinescankeywords_noExtrapolation.xml b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/socetlinescankeywords_noExtrapolation.xml
new file mode 100644
index 0000000000000000000000000000000000000000..270d5ab9ddef6a6508905492867a7c2d22804bec
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/socetlinescankeywords_noExtrapolation.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<application name="socetlinescankeywords_noExtrapolation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://isis.astrogeology.usgs.gov/Schemas/Application/application.xsd">
+  <brief>
+    Create the Line Scanner Sensor section of a SOCET Set Line Scanner support file
+  </brief>
+
+  <description>
+    This is an ISIS to SOCET Set (trademark BAE Systems) translation program for Line Scanner
+    images.  It calculates keyword values specific to SOCET Set's USGSAstro Line Scanner sensor
+    model and generates the USGSAstro Line Scanner section of a SOCET Set Support file for input
+    to the USGSAstro SOCET Set program 'import_pushbroom.' <br/>
+    <br/>
+    <i>With the exception of HiRISE jitter corrected images, the input cube must be a "level 1"
+    image <b>with SPICE data attached to the label</b> (see spiceinit).</i>  HiRISE jitter
+    corrected images (see hijitter) do not have Spacecraft Position Kernel (SPK) data attached
+    to the label, so these are handled as a special case in the program.<br/>
+    <br/>
+    The following are supported instruments and derived products:
+    <pre>
+       MRO-HiRISE
+       MRO-HiRISE IDEAL (i.e., noproj'ed images)
+       MRO-HiRISE IDEAL Jitter Corrected (i.e., hijitter'ed images)
+       MRO-CTX
+       LRO-NACL
+       LRO-NACR
+       MEX-HRSC
+<!--
+       MGS-MOC
+-->
+    </pre>
+  </description>
+
+  <category>
+    <categoryItem>SOCET Set Translation</categoryItem>
+  </category>
+
+    <seeAlso>
+    <applications>
+      <item>spiceinit</item>
+      <item>hijitter</item>
+    </applications>
+  </seeAlso>
+
+  <history>
+    <change name="E. Howington-Kraus" date="2008-10-23">
+      Original version
+    </change>
+    <change name="K. Edmundson" date="2011-05-13">
+      Added NADIR_CENTER_TIME parameter
+    </change>
+    <change name="E. Howington-Kraus" date="2011-08-04">
+      Changed default NADIR_CENTER_TIME from None to 0.0
+    </change>
+    <change name="E. Howington-Kraus" date="2012-04-26">
+      Added MOUNT_ANG_TBL option
+    </change>
+    <change name="O. Thomas" date="2012-08-23">
+      Renamed program from calc_pushbroom_keywords to socetlinescankeywords, added quaternions, made
+      changes from SOCET Set Generic Pushbroom sensor model to the USGSAsro Line Scanner sensor
+      model, and removed the MOUNT_ANG_TBL option.  Started modifications to meet ISIS coding
+      standards.
+    </change>
+    <change name="E. Howington-Kraus" date="2013-02-20">
+      Completed modifications to meet ISIS coding standards for formal installation into ISIS3.
+      Added support for HiRISE jitter-corrected images created at U of A.  Added check for needed
+      SPICE data (blobs) attached to the cube label. Renamed parameter PUSHKEY to TO.  Temporarily
+      removed support for MEX-HSRC and MGS-MOC sensors until they are tested and working under the
+      SOCET Set USGSAstro Line Scanner sensor model.  References #1490.
+    </change>
+    <change name="E. Howington-Kraus" date="2013-06-21">
+      Modified to (1) generate ephemeris points and quaternions at a closer time interval if the
+      spacing of the attached SPICE data are too sparse for the SOCET Set USGSAstro Line Scanner
+      sensor model; (2) increase the precision of the output SOCET Set keyword values; (3) redefine
+      the pixel-location of the input image's center ephemeris time, and (4) compute spacecraft
+      velocity values instead of using SPICE velocity data blobs.  Fixes #1672.
+    </change>
+    <change name="K. Edmundson" date="2017-01-09">
+      Hopefully final updates to handle HRSC images with both constant and variable line exposure rates.
+      Also brought up to ISIS3 coding standards. References #5278.
+    </change>
+  </history>
+
+  <groups>
+    <group name="Files">
+      <parameter name="FROM">
+        <type>cube</type>
+        <fileMode>input</fileMode>
+        <brief>
+          Filename of a cube
+        </brief>
+        <description>
+          Level 1 Input Line Scanner cube with SPICE data attached. Supported instruments and
+          derived products are MRO-HiRISE, MRO-HiRISE IDEAL, MRO-HiRISE IDEAL Jitter Corrected,
+          MRO-CTX, LRO-NACL, and LRO-NACR.
+        </description>
+        <filter>
+          *.cub
+        </filter>
+      </parameter>
+
+      <parameter name="TO">
+        <type>filename</type>
+        <fileMode>output</fileMode>
+        <brief>SOCET Set Support file keywords</brief>
+        <internalDefault>None</internalDefault>
+        <description>
+          Output text file of the SOCET Set USGSAstro Line Scaner section of a SOCET Set support
+          file. This output file is one of the input files to USGSAstro SOCET Set program
+          'import_pushbroom.'
+        </description>
+      </parameter>
+
+      <parameter name="HRSC_NADIRCENTERTIME">
+        <brief>Ephemeris time at center of HRSC nadir image 
+        </brief>
+        <description>
+          Ephemeris time at center of HRSC nadir image.  This is
+          used so that the SOCET Set keyword T0_CENTER value references
+          the same absolute ephemeris time in an HRSC image set.
+        </description>
+        <type>double</type>
+        <default><item>0.0</item></default>
+      </parameter>
+    </group>
+  </groups>
+</application>
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/Makefile b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..46d84c74c297304e943452a44e06b111f179a92b
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/Makefile
@@ -0,0 +1,4 @@
+BLANKS = "%-6s"    
+LENGTH = "%-40s"
+
+include $(ISISROOT)/make/isismake.tststree
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hirise/Makefile b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hirise/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..9c0e3d5b6c1c9809e26d15e30d11639e6a5d74b9
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hirise/Makefile
@@ -0,0 +1,30 @@
+APPNAME = socetlinescankeywords
+
+include $(ISISROOT)/make/isismake.tsts
+
+#Use sed to lower output precision to 5 decimal places in output txt files
+
+commands:
+#Test HiRISE noproj'ed (Ideal Camera) cube
+	$(APPNAME) from=$(INPUT)/ESP_028449_1700_REDmos_hijitreged.balance.noproj.8bit.cub \
+	  to=$(OUTPUT)/ESP_028449_1700_REDmos_hijitreged_keywords.txt > /dev/null;
+	cat $(OUTPUT)/ESP_028449_1700_REDmos_hijitreged_keywords.txt | \
+	 sed 's/\([0-9]\.[0-9][0-9][0-9][0-9][0-9]\)\([0-9]*\)/\1/g' > \
+	 $(OUTPUT)/sed_ESP_028449_1700_REDmos_hijitreged_keywords.txt
+	$(RM) $(OUTPUT)/ESP_028449_1700_REDmos_hijitreged_keywords.txt
+
+#Test HiRISE hijitter'ed (Ideal Camera) cube
+	$(APPNAME) from=$(INPUT)/ESP_026339_1700_RED_DEJITTERED.8bit.cub \
+	  to=$(OUTPUT)/ESP_026339_1700_RED_DEJITTERED_keywords.txt > /dev/null;
+	cat $(OUTPUT)/ESP_026339_1700_RED_DEJITTERED_keywords.txt | \
+	 sed 's/\([0-9]\.[0-9][0-9][0-9][0-9][0-9]\)\([0-9]*\)/\1/g' > \
+	 $(OUTPUT)/sed_ESP_026339_1700_RED_DEJITTERED_keywords.txt
+	$(RM) $(OUTPUT)/ESP_026339_1700_RED_DEJITTERED_keywords.txt
+
+#Test HiRISE CCD (HiRISE Camera) cube
+	$(APPNAME) from=$(INPUT)/ESP_028449_1700_RED5.balance.cub \
+	  to=$(OUTPUT)/ESP_028449_1700_RED5_keywords.txt > /dev/null;
+	cat $(OUTPUT)/ESP_028449_1700_RED5_keywords.txt | \
+	 sed 's/\([0-9]\.[0-9][0-9][0-9][0-9][0-9]\)\([0-9]*\)/\1/g' > \
+	 $(OUTPUT)/sed_ESP_028449_1700_RED5_keywords.txt
+	$(RM) $(OUTPUT)/ESP_028449_1700_RED5_keywords.txt
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hirise/truth/sed_ESP_026339_1700_RED_DEJITTERED_keywords.txt b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hirise/truth/sed_ESP_026339_1700_RED_DEJITTERED_keywords.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d07d0cf1368eef391e920166aacfb08c2f18f18d
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hirise/truth/sed_ESP_026339_1700_RED_DEJITTERED_keywords.txt
@@ -0,0 +1,648 @@
+RECTIFICATION_TERMS
+        3.00000e+04 0.00000e+00 1.00000e+00
+        1.00000e+04 1.00000e+00 0.00000e+00
+GROUND_ZERO -1.74024e-01 -1.60194e+00 0.00000e+00
+LOAD_PT -1.74024e-01 -1.60194e+00 0.00000e+00
+COORD_SYSTEM 1
+IMAGE_MOTION 0
+SENSOR_TYPE USGSAstroLineScanner
+SENSOR_MODE UNKNOWN
+FOCAL 1.19949e+04
+ATMCO 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_LINE 3.00000e+04 8.34013e+01 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_SAMPLE 1.00000e+04 0.00000e+00 8.33333e+01 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+ABERR    0
+ATMREF   0
+PLATFORM   1
+SOURCE_FLAG  1
+SINGLE_EPHEMERIDE  0
+TRI_PARAMETERS
+0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.19949e+04 0.00000e+00 0.00000e+00
+T_CENTER  0.00000e+00
+DT_EPHEM  2.43749e-02
+T0_EPHEM  -2.68124e+00
+NUMBER_OF_EPHEM   221
+EPHEM_PTS
+ -6.90396e+04 -3.60169e+06 -6.30370e+05
+ -6.90501e+04 -3.60171e+06 -6.30288e+05
+ -6.90606e+04 -3.60172e+06 -6.30206e+05
+ -6.90711e+04 -3.60174e+06 -6.30124e+05
+ -6.90816e+04 -3.60175e+06 -6.30042e+05
+ -6.90921e+04 -3.60177e+06 -6.29960e+05
+ -6.91027e+04 -3.60178e+06 -6.29878e+05
+ -6.91132e+04 -3.60179e+06 -6.29796e+05
+ -6.91237e+04 -3.60181e+06 -6.29714e+05
+ -6.91342e+04 -3.60182e+06 -6.29632e+05
+ -6.91447e+04 -3.60184e+06 -6.29550e+05
+ -6.91552e+04 -3.60185e+06 -6.29468e+05
+ -6.91657e+04 -3.60187e+06 -6.29386e+05
+ -6.91762e+04 -3.60188e+06 -6.29304e+05
+ -6.91867e+04 -3.60190e+06 -6.29222e+05
+ -6.91973e+04 -3.60191e+06 -6.29139e+05
+ -6.92078e+04 -3.60193e+06 -6.29057e+05
+ -6.92183e+04 -3.60194e+06 -6.28975e+05
+ -6.92288e+04 -3.60196e+06 -6.28893e+05
+ -6.92393e+04 -3.60197e+06 -6.28811e+05
+ -6.92498e+04 -3.60199e+06 -6.28729e+05
+ -6.92603e+04 -3.60200e+06 -6.28647e+05
+ -6.92708e+04 -3.60202e+06 -6.28565e+05
+ -6.92813e+04 -3.60203e+06 -6.28483e+05
+ -6.92919e+04 -3.60205e+06 -6.28401e+05
+ -6.93024e+04 -3.60206e+06 -6.28319e+05
+ -6.93129e+04 -3.60208e+06 -6.28237e+05
+ -6.93234e+04 -3.60209e+06 -6.28155e+05
+ -6.93339e+04 -3.60211e+06 -6.28073e+05
+ -6.93444e+04 -3.60212e+06 -6.27991e+05
+ -6.93549e+04 -3.60214e+06 -6.27908e+05
+ -6.93654e+04 -3.60215e+06 -6.27826e+05
+ -6.93759e+04 -3.60217e+06 -6.27744e+05
+ -6.93865e+04 -3.60218e+06 -6.27662e+05
+ -6.93970e+04 -3.60220e+06 -6.27580e+05
+ -6.94075e+04 -3.60221e+06 -6.27498e+05
+ -6.94180e+04 -3.60223e+06 -6.27416e+05
+ -6.94285e+04 -3.60224e+06 -6.27334e+05
+ -6.94390e+04 -3.60226e+06 -6.27252e+05
+ -6.94495e+04 -3.60227e+06 -6.27170e+05
+ -6.94600e+04 -3.60229e+06 -6.27088e+05
+ -6.94706e+04 -3.60230e+06 -6.27006e+05
+ -6.94811e+04 -3.60232e+06 -6.26924e+05
+ -6.94916e+04 -3.60233e+06 -6.26842e+05
+ -6.95021e+04 -3.60234e+06 -6.26759e+05
+ -6.95126e+04 -3.60236e+06 -6.26677e+05
+ -6.95231e+04 -3.60237e+06 -6.26595e+05
+ -6.95336e+04 -3.60239e+06 -6.26513e+05
+ -6.95441e+04 -3.60240e+06 -6.26431e+05
+ -6.95547e+04 -3.60242e+06 -6.26349e+05
+ -6.95652e+04 -3.60243e+06 -6.26267e+05
+ -6.95757e+04 -3.60245e+06 -6.26185e+05
+ -6.95862e+04 -3.60246e+06 -6.26103e+05
+ -6.95967e+04 -3.60248e+06 -6.26021e+05
+ -6.96072e+04 -3.60249e+06 -6.25939e+05
+ -6.96177e+04 -3.60251e+06 -6.25857e+05
+ -6.96282e+04 -3.60252e+06 -6.25775e+05
+ -6.96387e+04 -3.60254e+06 -6.25692e+05
+ -6.96493e+04 -3.60255e+06 -6.25610e+05
+ -6.96598e+04 -3.60257e+06 -6.25528e+05
+ -6.96703e+04 -3.60258e+06 -6.25446e+05
+ -6.96808e+04 -3.60260e+06 -6.25364e+05
+ -6.96913e+04 -3.60261e+06 -6.25282e+05
+ -6.97018e+04 -3.60263e+06 -6.25200e+05
+ -6.97123e+04 -3.60264e+06 -6.25118e+05
+ -6.97228e+04 -3.60266e+06 -6.25036e+05
+ -6.97334e+04 -3.60267e+06 -6.24954e+05
+ -6.97439e+04 -3.60269e+06 -6.24872e+05
+ -6.97544e+04 -3.60270e+06 -6.24790e+05
+ -6.97649e+04 -3.60271e+06 -6.24707e+05
+ -6.97754e+04 -3.60273e+06 -6.24625e+05
+ -6.97859e+04 -3.60274e+06 -6.24543e+05
+ -6.97964e+04 -3.60276e+06 -6.24461e+05
+ -6.98069e+04 -3.60277e+06 -6.24379e+05
+ -6.98175e+04 -3.60279e+06 -6.24297e+05
+ -6.98280e+04 -3.60280e+06 -6.24215e+05
+ -6.98385e+04 -3.60282e+06 -6.24133e+05
+ -6.98490e+04 -3.60283e+06 -6.24051e+05
+ -6.98595e+04 -3.60285e+06 -6.23969e+05
+ -6.98700e+04 -3.60286e+06 -6.23887e+05
+ -6.98805e+04 -3.60288e+06 -6.23805e+05
+ -6.98910e+04 -3.60289e+06 -6.23722e+05
+ -6.99016e+04 -3.60291e+06 -6.23640e+05
+ -6.99121e+04 -3.60292e+06 -6.23558e+05
+ -6.99226e+04 -3.60294e+06 -6.23476e+05
+ -6.99331e+04 -3.60295e+06 -6.23394e+05
+ -6.99436e+04 -3.60297e+06 -6.23312e+05
+ -6.99541e+04 -3.60298e+06 -6.23230e+05
+ -6.99646e+04 -3.60300e+06 -6.23148e+05
+ -6.99751e+04 -3.60301e+06 -6.23066e+05
+ -6.99857e+04 -3.60302e+06 -6.22984e+05
+ -6.99962e+04 -3.60304e+06 -6.22902e+05
+ -7.00067e+04 -3.60305e+06 -6.22819e+05
+ -7.00172e+04 -3.60307e+06 -6.22737e+05
+ -7.00277e+04 -3.60308e+06 -6.22655e+05
+ -7.00382e+04 -3.60310e+06 -6.22573e+05
+ -7.00487e+04 -3.60311e+06 -6.22491e+05
+ -7.00592e+04 -3.60313e+06 -6.22409e+05
+ -7.00698e+04 -3.60314e+06 -6.22327e+05
+ -7.00803e+04 -3.60316e+06 -6.22245e+05
+ -7.00908e+04 -3.60317e+06 -6.22163e+05
+ -7.01013e+04 -3.60319e+06 -6.22081e+05
+ -7.01118e+04 -3.60320e+06 -6.21999e+05
+ -7.01223e+04 -3.60322e+06 -6.21916e+05
+ -7.01328e+04 -3.60323e+06 -6.21834e+05
+ -7.01433e+04 -3.60325e+06 -6.21752e+05
+ -7.01539e+04 -3.60326e+06 -6.21670e+05
+ -7.01644e+04 -3.60328e+06 -6.21588e+05
+ -7.01749e+04 -3.60329e+06 -6.21506e+05
+ -7.01854e+04 -3.60330e+06 -6.21424e+05
+ -7.01959e+04 -3.60332e+06 -6.21342e+05
+ -7.02064e+04 -3.60333e+06 -6.21260e+05
+ -7.02169e+04 -3.60335e+06 -6.21178e+05
+ -7.02274e+04 -3.60336e+06 -6.21095e+05
+ -7.02380e+04 -3.60338e+06 -6.21013e+05
+ -7.02485e+04 -3.60339e+06 -6.20931e+05
+ -7.02590e+04 -3.60341e+06 -6.20849e+05
+ -7.02695e+04 -3.60342e+06 -6.20767e+05
+ -7.02800e+04 -3.60344e+06 -6.20685e+05
+ -7.02905e+04 -3.60345e+06 -6.20603e+05
+ -7.03010e+04 -3.60347e+06 -6.20521e+05
+ -7.03116e+04 -3.60348e+06 -6.20439e+05
+ -7.03221e+04 -3.60350e+06 -6.20357e+05
+ -7.03326e+04 -3.60351e+06 -6.20274e+05
+ -7.03431e+04 -3.60352e+06 -6.20192e+05
+ -7.03536e+04 -3.60354e+06 -6.20110e+05
+ -7.03641e+04 -3.60355e+06 -6.20028e+05
+ -7.03746e+04 -3.60357e+06 -6.19946e+05
+ -7.03851e+04 -3.60358e+06 -6.19864e+05
+ -7.03957e+04 -3.60360e+06 -6.19782e+05
+ -7.04062e+04 -3.60361e+06 -6.19700e+05
+ -7.04167e+04 -3.60363e+06 -6.19618e+05
+ -7.04272e+04 -3.60364e+06 -6.19536e+05
+ -7.04377e+04 -3.60366e+06 -6.19453e+05
+ -7.04482e+04 -3.60367e+06 -6.19371e+05
+ -7.04587e+04 -3.60369e+06 -6.19289e+05
+ -7.04692e+04 -3.60370e+06 -6.19207e+05
+ -7.04798e+04 -3.60372e+06 -6.19125e+05
+ -7.04903e+04 -3.60373e+06 -6.19043e+05
+ -7.05008e+04 -3.60374e+06 -6.18961e+05
+ -7.05113e+04 -3.60376e+06 -6.18879e+05
+ -7.05218e+04 -3.60377e+06 -6.18797e+05
+ -7.05323e+04 -3.60379e+06 -6.18714e+05
+ -7.05428e+04 -3.60380e+06 -6.18632e+05
+ -7.05534e+04 -3.60382e+06 -6.18550e+05
+ -7.05639e+04 -3.60383e+06 -6.18468e+05
+ -7.05744e+04 -3.60385e+06 -6.18386e+05
+ -7.05849e+04 -3.60386e+06 -6.18304e+05
+ -7.05954e+04 -3.60388e+06 -6.18222e+05
+ -7.06059e+04 -3.60389e+06 -6.18140e+05
+ -7.06164e+04 -3.60391e+06 -6.18058e+05
+ -7.06269e+04 -3.60392e+06 -6.17976e+05
+ -7.06375e+04 -3.60394e+06 -6.17893e+05
+ -7.06480e+04 -3.60395e+06 -6.17811e+05
+ -7.06585e+04 -3.60396e+06 -6.17729e+05
+ -7.06690e+04 -3.60398e+06 -6.17647e+05
+ -7.06795e+04 -3.60399e+06 -6.17565e+05
+ -7.06900e+04 -3.60401e+06 -6.17483e+05
+ -7.07005e+04 -3.60402e+06 -6.17401e+05
+ -7.07111e+04 -3.60404e+06 -6.17319e+05
+ -7.07216e+04 -3.60405e+06 -6.17236e+05
+ -7.07321e+04 -3.60407e+06 -6.17154e+05
+ -7.07426e+04 -3.60408e+06 -6.17072e+05
+ -7.07531e+04 -3.60410e+06 -6.16990e+05
+ -7.07636e+04 -3.60411e+06 -6.16908e+05
+ -7.07741e+04 -3.60413e+06 -6.16826e+05
+ -7.07847e+04 -3.60414e+06 -6.16744e+05
+ -7.07952e+04 -3.60415e+06 -6.16662e+05
+ -7.08057e+04 -3.60417e+06 -6.16580e+05
+ -7.08162e+04 -3.60418e+06 -6.16497e+05
+ -7.08267e+04 -3.60420e+06 -6.16415e+05
+ -7.08372e+04 -3.60421e+06 -6.16333e+05
+ -7.08477e+04 -3.60423e+06 -6.16251e+05
+ -7.08583e+04 -3.60424e+06 -6.16169e+05
+ -7.08688e+04 -3.60426e+06 -6.16087e+05
+ -7.08793e+04 -3.60427e+06 -6.16005e+05
+ -7.08898e+04 -3.60429e+06 -6.15923e+05
+ -7.09003e+04 -3.60430e+06 -6.15841e+05
+ -7.09108e+04 -3.60431e+06 -6.15758e+05
+ -7.09213e+04 -3.60433e+06 -6.15676e+05
+ -7.09318e+04 -3.60434e+06 -6.15594e+05
+ -7.09424e+04 -3.60436e+06 -6.15512e+05
+ -7.09529e+04 -3.60437e+06 -6.15430e+05
+ -7.09634e+04 -3.60439e+06 -6.15348e+05
+ -7.09739e+04 -3.60440e+06 -6.15266e+05
+ -7.09844e+04 -3.60442e+06 -6.15184e+05
+ -7.09949e+04 -3.60443e+06 -6.15101e+05
+ -7.10054e+04 -3.60445e+06 -6.15019e+05
+ -7.10160e+04 -3.60446e+06 -6.14937e+05
+ -7.10265e+04 -3.60447e+06 -6.14855e+05
+ -7.10370e+04 -3.60449e+06 -6.14773e+05
+ -7.10475e+04 -3.60450e+06 -6.14691e+05
+ -7.10580e+04 -3.60452e+06 -6.14609e+05
+ -7.10685e+04 -3.60453e+06 -6.14527e+05
+ -7.10790e+04 -3.60455e+06 -6.14444e+05
+ -7.10896e+04 -3.60456e+06 -6.14362e+05
+ -7.11001e+04 -3.60458e+06 -6.14280e+05
+ -7.11106e+04 -3.60459e+06 -6.14198e+05
+ -7.11211e+04 -3.60461e+06 -6.14116e+05
+ -7.11316e+04 -3.60462e+06 -6.14034e+05
+ -7.11421e+04 -3.60463e+06 -6.13952e+05
+ -7.11526e+04 -3.60465e+06 -6.13870e+05
+ -7.11632e+04 -3.60466e+06 -6.13787e+05
+ -7.11737e+04 -3.60468e+06 -6.13705e+05
+ -7.11842e+04 -3.60469e+06 -6.13623e+05
+ -7.11947e+04 -3.60471e+06 -6.13541e+05
+ -7.12052e+04 -3.60472e+06 -6.13459e+05
+ -7.12157e+04 -3.60474e+06 -6.13377e+05
+ -7.12262e+04 -3.60475e+06 -6.13295e+05
+ -7.12368e+04 -3.60477e+06 -6.13213e+05
+ -7.12473e+04 -3.60478e+06 -6.13130e+05
+ -7.12578e+04 -3.60479e+06 -6.13048e+05
+ -7.12683e+04 -3.60481e+06 -6.12966e+05
+ -7.12788e+04 -3.60482e+06 -6.12884e+05
+ -7.12893e+04 -3.60484e+06 -6.12802e+05
+ -7.12998e+04 -3.60485e+06 -6.12720e+05
+ -7.13104e+04 -3.60487e+06 -6.12638e+05
+ -7.13209e+04 -3.60488e+06 -6.12556e+05
+ -7.13314e+04 -3.60490e+06 -6.12473e+05
+ -7.13419e+04 -3.60491e+06 -6.12391e+05
+ -7.13524e+04 -3.60493e+06 -6.12309e+05
+
+
+EPHEM_RATES
+ -4.31226e+02 -6.11764e+02 3.36659e+03
+ -4.31227e+02 -6.11686e+02 3.36661e+03
+ -4.31227e+02 -6.11608e+02 3.36662e+03
+ -4.31228e+02 -6.11530e+02 3.36663e+03
+ -4.31229e+02 -6.11452e+02 3.36665e+03
+ -4.31229e+02 -6.11374e+02 3.36666e+03
+ -4.31230e+02 -6.11296e+02 3.36667e+03
+ -4.31231e+02 -6.11217e+02 3.36669e+03
+ -4.31231e+02 -6.11139e+02 3.36670e+03
+ -4.31232e+02 -6.11061e+02 3.36672e+03
+ -4.31233e+02 -6.10983e+02 3.36673e+03
+ -4.31233e+02 -6.10905e+02 3.36674e+03
+ -4.31234e+02 -6.10827e+02 3.36676e+03
+ -4.31235e+02 -6.10748e+02 3.36677e+03
+ -4.31235e+02 -6.10670e+02 3.36678e+03
+ -4.31236e+02 -6.10592e+02 3.36680e+03
+ -4.31237e+02 -6.10514e+02 3.36681e+03
+ -4.31237e+02 -6.10436e+02 3.36682e+03
+ -4.31238e+02 -6.10358e+02 3.36684e+03
+ -4.31239e+02 -6.10280e+02 3.36685e+03
+ -4.31240e+02 -6.10201e+02 3.36686e+03
+ -4.31240e+02 -6.10123e+02 3.36688e+03
+ -4.31241e+02 -6.10045e+02 3.36689e+03
+ -4.31242e+02 -6.09967e+02 3.36690e+03
+ -4.31242e+02 -6.09889e+02 3.36692e+03
+ -4.31243e+02 -6.09811e+02 3.36693e+03
+ -4.31244e+02 -6.09732e+02 3.36695e+03
+ -4.31244e+02 -6.09654e+02 3.36696e+03
+ -4.31245e+02 -6.09576e+02 3.36697e+03
+ -4.31246e+02 -6.09498e+02 3.36699e+03
+ -4.31246e+02 -6.09420e+02 3.36700e+03
+ -4.31247e+02 -6.09342e+02 3.36701e+03
+ -4.31248e+02 -6.09264e+02 3.36703e+03
+ -4.31248e+02 -6.09185e+02 3.36704e+03
+ -4.31249e+02 -6.09107e+02 3.36705e+03
+ -4.31250e+02 -6.09029e+02 3.36707e+03
+ -4.31250e+02 -6.08951e+02 3.36708e+03
+ -4.31251e+02 -6.08873e+02 3.36709e+03
+ -4.31252e+02 -6.08795e+02 3.36711e+03
+ -4.31252e+02 -6.08716e+02 3.36712e+03
+ -4.31253e+02 -6.08638e+02 3.36713e+03
+ -4.31254e+02 -6.08560e+02 3.36715e+03
+ -4.31254e+02 -6.08482e+02 3.36716e+03
+ -4.31255e+02 -6.08404e+02 3.36718e+03
+ -4.31255e+02 -6.08326e+02 3.36719e+03
+ -4.31256e+02 -6.08247e+02 3.36720e+03
+ -4.31257e+02 -6.08169e+02 3.36722e+03
+ -4.31257e+02 -6.08091e+02 3.36723e+03
+ -4.31258e+02 -6.08013e+02 3.36724e+03
+ -4.31259e+02 -6.07935e+02 3.36726e+03
+ -4.31259e+02 -6.07857e+02 3.36727e+03
+ -4.31260e+02 -6.07778e+02 3.36728e+03
+ -4.31261e+02 -6.07700e+02 3.36730e+03
+ -4.31261e+02 -6.07622e+02 3.36731e+03
+ -4.31262e+02 -6.07544e+02 3.36732e+03
+ -4.31263e+02 -6.07466e+02 3.36734e+03
+ -4.31263e+02 -6.07388e+02 3.36735e+03
+ -4.31264e+02 -6.07310e+02 3.36736e+03
+ -4.31265e+02 -6.07231e+02 3.36738e+03
+ -4.31265e+02 -6.07153e+02 3.36739e+03
+ -4.31266e+02 -6.07075e+02 3.36740e+03
+ -4.31267e+02 -6.06997e+02 3.36742e+03
+ -4.31267e+02 -6.06919e+02 3.36743e+03
+ -4.31268e+02 -6.06841e+02 3.36744e+03
+ -4.31269e+02 -6.06762e+02 3.36746e+03
+ -4.31269e+02 -6.06684e+02 3.36747e+03
+ -4.31270e+02 -6.06606e+02 3.36749e+03
+ -4.31271e+02 -6.06528e+02 3.36750e+03
+ -4.31271e+02 -6.06450e+02 3.36751e+03
+ -4.31272e+02 -6.06372e+02 3.36753e+03
+ -4.31272e+02 -6.06293e+02 3.36754e+03
+ -4.31273e+02 -6.06215e+02 3.36755e+03
+ -4.31274e+02 -6.06137e+02 3.36757e+03
+ -4.31274e+02 -6.06059e+02 3.36758e+03
+ -4.31275e+02 -6.05981e+02 3.36759e+03
+ -4.31276e+02 -6.05903e+02 3.36761e+03
+ -4.31276e+02 -6.05824e+02 3.36762e+03
+ -4.31277e+02 -6.05746e+02 3.36763e+03
+ -4.31278e+02 -6.05668e+02 3.36765e+03
+ -4.31278e+02 -6.05590e+02 3.36766e+03
+ -4.31279e+02 -6.05512e+02 3.36767e+03
+ -4.31280e+02 -6.05434e+02 3.36769e+03
+ -4.31280e+02 -6.05355e+02 3.36770e+03
+ -4.31281e+02 -6.05277e+02 3.36771e+03
+ -4.31281e+02 -6.05199e+02 3.36773e+03
+ -4.31282e+02 -6.05121e+02 3.36774e+03
+ -4.31283e+02 -6.05043e+02 3.36775e+03
+ -4.31283e+02 -6.04965e+02 3.36777e+03
+ -4.31284e+02 -6.04886e+02 3.36778e+03
+ -4.31285e+02 -6.04808e+02 3.36779e+03
+ -4.31285e+02 -6.04730e+02 3.36781e+03
+ -4.31286e+02 -6.04652e+02 3.36782e+03
+ -4.31286e+02 -6.04574e+02 3.36783e+03
+ -4.31287e+02 -6.04496e+02 3.36785e+03
+ -4.31288e+02 -6.04417e+02 3.36786e+03
+ -4.31288e+02 -6.04339e+02 3.36787e+03
+ -4.31289e+02 -6.04261e+02 3.36789e+03
+ -4.31290e+02 -6.04183e+02 3.36790e+03
+ -4.31290e+02 -6.04105e+02 3.36791e+03
+ -4.31291e+02 -6.04026e+02 3.36793e+03
+ -4.31292e+02 -6.03948e+02 3.36794e+03
+ -4.31292e+02 -6.03870e+02 3.36795e+03
+ -4.31293e+02 -6.03792e+02 3.36797e+03
+ -4.31293e+02 -6.03714e+02 3.36798e+03
+ -4.31294e+02 -6.03636e+02 3.36800e+03
+ -4.31295e+02 -6.03557e+02 3.36801e+03
+ -4.31295e+02 -6.03479e+02 3.36802e+03
+ -4.31296e+02 -6.03401e+02 3.36804e+03
+ -4.31297e+02 -6.03323e+02 3.36805e+03
+ -4.31297e+02 -6.03245e+02 3.36806e+03
+ -4.31298e+02 -6.03167e+02 3.36808e+03
+ -4.31298e+02 -6.03088e+02 3.36809e+03
+ -4.31299e+02 -6.03010e+02 3.36810e+03
+ -4.31300e+02 -6.02932e+02 3.36812e+03
+ -4.31300e+02 -6.02854e+02 3.36813e+03
+ -4.31301e+02 -6.02776e+02 3.36814e+03
+ -4.31302e+02 -6.02697e+02 3.36816e+03
+ -4.31302e+02 -6.02619e+02 3.36817e+03
+ -4.31303e+02 -6.02541e+02 3.36818e+03
+ -4.31303e+02 -6.02463e+02 3.36820e+03
+ -4.31304e+02 -6.02385e+02 3.36821e+03
+ -4.31305e+02 -6.02307e+02 3.36822e+03
+ -4.31305e+02 -6.02228e+02 3.36824e+03
+ -4.31306e+02 -6.02150e+02 3.36825e+03
+ -4.31307e+02 -6.02072e+02 3.36826e+03
+ -4.31307e+02 -6.01994e+02 3.36828e+03
+ -4.31308e+02 -6.01916e+02 3.36829e+03
+ -4.31308e+02 -6.01837e+02 3.36830e+03
+ -4.31309e+02 -6.01759e+02 3.36832e+03
+ -4.31310e+02 -6.01681e+02 3.36833e+03
+ -4.31310e+02 -6.01603e+02 3.36834e+03
+ -4.31311e+02 -6.01525e+02 3.36836e+03
+ -4.31312e+02 -6.01446e+02 3.36837e+03
+ -4.31312e+02 -6.01368e+02 3.36838e+03
+ -4.31313e+02 -6.01290e+02 3.36840e+03
+ -4.31313e+02 -6.01212e+02 3.36841e+03
+ -4.31314e+02 -6.01134e+02 3.36842e+03
+ -4.31315e+02 -6.01056e+02 3.36844e+03
+ -4.31315e+02 -6.00977e+02 3.36845e+03
+ -4.31316e+02 -6.00899e+02 3.36846e+03
+ -4.31316e+02 -6.00821e+02 3.36848e+03
+ -4.31317e+02 -6.00743e+02 3.36849e+03
+ -4.31318e+02 -6.00665e+02 3.36850e+03
+ -4.31318e+02 -6.00586e+02 3.36852e+03
+ -4.31319e+02 -6.00508e+02 3.36853e+03
+ -4.31319e+02 -6.00430e+02 3.36854e+03
+ -4.31320e+02 -6.00352e+02 3.36856e+03
+ -4.31321e+02 -6.00274e+02 3.36857e+03
+ -4.31321e+02 -6.00196e+02 3.36858e+03
+ -4.31322e+02 -6.00117e+02 3.36860e+03
+ -4.31322e+02 -6.00039e+02 3.36861e+03
+ -4.31323e+02 -5.99961e+02 3.36862e+03
+ -4.31324e+02 -5.99883e+02 3.36864e+03
+ -4.31324e+02 -5.99805e+02 3.36865e+03
+ -4.31325e+02 -5.99726e+02 3.36866e+03
+ -4.31325e+02 -5.99648e+02 3.36868e+03
+ -4.31326e+02 -5.99570e+02 3.36869e+03
+ -4.31327e+02 -5.99492e+02 3.36870e+03
+ -4.31327e+02 -5.99414e+02 3.36872e+03
+ -4.31328e+02 -5.99336e+02 3.36873e+03
+ -4.31328e+02 -5.99257e+02 3.36874e+03
+ -4.31329e+02 -5.99179e+02 3.36876e+03
+ -4.31330e+02 -5.99101e+02 3.36877e+03
+ -4.31330e+02 -5.99023e+02 3.36878e+03
+ -4.31331e+02 -5.98945e+02 3.36880e+03
+ -4.31331e+02 -5.98867e+02 3.36881e+03
+ -4.31332e+02 -5.98789e+02 3.36882e+03
+ -4.31332e+02 -5.98711e+02 3.36883e+03
+ -4.31333e+02 -5.98632e+02 3.36885e+03
+ -4.31333e+02 -5.98554e+02 3.36886e+03
+ -4.31334e+02 -5.98476e+02 3.36887e+03
+ -4.31334e+02 -5.98398e+02 3.36889e+03
+ -4.31335e+02 -5.98320e+02 3.36890e+03
+ -4.31335e+02 -5.98242e+02 3.36891e+03
+ -4.31336e+02 -5.98164e+02 3.36893e+03
+ -4.31337e+02 -5.98085e+02 3.36894e+03
+ -4.31337e+02 -5.98007e+02 3.36895e+03
+ -4.31338e+02 -5.97929e+02 3.36897e+03
+ -4.31338e+02 -5.97851e+02 3.36898e+03
+ -4.31339e+02 -5.97773e+02 3.36899e+03
+ -4.31339e+02 -5.97695e+02 3.36901e+03
+ -4.31340e+02 -5.97616e+02 3.36902e+03
+ -4.31341e+02 -5.97538e+02 3.36903e+03
+ -4.31341e+02 -5.97460e+02 3.36905e+03
+ -4.31342e+02 -5.97382e+02 3.36906e+03
+ -4.31342e+02 -5.97304e+02 3.36907e+03
+ -4.31343e+02 -5.97225e+02 3.36909e+03
+ -4.31343e+02 -5.97147e+02 3.36910e+03
+ -4.31344e+02 -5.97069e+02 3.36911e+03
+ -4.31345e+02 -5.96991e+02 3.36913e+03
+ -4.31345e+02 -5.96913e+02 3.36914e+03
+ -4.31346e+02 -5.96834e+02 3.36915e+03
+ -4.31346e+02 -5.96756e+02 3.36917e+03
+ -4.31347e+02 -5.96678e+02 3.36918e+03
+ -4.31348e+02 -5.96600e+02 3.36919e+03
+ -4.31348e+02 -5.96521e+02 3.36921e+03
+ -4.31349e+02 -5.96443e+02 3.36922e+03
+ -4.31350e+02 -5.96365e+02 3.36923e+03
+ -4.31350e+02 -5.96287e+02 3.36925e+03
+ -4.31351e+02 -5.96208e+02 3.36926e+03
+ -4.31351e+02 -5.96130e+02 3.36927e+03
+ -4.31352e+02 -5.96052e+02 3.36929e+03
+ -4.31353e+02 -5.95974e+02 3.36930e+03
+ -4.31353e+02 -5.95895e+02 3.36931e+03
+ -4.31354e+02 -5.95817e+02 3.36932e+03
+ -4.31355e+02 -5.95739e+02 3.36934e+03
+ -4.31355e+02 -5.95661e+02 3.36935e+03
+ -4.31356e+02 -5.95582e+02 3.36936e+03
+ -4.31357e+02 -5.95504e+02 3.36938e+03
+ -4.31357e+02 -5.95426e+02 3.36939e+03
+ -4.31358e+02 -5.95347e+02 3.36940e+03
+ -4.31359e+02 -5.95269e+02 3.36942e+03
+ -4.31359e+02 -5.95191e+02 3.36943e+03
+ -4.31360e+02 -5.95113e+02 3.36944e+03
+ -4.31361e+02 -5.95034e+02 3.36946e+03
+ -4.31361e+02 -5.94956e+02 3.36947e+03
+ -4.31362e+02 -5.94878e+02 3.36948e+03
+ -4.31363e+02 -5.94799e+02 3.36950e+03
+ -4.31363e+02 -5.94721e+02 3.36951e+03
+ -4.31364e+02 -5.94643e+02 3.36952e+03
+ -4.31365e+02 -5.94564e+02 3.36954e+03
+
+
+DT_QUAT 4.02892e-02
+T0_QUAT -2.82024e+00
+NUMBER_OF_QUATERNIONS  141
+QUATERNIONS
+ -3.89055e-01 -5.17688e-01 -5.42201e-01 5.35399e-01
+ -3.89067e-01 -5.17697e-01 -5.42193e-01 5.35390e-01
+ -3.89078e-01 -5.17706e-01 -5.42184e-01 5.35382e-01
+ -3.89090e-01 -5.17715e-01 -5.42175e-01 5.35373e-01
+ -3.89102e-01 -5.17724e-01 -5.42167e-01 5.35364e-01
+ -3.89113e-01 -5.17733e-01 -5.42158e-01 5.35356e-01
+ -3.89125e-01 -5.17743e-01 -5.42149e-01 5.35347e-01
+ -3.89137e-01 -5.17752e-01 -5.42141e-01 5.35339e-01
+ -3.89148e-01 -5.17761e-01 -5.42132e-01 5.35330e-01
+ -3.89160e-01 -5.17770e-01 -5.42123e-01 5.35321e-01
+ -3.89172e-01 -5.17779e-01 -5.42115e-01 5.35313e-01
+ -3.89183e-01 -5.17788e-01 -5.42106e-01 5.35304e-01
+ -3.89195e-01 -5.17798e-01 -5.42097e-01 5.35296e-01
+ -3.89207e-01 -5.17807e-01 -5.42088e-01 5.35287e-01
+ -3.89218e-01 -5.17816e-01 -5.42080e-01 5.35279e-01
+ -3.89230e-01 -5.17825e-01 -5.42071e-01 5.35270e-01
+ -3.89242e-01 -5.17834e-01 -5.42062e-01 5.35261e-01
+ -3.89254e-01 -5.17843e-01 -5.42054e-01 5.35253e-01
+ -3.89265e-01 -5.17853e-01 -5.42045e-01 5.35244e-01
+ -3.89277e-01 -5.17862e-01 -5.42036e-01 5.35236e-01
+ -3.89289e-01 -5.17871e-01 -5.42028e-01 5.35227e-01
+ -3.89300e-01 -5.17880e-01 -5.42019e-01 5.35218e-01
+ -3.89312e-01 -5.17889e-01 -5.42010e-01 5.35210e-01
+ -3.89324e-01 -5.17898e-01 -5.42002e-01 5.35201e-01
+ -3.89335e-01 -5.17908e-01 -5.41993e-01 5.35193e-01
+ -3.89347e-01 -5.17917e-01 -5.41984e-01 5.35184e-01
+ -3.89359e-01 -5.17926e-01 -5.41976e-01 5.35176e-01
+ -3.89371e-01 -5.17935e-01 -5.41967e-01 5.35167e-01
+ -3.89382e-01 -5.17944e-01 -5.41958e-01 5.35158e-01
+ -3.89394e-01 -5.17953e-01 -5.41950e-01 5.35150e-01
+ -3.89406e-01 -5.17962e-01 -5.41941e-01 5.35141e-01
+ -3.89417e-01 -5.17972e-01 -5.41932e-01 5.35133e-01
+ -3.89429e-01 -5.17981e-01 -5.41924e-01 5.35124e-01
+ -3.89441e-01 -5.17990e-01 -5.41915e-01 5.35115e-01
+ -3.89453e-01 -5.17999e-01 -5.41906e-01 5.35107e-01
+ -3.89464e-01 -5.18008e-01 -5.41898e-01 5.35098e-01
+ -3.89476e-01 -5.18017e-01 -5.41889e-01 5.35089e-01
+ -3.89488e-01 -5.18026e-01 -5.41880e-01 5.35081e-01
+ -3.89500e-01 -5.18035e-01 -5.41872e-01 5.35072e-01
+ -3.89511e-01 -5.18045e-01 -5.41863e-01 5.35064e-01
+ -3.89523e-01 -5.18054e-01 -5.41854e-01 5.35055e-01
+ -3.89535e-01 -5.18063e-01 -5.41846e-01 5.35046e-01
+ -3.89547e-01 -5.18072e-01 -5.41837e-01 5.35038e-01
+ -3.89558e-01 -5.18081e-01 -5.41829e-01 5.35029e-01
+ -3.89570e-01 -5.18090e-01 -5.41820e-01 5.35021e-01
+ -3.89582e-01 -5.18099e-01 -5.41811e-01 5.35012e-01
+ -3.89594e-01 -5.18108e-01 -5.41803e-01 5.35003e-01
+ -3.89605e-01 -5.18117e-01 -5.41794e-01 5.34995e-01
+ -3.89617e-01 -5.18127e-01 -5.41785e-01 5.34986e-01
+ -3.89629e-01 -5.18136e-01 -5.41777e-01 5.34977e-01
+ -3.89641e-01 -5.18145e-01 -5.41768e-01 5.34969e-01
+ -3.89652e-01 -5.18154e-01 -5.41759e-01 5.34960e-01
+ -3.89664e-01 -5.18163e-01 -5.41751e-01 5.34952e-01
+ -3.89676e-01 -5.18172e-01 -5.41742e-01 5.34943e-01
+ -3.89688e-01 -5.18181e-01 -5.41733e-01 5.34934e-01
+ -3.89700e-01 -5.18190e-01 -5.41725e-01 5.34926e-01
+ -3.89711e-01 -5.18199e-01 -5.41716e-01 5.34917e-01
+ -3.89723e-01 -5.18209e-01 -5.41707e-01 5.34908e-01
+ -3.89735e-01 -5.18218e-01 -5.41699e-01 5.34900e-01
+ -3.89747e-01 -5.18227e-01 -5.41690e-01 5.34891e-01
+ -3.89759e-01 -5.18236e-01 -5.41681e-01 5.34882e-01
+ -3.89770e-01 -5.18245e-01 -5.41673e-01 5.34874e-01
+ -3.89782e-01 -5.18254e-01 -5.41664e-01 5.34865e-01
+ -3.89794e-01 -5.18263e-01 -5.41655e-01 5.34856e-01
+ -3.89806e-01 -5.18272e-01 -5.41647e-01 5.34848e-01
+ -3.89818e-01 -5.18281e-01 -5.41638e-01 5.34839e-01
+ -3.89829e-01 -5.18290e-01 -5.41630e-01 5.34831e-01
+ -3.89841e-01 -5.18299e-01 -5.41621e-01 5.34822e-01
+ -3.89853e-01 -5.18308e-01 -5.41612e-01 5.34813e-01
+ -3.89865e-01 -5.18318e-01 -5.41604e-01 5.34805e-01
+ -3.89877e-01 -5.18327e-01 -5.41595e-01 5.34796e-01
+ -3.89888e-01 -5.18336e-01 -5.41586e-01 5.34787e-01
+ -3.89900e-01 -5.18345e-01 -5.41578e-01 5.34779e-01
+ -3.89912e-01 -5.18354e-01 -5.41569e-01 5.34770e-01
+ -3.89924e-01 -5.18363e-01 -5.41560e-01 5.34761e-01
+ -3.89936e-01 -5.18372e-01 -5.41552e-01 5.34753e-01
+ -3.89948e-01 -5.18381e-01 -5.41543e-01 5.34744e-01
+ -3.89959e-01 -5.18390e-01 -5.41534e-01 5.34735e-01
+ -3.89971e-01 -5.18399e-01 -5.41526e-01 5.34727e-01
+ -3.89983e-01 -5.18408e-01 -5.41517e-01 5.34718e-01
+ -3.89995e-01 -5.18417e-01 -5.41509e-01 5.34709e-01
+ -3.90007e-01 -5.18426e-01 -5.41500e-01 5.34701e-01
+ -3.90019e-01 -5.18435e-01 -5.41491e-01 5.34692e-01
+ -3.90030e-01 -5.18444e-01 -5.41483e-01 5.34683e-01
+ -3.90042e-01 -5.18454e-01 -5.41474e-01 5.34675e-01
+ -3.90054e-01 -5.18463e-01 -5.41465e-01 5.34666e-01
+ -3.90066e-01 -5.18472e-01 -5.41457e-01 5.34657e-01
+ -3.90078e-01 -5.18481e-01 -5.41448e-01 5.34649e-01
+ -3.90090e-01 -5.18490e-01 -5.41439e-01 5.34640e-01
+ -3.90101e-01 -5.18499e-01 -5.41431e-01 5.34631e-01
+ -3.90113e-01 -5.18508e-01 -5.41422e-01 5.34622e-01
+ -3.90125e-01 -5.18517e-01 -5.41414e-01 5.34614e-01
+ -3.90137e-01 -5.18526e-01 -5.41405e-01 5.34605e-01
+ -3.90149e-01 -5.18535e-01 -5.41396e-01 5.34596e-01
+ -3.90161e-01 -5.18544e-01 -5.41388e-01 5.34588e-01
+ -3.90173e-01 -5.18553e-01 -5.41379e-01 5.34579e-01
+ -3.90185e-01 -5.18562e-01 -5.41370e-01 5.34570e-01
+ -3.90196e-01 -5.18571e-01 -5.41362e-01 5.34562e-01
+ -3.90208e-01 -5.18580e-01 -5.41353e-01 5.34553e-01
+ -3.90220e-01 -5.18589e-01 -5.41345e-01 5.34544e-01
+ -3.90232e-01 -5.18598e-01 -5.41336e-01 5.34536e-01
+ -3.90244e-01 -5.18607e-01 -5.41327e-01 5.34527e-01
+ -3.90256e-01 -5.18616e-01 -5.41319e-01 5.34518e-01
+ -3.90268e-01 -5.18625e-01 -5.41310e-01 5.34509e-01
+ -3.90280e-01 -5.18634e-01 -5.41301e-01 5.34501e-01
+ -3.90291e-01 -5.18643e-01 -5.41293e-01 5.34492e-01
+ -3.90303e-01 -5.18652e-01 -5.41284e-01 5.34483e-01
+ -3.90315e-01 -5.18661e-01 -5.41276e-01 5.34475e-01
+ -3.90327e-01 -5.18670e-01 -5.41267e-01 5.34466e-01
+ -3.90339e-01 -5.18679e-01 -5.41258e-01 5.34457e-01
+ -3.90351e-01 -5.18688e-01 -5.41250e-01 5.34449e-01
+ -3.90363e-01 -5.18697e-01 -5.41241e-01 5.34440e-01
+ -3.90375e-01 -5.18706e-01 -5.41232e-01 5.34431e-01
+ -3.90387e-01 -5.18715e-01 -5.41224e-01 5.34422e-01
+ -3.90399e-01 -5.18724e-01 -5.41215e-01 5.34414e-01
+ -3.90411e-01 -5.18733e-01 -5.41207e-01 5.34405e-01
+ -3.90422e-01 -5.18742e-01 -5.41198e-01 5.34396e-01
+ -3.90434e-01 -5.18751e-01 -5.41189e-01 5.34388e-01
+ -3.90446e-01 -5.18760e-01 -5.41181e-01 5.34379e-01
+ -3.90458e-01 -5.18769e-01 -5.41172e-01 5.34370e-01
+ -3.90470e-01 -5.18778e-01 -5.41164e-01 5.34361e-01
+ -3.90482e-01 -5.18787e-01 -5.41155e-01 5.34353e-01
+ -3.90494e-01 -5.18796e-01 -5.41146e-01 5.34344e-01
+ -3.90506e-01 -5.18805e-01 -5.41138e-01 5.34335e-01
+ -3.90518e-01 -5.18814e-01 -5.41129e-01 5.34326e-01
+ -3.90530e-01 -5.18823e-01 -5.41120e-01 5.34318e-01
+ -3.90542e-01 -5.18832e-01 -5.41112e-01 5.34309e-01
+ -3.90554e-01 -5.18841e-01 -5.41103e-01 5.34300e-01
+ -3.90566e-01 -5.18850e-01 -5.41095e-01 5.34292e-01
+ -3.90578e-01 -5.18859e-01 -5.41086e-01 5.34283e-01
+ -3.90589e-01 -5.18868e-01 -5.41077e-01 5.34274e-01
+ -3.90601e-01 -5.18877e-01 -5.41069e-01 5.34265e-01
+ -3.90613e-01 -5.18886e-01 -5.41060e-01 5.34257e-01
+ -3.90625e-01 -5.18895e-01 -5.41052e-01 5.34248e-01
+ -3.90637e-01 -5.18904e-01 -5.41043e-01 5.34239e-01
+ -3.90649e-01 -5.18913e-01 -5.41034e-01 5.34230e-01
+ -3.90661e-01 -5.18922e-01 -5.41026e-01 5.34222e-01
+ -3.90673e-01 -5.18931e-01 -5.41017e-01 5.34213e-01
+ -3.90685e-01 -5.18940e-01 -5.41009e-01 5.34204e-01
+ -3.90697e-01 -5.18949e-01 -5.41000e-01 5.34195e-01
+ -3.90709e-01 -5.18958e-01 -5.40991e-01 5.34187e-01
+
+
+SCAN_DURATION 4.87500e+00
+INT_TIME 8.12499e-05
+
+ALONG_SCAN_PIXEL_SIZE  1.19902e-02
+CROSS_SCAN_PIXEL_SIZE  1.20000e-02
+
+CENTER_GP -1.74024e-01 -1.60194e+00 0.00000e+00
+SENSOR_POSITION -1.72712e-01 -1.59027e+00 2.58254e+05
+MOUNTING_ANGLES 0.00000e+00 0.00000e+00 0.00000e+00
+
+TOTAL_LINES 60000
+TOTAL_SAMPLES 20000
+
+
+
+
+IKCODE  -74699
+ISIS_Z_DIRECTION  1.00000e+00
+OPTICAL_DIST_COEF 0.00000e+00 0.00000e+00 0.00000e+00
+ITRANSS 0.00000e+00 0.00000e+00 -8.33333e+01
+ITRANSL 7.74982e+03 8.33333e+01 0.00000e+00
+DETECTOR_SAMPLE_ORIGIN 1.00005e+04
+DETECTOR_LINE_ORIGIN 0.00000e+00
+DETECTOR_LINE_OFFSET  0.00000e+00
+DETECTOR_SAMPLE_SUMMING  1.00000e+00
+STARTING_SAMPLE 1.00000e+00
+STARTING_LINE 1.00000e+00
+STARTING_EPHEMERIS_TIME 3.84597e+08
+CENTER_EPHEMERIS_TIME 3.84597e+08
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hirise/truth/sed_ESP_028449_1700_RED5_keywords.txt b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hirise/truth/sed_ESP_028449_1700_RED5_keywords.txt
new file mode 100644
index 0000000000000000000000000000000000000000..26b9255867c85e23e073f60ad8ab38f326b9862c
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hirise/truth/sed_ESP_028449_1700_RED5_keywords.txt
@@ -0,0 +1,428 @@
+RECTIFICATION_TERMS
+        1.75000e+04 0.00000e+00 1.00000e+00
+        5.12000e+02 1.00000e+00 0.00000e+00
+GROUND_ZERO -1.73935e-01 -1.60673e+00 0.00000e+00
+LOAD_PT -1.73935e-01 -1.60673e+00 0.00000e+00
+COORD_SYSTEM 1
+IMAGE_MOTION 0
+SENSOR_TYPE USGSAstroLineScanner
+SENSOR_MODE UNKNOWN
+FOCAL 1.19949e+04
+ATMCO 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_LINE 1.75000e+04 4.17314e+01 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_SAMPLE 5.12000e+02 0.00000e+00 4.16666e+01 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+ABERR    0
+ATMREF   0
+PLATFORM   1
+SOURCE_FLAG  1
+SINGLE_EPHEMERIDE  0
+TRI_PARAMETERS
+0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.19949e+04 0.00000e+00 0.00000e+00
+T_CENTER  0.00000e+00
+DT_EPHEM  6.23557e-02
+T0_EPHEM  -3.42956e+00
+NUMBER_OF_EPHEM   111
+EPHEM_PTS
+ -9.14824e+04 -3.60021e+06 -6.33221e+05
+ -9.15095e+04 -3.60025e+06 -6.33011e+05
+ -9.15367e+04 -3.60029e+06 -6.32801e+05
+ -9.15638e+04 -3.60032e+06 -6.32591e+05
+ -9.15909e+04 -3.60036e+06 -6.32381e+05
+ -9.16181e+04 -3.60040e+06 -6.32171e+05
+ -9.16452e+04 -3.60044e+06 -6.31961e+05
+ -9.16724e+04 -3.60048e+06 -6.31751e+05
+ -9.16995e+04 -3.60051e+06 -6.31541e+05
+ -9.17267e+04 -3.60055e+06 -6.31331e+05
+ -9.17538e+04 -3.60059e+06 -6.31121e+05
+ -9.17810e+04 -3.60063e+06 -6.30912e+05
+ -9.18081e+04 -3.60067e+06 -6.30702e+05
+ -9.18352e+04 -3.60070e+06 -6.30492e+05
+ -9.18624e+04 -3.60074e+06 -6.30282e+05
+ -9.18895e+04 -3.60078e+06 -6.30072e+05
+ -9.19167e+04 -3.60082e+06 -6.29862e+05
+ -9.19438e+04 -3.60086e+06 -6.29652e+05
+ -9.19710e+04 -3.60089e+06 -6.29442e+05
+ -9.19981e+04 -3.60093e+06 -6.29232e+05
+ -9.20253e+04 -3.60097e+06 -6.29022e+05
+ -9.20524e+04 -3.60101e+06 -6.28812e+05
+ -9.20795e+04 -3.60105e+06 -6.28602e+05
+ -9.21067e+04 -3.60108e+06 -6.28392e+05
+ -9.21338e+04 -3.60112e+06 -6.28182e+05
+ -9.21610e+04 -3.60116e+06 -6.27972e+05
+ -9.21881e+04 -3.60120e+06 -6.27762e+05
+ -9.22153e+04 -3.60124e+06 -6.27552e+05
+ -9.22424e+04 -3.60127e+06 -6.27342e+05
+ -9.22696e+04 -3.60131e+06 -6.27132e+05
+ -9.22967e+04 -3.60135e+06 -6.26922e+05
+ -9.23238e+04 -3.60139e+06 -6.26712e+05
+ -9.23510e+04 -3.60143e+06 -6.26502e+05
+ -9.23781e+04 -3.60146e+06 -6.26292e+05
+ -9.24053e+04 -3.60150e+06 -6.26083e+05
+ -9.24324e+04 -3.60154e+06 -6.25873e+05
+ -9.24596e+04 -3.60158e+06 -6.25663e+05
+ -9.24867e+04 -3.60161e+06 -6.25453e+05
+ -9.25139e+04 -3.60165e+06 -6.25243e+05
+ -9.25410e+04 -3.60169e+06 -6.25033e+05
+ -9.25682e+04 -3.60173e+06 -6.24823e+05
+ -9.25953e+04 -3.60176e+06 -6.24613e+05
+ -9.26224e+04 -3.60180e+06 -6.24403e+05
+ -9.26496e+04 -3.60184e+06 -6.24193e+05
+ -9.26767e+04 -3.60188e+06 -6.23983e+05
+ -9.27039e+04 -3.60192e+06 -6.23773e+05
+ -9.27310e+04 -3.60195e+06 -6.23563e+05
+ -9.27582e+04 -3.60199e+06 -6.23353e+05
+ -9.27853e+04 -3.60203e+06 -6.23143e+05
+ -9.28125e+04 -3.60207e+06 -6.22933e+05
+ -9.28396e+04 -3.60210e+06 -6.22723e+05
+ -9.28668e+04 -3.60214e+06 -6.22513e+05
+ -9.28939e+04 -3.60218e+06 -6.22302e+05
+ -9.29210e+04 -3.60222e+06 -6.22092e+05
+ -9.29482e+04 -3.60225e+06 -6.21882e+05
+ -9.29753e+04 -3.60229e+06 -6.21672e+05
+ -9.30025e+04 -3.60233e+06 -6.21462e+05
+ -9.30296e+04 -3.60237e+06 -6.21252e+05
+ -9.30568e+04 -3.60240e+06 -6.21042e+05
+ -9.30839e+04 -3.60244e+06 -6.20832e+05
+ -9.31111e+04 -3.60248e+06 -6.20622e+05
+ -9.31382e+04 -3.60252e+06 -6.20412e+05
+ -9.31654e+04 -3.60255e+06 -6.20202e+05
+ -9.31925e+04 -3.60259e+06 -6.19992e+05
+ -9.32196e+04 -3.60263e+06 -6.19782e+05
+ -9.32468e+04 -3.60267e+06 -6.19572e+05
+ -9.32739e+04 -3.60270e+06 -6.19362e+05
+ -9.33011e+04 -3.60274e+06 -6.19152e+05
+ -9.33282e+04 -3.60278e+06 -6.18942e+05
+ -9.33554e+04 -3.60282e+06 -6.18732e+05
+ -9.33825e+04 -3.60285e+06 -6.18522e+05
+ -9.34097e+04 -3.60289e+06 -6.18312e+05
+ -9.34368e+04 -3.60293e+06 -6.18102e+05
+ -9.34640e+04 -3.60296e+06 -6.17892e+05
+ -9.34911e+04 -3.60300e+06 -6.17682e+05
+ -9.35182e+04 -3.60304e+06 -6.17471e+05
+ -9.35454e+04 -3.60308e+06 -6.17261e+05
+ -9.35725e+04 -3.60311e+06 -6.17051e+05
+ -9.35997e+04 -3.60315e+06 -6.16841e+05
+ -9.36268e+04 -3.60319e+06 -6.16631e+05
+ -9.36540e+04 -3.60323e+06 -6.16421e+05
+ -9.36811e+04 -3.60326e+06 -6.16211e+05
+ -9.37083e+04 -3.60330e+06 -6.16001e+05
+ -9.37354e+04 -3.60334e+06 -6.15791e+05
+ -9.37626e+04 -3.60337e+06 -6.15581e+05
+ -9.37897e+04 -3.60341e+06 -6.15371e+05
+ -9.38169e+04 -3.60345e+06 -6.15161e+05
+ -9.38440e+04 -3.60349e+06 -6.14950e+05
+ -9.38711e+04 -3.60352e+06 -6.14740e+05
+ -9.38983e+04 -3.60356e+06 -6.14530e+05
+ -9.39254e+04 -3.60360e+06 -6.14320e+05
+ -9.39526e+04 -3.60363e+06 -6.14110e+05
+ -9.39797e+04 -3.60367e+06 -6.13900e+05
+ -9.40069e+04 -3.60371e+06 -6.13690e+05
+ -9.40340e+04 -3.60375e+06 -6.13480e+05
+ -9.40612e+04 -3.60378e+06 -6.13270e+05
+ -9.40883e+04 -3.60382e+06 -6.13060e+05
+ -9.41155e+04 -3.60386e+06 -6.12849e+05
+ -9.41426e+04 -3.60389e+06 -6.12639e+05
+ -9.41698e+04 -3.60393e+06 -6.12429e+05
+ -9.41969e+04 -3.60397e+06 -6.12219e+05
+ -9.42240e+04 -3.60400e+06 -6.12009e+05
+ -9.42512e+04 -3.60404e+06 -6.11799e+05
+ -9.42783e+04 -3.60408e+06 -6.11589e+05
+ -9.43055e+04 -3.60412e+06 -6.11379e+05
+ -9.43326e+04 -3.60415e+06 -6.11168e+05
+ -9.43598e+04 -3.60419e+06 -6.10958e+05
+ -9.43869e+04 -3.60423e+06 -6.10748e+05
+ -9.44141e+04 -3.60426e+06 -6.10538e+05
+ -9.44412e+04 -3.60430e+06 -6.10328e+05
+ -9.44684e+04 -3.60434e+06 -6.10118e+05
+
+
+EPHEM_RATES
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35315e+02 -6.10547e+02 3.36668e+03
+ -4.35315e+02 -6.10347e+02 3.36671e+03
+ -4.35316e+02 -6.10147e+02 3.36675e+03
+ -4.35316e+02 -6.09947e+02 3.36678e+03
+ -4.35316e+02 -6.09747e+02 3.36682e+03
+ -4.35317e+02 -6.09547e+02 3.36685e+03
+ -4.35317e+02 -6.09347e+02 3.36689e+03
+ -4.35318e+02 -6.09147e+02 3.36692e+03
+ -4.35318e+02 -6.08947e+02 3.36696e+03
+ -4.35319e+02 -6.08747e+02 3.36699e+03
+ -4.35319e+02 -6.08547e+02 3.36702e+03
+ -4.35320e+02 -6.08347e+02 3.36706e+03
+ -4.35320e+02 -6.08147e+02 3.36709e+03
+ -4.35321e+02 -6.07947e+02 3.36713e+03
+ -4.35321e+02 -6.07747e+02 3.36716e+03
+ -4.35321e+02 -6.07547e+02 3.36720e+03
+ -4.35322e+02 -6.07347e+02 3.36723e+03
+ -4.35322e+02 -6.07147e+02 3.36727e+03
+ -4.35323e+02 -6.06947e+02 3.36730e+03
+ -4.35323e+02 -6.06747e+02 3.36734e+03
+ -4.35324e+02 -6.06547e+02 3.36737e+03
+ -4.35324e+02 -6.06347e+02 3.36740e+03
+ -4.35324e+02 -6.06147e+02 3.36744e+03
+ -4.35325e+02 -6.05947e+02 3.36747e+03
+ -4.35325e+02 -6.05747e+02 3.36751e+03
+ -4.35326e+02 -6.05547e+02 3.36754e+03
+ -4.35326e+02 -6.05347e+02 3.36758e+03
+ -4.35327e+02 -6.05147e+02 3.36761e+03
+ -4.35327e+02 -6.04947e+02 3.36765e+03
+ -4.35327e+02 -6.04747e+02 3.36768e+03
+ -4.35328e+02 -6.04547e+02 3.36771e+03
+ -4.35328e+02 -6.04347e+02 3.36775e+03
+ -4.35328e+02 -6.04147e+02 3.36778e+03
+ -4.35329e+02 -6.03947e+02 3.36782e+03
+ -4.35329e+02 -6.03747e+02 3.36785e+03
+ -4.35330e+02 -6.03547e+02 3.36789e+03
+ -4.35330e+02 -6.03347e+02 3.36792e+03
+ -4.35330e+02 -6.03147e+02 3.36796e+03
+ -4.35331e+02 -6.02946e+02 3.36799e+03
+ -4.35331e+02 -6.02746e+02 3.36802e+03
+ -4.35331e+02 -6.02546e+02 3.36806e+03
+ -4.35332e+02 -6.02346e+02 3.36809e+03
+ -4.35332e+02 -6.02146e+02 3.36813e+03
+ -4.35333e+02 -6.01946e+02 3.36816e+03
+ -4.35333e+02 -6.01746e+02 3.36820e+03
+ -4.35333e+02 -6.01546e+02 3.36823e+03
+ -4.35334e+02 -6.01346e+02 3.36826e+03
+ -4.35334e+02 -6.01146e+02 3.36830e+03
+ -4.35334e+02 -6.00946e+02 3.36833e+03
+ -4.35335e+02 -6.00746e+02 3.36837e+03
+ -4.35335e+02 -6.00546e+02 3.36840e+03
+ -4.35335e+02 -6.00346e+02 3.36843e+03
+ -4.35336e+02 -6.00146e+02 3.36847e+03
+ -4.35336e+02 -5.99946e+02 3.36850e+03
+ -4.35336e+02 -5.99745e+02 3.36854e+03
+ -4.35336e+02 -5.99545e+02 3.36857e+03
+ -4.35337e+02 -5.99345e+02 3.36861e+03
+ -4.35337e+02 -5.99145e+02 3.36864e+03
+ -4.35337e+02 -5.98945e+02 3.36867e+03
+ -4.35338e+02 -5.98745e+02 3.36871e+03
+ -4.35338e+02 -5.98545e+02 3.36874e+03
+ -4.35338e+02 -5.98345e+02 3.36878e+03
+ -4.35339e+02 -5.98145e+02 3.36881e+03
+ -4.35339e+02 -5.97945e+02 3.36884e+03
+ -4.35339e+02 -5.97745e+02 3.36888e+03
+ -4.35339e+02 -5.97545e+02 3.36891e+03
+ -4.35340e+02 -5.97344e+02 3.36895e+03
+ -4.35340e+02 -5.97144e+02 3.36898e+03
+ -4.35340e+02 -5.96944e+02 3.36901e+03
+ -4.35341e+02 -5.96744e+02 3.36905e+03
+ -4.35341e+02 -5.96544e+02 3.36908e+03
+ -4.35341e+02 -5.96344e+02 3.36912e+03
+ -4.35341e+02 -5.96144e+02 3.36915e+03
+ -4.35342e+02 -5.95944e+02 3.36918e+03
+ -4.35342e+02 -5.95744e+02 3.36922e+03
+ -4.35342e+02 -5.95544e+02 3.36925e+03
+ -4.35342e+02 -5.95343e+02 3.36928e+03
+ -4.35343e+02 -5.95143e+02 3.36932e+03
+ -4.35343e+02 -5.94943e+02 3.36935e+03
+ -4.35343e+02 -5.94743e+02 3.36939e+03
+ -4.35343e+02 -5.94543e+02 3.36942e+03
+ -4.35343e+02 -5.94343e+02 3.36945e+03
+ -4.35344e+02 -5.94143e+02 3.36949e+03
+ -4.35344e+02 -5.93943e+02 3.36952e+03
+ -4.35344e+02 -5.93742e+02 3.36956e+03
+ -4.35344e+02 -5.93542e+02 3.36959e+03
+ -4.35345e+02 -5.93342e+02 3.36962e+03
+ -4.35345e+02 -5.93142e+02 3.36966e+03
+ -4.35345e+02 -5.92942e+02 3.36969e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+
+
+DT_QUAT 4.68956e-02
+T0_QUAT -3.28269e+00
+NUMBER_OF_QUATERNIONS  141
+QUATERNIONS
+ -3.95791e-01 -5.10895e-01 -5.49196e-01 5.29827e-01
+ -3.95805e-01 -5.10906e-01 -5.49186e-01 5.29817e-01
+ -3.95818e-01 -5.10917e-01 -5.49176e-01 5.29807e-01
+ -3.95831e-01 -5.10928e-01 -5.49166e-01 5.29797e-01
+ -3.95845e-01 -5.10938e-01 -5.49156e-01 5.29787e-01
+ -3.95858e-01 -5.10949e-01 -5.49146e-01 5.29777e-01
+ -3.95872e-01 -5.10960e-01 -5.49136e-01 5.29767e-01
+ -3.95885e-01 -5.10971e-01 -5.49126e-01 5.29757e-01
+ -3.95899e-01 -5.10982e-01 -5.49116e-01 5.29747e-01
+ -3.95912e-01 -5.10992e-01 -5.49106e-01 5.29737e-01
+ -3.95926e-01 -5.11003e-01 -5.49096e-01 5.29726e-01
+ -3.95939e-01 -5.11014e-01 -5.49086e-01 5.29716e-01
+ -3.95953e-01 -5.11025e-01 -5.49076e-01 5.29706e-01
+ -3.95966e-01 -5.11036e-01 -5.49066e-01 5.29696e-01
+ -3.95980e-01 -5.11046e-01 -5.49056e-01 5.29686e-01
+ -3.95993e-01 -5.11057e-01 -5.49046e-01 5.29676e-01
+ -3.96007e-01 -5.11068e-01 -5.49036e-01 5.29666e-01
+ -3.96020e-01 -5.11079e-01 -5.49026e-01 5.29656e-01
+ -3.96034e-01 -5.11090e-01 -5.49016e-01 5.29646e-01
+ -3.96047e-01 -5.11100e-01 -5.49006e-01 5.29636e-01
+ -3.96061e-01 -5.11111e-01 -5.48996e-01 5.29626e-01
+ -3.96074e-01 -5.11122e-01 -5.48986e-01 5.29616e-01
+ -3.96088e-01 -5.11133e-01 -5.48976e-01 5.29605e-01
+ -3.96101e-01 -5.11143e-01 -5.48965e-01 5.29595e-01
+ -3.96115e-01 -5.11154e-01 -5.48955e-01 5.29585e-01
+ -3.96128e-01 -5.11165e-01 -5.48945e-01 5.29575e-01
+ -3.96142e-01 -5.11176e-01 -5.48935e-01 5.29565e-01
+ -3.96155e-01 -5.11186e-01 -5.48925e-01 5.29555e-01
+ -3.96169e-01 -5.11197e-01 -5.48915e-01 5.29545e-01
+ -3.96182e-01 -5.11208e-01 -5.48905e-01 5.29535e-01
+ -3.96196e-01 -5.11219e-01 -5.48895e-01 5.29525e-01
+ -3.96209e-01 -5.11229e-01 -5.48885e-01 5.29515e-01
+ -3.96223e-01 -5.11240e-01 -5.48875e-01 5.29504e-01
+ -3.96236e-01 -5.11251e-01 -5.48865e-01 5.29494e-01
+ -3.96250e-01 -5.11262e-01 -5.48855e-01 5.29484e-01
+ -3.96263e-01 -5.11272e-01 -5.48846e-01 5.29474e-01
+ -3.96277e-01 -5.11283e-01 -5.48836e-01 5.29464e-01
+ -3.96290e-01 -5.11294e-01 -5.48826e-01 5.29454e-01
+ -3.96304e-01 -5.11305e-01 -5.48816e-01 5.29444e-01
+ -3.96317e-01 -5.11315e-01 -5.48806e-01 5.29434e-01
+ -3.96331e-01 -5.11326e-01 -5.48796e-01 5.29423e-01
+ -3.96344e-01 -5.11337e-01 -5.48786e-01 5.29413e-01
+ -3.96358e-01 -5.11347e-01 -5.48776e-01 5.29403e-01
+ -3.96371e-01 -5.11358e-01 -5.48766e-01 5.29393e-01
+ -3.96385e-01 -5.11369e-01 -5.48756e-01 5.29383e-01
+ -3.96398e-01 -5.11380e-01 -5.48746e-01 5.29373e-01
+ -3.96412e-01 -5.11390e-01 -5.48736e-01 5.29363e-01
+ -3.96425e-01 -5.11401e-01 -5.48726e-01 5.29352e-01
+ -3.96439e-01 -5.11412e-01 -5.48716e-01 5.29342e-01
+ -3.96452e-01 -5.11422e-01 -5.48706e-01 5.29332e-01
+ -3.96466e-01 -5.11433e-01 -5.48696e-01 5.29322e-01
+ -3.96479e-01 -5.11444e-01 -5.48686e-01 5.29312e-01
+ -3.96493e-01 -5.11455e-01 -5.48676e-01 5.29302e-01
+ -3.96506e-01 -5.11465e-01 -5.48666e-01 5.29292e-01
+ -3.96520e-01 -5.11476e-01 -5.48656e-01 5.29281e-01
+ -3.96533e-01 -5.11487e-01 -5.48646e-01 5.29271e-01
+ -3.96547e-01 -5.11497e-01 -5.48636e-01 5.29261e-01
+ -3.96560e-01 -5.11508e-01 -5.48626e-01 5.29251e-01
+ -3.96574e-01 -5.11519e-01 -5.48617e-01 5.29241e-01
+ -3.96587e-01 -5.11529e-01 -5.48607e-01 5.29231e-01
+ -3.96601e-01 -5.11540e-01 -5.48597e-01 5.29220e-01
+ -3.96614e-01 -5.11551e-01 -5.48587e-01 5.29210e-01
+ -3.96628e-01 -5.11561e-01 -5.48577e-01 5.29200e-01
+ -3.96641e-01 -5.11572e-01 -5.48567e-01 5.29190e-01
+ -3.96655e-01 -5.11583e-01 -5.48557e-01 5.29180e-01
+ -3.96669e-01 -5.11593e-01 -5.48547e-01 5.29169e-01
+ -3.96682e-01 -5.11604e-01 -5.48537e-01 5.29159e-01
+ -3.96696e-01 -5.11615e-01 -5.48527e-01 5.29149e-01
+ -3.96709e-01 -5.11625e-01 -5.48517e-01 5.29139e-01
+ -3.96723e-01 -5.11636e-01 -5.48508e-01 5.29129e-01
+ -3.96736e-01 -5.11647e-01 -5.48498e-01 5.29119e-01
+ -3.96750e-01 -5.11657e-01 -5.48488e-01 5.29108e-01
+ -3.96763e-01 -5.11668e-01 -5.48478e-01 5.29098e-01
+ -3.96777e-01 -5.11679e-01 -5.48468e-01 5.29088e-01
+ -3.96790e-01 -5.11689e-01 -5.48458e-01 5.29078e-01
+ -3.96804e-01 -5.11700e-01 -5.48448e-01 5.29068e-01
+ -3.96817e-01 -5.11711e-01 -5.48438e-01 5.29057e-01
+ -3.96831e-01 -5.11721e-01 -5.48428e-01 5.29047e-01
+ -3.96845e-01 -5.11732e-01 -5.48419e-01 5.29037e-01
+ -3.96858e-01 -5.11742e-01 -5.48409e-01 5.29027e-01
+ -3.96872e-01 -5.11753e-01 -5.48399e-01 5.29016e-01
+ -3.96885e-01 -5.11764e-01 -5.48389e-01 5.29006e-01
+ -3.96899e-01 -5.11774e-01 -5.48379e-01 5.28996e-01
+ -3.96912e-01 -5.11785e-01 -5.48369e-01 5.28986e-01
+ -3.96926e-01 -5.11796e-01 -5.48359e-01 5.28976e-01
+ -3.96939e-01 -5.11806e-01 -5.48350e-01 5.28965e-01
+ -3.96953e-01 -5.11817e-01 -5.48340e-01 5.28955e-01
+ -3.96966e-01 -5.11827e-01 -5.48330e-01 5.28945e-01
+ -3.96980e-01 -5.11838e-01 -5.48320e-01 5.28935e-01
+ -3.96994e-01 -5.11849e-01 -5.48310e-01 5.28924e-01
+ -3.97007e-01 -5.11859e-01 -5.48300e-01 5.28914e-01
+ -3.97021e-01 -5.11870e-01 -5.48290e-01 5.28904e-01
+ -3.97034e-01 -5.11881e-01 -5.48281e-01 5.28894e-01
+ -3.97048e-01 -5.11891e-01 -5.48271e-01 5.28883e-01
+ -3.97061e-01 -5.11902e-01 -5.48261e-01 5.28873e-01
+ -3.97075e-01 -5.11912e-01 -5.48251e-01 5.28863e-01
+ -3.97088e-01 -5.11923e-01 -5.48241e-01 5.28853e-01
+ -3.97102e-01 -5.11934e-01 -5.48231e-01 5.28842e-01
+ -3.97116e-01 -5.11944e-01 -5.48222e-01 5.28832e-01
+ -3.97129e-01 -5.11955e-01 -5.48212e-01 5.28822e-01
+ -3.97143e-01 -5.11965e-01 -5.48202e-01 5.28812e-01
+ -3.97156e-01 -5.11976e-01 -5.48192e-01 5.28801e-01
+ -3.97170e-01 -5.11986e-01 -5.48182e-01 5.28791e-01
+ -3.97183e-01 -5.11997e-01 -5.48172e-01 5.28781e-01
+ -3.97197e-01 -5.12008e-01 -5.48163e-01 5.28771e-01
+ -3.97211e-01 -5.12018e-01 -5.48153e-01 5.28760e-01
+ -3.97224e-01 -5.12029e-01 -5.48143e-01 5.28750e-01
+ -3.97238e-01 -5.12039e-01 -5.48133e-01 5.28740e-01
+ -3.97251e-01 -5.12050e-01 -5.48123e-01 5.28730e-01
+ -3.97265e-01 -5.12061e-01 -5.48114e-01 5.28719e-01
+ -3.97278e-01 -5.12071e-01 -5.48104e-01 5.28709e-01
+ -3.97292e-01 -5.12082e-01 -5.48094e-01 5.28699e-01
+ -3.97306e-01 -5.12092e-01 -5.48084e-01 5.28688e-01
+ -3.97319e-01 -5.12103e-01 -5.48075e-01 5.28678e-01
+ -3.97333e-01 -5.12113e-01 -5.48065e-01 5.28668e-01
+ -3.97346e-01 -5.12124e-01 -5.48055e-01 5.28658e-01
+ -3.97360e-01 -5.12134e-01 -5.48045e-01 5.28647e-01
+ -3.97373e-01 -5.12145e-01 -5.48035e-01 5.28637e-01
+ -3.97387e-01 -5.12156e-01 -5.48026e-01 5.28627e-01
+ -3.97401e-01 -5.12166e-01 -5.48016e-01 5.28616e-01
+ -3.97414e-01 -5.12177e-01 -5.48006e-01 5.28606e-01
+ -3.97428e-01 -5.12187e-01 -5.47996e-01 5.28596e-01
+ -3.97441e-01 -5.12198e-01 -5.47987e-01 5.28586e-01
+ -3.97455e-01 -5.12208e-01 -5.47977e-01 5.28575e-01
+ -3.97469e-01 -5.12219e-01 -5.47967e-01 5.28565e-01
+ -3.97482e-01 -5.12229e-01 -5.47957e-01 5.28555e-01
+ -3.97496e-01 -5.12240e-01 -5.47947e-01 5.28544e-01
+ -3.97509e-01 -5.12250e-01 -5.47938e-01 5.28534e-01
+ -3.97523e-01 -5.12261e-01 -5.47928e-01 5.28524e-01
+ -3.97536e-01 -5.12271e-01 -5.47918e-01 5.28513e-01
+ -3.97550e-01 -5.12282e-01 -5.47908e-01 5.28503e-01
+ -3.97564e-01 -5.12292e-01 -5.47899e-01 5.28493e-01
+ -3.97577e-01 -5.12303e-01 -5.47889e-01 5.28482e-01
+ -3.97591e-01 -5.12313e-01 -5.47879e-01 5.28472e-01
+ -3.97604e-01 -5.12324e-01 -5.47870e-01 5.28462e-01
+ -3.97618e-01 -5.12335e-01 -5.47860e-01 5.28451e-01
+ -3.97632e-01 -5.12345e-01 -5.47850e-01 5.28441e-01
+ -3.97645e-01 -5.12356e-01 -5.47840e-01 5.28431e-01
+ -3.97659e-01 -5.12366e-01 -5.47831e-01 5.28420e-01
+ -3.97672e-01 -5.12377e-01 -5.47821e-01 5.28410e-01
+ -3.97686e-01 -5.12387e-01 -5.47811e-01 5.28400e-01
+
+
+SCAN_DURATION 5.67437e+00
+INT_TIME 1.62124e-04
+
+ALONG_SCAN_PIXEL_SIZE  2.39627e-02
+CROSS_SCAN_PIXEL_SIZE  2.40000e-02
+
+CENTER_GP -1.73935e-01 -1.60673e+00 0.00000e+00
+SENSOR_POSITION -1.72826e-01 -1.59660e+00 2.57395e+05
+MOUNTING_ANGLES 0.00000e+00 0.00000e+00 0.00000e+00
+
+TOTAL_LINES 35000
+TOTAL_SAMPLES 1024
+
+
+
+
+IKCODE  -74699
+ISIS_Z_DIRECTION  1.00000e+00
+OPTICAL_DIST_COEF -4.85090e-03 2.41311e-07 -1.62368e-13
+ITRANSS -1.00086e+03 -8.69999e-03 -8.33332e+01
+ITRANSL 7.45789e+03 8.33332e+01 -8.69999e-03
+DETECTOR_SAMPLE_ORIGIN 1.02450e+03
+DETECTOR_LINE_ORIGIN 0.00000e+00
+DETECTOR_LINE_OFFSET  -3.20000e+01
+DETECTOR_SAMPLE_SUMMING  2.00000e+00
+STARTING_SAMPLE 1.50000e+00
+STARTING_LINE 1.50000e+00
+STARTING_EPHEMERIS_TIME 3.98801e+08
+CENTER_EPHEMERIS_TIME 3.98801e+08
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hirise/truth/sed_ESP_028449_1700_REDmos_hijitreged_keywords.txt b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hirise/truth/sed_ESP_028449_1700_REDmos_hijitreged_keywords.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d09ecf6714e4617b3f65ea0763571e1c18fe7722
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hirise/truth/sed_ESP_028449_1700_REDmos_hijitreged_keywords.txt
@@ -0,0 +1,428 @@
+RECTIFICATION_TERMS
+        1.75000e+04 0.00000e+00 1.00000e+00
+        5.00000e+03 1.00000e+00 0.00000e+00
+GROUND_ZERO -1.73953e-01 -1.60673e+00 0.00000e+00
+LOAD_PT -1.73953e-01 -1.60673e+00 0.00000e+00
+COORD_SYSTEM 1
+IMAGE_MOTION 0
+SENSOR_TYPE USGSAstroLineScanner
+SENSOR_MODE UNKNOWN
+FOCAL 1.19949e+04
+ATMCO 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_LINE 1.75000e+04 4.17227e+01 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_SAMPLE 5.00000e+03 0.00000e+00 4.16666e+01 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+ABERR    0
+ATMREF   0
+PLATFORM   1
+SOURCE_FLAG  1
+SINGLE_EPHEMERIDE  0
+TRI_PARAMETERS
+0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.19949e+04 0.00000e+00 0.00000e+00
+T_CENTER  0.00000e+00
+DT_EPHEM  6.23557e-02
+T0_EPHEM  -3.42956e+00
+NUMBER_OF_EPHEM   111
+EPHEM_PTS
+ -9.14824e+04 -3.60021e+06 -6.33221e+05
+ -9.15095e+04 -3.60025e+06 -6.33011e+05
+ -9.15367e+04 -3.60029e+06 -6.32801e+05
+ -9.15638e+04 -3.60032e+06 -6.32591e+05
+ -9.15909e+04 -3.60036e+06 -6.32381e+05
+ -9.16181e+04 -3.60040e+06 -6.32171e+05
+ -9.16452e+04 -3.60044e+06 -6.31961e+05
+ -9.16724e+04 -3.60048e+06 -6.31751e+05
+ -9.16995e+04 -3.60051e+06 -6.31541e+05
+ -9.17267e+04 -3.60055e+06 -6.31331e+05
+ -9.17538e+04 -3.60059e+06 -6.31121e+05
+ -9.17810e+04 -3.60063e+06 -6.30912e+05
+ -9.18081e+04 -3.60067e+06 -6.30702e+05
+ -9.18352e+04 -3.60070e+06 -6.30492e+05
+ -9.18624e+04 -3.60074e+06 -6.30282e+05
+ -9.18895e+04 -3.60078e+06 -6.30072e+05
+ -9.19167e+04 -3.60082e+06 -6.29862e+05
+ -9.19438e+04 -3.60086e+06 -6.29652e+05
+ -9.19710e+04 -3.60089e+06 -6.29442e+05
+ -9.19981e+04 -3.60093e+06 -6.29232e+05
+ -9.20253e+04 -3.60097e+06 -6.29022e+05
+ -9.20524e+04 -3.60101e+06 -6.28812e+05
+ -9.20795e+04 -3.60105e+06 -6.28602e+05
+ -9.21067e+04 -3.60108e+06 -6.28392e+05
+ -9.21338e+04 -3.60112e+06 -6.28182e+05
+ -9.21610e+04 -3.60116e+06 -6.27972e+05
+ -9.21881e+04 -3.60120e+06 -6.27762e+05
+ -9.22153e+04 -3.60124e+06 -6.27552e+05
+ -9.22424e+04 -3.60127e+06 -6.27342e+05
+ -9.22696e+04 -3.60131e+06 -6.27132e+05
+ -9.22967e+04 -3.60135e+06 -6.26922e+05
+ -9.23238e+04 -3.60139e+06 -6.26712e+05
+ -9.23510e+04 -3.60143e+06 -6.26502e+05
+ -9.23781e+04 -3.60146e+06 -6.26292e+05
+ -9.24053e+04 -3.60150e+06 -6.26082e+05
+ -9.24324e+04 -3.60154e+06 -6.25873e+05
+ -9.24596e+04 -3.60158e+06 -6.25663e+05
+ -9.24867e+04 -3.60161e+06 -6.25453e+05
+ -9.25139e+04 -3.60165e+06 -6.25243e+05
+ -9.25410e+04 -3.60169e+06 -6.25033e+05
+ -9.25682e+04 -3.60173e+06 -6.24823e+05
+ -9.25953e+04 -3.60176e+06 -6.24613e+05
+ -9.26224e+04 -3.60180e+06 -6.24403e+05
+ -9.26496e+04 -3.60184e+06 -6.24193e+05
+ -9.26767e+04 -3.60188e+06 -6.23983e+05
+ -9.27039e+04 -3.60192e+06 -6.23773e+05
+ -9.27310e+04 -3.60195e+06 -6.23563e+05
+ -9.27582e+04 -3.60199e+06 -6.23353e+05
+ -9.27853e+04 -3.60203e+06 -6.23143e+05
+ -9.28125e+04 -3.60207e+06 -6.22933e+05
+ -9.28396e+04 -3.60210e+06 -6.22723e+05
+ -9.28668e+04 -3.60214e+06 -6.22512e+05
+ -9.28939e+04 -3.60218e+06 -6.22302e+05
+ -9.29210e+04 -3.60222e+06 -6.22092e+05
+ -9.29482e+04 -3.60225e+06 -6.21882e+05
+ -9.29753e+04 -3.60229e+06 -6.21672e+05
+ -9.30025e+04 -3.60233e+06 -6.21462e+05
+ -9.30296e+04 -3.60237e+06 -6.21252e+05
+ -9.30568e+04 -3.60240e+06 -6.21042e+05
+ -9.30839e+04 -3.60244e+06 -6.20832e+05
+ -9.31111e+04 -3.60248e+06 -6.20622e+05
+ -9.31382e+04 -3.60252e+06 -6.20412e+05
+ -9.31654e+04 -3.60255e+06 -6.20202e+05
+ -9.31925e+04 -3.60259e+06 -6.19992e+05
+ -9.32196e+04 -3.60263e+06 -6.19782e+05
+ -9.32468e+04 -3.60267e+06 -6.19572e+05
+ -9.32739e+04 -3.60270e+06 -6.19362e+05
+ -9.33011e+04 -3.60274e+06 -6.19152e+05
+ -9.33282e+04 -3.60278e+06 -6.18942e+05
+ -9.33554e+04 -3.60282e+06 -6.18732e+05
+ -9.33825e+04 -3.60285e+06 -6.18522e+05
+ -9.34097e+04 -3.60289e+06 -6.18312e+05
+ -9.34368e+04 -3.60293e+06 -6.18102e+05
+ -9.34640e+04 -3.60296e+06 -6.17892e+05
+ -9.34911e+04 -3.60300e+06 -6.17682e+05
+ -9.35183e+04 -3.60304e+06 -6.17471e+05
+ -9.35454e+04 -3.60308e+06 -6.17261e+05
+ -9.35725e+04 -3.60311e+06 -6.17051e+05
+ -9.35997e+04 -3.60315e+06 -6.16841e+05
+ -9.36268e+04 -3.60319e+06 -6.16631e+05
+ -9.36540e+04 -3.60323e+06 -6.16421e+05
+ -9.36811e+04 -3.60326e+06 -6.16211e+05
+ -9.37083e+04 -3.60330e+06 -6.16001e+05
+ -9.37354e+04 -3.60334e+06 -6.15791e+05
+ -9.37626e+04 -3.60337e+06 -6.15581e+05
+ -9.37897e+04 -3.60341e+06 -6.15371e+05
+ -9.38169e+04 -3.60345e+06 -6.15161e+05
+ -9.38440e+04 -3.60349e+06 -6.14950e+05
+ -9.38711e+04 -3.60352e+06 -6.14740e+05
+ -9.38983e+04 -3.60356e+06 -6.14530e+05
+ -9.39254e+04 -3.60360e+06 -6.14320e+05
+ -9.39526e+04 -3.60363e+06 -6.14110e+05
+ -9.39797e+04 -3.60367e+06 -6.13900e+05
+ -9.40069e+04 -3.60371e+06 -6.13690e+05
+ -9.40340e+04 -3.60375e+06 -6.13480e+05
+ -9.40612e+04 -3.60378e+06 -6.13270e+05
+ -9.40883e+04 -3.60382e+06 -6.13060e+05
+ -9.41155e+04 -3.60386e+06 -6.12849e+05
+ -9.41426e+04 -3.60389e+06 -6.12639e+05
+ -9.41698e+04 -3.60393e+06 -6.12429e+05
+ -9.41969e+04 -3.60397e+06 -6.12219e+05
+ -9.42240e+04 -3.60400e+06 -6.12009e+05
+ -9.42512e+04 -3.60404e+06 -6.11799e+05
+ -9.42783e+04 -3.60408e+06 -6.11589e+05
+ -9.43055e+04 -3.60412e+06 -6.11379e+05
+ -9.43326e+04 -3.60415e+06 -6.11168e+05
+ -9.43598e+04 -3.60419e+06 -6.10958e+05
+ -9.43869e+04 -3.60423e+06 -6.10748e+05
+ -9.44141e+04 -3.60426e+06 -6.10538e+05
+ -9.44412e+04 -3.60430e+06 -6.10328e+05
+ -9.44684e+04 -3.60434e+06 -6.10118e+05
+
+
+EPHEM_RATES
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35314e+02 -6.10647e+02 3.36666e+03
+ -4.35315e+02 -6.10547e+02 3.36668e+03
+ -4.35315e+02 -6.10347e+02 3.36671e+03
+ -4.35316e+02 -6.10147e+02 3.36675e+03
+ -4.35316e+02 -6.09947e+02 3.36678e+03
+ -4.35316e+02 -6.09747e+02 3.36682e+03
+ -4.35317e+02 -6.09547e+02 3.36685e+03
+ -4.35317e+02 -6.09347e+02 3.36689e+03
+ -4.35318e+02 -6.09147e+02 3.36692e+03
+ -4.35318e+02 -6.08947e+02 3.36696e+03
+ -4.35319e+02 -6.08747e+02 3.36699e+03
+ -4.35319e+02 -6.08547e+02 3.36702e+03
+ -4.35320e+02 -6.08347e+02 3.36706e+03
+ -4.35320e+02 -6.08147e+02 3.36709e+03
+ -4.35321e+02 -6.07947e+02 3.36713e+03
+ -4.35321e+02 -6.07747e+02 3.36716e+03
+ -4.35321e+02 -6.07547e+02 3.36720e+03
+ -4.35322e+02 -6.07347e+02 3.36723e+03
+ -4.35322e+02 -6.07147e+02 3.36727e+03
+ -4.35323e+02 -6.06947e+02 3.36730e+03
+ -4.35323e+02 -6.06747e+02 3.36734e+03
+ -4.35324e+02 -6.06547e+02 3.36737e+03
+ -4.35324e+02 -6.06347e+02 3.36740e+03
+ -4.35324e+02 -6.06147e+02 3.36744e+03
+ -4.35325e+02 -6.05947e+02 3.36747e+03
+ -4.35325e+02 -6.05747e+02 3.36751e+03
+ -4.35326e+02 -6.05547e+02 3.36754e+03
+ -4.35326e+02 -6.05347e+02 3.36758e+03
+ -4.35327e+02 -6.05147e+02 3.36761e+03
+ -4.35327e+02 -6.04947e+02 3.36765e+03
+ -4.35327e+02 -6.04747e+02 3.36768e+03
+ -4.35328e+02 -6.04547e+02 3.36771e+03
+ -4.35328e+02 -6.04347e+02 3.36775e+03
+ -4.35328e+02 -6.04147e+02 3.36778e+03
+ -4.35329e+02 -6.03947e+02 3.36782e+03
+ -4.35329e+02 -6.03747e+02 3.36785e+03
+ -4.35330e+02 -6.03547e+02 3.36789e+03
+ -4.35330e+02 -6.03347e+02 3.36792e+03
+ -4.35330e+02 -6.03147e+02 3.36796e+03
+ -4.35331e+02 -6.02946e+02 3.36799e+03
+ -4.35331e+02 -6.02746e+02 3.36802e+03
+ -4.35331e+02 -6.02546e+02 3.36806e+03
+ -4.35332e+02 -6.02346e+02 3.36809e+03
+ -4.35332e+02 -6.02146e+02 3.36813e+03
+ -4.35333e+02 -6.01946e+02 3.36816e+03
+ -4.35333e+02 -6.01746e+02 3.36820e+03
+ -4.35333e+02 -6.01546e+02 3.36823e+03
+ -4.35334e+02 -6.01346e+02 3.36826e+03
+ -4.35334e+02 -6.01146e+02 3.36830e+03
+ -4.35334e+02 -6.00946e+02 3.36833e+03
+ -4.35335e+02 -6.00746e+02 3.36837e+03
+ -4.35335e+02 -6.00546e+02 3.36840e+03
+ -4.35335e+02 -6.00346e+02 3.36843e+03
+ -4.35336e+02 -6.00146e+02 3.36847e+03
+ -4.35336e+02 -5.99946e+02 3.36850e+03
+ -4.35336e+02 -5.99745e+02 3.36854e+03
+ -4.35336e+02 -5.99545e+02 3.36857e+03
+ -4.35337e+02 -5.99345e+02 3.36861e+03
+ -4.35337e+02 -5.99145e+02 3.36864e+03
+ -4.35337e+02 -5.98945e+02 3.36867e+03
+ -4.35338e+02 -5.98745e+02 3.36871e+03
+ -4.35338e+02 -5.98545e+02 3.36874e+03
+ -4.35338e+02 -5.98345e+02 3.36878e+03
+ -4.35339e+02 -5.98145e+02 3.36881e+03
+ -4.35339e+02 -5.97945e+02 3.36884e+03
+ -4.35339e+02 -5.97745e+02 3.36888e+03
+ -4.35339e+02 -5.97545e+02 3.36891e+03
+ -4.35340e+02 -5.97344e+02 3.36895e+03
+ -4.35340e+02 -5.97144e+02 3.36898e+03
+ -4.35340e+02 -5.96944e+02 3.36901e+03
+ -4.35341e+02 -5.96744e+02 3.36905e+03
+ -4.35341e+02 -5.96544e+02 3.36908e+03
+ -4.35341e+02 -5.96344e+02 3.36912e+03
+ -4.35341e+02 -5.96144e+02 3.36915e+03
+ -4.35342e+02 -5.95944e+02 3.36918e+03
+ -4.35342e+02 -5.95744e+02 3.36922e+03
+ -4.35342e+02 -5.95544e+02 3.36925e+03
+ -4.35342e+02 -5.95343e+02 3.36928e+03
+ -4.35343e+02 -5.95143e+02 3.36932e+03
+ -4.35343e+02 -5.94943e+02 3.36935e+03
+ -4.35343e+02 -5.94743e+02 3.36939e+03
+ -4.35343e+02 -5.94543e+02 3.36942e+03
+ -4.35343e+02 -5.94343e+02 3.36945e+03
+ -4.35344e+02 -5.94143e+02 3.36949e+03
+ -4.35344e+02 -5.93943e+02 3.36952e+03
+ -4.35344e+02 -5.93742e+02 3.36956e+03
+ -4.35344e+02 -5.93542e+02 3.36959e+03
+ -4.35345e+02 -5.93342e+02 3.36962e+03
+ -4.35345e+02 -5.93142e+02 3.36966e+03
+ -4.35345e+02 -5.92942e+02 3.36969e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+ -4.35345e+02 -5.92842e+02 3.36971e+03
+
+
+DT_QUAT 4.68956e-02
+T0_QUAT -3.28269e+00
+NUMBER_OF_QUATERNIONS  141
+QUATERNIONS
+ -3.95791e-01 -5.10895e-01 -5.49196e-01 5.29827e-01
+ -3.95805e-01 -5.10906e-01 -5.49186e-01 5.29817e-01
+ -3.95818e-01 -5.10917e-01 -5.49176e-01 5.29807e-01
+ -3.95831e-01 -5.10928e-01 -5.49166e-01 5.29797e-01
+ -3.95845e-01 -5.10938e-01 -5.49156e-01 5.29787e-01
+ -3.95858e-01 -5.10949e-01 -5.49146e-01 5.29777e-01
+ -3.95872e-01 -5.10960e-01 -5.49136e-01 5.29767e-01
+ -3.95885e-01 -5.10971e-01 -5.49126e-01 5.29757e-01
+ -3.95899e-01 -5.10982e-01 -5.49116e-01 5.29747e-01
+ -3.95912e-01 -5.10992e-01 -5.49106e-01 5.29737e-01
+ -3.95926e-01 -5.11003e-01 -5.49096e-01 5.29726e-01
+ -3.95939e-01 -5.11014e-01 -5.49086e-01 5.29716e-01
+ -3.95953e-01 -5.11025e-01 -5.49076e-01 5.29706e-01
+ -3.95966e-01 -5.11036e-01 -5.49066e-01 5.29696e-01
+ -3.95980e-01 -5.11046e-01 -5.49056e-01 5.29686e-01
+ -3.95993e-01 -5.11057e-01 -5.49046e-01 5.29676e-01
+ -3.96007e-01 -5.11068e-01 -5.49036e-01 5.29666e-01
+ -3.96020e-01 -5.11079e-01 -5.49026e-01 5.29656e-01
+ -3.96034e-01 -5.11090e-01 -5.49016e-01 5.29646e-01
+ -3.96047e-01 -5.11100e-01 -5.49006e-01 5.29636e-01
+ -3.96061e-01 -5.11111e-01 -5.48996e-01 5.29626e-01
+ -3.96074e-01 -5.11122e-01 -5.48986e-01 5.29616e-01
+ -3.96088e-01 -5.11133e-01 -5.48976e-01 5.29605e-01
+ -3.96101e-01 -5.11143e-01 -5.48965e-01 5.29595e-01
+ -3.96115e-01 -5.11154e-01 -5.48955e-01 5.29585e-01
+ -3.96128e-01 -5.11165e-01 -5.48945e-01 5.29575e-01
+ -3.96142e-01 -5.11176e-01 -5.48935e-01 5.29565e-01
+ -3.96155e-01 -5.11186e-01 -5.48925e-01 5.29555e-01
+ -3.96169e-01 -5.11197e-01 -5.48915e-01 5.29545e-01
+ -3.96182e-01 -5.11208e-01 -5.48905e-01 5.29535e-01
+ -3.96196e-01 -5.11219e-01 -5.48895e-01 5.29525e-01
+ -3.96209e-01 -5.11229e-01 -5.48885e-01 5.29515e-01
+ -3.96223e-01 -5.11240e-01 -5.48875e-01 5.29504e-01
+ -3.96236e-01 -5.11251e-01 -5.48865e-01 5.29494e-01
+ -3.96250e-01 -5.11262e-01 -5.48855e-01 5.29484e-01
+ -3.96263e-01 -5.11272e-01 -5.48846e-01 5.29474e-01
+ -3.96277e-01 -5.11283e-01 -5.48836e-01 5.29464e-01
+ -3.96290e-01 -5.11294e-01 -5.48826e-01 5.29454e-01
+ -3.96304e-01 -5.11305e-01 -5.48816e-01 5.29444e-01
+ -3.96317e-01 -5.11315e-01 -5.48806e-01 5.29434e-01
+ -3.96331e-01 -5.11326e-01 -5.48796e-01 5.29423e-01
+ -3.96344e-01 -5.11337e-01 -5.48786e-01 5.29413e-01
+ -3.96358e-01 -5.11347e-01 -5.48776e-01 5.29403e-01
+ -3.96371e-01 -5.11358e-01 -5.48766e-01 5.29393e-01
+ -3.96385e-01 -5.11369e-01 -5.48756e-01 5.29383e-01
+ -3.96398e-01 -5.11380e-01 -5.48746e-01 5.29373e-01
+ -3.96412e-01 -5.11390e-01 -5.48736e-01 5.29363e-01
+ -3.96425e-01 -5.11401e-01 -5.48726e-01 5.29352e-01
+ -3.96439e-01 -5.11412e-01 -5.48716e-01 5.29342e-01
+ -3.96452e-01 -5.11422e-01 -5.48706e-01 5.29332e-01
+ -3.96466e-01 -5.11433e-01 -5.48696e-01 5.29322e-01
+ -3.96479e-01 -5.11444e-01 -5.48686e-01 5.29312e-01
+ -3.96493e-01 -5.11455e-01 -5.48676e-01 5.29302e-01
+ -3.96506e-01 -5.11465e-01 -5.48666e-01 5.29292e-01
+ -3.96520e-01 -5.11476e-01 -5.48656e-01 5.29281e-01
+ -3.96533e-01 -5.11487e-01 -5.48646e-01 5.29271e-01
+ -3.96547e-01 -5.11497e-01 -5.48636e-01 5.29261e-01
+ -3.96560e-01 -5.11508e-01 -5.48626e-01 5.29251e-01
+ -3.96574e-01 -5.11519e-01 -5.48617e-01 5.29241e-01
+ -3.96587e-01 -5.11529e-01 -5.48607e-01 5.29231e-01
+ -3.96601e-01 -5.11540e-01 -5.48597e-01 5.29220e-01
+ -3.96614e-01 -5.11551e-01 -5.48587e-01 5.29210e-01
+ -3.96628e-01 -5.11561e-01 -5.48577e-01 5.29200e-01
+ -3.96641e-01 -5.11572e-01 -5.48567e-01 5.29190e-01
+ -3.96655e-01 -5.11583e-01 -5.48557e-01 5.29180e-01
+ -3.96669e-01 -5.11593e-01 -5.48547e-01 5.29169e-01
+ -3.96682e-01 -5.11604e-01 -5.48537e-01 5.29159e-01
+ -3.96696e-01 -5.11615e-01 -5.48527e-01 5.29149e-01
+ -3.96709e-01 -5.11625e-01 -5.48517e-01 5.29139e-01
+ -3.96723e-01 -5.11636e-01 -5.48508e-01 5.29129e-01
+ -3.96736e-01 -5.11647e-01 -5.48498e-01 5.29119e-01
+ -3.96750e-01 -5.11657e-01 -5.48488e-01 5.29108e-01
+ -3.96763e-01 -5.11668e-01 -5.48478e-01 5.29098e-01
+ -3.96777e-01 -5.11679e-01 -5.48468e-01 5.29088e-01
+ -3.96790e-01 -5.11689e-01 -5.48458e-01 5.29078e-01
+ -3.96804e-01 -5.11700e-01 -5.48448e-01 5.29068e-01
+ -3.96817e-01 -5.11711e-01 -5.48438e-01 5.29057e-01
+ -3.96831e-01 -5.11721e-01 -5.48428e-01 5.29047e-01
+ -3.96845e-01 -5.11732e-01 -5.48419e-01 5.29037e-01
+ -3.96858e-01 -5.11742e-01 -5.48409e-01 5.29027e-01
+ -3.96872e-01 -5.11753e-01 -5.48399e-01 5.29016e-01
+ -3.96885e-01 -5.11764e-01 -5.48389e-01 5.29006e-01
+ -3.96899e-01 -5.11774e-01 -5.48379e-01 5.28996e-01
+ -3.96912e-01 -5.11785e-01 -5.48369e-01 5.28986e-01
+ -3.96926e-01 -5.11796e-01 -5.48359e-01 5.28976e-01
+ -3.96939e-01 -5.11806e-01 -5.48350e-01 5.28965e-01
+ -3.96953e-01 -5.11817e-01 -5.48340e-01 5.28955e-01
+ -3.96966e-01 -5.11827e-01 -5.48330e-01 5.28945e-01
+ -3.96980e-01 -5.11838e-01 -5.48320e-01 5.28935e-01
+ -3.96994e-01 -5.11849e-01 -5.48310e-01 5.28924e-01
+ -3.97007e-01 -5.11859e-01 -5.48300e-01 5.28914e-01
+ -3.97021e-01 -5.11870e-01 -5.48290e-01 5.28904e-01
+ -3.97034e-01 -5.11881e-01 -5.48281e-01 5.28894e-01
+ -3.97048e-01 -5.11891e-01 -5.48271e-01 5.28883e-01
+ -3.97061e-01 -5.11902e-01 -5.48261e-01 5.28873e-01
+ -3.97075e-01 -5.11912e-01 -5.48251e-01 5.28863e-01
+ -3.97088e-01 -5.11923e-01 -5.48241e-01 5.28853e-01
+ -3.97102e-01 -5.11934e-01 -5.48231e-01 5.28842e-01
+ -3.97116e-01 -5.11944e-01 -5.48222e-01 5.28832e-01
+ -3.97129e-01 -5.11955e-01 -5.48212e-01 5.28822e-01
+ -3.97143e-01 -5.11965e-01 -5.48202e-01 5.28812e-01
+ -3.97156e-01 -5.11976e-01 -5.48192e-01 5.28801e-01
+ -3.97170e-01 -5.11986e-01 -5.48182e-01 5.28791e-01
+ -3.97183e-01 -5.11997e-01 -5.48172e-01 5.28781e-01
+ -3.97197e-01 -5.12008e-01 -5.48163e-01 5.28771e-01
+ -3.97211e-01 -5.12018e-01 -5.48153e-01 5.28760e-01
+ -3.97224e-01 -5.12029e-01 -5.48143e-01 5.28750e-01
+ -3.97238e-01 -5.12039e-01 -5.48133e-01 5.28740e-01
+ -3.97251e-01 -5.12050e-01 -5.48123e-01 5.28730e-01
+ -3.97265e-01 -5.12061e-01 -5.48114e-01 5.28719e-01
+ -3.97278e-01 -5.12071e-01 -5.48104e-01 5.28709e-01
+ -3.97292e-01 -5.12082e-01 -5.48094e-01 5.28699e-01
+ -3.97306e-01 -5.12092e-01 -5.48084e-01 5.28688e-01
+ -3.97319e-01 -5.12103e-01 -5.48075e-01 5.28678e-01
+ -3.97333e-01 -5.12113e-01 -5.48065e-01 5.28668e-01
+ -3.97346e-01 -5.12124e-01 -5.48055e-01 5.28658e-01
+ -3.97360e-01 -5.12134e-01 -5.48045e-01 5.28647e-01
+ -3.97373e-01 -5.12145e-01 -5.48035e-01 5.28637e-01
+ -3.97387e-01 -5.12156e-01 -5.48026e-01 5.28627e-01
+ -3.97401e-01 -5.12166e-01 -5.48016e-01 5.28616e-01
+ -3.97414e-01 -5.12177e-01 -5.48006e-01 5.28606e-01
+ -3.97428e-01 -5.12187e-01 -5.47996e-01 5.28596e-01
+ -3.97441e-01 -5.12198e-01 -5.47987e-01 5.28586e-01
+ -3.97455e-01 -5.12208e-01 -5.47977e-01 5.28575e-01
+ -3.97469e-01 -5.12219e-01 -5.47967e-01 5.28565e-01
+ -3.97482e-01 -5.12229e-01 -5.47957e-01 5.28555e-01
+ -3.97496e-01 -5.12240e-01 -5.47947e-01 5.28544e-01
+ -3.97509e-01 -5.12250e-01 -5.47938e-01 5.28534e-01
+ -3.97523e-01 -5.12261e-01 -5.47928e-01 5.28524e-01
+ -3.97536e-01 -5.12271e-01 -5.47918e-01 5.28513e-01
+ -3.97550e-01 -5.12282e-01 -5.47908e-01 5.28503e-01
+ -3.97564e-01 -5.12292e-01 -5.47899e-01 5.28493e-01
+ -3.97577e-01 -5.12303e-01 -5.47889e-01 5.28482e-01
+ -3.97591e-01 -5.12313e-01 -5.47879e-01 5.28472e-01
+ -3.97604e-01 -5.12324e-01 -5.47870e-01 5.28462e-01
+ -3.97618e-01 -5.12335e-01 -5.47860e-01 5.28451e-01
+ -3.97632e-01 -5.12345e-01 -5.47850e-01 5.28441e-01
+ -3.97645e-01 -5.12356e-01 -5.47840e-01 5.28431e-01
+ -3.97659e-01 -5.12366e-01 -5.47831e-01 5.28420e-01
+ -3.97672e-01 -5.12377e-01 -5.47821e-01 5.28410e-01
+ -3.97686e-01 -5.12387e-01 -5.47811e-01 5.28400e-01
+
+
+SCAN_DURATION 5.67437e+00
+INT_TIME 1.62124e-04
+
+ALONG_SCAN_PIXEL_SIZE  2.39677e-02
+CROSS_SCAN_PIXEL_SIZE  2.40000e-02
+
+CENTER_GP -1.73953e-01 -1.60673e+00 0.00000e+00
+SENSOR_POSITION -1.72826e-01 -1.59660e+00 2.57395e+05
+MOUNTING_ANGLES 0.00000e+00 0.00000e+00 0.00000e+00
+
+TOTAL_LINES 35000
+TOTAL_SAMPLES 10000
+
+
+
+
+IKCODE  -74699
+ISIS_Z_DIRECTION  1.00000e+00
+OPTICAL_DIST_COEF 0.00000e+00 0.00000e+00 0.00000e+00
+ITRANSS 0.00000e+00 0.00000e+00 -4.16666e+01
+ITRANSL 3.87491e+03 4.16666e+01 0.00000e+00
+DETECTOR_SAMPLE_ORIGIN 5.00050e+03
+DETECTOR_LINE_ORIGIN 0.00000e+00
+DETECTOR_LINE_OFFSET  0.00000e+00
+DETECTOR_SAMPLE_SUMMING  1.00000e+00
+STARTING_SAMPLE 1.00000e+00
+STARTING_LINE 1.00000e+00
+STARTING_EPHEMERIS_TIME 3.98801e+08
+CENTER_EPHEMERIS_TIME 3.98801e+08
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hrsc/Makefile b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hrsc/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..be54e104e73e0292e063f9fbd906a71775fba417
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hrsc/Makefile
@@ -0,0 +1,33 @@
+APPNAME = socetlinescankeywords_noExtrapolation
+
+include $(ISISROOT)/make/isismake.tsts
+
+#Use sed to lower output precision to 5 decimal places in output txt files
+
+commands:
+#Test HRSC image with constant exposure rate. H1235 nd2, Vallis Marineris.
+	$(APPNAME) from=$(INPUT)/h1235_0001_nd2_crop.8bit.cub \
+	  to=$(OUTPUT)/h1235_0001_nd2_crop_keywords.txt \
+	  hrsc_nadircentertime=158030857.34364 > /dev/null;
+	cat $(OUTPUT)/h1235_0001_nd2_crop_keywords.txt | \
+	 sed 's/\([0-9]\.[0-9][0-9][0-9][0-9][0-9]\)\([0-9]*\)/\1/g' > \
+	 $(OUTPUT)/sed_h1235_0001_nd2_crop_keywords.txt
+	$(RM) $(OUTPUT)/h1235_0001_nd2_crop_keywords.txt
+
+#Test HRSC image with variable exposure rate. H0894 nd2, Nanedi Vallis.
+	$(APPNAME) from=$(INPUT)/h0894_0000_nd2_crop.8bit.cub \
+	  to=$(OUTPUT)/h0894_0000_nd2_crop_keywords.txt \
+	  hrsc_nadircentertime=149781543.44398 > /dev/null;
+	cat $(OUTPUT)/h0894_0000_nd2_crop_keywords.txt | \
+	 sed 's/\([0-9]\.[0-9][0-9][0-9][0-9][0-9]\)\([0-9]*\)/\1/g' > \
+	 $(OUTPUT)/sed_h0894_0000_nd2_crop_keywords.txt
+	$(RM) $(OUTPUT)/h0894_0000_nd2_crop_keywords.txt
+
+#Test HRSC image with exactly two exposure rates throughout image. H4235 s22, Gale Crater.
+	$(APPNAME) from=$(INPUT)/h4235_0001_s22_crop.8bit.cub \
+	  to=$(OUTPUT)/h4235_0001_s22_crop_keywords.txt \
+	  hrsc_nadircentertime=230605329.82915 > /dev/null;
+	cat $(OUTPUT)/h4235_0001_s22_crop_keywords.txt | \
+	 sed 's/\([0-9]\.[0-9][0-9][0-9][0-9][0-9]\)\([0-9]*\)/\1/g' > \
+	 $(OUTPUT)/sed_h4235_0001_s22_crop_keywords.txt
+	$(RM) $(OUTPUT)/h4235_0001_s22_crop_keywords.txt
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hrsc/truth/sed_h0894_0000_nd2_crop_keywords.txt b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hrsc/truth/sed_h0894_0000_nd2_crop_keywords.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a6ff37553b52e02ea1c9755ba3c1af79ee772e65
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hrsc/truth/sed_h0894_0000_nd2_crop_keywords.txt
@@ -0,0 +1,713 @@
+RECTIFICATION_TERMS
+        1.09695e+04 0.00000e+00 1.00000e+00
+        2.58800e+03 1.00000e+00 0.00000e+00
+GROUND_ZERO 8.90145e-02 -8.17809e-01 0.00000e+00
+LOAD_PT 8.90145e-02 -8.17809e-01 0.00000e+00
+COORD_SYSTEM 1
+IMAGE_MOTION 0
+SENSOR_TYPE USGSAstroLineScannerKLEv
+SENSOR_MODE UNKNOWN
+FOCAL 1.75010e+02
+ATMCO 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_LINE 1.09695e+04 1.42857e+02 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_SAMPLE 2.58800e+03 0.00000e+00 1.42857e+02 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+ABERR    0
+ATMREF   0
+PLATFORM   1
+SOURCE_FLAG  1
+SINGLE_EPHEMERIDE  0
+TRI_PARAMETERS
+0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.75010e+02 0.00000e+00 0.00000e+00
+T_CENTER  2.23648e-03
+DT_EPHEM  1.93639e+00
+T0_EPHEM  -6.77716e+01
+NUMBER_OF_EPHEM   71
+EPHEM_PTS
+ 2.62450e+06 -2.82068e+06 6.15448e+05
+ 2.62415e+06 -2.82039e+06 6.07492e+05
+ 2.62380e+06 -2.82009e+06 5.99535e+05
+ 2.62344e+06 -2.81979e+06 5.91577e+05
+ 2.62308e+06 -2.81948e+06 5.83616e+05
+ 2.62271e+06 -2.81916e+06 5.75654e+05
+ 2.62233e+06 -2.81883e+06 5.67691e+05
+ 2.62194e+06 -2.81849e+06 5.59726e+05
+ 2.62155e+06 -2.81815e+06 5.51759e+05
+ 2.62115e+06 -2.81780e+06 5.43791e+05
+ 2.62074e+06 -2.81744e+06 5.35822e+05
+ 2.62033e+06 -2.81707e+06 5.27851e+05
+ 2.61991e+06 -2.81670e+06 5.19878e+05
+ 2.61948e+06 -2.81631e+06 5.11904e+05
+ 2.61904e+06 -2.81592e+06 5.03929e+05
+ 2.61860e+06 -2.81552e+06 4.95952e+05
+ 2.61815e+06 -2.81512e+06 4.87974e+05
+ 2.61769e+06 -2.81470e+06 4.79995e+05
+ 2.61723e+06 -2.81428e+06 4.72014e+05
+ 2.61676e+06 -2.81385e+06 4.64032e+05
+ 2.61628e+06 -2.81342e+06 4.56048e+05
+ 2.61579e+06 -2.81297e+06 4.48064e+05
+ 2.61530e+06 -2.81252e+06 4.40078e+05
+ 2.61480e+06 -2.81206e+06 4.32090e+05
+ 2.61430e+06 -2.81159e+06 4.24102e+05
+ 2.61378e+06 -2.81111e+06 4.16113e+05
+ 2.61326e+06 -2.81062e+06 4.08122e+05
+ 2.61273e+06 -2.81013e+06 4.00130e+05
+ 2.61220e+06 -2.80963e+06 3.92137e+05
+ 2.61166e+06 -2.80912e+06 3.84143e+05
+ 2.61111e+06 -2.80860e+06 3.76148e+05
+ 2.61055e+06 -2.80808e+06 3.68151e+05
+ 2.60999e+06 -2.80755e+06 3.60154e+05
+ 2.60942e+06 -2.80700e+06 3.52156e+05
+ 2.60884e+06 -2.80646e+06 3.44156e+05
+ 2.60825e+06 -2.80590e+06 3.36156e+05
+ 2.60766e+06 -2.80533e+06 3.28155e+05
+ 2.60706e+06 -2.80476e+06 3.20153e+05
+ 2.60646e+06 -2.80418e+06 3.12149e+05
+ 2.60584e+06 -2.80359e+06 3.04145e+05
+ 2.60522e+06 -2.80299e+06 2.96141e+05
+ 2.60459e+06 -2.80239e+06 2.88135e+05
+ 2.60396e+06 -2.80177e+06 2.80128e+05
+ 2.60331e+06 -2.80115e+06 2.72121e+05
+ 2.60266e+06 -2.80052e+06 2.64113e+05
+ 2.60201e+06 -2.79988e+06 2.56104e+05
+ 2.60134e+06 -2.79924e+06 2.48094e+05
+ 2.60067e+06 -2.79858e+06 2.40084e+05
+ 2.59999e+06 -2.79792e+06 2.32073e+05
+ 2.59931e+06 -2.79725e+06 2.24061e+05
+ 2.59861e+06 -2.79657e+06 2.16049e+05
+ 2.59791e+06 -2.79588e+06 2.08036e+05
+ 2.59720e+06 -2.79519e+06 2.00022e+05
+ 2.59649e+06 -2.79448e+06 1.92008e+05
+ 2.59577e+06 -2.79377e+06 1.83993e+05
+ 2.59504e+06 -2.79305e+06 1.75978e+05
+ 2.59430e+06 -2.79232e+06 1.67962e+05
+ 2.59356e+06 -2.79159e+06 1.59946e+05
+ 2.59281e+06 -2.79084e+06 1.51930e+05
+ 2.59205e+06 -2.79009e+06 1.43912e+05
+ 2.59128e+06 -2.78933e+06 1.35895e+05
+ 2.59051e+06 -2.78856e+06 1.27877e+05
+ 2.58973e+06 -2.78778e+06 1.19858e+05
+ 2.58894e+06 -2.78700e+06 1.11840e+05
+ 2.58814e+06 -2.78620e+06 1.03821e+05
+ 2.58734e+06 -2.78540e+06 9.58018e+04
+ 2.58653e+06 -2.78459e+06 8.77822e+04
+ 2.58572e+06 -2.78377e+06 7.97624e+04
+ 2.58489e+06 -2.78294e+06 7.17423e+04
+ 2.58406e+06 -2.78211e+06 6.37219e+04
+ 2.58322e+06 -2.78126e+06 5.57014e+04
+
+
+EPHEM_RATES
+ -1.75944e+02 1.47590e+02 -4.10790e+03
+ -1.79552e+02 1.51558e+02 -4.10876e+03
+ -1.83163e+02 1.55533e+02 -4.10961e+03
+ -1.86778e+02 1.59513e+02 -4.11045e+03
+ -1.90396e+02 1.63500e+02 -4.11128e+03
+ -1.94017e+02 1.67491e+02 -4.11210e+03
+ -1.97641e+02 1.71489e+02 -4.11290e+03
+ -2.01268e+02 1.75492e+02 -4.11370e+03
+ -2.04898e+02 1.79500e+02 -4.11449e+03
+ -2.08532e+02 1.83515e+02 -4.11527e+03
+ -2.12168e+02 1.87535e+02 -4.11604e+03
+ -2.15808e+02 1.91560e+02 -4.11680e+03
+ -2.19450e+02 1.95591e+02 -4.11754e+03
+ -2.23096e+02 1.99628e+02 -4.11828e+03
+ -2.26745e+02 2.03670e+02 -4.11901e+03
+ -2.30396e+02 2.07717e+02 -4.11972e+03
+ -2.34051e+02 2.11770e+02 -4.12043e+03
+ -2.37708e+02 2.15829e+02 -4.12112e+03
+ -2.41368e+02 2.19893e+02 -4.12181e+03
+ -2.45032e+02 2.23962e+02 -4.12248e+03
+ -2.48698e+02 2.28037e+02 -4.12314e+03
+ -2.52367e+02 2.32117e+02 -4.12380e+03
+ -2.56038e+02 2.36203e+02 -4.12444e+03
+ -2.59713e+02 2.40293e+02 -4.12507e+03
+ -2.63390e+02 2.44389e+02 -4.12569e+03
+ -2.67070e+02 2.48491e+02 -4.12630e+03
+ -2.70753e+02 2.52598e+02 -4.12689e+03
+ -2.74439e+02 2.56710e+02 -4.12748e+03
+ -2.78127e+02 2.60827e+02 -4.12806e+03
+ -2.81818e+02 2.64949e+02 -4.12862e+03
+ -2.85512e+02 2.69077e+02 -4.12918e+03
+ -2.89208e+02 2.73209e+02 -4.12972e+03
+ -2.92907e+02 2.77347e+02 -4.13025e+03
+ -2.96608e+02 2.81490e+02 -4.13078e+03
+ -3.00312e+02 2.85638e+02 -4.13129e+03
+ -3.04019e+02 2.89791e+02 -4.13178e+03
+ -3.07728e+02 2.93950e+02 -4.13227e+03
+ -3.11439e+02 2.98113e+02 -4.13275e+03
+ -3.15153e+02 3.02281e+02 -4.13321e+03
+ -3.18869e+02 3.06454e+02 -4.13367e+03
+ -3.22588e+02 3.10632e+02 -4.13411e+03
+ -3.26310e+02 3.14816e+02 -4.13454e+03
+ -3.30033e+02 3.19003e+02 -4.13496e+03
+ -3.33759e+02 3.23196e+02 -4.13537e+03
+ -3.37487e+02 3.27394e+02 -4.13577e+03
+ -3.41218e+02 3.31597e+02 -4.13616e+03
+ -3.44951e+02 3.35804e+02 -4.13653e+03
+ -3.48686e+02 3.40016e+02 -4.13689e+03
+ -3.52423e+02 3.44233e+02 -4.13725e+03
+ -3.56163e+02 3.48455e+02 -4.13759e+03
+ -3.59904e+02 3.52681e+02 -4.13791e+03
+ -3.63648e+02 3.56912e+02 -4.13823e+03
+ -3.67394e+02 3.61148e+02 -4.13854e+03
+ -3.71142e+02 3.65388e+02 -4.13883e+03
+ -3.74892e+02 3.69633e+02 -4.13911e+03
+ -3.78644e+02 3.73883e+02 -4.13938e+03
+ -3.82399e+02 3.78137e+02 -4.13964e+03
+ -3.86155e+02 3.82396e+02 -4.13989e+03
+ -3.89913e+02 3.86659e+02 -4.14012e+03
+ -3.93673e+02 3.90926e+02 -4.14035e+03
+ -3.97435e+02 3.95199e+02 -4.14056e+03
+ -4.01199e+02 3.99475e+02 -4.14076e+03
+ -4.04965e+02 4.03756e+02 -4.14094e+03
+ -4.08733e+02 4.08041e+02 -4.14112e+03
+ -4.12502e+02 4.12331e+02 -4.14128e+03
+ -4.16273e+02 4.16625e+02 -4.14143e+03
+ -4.20046e+02 4.20923e+02 -4.14157e+03
+ -4.23821e+02 4.25226e+02 -4.14170e+03
+ -4.27597e+02 4.29532e+02 -4.14182e+03
+ -4.31375e+02 4.33843e+02 -4.14192e+03
+ -4.35155e+02 4.38158e+02 -4.14201e+03
+
+
+DT_QUAT 2.07907e-01
+T0_QUAT -5.13510e+01
+NUMBER_OF_QUATERNIONS  495
+QUATERNIONS
+ -7.06162e-01 -2.64771e-01 2.32684e-01 6.14075e-01
+ -7.06097e-01 -2.64742e-01 2.32711e-01 6.14152e-01
+ -7.06033e-01 -2.64712e-01 2.32737e-01 6.14229e-01
+ -7.05968e-01 -2.64682e-01 2.32763e-01 6.14306e-01
+ -7.05904e-01 -2.64653e-01 2.32790e-01 6.14383e-01
+ -7.05839e-01 -2.64623e-01 2.32816e-01 6.14460e-01
+ -7.05774e-01 -2.64594e-01 2.32842e-01 6.14537e-01
+ -7.05710e-01 -2.64564e-01 2.32868e-01 6.14614e-01
+ -7.05645e-01 -2.64534e-01 2.32895e-01 6.14691e-01
+ -7.05580e-01 -2.64505e-01 2.32921e-01 6.14768e-01
+ -7.05516e-01 -2.64475e-01 2.32947e-01 6.14845e-01
+ -7.05451e-01 -2.64445e-01 2.32974e-01 6.14922e-01
+ -7.05386e-01 -2.64416e-01 2.33000e-01 6.14999e-01
+ -7.05322e-01 -2.64386e-01 2.33026e-01 6.15076e-01
+ -7.05257e-01 -2.64356e-01 2.33052e-01 6.15153e-01
+ -7.05192e-01 -2.64327e-01 2.33079e-01 6.15230e-01
+ -7.05127e-01 -2.64297e-01 2.33105e-01 6.15307e-01
+ -7.05062e-01 -2.64267e-01 2.33131e-01 6.15384e-01
+ -7.04998e-01 -2.64238e-01 2.33158e-01 6.15461e-01
+ -7.04933e-01 -2.64208e-01 2.33184e-01 6.15538e-01
+ -7.04868e-01 -2.64178e-01 2.33210e-01 6.15615e-01
+ -7.04803e-01 -2.64149e-01 2.33236e-01 6.15692e-01
+ -7.04738e-01 -2.64119e-01 2.33263e-01 6.15769e-01
+ -7.04673e-01 -2.64089e-01 2.33289e-01 6.15846e-01
+ -7.04609e-01 -2.64059e-01 2.33315e-01 6.15923e-01
+ -7.04544e-01 -2.64030e-01 2.33342e-01 6.16000e-01
+ -7.04479e-01 -2.64000e-01 2.33368e-01 6.16077e-01
+ -7.04414e-01 -2.63970e-01 2.33394e-01 6.16154e-01
+ -7.04349e-01 -2.63940e-01 2.33420e-01 6.16232e-01
+ -7.04284e-01 -2.63911e-01 2.33447e-01 6.16309e-01
+ -7.04219e-01 -2.63881e-01 2.33473e-01 6.16386e-01
+ -7.04154e-01 -2.63851e-01 2.33499e-01 6.16463e-01
+ -7.04089e-01 -2.63821e-01 2.33525e-01 6.16540e-01
+ -7.04024e-01 -2.63792e-01 2.33552e-01 6.16617e-01
+ -7.03959e-01 -2.63762e-01 2.33578e-01 6.16694e-01
+ -7.03894e-01 -2.63732e-01 2.33604e-01 6.16771e-01
+ -7.03829e-01 -2.63702e-01 2.33630e-01 6.16848e-01
+ -7.03764e-01 -2.63672e-01 2.33657e-01 6.16925e-01
+ -7.03699e-01 -2.63643e-01 2.33683e-01 6.17002e-01
+ -7.03634e-01 -2.63613e-01 2.33709e-01 6.17079e-01
+ -7.03568e-01 -2.63583e-01 2.33735e-01 6.17156e-01
+ -7.03503e-01 -2.63553e-01 2.33761e-01 6.17233e-01
+ -7.03438e-01 -2.63523e-01 2.33788e-01 6.17310e-01
+ -7.03373e-01 -2.63493e-01 2.33814e-01 6.17387e-01
+ -7.03308e-01 -2.63464e-01 2.33840e-01 6.17464e-01
+ -7.03243e-01 -2.63434e-01 2.33866e-01 6.17541e-01
+ -7.03177e-01 -2.63404e-01 2.33893e-01 6.17618e-01
+ -7.03112e-01 -2.63374e-01 2.33919e-01 6.17695e-01
+ -7.03047e-01 -2.63344e-01 2.33945e-01 6.17772e-01
+ -7.02982e-01 -2.63314e-01 2.33971e-01 6.17849e-01
+ -7.02917e-01 -2.63284e-01 2.33997e-01 6.17926e-01
+ -7.02851e-01 -2.63254e-01 2.34024e-01 6.18003e-01
+ -7.02786e-01 -2.63225e-01 2.34050e-01 6.18080e-01
+ -7.02721e-01 -2.63195e-01 2.34076e-01 6.18157e-01
+ -7.02655e-01 -2.63165e-01 2.34102e-01 6.18235e-01
+ -7.02590e-01 -2.63135e-01 2.34129e-01 6.18312e-01
+ -7.02525e-01 -2.63105e-01 2.34155e-01 6.18389e-01
+ -7.02459e-01 -2.63075e-01 2.34181e-01 6.18466e-01
+ -7.02394e-01 -2.63045e-01 2.34207e-01 6.18543e-01
+ -7.02329e-01 -2.63015e-01 2.34233e-01 6.18620e-01
+ -7.02263e-01 -2.62985e-01 2.34260e-01 6.18697e-01
+ -7.02198e-01 -2.62955e-01 2.34286e-01 6.18774e-01
+ -7.02132e-01 -2.62925e-01 2.34312e-01 6.18851e-01
+ -7.02067e-01 -2.62895e-01 2.34338e-01 6.18928e-01
+ -7.02002e-01 -2.62865e-01 2.34364e-01 6.19005e-01
+ -7.01936e-01 -2.62835e-01 2.34391e-01 6.19082e-01
+ -7.01871e-01 -2.62805e-01 2.34417e-01 6.19159e-01
+ -7.01805e-01 -2.62775e-01 2.34443e-01 6.19236e-01
+ -7.01740e-01 -2.62745e-01 2.34469e-01 6.19313e-01
+ -7.01674e-01 -2.62715e-01 2.34495e-01 6.19390e-01
+ -7.01609e-01 -2.62685e-01 2.34521e-01 6.19467e-01
+ -7.01543e-01 -2.62655e-01 2.34548e-01 6.19544e-01
+ -7.01477e-01 -2.62625e-01 2.34574e-01 6.19621e-01
+ -7.01412e-01 -2.62595e-01 2.34600e-01 6.19698e-01
+ -7.01346e-01 -2.62565e-01 2.34626e-01 6.19775e-01
+ -7.01281e-01 -2.62535e-01 2.34652e-01 6.19853e-01
+ -7.01215e-01 -2.62505e-01 2.34678e-01 6.19930e-01
+ -7.01149e-01 -2.62475e-01 2.34705e-01 6.20007e-01
+ -7.01084e-01 -2.62445e-01 2.34731e-01 6.20084e-01
+ -7.01018e-01 -2.62415e-01 2.34757e-01 6.20161e-01
+ -7.00952e-01 -2.62385e-01 2.34783e-01 6.20238e-01
+ -7.00887e-01 -2.62355e-01 2.34809e-01 6.20315e-01
+ -7.00821e-01 -2.62325e-01 2.34835e-01 6.20392e-01
+ -7.00755e-01 -2.62295e-01 2.34862e-01 6.20469e-01
+ -7.00690e-01 -2.62265e-01 2.34888e-01 6.20546e-01
+ -7.00624e-01 -2.62235e-01 2.34914e-01 6.20623e-01
+ -7.00558e-01 -2.62204e-01 2.34940e-01 6.20700e-01
+ -7.00492e-01 -2.62174e-01 2.34966e-01 6.20777e-01
+ -7.00427e-01 -2.62144e-01 2.34992e-01 6.20854e-01
+ -7.00361e-01 -2.62114e-01 2.35018e-01 6.20931e-01
+ -7.00295e-01 -2.62084e-01 2.35045e-01 6.21008e-01
+ -7.00229e-01 -2.62054e-01 2.35071e-01 6.21085e-01
+ -7.00163e-01 -2.62024e-01 2.35097e-01 6.21162e-01
+ -7.00097e-01 -2.61994e-01 2.35123e-01 6.21239e-01
+ -7.00032e-01 -2.61963e-01 2.35149e-01 6.21316e-01
+ -6.99966e-01 -2.61933e-01 2.35175e-01 6.21393e-01
+ -6.99900e-01 -2.61903e-01 2.35201e-01 6.21471e-01
+ -6.99834e-01 -2.61873e-01 2.35227e-01 6.21548e-01
+ -6.99768e-01 -2.61843e-01 2.35254e-01 6.21625e-01
+ -6.99702e-01 -2.61812e-01 2.35280e-01 6.21702e-01
+ -6.99636e-01 -2.61782e-01 2.35306e-01 6.21779e-01
+ -6.99570e-01 -2.61752e-01 2.35332e-01 6.21856e-01
+ -6.99504e-01 -2.61722e-01 2.35358e-01 6.21933e-01
+ -6.99438e-01 -2.61692e-01 2.35384e-01 6.22010e-01
+ -6.99372e-01 -2.61661e-01 2.35410e-01 6.22087e-01
+ -6.99306e-01 -2.61631e-01 2.35436e-01 6.22164e-01
+ -6.99240e-01 -2.61601e-01 2.35462e-01 6.22241e-01
+ -6.99174e-01 -2.61571e-01 2.35489e-01 6.22318e-01
+ -6.99108e-01 -2.61541e-01 2.35515e-01 6.22395e-01
+ -6.99042e-01 -2.61510e-01 2.35541e-01 6.22472e-01
+ -6.98976e-01 -2.61480e-01 2.35567e-01 6.22549e-01
+ -6.98910e-01 -2.61450e-01 2.35593e-01 6.22626e-01
+ -6.98844e-01 -2.61420e-01 2.35619e-01 6.22703e-01
+ -6.98777e-01 -2.61389e-01 2.35645e-01 6.22780e-01
+ -6.98711e-01 -2.61359e-01 2.35671e-01 6.22857e-01
+ -6.98645e-01 -2.61329e-01 2.35697e-01 6.22934e-01
+ -6.98579e-01 -2.61298e-01 2.35723e-01 6.23012e-01
+ -6.98513e-01 -2.61268e-01 2.35749e-01 6.23089e-01
+ -6.98446e-01 -2.61238e-01 2.35776e-01 6.23166e-01
+ -6.98380e-01 -2.61208e-01 2.35802e-01 6.23243e-01
+ -6.98314e-01 -2.61177e-01 2.35828e-01 6.23320e-01
+ -6.98248e-01 -2.61147e-01 2.35854e-01 6.23397e-01
+ -6.98182e-01 -2.61117e-01 2.35880e-01 6.23474e-01
+ -6.98115e-01 -2.61086e-01 2.35906e-01 6.23551e-01
+ -6.98049e-01 -2.61056e-01 2.35932e-01 6.23628e-01
+ -6.97983e-01 -2.61026e-01 2.35958e-01 6.23705e-01
+ -6.97916e-01 -2.60995e-01 2.35984e-01 6.23782e-01
+ -6.97850e-01 -2.60965e-01 2.36010e-01 6.23859e-01
+ -6.97784e-01 -2.60934e-01 2.36036e-01 6.23936e-01
+ -6.97717e-01 -2.60904e-01 2.36062e-01 6.24013e-01
+ -6.97651e-01 -2.60874e-01 2.36088e-01 6.24090e-01
+ -6.97584e-01 -2.60843e-01 2.36114e-01 6.24167e-01
+ -6.97518e-01 -2.60813e-01 2.36140e-01 6.24244e-01
+ -6.97452e-01 -2.60783e-01 2.36166e-01 6.24321e-01
+ -6.97385e-01 -2.60752e-01 2.36193e-01 6.24398e-01
+ -6.97319e-01 -2.60722e-01 2.36219e-01 6.24475e-01
+ -6.97252e-01 -2.60691e-01 2.36245e-01 6.24553e-01
+ -6.97186e-01 -2.60661e-01 2.36271e-01 6.24630e-01
+ -6.97119e-01 -2.60631e-01 2.36297e-01 6.24707e-01
+ -6.97053e-01 -2.60600e-01 2.36323e-01 6.24784e-01
+ -6.96986e-01 -2.60570e-01 2.36349e-01 6.24861e-01
+ -6.96920e-01 -2.60539e-01 2.36375e-01 6.24938e-01
+ -6.96853e-01 -2.60509e-01 2.36401e-01 6.25015e-01
+ -6.96787e-01 -2.60478e-01 2.36427e-01 6.25092e-01
+ -6.96720e-01 -2.60448e-01 2.36453e-01 6.25169e-01
+ -6.96654e-01 -2.60417e-01 2.36479e-01 6.25246e-01
+ -6.96587e-01 -2.60387e-01 2.36505e-01 6.25323e-01
+ -6.96520e-01 -2.60356e-01 2.36531e-01 6.25400e-01
+ -6.96454e-01 -2.60326e-01 2.36557e-01 6.25477e-01
+ -6.96387e-01 -2.60295e-01 2.36583e-01 6.25554e-01
+ -6.96320e-01 -2.60265e-01 2.36609e-01 6.25631e-01
+ -6.96254e-01 -2.60234e-01 2.36635e-01 6.25708e-01
+ -6.96187e-01 -2.60204e-01 2.36661e-01 6.25785e-01
+ -6.96120e-01 -2.60173e-01 2.36687e-01 6.25862e-01
+ -6.96054e-01 -2.60143e-01 2.36713e-01 6.25939e-01
+ -6.95987e-01 -2.60112e-01 2.36739e-01 6.26016e-01
+ -6.95920e-01 -2.60082e-01 2.36765e-01 6.26093e-01
+ -6.95853e-01 -2.60051e-01 2.36791e-01 6.26171e-01
+ -6.95787e-01 -2.60021e-01 2.36817e-01 6.26248e-01
+ -6.95720e-01 -2.59990e-01 2.36843e-01 6.26325e-01
+ -6.95653e-01 -2.59960e-01 2.36869e-01 6.26402e-01
+ -6.95586e-01 -2.59929e-01 2.36895e-01 6.26479e-01
+ -6.95519e-01 -2.59899e-01 2.36921e-01 6.26556e-01
+ -6.95453e-01 -2.59868e-01 2.36947e-01 6.26633e-01
+ -6.95386e-01 -2.59837e-01 2.36973e-01 6.26710e-01
+ -6.95319e-01 -2.59807e-01 2.36999e-01 6.26787e-01
+ -6.95252e-01 -2.59776e-01 2.37025e-01 6.26864e-01
+ -6.95185e-01 -2.59746e-01 2.37051e-01 6.26941e-01
+ -6.95118e-01 -2.59715e-01 2.37077e-01 6.27018e-01
+ -6.95051e-01 -2.59684e-01 2.37103e-01 6.27095e-01
+ -6.94984e-01 -2.59654e-01 2.37129e-01 6.27172e-01
+ -6.94917e-01 -2.59623e-01 2.37155e-01 6.27249e-01
+ -6.94850e-01 -2.59593e-01 2.37181e-01 6.27326e-01
+ -6.94783e-01 -2.59562e-01 2.37207e-01 6.27403e-01
+ -6.94716e-01 -2.59531e-01 2.37233e-01 6.27480e-01
+ -6.94649e-01 -2.59501e-01 2.37259e-01 6.27557e-01
+ -6.94582e-01 -2.59470e-01 2.37285e-01 6.27634e-01
+ -6.94515e-01 -2.59439e-01 2.37311e-01 6.27711e-01
+ -6.94448e-01 -2.59409e-01 2.37337e-01 6.27788e-01
+ -6.94381e-01 -2.59378e-01 2.37362e-01 6.27865e-01
+ -6.94314e-01 -2.59347e-01 2.37388e-01 6.27942e-01
+ -6.94247e-01 -2.59317e-01 2.37414e-01 6.28020e-01
+ -6.94180e-01 -2.59286e-01 2.37440e-01 6.28097e-01
+ -6.94113e-01 -2.59255e-01 2.37466e-01 6.28174e-01
+ -6.94046e-01 -2.59224e-01 2.37492e-01 6.28251e-01
+ -6.93979e-01 -2.59194e-01 2.37518e-01 6.28328e-01
+ -6.93911e-01 -2.59163e-01 2.37544e-01 6.28405e-01
+ -6.93844e-01 -2.59132e-01 2.37570e-01 6.28482e-01
+ -6.93777e-01 -2.59102e-01 2.37596e-01 6.28559e-01
+ -6.93710e-01 -2.59071e-01 2.37622e-01 6.28636e-01
+ -6.93643e-01 -2.59040e-01 2.37648e-01 6.28713e-01
+ -6.93575e-01 -2.59009e-01 2.37674e-01 6.28790e-01
+ -6.93508e-01 -2.58979e-01 2.37700e-01 6.28867e-01
+ -6.93441e-01 -2.58948e-01 2.37726e-01 6.28944e-01
+ -6.93374e-01 -2.58917e-01 2.37752e-01 6.29021e-01
+ -6.93306e-01 -2.58886e-01 2.37777e-01 6.29098e-01
+ -6.93239e-01 -2.58856e-01 2.37803e-01 6.29175e-01
+ -6.93172e-01 -2.58825e-01 2.37829e-01 6.29252e-01
+ -6.93104e-01 -2.58794e-01 2.37855e-01 6.29329e-01
+ -6.93037e-01 -2.58763e-01 2.37881e-01 6.29406e-01
+ -6.92970e-01 -2.58732e-01 2.37907e-01 6.29483e-01
+ -6.92902e-01 -2.58702e-01 2.37933e-01 6.29560e-01
+ -6.92835e-01 -2.58671e-01 2.37959e-01 6.29637e-01
+ -6.92767e-01 -2.58640e-01 2.37985e-01 6.29714e-01
+ -6.92700e-01 -2.58609e-01 2.38011e-01 6.29791e-01
+ -6.92633e-01 -2.58578e-01 2.38037e-01 6.29868e-01
+ -6.92565e-01 -2.58547e-01 2.38062e-01 6.29945e-01
+ -6.92498e-01 -2.58517e-01 2.38088e-01 6.30022e-01
+ -6.92430e-01 -2.58486e-01 2.38114e-01 6.30099e-01
+ -6.92363e-01 -2.58455e-01 2.38140e-01 6.30176e-01
+ -6.92295e-01 -2.58424e-01 2.38166e-01 6.30253e-01
+ -6.92228e-01 -2.58393e-01 2.38192e-01 6.30330e-01
+ -6.92160e-01 -2.58362e-01 2.38218e-01 6.30408e-01
+ -6.92093e-01 -2.58331e-01 2.38244e-01 6.30485e-01
+ -6.92025e-01 -2.58300e-01 2.38270e-01 6.30562e-01
+ -6.91958e-01 -2.58270e-01 2.38295e-01 6.30639e-01
+ -6.91890e-01 -2.58239e-01 2.38321e-01 6.30716e-01
+ -6.91822e-01 -2.58208e-01 2.38347e-01 6.30793e-01
+ -6.91755e-01 -2.58177e-01 2.38373e-01 6.30870e-01
+ -6.91687e-01 -2.58146e-01 2.38399e-01 6.30947e-01
+ -6.91620e-01 -2.58115e-01 2.38425e-01 6.31024e-01
+ -6.91552e-01 -2.58084e-01 2.38451e-01 6.31101e-01
+ -6.91484e-01 -2.58053e-01 2.38476e-01 6.31178e-01
+ -6.91417e-01 -2.58022e-01 2.38502e-01 6.31255e-01
+ -6.91349e-01 -2.57991e-01 2.38528e-01 6.31332e-01
+ -6.91281e-01 -2.57960e-01 2.38554e-01 6.31409e-01
+ -6.91213e-01 -2.57929e-01 2.38580e-01 6.31486e-01
+ -6.91146e-01 -2.57898e-01 2.38606e-01 6.31563e-01
+ -6.91078e-01 -2.57867e-01 2.38632e-01 6.31640e-01
+ -6.91010e-01 -2.57836e-01 2.38657e-01 6.31717e-01
+ -6.90942e-01 -2.57805e-01 2.38683e-01 6.31794e-01
+ -6.90875e-01 -2.57774e-01 2.38709e-01 6.31871e-01
+ -6.90807e-01 -2.57743e-01 2.38735e-01 6.31948e-01
+ -6.90739e-01 -2.57712e-01 2.38761e-01 6.32025e-01
+ -6.90671e-01 -2.57681e-01 2.38787e-01 6.32102e-01
+ -6.90603e-01 -2.57650e-01 2.38812e-01 6.32179e-01
+ -6.90535e-01 -2.57619e-01 2.38838e-01 6.32256e-01
+ -6.90467e-01 -2.57588e-01 2.38864e-01 6.32333e-01
+ -6.90400e-01 -2.57557e-01 2.38890e-01 6.32410e-01
+ -6.90332e-01 -2.57526e-01 2.38916e-01 6.32487e-01
+ -6.90264e-01 -2.57495e-01 2.38942e-01 6.32564e-01
+ -6.90196e-01 -2.57464e-01 2.38967e-01 6.32641e-01
+ -6.90128e-01 -2.57433e-01 2.38993e-01 6.32718e-01
+ -6.90060e-01 -2.57402e-01 2.39019e-01 6.32795e-01
+ -6.89992e-01 -2.57371e-01 2.39045e-01 6.32872e-01
+ -6.89924e-01 -2.57340e-01 2.39071e-01 6.32949e-01
+ -6.89856e-01 -2.57309e-01 2.39097e-01 6.33026e-01
+ -6.89788e-01 -2.57278e-01 2.39122e-01 6.33103e-01
+ -6.89720e-01 -2.57247e-01 2.39148e-01 6.33180e-01
+ -6.89652e-01 -2.57216e-01 2.39174e-01 6.33257e-01
+ -6.89584e-01 -2.57184e-01 2.39200e-01 6.33334e-01
+ -6.89516e-01 -2.57153e-01 2.39226e-01 6.33411e-01
+ -6.89448e-01 -2.57122e-01 2.39251e-01 6.33488e-01
+ -6.89380e-01 -2.57091e-01 2.39277e-01 6.33565e-01
+ -6.89311e-01 -2.57060e-01 2.39303e-01 6.33642e-01
+ -6.89243e-01 -2.57029e-01 2.39329e-01 6.33719e-01
+ -6.89175e-01 -2.56998e-01 2.39355e-01 6.33796e-01
+ -6.89107e-01 -2.56966e-01 2.39380e-01 6.33873e-01
+ -6.89039e-01 -2.56935e-01 2.39406e-01 6.33950e-01
+ -6.88971e-01 -2.56904e-01 2.39432e-01 6.34027e-01
+ -6.88902e-01 -2.56873e-01 2.39458e-01 6.34104e-01
+ -6.88834e-01 -2.56842e-01 2.39483e-01 6.34181e-01
+ -6.88766e-01 -2.56811e-01 2.39509e-01 6.34258e-01
+ -6.88698e-01 -2.56779e-01 2.39535e-01 6.34335e-01
+ -6.88629e-01 -2.56748e-01 2.39561e-01 6.34412e-01
+ -6.88561e-01 -2.56717e-01 2.39587e-01 6.34489e-01
+ -6.88493e-01 -2.56686e-01 2.39612e-01 6.34566e-01
+ -6.88425e-01 -2.56655e-01 2.39638e-01 6.34643e-01
+ -6.88356e-01 -2.56623e-01 2.39664e-01 6.34720e-01
+ -6.88288e-01 -2.56592e-01 2.39690e-01 6.34797e-01
+ -6.88220e-01 -2.56561e-01 2.39715e-01 6.34874e-01
+ -6.88151e-01 -2.56530e-01 2.39741e-01 6.34951e-01
+ -6.88083e-01 -2.56498e-01 2.39767e-01 6.35028e-01
+ -6.88014e-01 -2.56467e-01 2.39793e-01 6.35105e-01
+ -6.87946e-01 -2.56436e-01 2.39818e-01 6.35182e-01
+ -6.87878e-01 -2.56405e-01 2.39844e-01 6.35259e-01
+ -6.87809e-01 -2.56373e-01 2.39870e-01 6.35336e-01
+ -6.87741e-01 -2.56342e-01 2.39896e-01 6.35413e-01
+ -6.87672e-01 -2.56311e-01 2.39921e-01 6.35490e-01
+ -6.87604e-01 -2.56280e-01 2.39947e-01 6.35567e-01
+ -6.87535e-01 -2.56248e-01 2.39973e-01 6.35644e-01
+ -6.87467e-01 -2.56217e-01 2.39999e-01 6.35721e-01
+ -6.87398e-01 -2.56186e-01 2.40024e-01 6.35798e-01
+ -6.87330e-01 -2.56154e-01 2.40050e-01 6.35875e-01
+ -6.87261e-01 -2.56123e-01 2.40076e-01 6.35952e-01
+ -6.87193e-01 -2.56092e-01 2.40101e-01 6.36029e-01
+ -6.87124e-01 -2.56060e-01 2.40127e-01 6.36106e-01
+ -6.87056e-01 -2.56029e-01 2.40153e-01 6.36183e-01
+ -6.86987e-01 -2.55998e-01 2.40179e-01 6.36260e-01
+ -6.86918e-01 -2.55966e-01 2.40204e-01 6.36337e-01
+ -6.86850e-01 -2.55935e-01 2.40230e-01 6.36414e-01
+ -6.86781e-01 -2.55904e-01 2.40256e-01 6.36491e-01
+ -6.86713e-01 -2.55872e-01 2.40281e-01 6.36568e-01
+ -6.86644e-01 -2.55841e-01 2.40307e-01 6.36645e-01
+ -6.86575e-01 -2.55810e-01 2.40333e-01 6.36722e-01
+ -6.86506e-01 -2.55778e-01 2.40359e-01 6.36798e-01
+ -6.86438e-01 -2.55747e-01 2.40384e-01 6.36875e-01
+ -6.86369e-01 -2.55715e-01 2.40410e-01 6.36952e-01
+ -6.86300e-01 -2.55684e-01 2.40436e-01 6.37029e-01
+ -6.86232e-01 -2.55653e-01 2.40461e-01 6.37106e-01
+ -6.86163e-01 -2.55621e-01 2.40487e-01 6.37183e-01
+ -6.86094e-01 -2.55590e-01 2.40513e-01 6.37260e-01
+ -6.86025e-01 -2.55558e-01 2.40538e-01 6.37337e-01
+ -6.85956e-01 -2.55527e-01 2.40564e-01 6.37414e-01
+ -6.85888e-01 -2.55495e-01 2.40590e-01 6.37491e-01
+ -6.85819e-01 -2.55464e-01 2.40615e-01 6.37568e-01
+ -6.85750e-01 -2.55433e-01 2.40641e-01 6.37645e-01
+ -6.85681e-01 -2.55401e-01 2.40667e-01 6.37722e-01
+ -6.85612e-01 -2.55370e-01 2.40692e-01 6.37799e-01
+ -6.85543e-01 -2.55338e-01 2.40718e-01 6.37876e-01
+ -6.85474e-01 -2.55307e-01 2.40744e-01 6.37953e-01
+ -6.85406e-01 -2.55275e-01 2.40770e-01 6.38030e-01
+ -6.85337e-01 -2.55244e-01 2.40795e-01 6.38107e-01
+ -6.85268e-01 -2.55212e-01 2.40821e-01 6.38184e-01
+ -6.85199e-01 -2.55181e-01 2.40846e-01 6.38261e-01
+ -6.85130e-01 -2.55149e-01 2.40872e-01 6.38338e-01
+ -6.85061e-01 -2.55118e-01 2.40898e-01 6.38415e-01
+ -6.84992e-01 -2.55086e-01 2.40923e-01 6.38492e-01
+ -6.84923e-01 -2.55055e-01 2.40949e-01 6.38569e-01
+ -6.84854e-01 -2.55023e-01 2.40975e-01 6.38645e-01
+ -6.84785e-01 -2.54992e-01 2.41000e-01 6.38722e-01
+ -6.84716e-01 -2.54960e-01 2.41026e-01 6.38799e-01
+ -6.84646e-01 -2.54928e-01 2.41052e-01 6.38876e-01
+ -6.84577e-01 -2.54897e-01 2.41077e-01 6.38953e-01
+ -6.84508e-01 -2.54865e-01 2.41103e-01 6.39030e-01
+ -6.84439e-01 -2.54834e-01 2.41129e-01 6.39107e-01
+ -6.84370e-01 -2.54802e-01 2.41154e-01 6.39184e-01
+ -6.84301e-01 -2.54771e-01 2.41180e-01 6.39261e-01
+ -6.84232e-01 -2.54739e-01 2.41206e-01 6.39338e-01
+ -6.84163e-01 -2.54707e-01 2.41231e-01 6.39415e-01
+ -6.84093e-01 -2.54676e-01 2.41257e-01 6.39492e-01
+ -6.84024e-01 -2.54644e-01 2.41282e-01 6.39569e-01
+ -6.83955e-01 -2.54613e-01 2.41308e-01 6.39646e-01
+ -6.83886e-01 -2.54581e-01 2.41334e-01 6.39723e-01
+ -6.83817e-01 -2.54549e-01 2.41359e-01 6.39800e-01
+ -6.83747e-01 -2.54518e-01 2.41385e-01 6.39876e-01
+ -6.83678e-01 -2.54486e-01 2.41410e-01 6.39953e-01
+ -6.83609e-01 -2.54454e-01 2.41436e-01 6.40030e-01
+ -6.83539e-01 -2.54423e-01 2.41462e-01 6.40107e-01
+ -6.83470e-01 -2.54391e-01 2.41487e-01 6.40184e-01
+ -6.83401e-01 -2.54360e-01 2.41513e-01 6.40261e-01
+ -6.83331e-01 -2.54328e-01 2.41539e-01 6.40338e-01
+ -6.83262e-01 -2.54296e-01 2.41564e-01 6.40415e-01
+ -6.83193e-01 -2.54265e-01 2.41590e-01 6.40492e-01
+ -6.83123e-01 -2.54233e-01 2.41615e-01 6.40569e-01
+ -6.83054e-01 -2.54201e-01 2.41641e-01 6.40646e-01
+ -6.82985e-01 -2.54169e-01 2.41666e-01 6.40723e-01
+ -6.82915e-01 -2.54138e-01 2.41692e-01 6.40800e-01
+ -6.82846e-01 -2.54106e-01 2.41718e-01 6.40876e-01
+ -6.82776e-01 -2.54074e-01 2.41743e-01 6.40953e-01
+ -6.82707e-01 -2.54043e-01 2.41769e-01 6.41030e-01
+ -6.82637e-01 -2.54011e-01 2.41794e-01 6.41107e-01
+ -6.82568e-01 -2.53979e-01 2.41820e-01 6.41184e-01
+ -6.82498e-01 -2.53947e-01 2.41846e-01 6.41261e-01
+ -6.82429e-01 -2.53916e-01 2.41871e-01 6.41338e-01
+ -6.82359e-01 -2.53884e-01 2.41897e-01 6.41415e-01
+ -6.82290e-01 -2.53852e-01 2.41922e-01 6.41492e-01
+ -6.82220e-01 -2.53820e-01 2.41948e-01 6.41569e-01
+ -6.82151e-01 -2.53789e-01 2.41973e-01 6.41646e-01
+ -6.82081e-01 -2.53757e-01 2.41999e-01 6.41722e-01
+ -6.82011e-01 -2.53725e-01 2.42024e-01 6.41799e-01
+ -6.81942e-01 -2.53693e-01 2.42050e-01 6.41876e-01
+ -6.81872e-01 -2.53661e-01 2.42076e-01 6.41953e-01
+ -6.81803e-01 -2.53630e-01 2.42101e-01 6.42030e-01
+ -6.81733e-01 -2.53598e-01 2.42127e-01 6.42107e-01
+ -6.81663e-01 -2.53566e-01 2.42152e-01 6.42184e-01
+ -6.81593e-01 -2.53534e-01 2.42178e-01 6.42261e-01
+ -6.81524e-01 -2.53502e-01 2.42203e-01 6.42338e-01
+ -6.81454e-01 -2.53471e-01 2.42229e-01 6.42414e-01
+ -6.81384e-01 -2.53439e-01 2.42254e-01 6.42491e-01
+ -6.81315e-01 -2.53407e-01 2.42280e-01 6.42568e-01
+ -6.81245e-01 -2.53375e-01 2.42305e-01 6.42645e-01
+ -6.81175e-01 -2.53343e-01 2.42331e-01 6.42722e-01
+ -6.81105e-01 -2.53311e-01 2.42357e-01 6.42799e-01
+ -6.81035e-01 -2.53279e-01 2.42382e-01 6.42876e-01
+ -6.80966e-01 -2.53248e-01 2.42408e-01 6.42953e-01
+ -6.80896e-01 -2.53216e-01 2.42433e-01 6.43030e-01
+ -6.80826e-01 -2.53184e-01 2.42459e-01 6.43106e-01
+ -6.80756e-01 -2.53152e-01 2.42484e-01 6.43183e-01
+ -6.80686e-01 -2.53120e-01 2.42510e-01 6.43260e-01
+ -6.80616e-01 -2.53088e-01 2.42535e-01 6.43337e-01
+ -6.80546e-01 -2.53056e-01 2.42561e-01 6.43414e-01
+ -6.80477e-01 -2.53024e-01 2.42586e-01 6.43491e-01
+ -6.80407e-01 -2.52992e-01 2.42612e-01 6.43568e-01
+ -6.80337e-01 -2.52960e-01 2.42637e-01 6.43645e-01
+ -6.80267e-01 -2.52929e-01 2.42663e-01 6.43721e-01
+ -6.80197e-01 -2.52897e-01 2.42688e-01 6.43798e-01
+ -6.80127e-01 -2.52865e-01 2.42714e-01 6.43875e-01
+ -6.80057e-01 -2.52833e-01 2.42739e-01 6.43952e-01
+ -6.79987e-01 -2.52801e-01 2.42765e-01 6.44029e-01
+ -6.79917e-01 -2.52769e-01 2.42790e-01 6.44106e-01
+ -6.79847e-01 -2.52737e-01 2.42816e-01 6.44183e-01
+ -6.79777e-01 -2.52705e-01 2.42841e-01 6.44259e-01
+ -6.79707e-01 -2.52673e-01 2.42867e-01 6.44336e-01
+ -6.79637e-01 -2.52641e-01 2.42892e-01 6.44413e-01
+ -6.79566e-01 -2.52609e-01 2.42918e-01 6.44490e-01
+ -6.79496e-01 -2.52577e-01 2.42943e-01 6.44567e-01
+ -6.79426e-01 -2.52545e-01 2.42969e-01 6.44644e-01
+ -6.79356e-01 -2.52513e-01 2.42994e-01 6.44721e-01
+ -6.79286e-01 -2.52481e-01 2.43020e-01 6.44797e-01
+ -6.79216e-01 -2.52449e-01 2.43045e-01 6.44874e-01
+ -6.79146e-01 -2.52417e-01 2.43070e-01 6.44951e-01
+ -6.79075e-01 -2.52385e-01 2.43096e-01 6.45028e-01
+ -6.79005e-01 -2.52353e-01 2.43121e-01 6.45105e-01
+ -6.78935e-01 -2.52321e-01 2.43147e-01 6.45182e-01
+ -6.78865e-01 -2.52289e-01 2.43172e-01 6.45258e-01
+ -6.78795e-01 -2.52257e-01 2.43198e-01 6.45335e-01
+ -6.78724e-01 -2.52224e-01 2.43223e-01 6.45412e-01
+ -6.78654e-01 -2.52192e-01 2.43249e-01 6.45489e-01
+ -6.78584e-01 -2.52160e-01 2.43274e-01 6.45566e-01
+ -6.78513e-01 -2.52128e-01 2.43300e-01 6.45643e-01
+ -6.78443e-01 -2.52096e-01 2.43325e-01 6.45720e-01
+ -6.78373e-01 -2.52064e-01 2.43350e-01 6.45796e-01
+ -6.78302e-01 -2.52032e-01 2.43376e-01 6.45873e-01
+ -6.78232e-01 -2.52000e-01 2.43401e-01 6.45950e-01
+ -6.78162e-01 -2.51968e-01 2.43427e-01 6.46027e-01
+ -6.78091e-01 -2.51936e-01 2.43452e-01 6.46104e-01
+ -6.78021e-01 -2.51903e-01 2.43478e-01 6.46180e-01
+ -6.77950e-01 -2.51871e-01 2.43503e-01 6.46257e-01
+ -6.77880e-01 -2.51839e-01 2.43528e-01 6.46334e-01
+ -6.77810e-01 -2.51807e-01 2.43554e-01 6.46411e-01
+ -6.77739e-01 -2.51775e-01 2.43579e-01 6.46488e-01
+ -6.77669e-01 -2.51743e-01 2.43605e-01 6.46565e-01
+ -6.77598e-01 -2.51711e-01 2.43630e-01 6.46641e-01
+ -6.77528e-01 -2.51678e-01 2.43656e-01 6.46718e-01
+ -6.77457e-01 -2.51646e-01 2.43681e-01 6.46795e-01
+ -6.77387e-01 -2.51614e-01 2.43706e-01 6.46872e-01
+ -6.77316e-01 -2.51582e-01 2.43732e-01 6.46949e-01
+ -6.77246e-01 -2.51550e-01 2.43757e-01 6.47025e-01
+ -6.77175e-01 -2.51517e-01 2.43783e-01 6.47102e-01
+ -6.77104e-01 -2.51485e-01 2.43808e-01 6.47179e-01
+ -6.77034e-01 -2.51453e-01 2.43833e-01 6.47256e-01
+ -6.76963e-01 -2.51421e-01 2.43859e-01 6.47333e-01
+ -6.76893e-01 -2.51389e-01 2.43884e-01 6.47409e-01
+ -6.76822e-01 -2.51356e-01 2.43910e-01 6.47486e-01
+ -6.76751e-01 -2.51324e-01 2.43935e-01 6.47563e-01
+ -6.76681e-01 -2.51292e-01 2.43960e-01 6.47640e-01
+ -6.76610e-01 -2.51260e-01 2.43986e-01 6.47717e-01
+ -6.76539e-01 -2.51227e-01 2.44011e-01 6.47793e-01
+ -6.76469e-01 -2.51195e-01 2.44036e-01 6.47870e-01
+ -6.76398e-01 -2.51163e-01 2.44062e-01 6.47947e-01
+ -6.76327e-01 -2.51131e-01 2.44087e-01 6.48024e-01
+ -6.76256e-01 -2.51098e-01 2.44113e-01 6.48101e-01
+ -6.76186e-01 -2.51066e-01 2.44138e-01 6.48177e-01
+ -6.76115e-01 -2.51034e-01 2.44163e-01 6.48254e-01
+ -6.76044e-01 -2.51001e-01 2.44189e-01 6.48331e-01
+ -6.75973e-01 -2.50969e-01 2.44214e-01 6.48408e-01
+ -6.75902e-01 -2.50937e-01 2.44239e-01 6.48484e-01
+ -6.75832e-01 -2.50905e-01 2.44265e-01 6.48561e-01
+ -6.75761e-01 -2.50872e-01 2.44290e-01 6.48638e-01
+ -6.75690e-01 -2.50840e-01 2.44315e-01 6.48715e-01
+ -6.75619e-01 -2.50808e-01 2.44341e-01 6.48791e-01
+ -6.75548e-01 -2.50775e-01 2.44366e-01 6.48868e-01
+ -6.75477e-01 -2.50743e-01 2.44391e-01 6.48945e-01
+ -6.75406e-01 -2.50710e-01 2.44417e-01 6.49022e-01
+ -6.75335e-01 -2.50678e-01 2.44442e-01 6.49099e-01
+ -6.75264e-01 -2.50646e-01 2.44468e-01 6.49175e-01
+ -6.75193e-01 -2.50613e-01 2.44493e-01 6.49252e-01
+ -6.75122e-01 -2.50581e-01 2.44518e-01 6.49329e-01
+ -6.75051e-01 -2.50549e-01 2.44544e-01 6.49406e-01
+ -6.74980e-01 -2.50516e-01 2.44569e-01 6.49482e-01
+ -6.74909e-01 -2.50484e-01 2.44594e-01 6.49559e-01
+ -6.74838e-01 -2.50451e-01 2.44620e-01 6.49636e-01
+ -6.74767e-01 -2.50419e-01 2.44645e-01 6.49713e-01
+ -6.74696e-01 -2.50387e-01 2.44670e-01 6.49789e-01
+ -6.74625e-01 -2.50354e-01 2.44695e-01 6.49866e-01
+ -6.74554e-01 -2.50322e-01 2.44721e-01 6.49943e-01
+ -6.74483e-01 -2.50289e-01 2.44746e-01 6.50020e-01
+ -6.74412e-01 -2.50257e-01 2.44771e-01 6.50096e-01
+ -6.74341e-01 -2.50225e-01 2.44797e-01 6.50173e-01
+ -6.74270e-01 -2.50192e-01 2.44822e-01 6.50250e-01
+ -6.74198e-01 -2.50160e-01 2.44847e-01 6.50326e-01
+ -6.74127e-01 -2.50127e-01 2.44873e-01 6.50403e-01
+ -6.74056e-01 -2.50095e-01 2.44898e-01 6.50480e-01
+ -6.73985e-01 -2.50062e-01 2.44923e-01 6.50557e-01
+ -6.73914e-01 -2.50030e-01 2.44949e-01 6.50633e-01
+ -6.73842e-01 -2.49997e-01 2.44974e-01 6.50710e-01
+ -6.73771e-01 -2.49965e-01 2.44999e-01 6.50787e-01
+ -6.73700e-01 -2.49932e-01 2.45024e-01 6.50864e-01
+ -6.73629e-01 -2.49900e-01 2.45050e-01 6.50940e-01
+ -6.73557e-01 -2.49867e-01 2.45075e-01 6.51017e-01
+ -6.73486e-01 -2.49835e-01 2.45100e-01 6.51094e-01
+ -6.73415e-01 -2.49802e-01 2.45126e-01 6.51170e-01
+ -6.73344e-01 -2.49770e-01 2.45151e-01 6.51247e-01
+ -6.73272e-01 -2.49737e-01 2.45176e-01 6.51324e-01
+ -6.73201e-01 -2.49705e-01 2.45201e-01 6.51401e-01
+ -6.73129e-01 -2.49672e-01 2.45227e-01 6.51477e-01
+ -6.73058e-01 -2.49640e-01 2.45252e-01 6.51554e-01
+ -6.72987e-01 -2.49607e-01 2.45277e-01 6.51631e-01
+ -6.72915e-01 -2.49574e-01 2.45302e-01 6.51707e-01
+ -6.72844e-01 -2.49542e-01 2.45328e-01 6.51784e-01
+ -6.72772e-01 -2.49509e-01 2.45353e-01 6.51861e-01
+ -6.72701e-01 -2.49477e-01 2.45378e-01 6.51937e-01
+ -6.72630e-01 -2.49444e-01 2.45403e-01 6.52014e-01
+ -6.72558e-01 -2.49412e-01 2.45429e-01 6.52091e-01
+
+
+SCAN_DURATION 9.87562e+01
+
+NUMBER_OF_INT_TIMES 9
+INT_TIMES
+ 1 -5.16686e+01 4.90674e-03
+ 2238 -4.06923e+01 4.80008e-03
+ 4606 -2.93258e+01 4.69342e-03
+ 7102 -1.76111e+01 4.58676e-03
+ 9790 -5.28205e+00 4.48010e-03
+ 12542 7.04710e+00 4.37344e-03
+ 15486 1.99224e+01 4.26679e-03
+ 18558 3.30299e+01 4.16013e-03
+ 21822 4.66084e+01 4.05347e-03
+
+ALONG_SCAN_PIXEL_SIZE  7.00000e-03
+CROSS_SCAN_PIXEL_SIZE  7.00000e-03
+
+CENTER_GP 8.90145e-02 -8.17809e-01 0.00000e+00
+SENSOR_POSITION 8.85576e-02 -8.21886e-01 4.49624e+05
+MOUNTING_ANGLES 0.00000e+00 0.00000e+00 0.00000e+00
+
+TOTAL_LINES 21939
+TOTAL_SAMPLES 5176
+
+
+
+
+IKCODE  -41215
+ISIS_Z_DIRECTION  1.00000e+00
+OPTICAL_DIST_COEF 0.00000e+00 0.00000e+00 0.00000e+00
+ITRANSS 4.83755e+00 -1.42857e+02 -8.57704e-03
+ITRANSL 7.85714e-01 -8.57704e-03 1.42857e+02
+DETECTOR_SAMPLE_ORIGIN 2.59250e+03
+DETECTOR_LINE_ORIGIN 0.00000e+00
+DETECTOR_LINE_OFFSET  0.00000e+00
+DETECTOR_SAMPLE_SUMMING  1.00000e+00
+STARTING_SAMPLE 1.00000e+00
+STARTING_LINE 1.00000e+00
+STARTING_EPHEMERIS_TIME 1.49781e+08
+CENTER_EPHEMERIS_TIME 1.49781e+08
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hrsc/truth/sed_h1235_0001_nd2_crop_keywords.txt b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hrsc/truth/sed_h1235_0001_nd2_crop_keywords.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1009eeebebd0aa9810b4f89e32dd626dcc405aec
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hrsc/truth/sed_h1235_0001_nd2_crop_keywords.txt
@@ -0,0 +1,822 @@
+RECTIFICATION_TERMS
+        1.30665e+04 0.00000e+00 1.00000e+00
+        2.58800e+03 1.00000e+00 0.00000e+00
+GROUND_ZERO -9.76327e-02 -1.33743e+00 0.00000e+00
+LOAD_PT -9.76327e-02 -1.33743e+00 0.00000e+00
+COORD_SYSTEM 1
+IMAGE_MOTION 0
+SENSOR_TYPE USGSAstroLineScannerKLEv
+SENSOR_MODE UNKNOWN
+FOCAL 1.75010e+02
+ATMCO 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_LINE 1.30665e+04 1.42857e+02 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_SAMPLE 2.58800e+03 0.00000e+00 1.42857e+02 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+ABERR    0
+ATMREF   0
+PLATFORM   1
+SOURCE_FLAG  1
+SINGLE_EPHEMERIDE  0
+TRI_PARAMETERS
+0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.75010e+02 0.00000e+00 0.00000e+00
+T_CENTER  -3.69548e-06
+DT_EPHEM  1.67259e+00
+T0_EPHEM  -6.18860e+01
+NUMBER_OF_EPHEM   75
+EPHEM_PTS
+ 9.46653e+05 -3.89155e+06 -1.52360e+05
+ 9.46889e+05 -3.89289e+06 -1.58985e+05
+ 9.47123e+05 -3.89422e+06 -1.65611e+05
+ 9.47354e+05 -3.89554e+06 -1.72236e+05
+ 9.47584e+05 -3.89686e+06 -1.78860e+05
+ 9.47812e+05 -3.89817e+06 -1.85485e+05
+ 9.48037e+05 -3.89947e+06 -1.92109e+05
+ 9.48261e+05 -3.90076e+06 -1.98732e+05
+ 9.48482e+05 -3.90205e+06 -2.05356e+05
+ 9.48701e+05 -3.90333e+06 -2.11978e+05
+ 9.48919e+05 -3.90461e+06 -2.18601e+05
+ 9.49134e+05 -3.90587e+06 -2.25223e+05
+ 9.49347e+05 -3.90713e+06 -2.31845e+05
+ 9.49558e+05 -3.90838e+06 -2.38466e+05
+ 9.49768e+05 -3.90963e+06 -2.45087e+05
+ 9.49975e+05 -3.91087e+06 -2.51707e+05
+ 9.50180e+05 -3.91210e+06 -2.58327e+05
+ 9.50383e+05 -3.91332e+06 -2.64946e+05
+ 9.50584e+05 -3.91454e+06 -2.71565e+05
+ 9.50783e+05 -3.91575e+06 -2.78184e+05
+ 9.50980e+05 -3.91695e+06 -2.84802e+05
+ 9.51175e+05 -3.91815e+06 -2.91419e+05
+ 9.51368e+05 -3.91934e+06 -2.98036e+05
+ 9.51559e+05 -3.92052e+06 -3.04652e+05
+ 9.51748e+05 -3.92170e+06 -3.11268e+05
+ 9.51936e+05 -3.92286e+06 -3.17883e+05
+ 9.52121e+05 -3.92403e+06 -3.24498e+05
+ 9.52304e+05 -3.92518e+06 -3.31112e+05
+ 9.52485e+05 -3.92633e+06 -3.37725e+05
+ 9.52664e+05 -3.92747e+06 -3.44338e+05
+ 9.52841e+05 -3.92860e+06 -3.50950e+05
+ 9.53016e+05 -3.92973e+06 -3.57562e+05
+ 9.53190e+05 -3.93085e+06 -3.64173e+05
+ 9.53361e+05 -3.93196e+06 -3.70783e+05
+ 9.53530e+05 -3.93306e+06 -3.77393e+05
+ 9.53698e+05 -3.93416e+06 -3.84002e+05
+ 9.53863e+05 -3.93525e+06 -3.90610e+05
+ 9.54027e+05 -3.93634e+06 -3.97217e+05
+ 9.54188e+05 -3.93742e+06 -4.03824e+05
+ 9.54348e+05 -3.93849e+06 -4.10430e+05
+ 9.54505e+05 -3.93955e+06 -4.17036e+05
+ 9.54661e+05 -3.94061e+06 -4.23640e+05
+ 9.54815e+05 -3.94166e+06 -4.30244e+05
+ 9.54967e+05 -3.94270e+06 -4.36847e+05
+ 9.55117e+05 -3.94374e+06 -4.43450e+05
+ 9.55265e+05 -3.94477e+06 -4.50051e+05
+ 9.55411e+05 -3.94579e+06 -4.56652e+05
+ 9.55555e+05 -3.94680e+06 -4.63252e+05
+ 9.55697e+05 -3.94781e+06 -4.69851e+05
+ 9.55837e+05 -3.94881e+06 -4.76449e+05
+ 9.55976e+05 -3.94981e+06 -4.83047e+05
+ 9.56112e+05 -3.95080e+06 -4.89643e+05
+ 9.56247e+05 -3.95178e+06 -4.96239e+05
+ 9.56380e+05 -3.95275e+06 -5.02834e+05
+ 9.56511e+05 -3.95372e+06 -5.09428e+05
+ 9.56640e+05 -3.95468e+06 -5.16021e+05
+ 9.56767e+05 -3.95564e+06 -5.22613e+05
+ 9.56892e+05 -3.95659e+06 -5.29205e+05
+ 9.57015e+05 -3.95753e+06 -5.35795e+05
+ 9.57137e+05 -3.95846e+06 -5.42385e+05
+ 9.57257e+05 -3.95939e+06 -5.48973e+05
+ 9.57374e+05 -3.96031e+06 -5.55561e+05
+ 9.57490e+05 -3.96122e+06 -5.62147e+05
+ 9.57604e+05 -3.96213e+06 -5.68733e+05
+ 9.57716e+05 -3.96303e+06 -5.75317e+05
+ 9.57827e+05 -3.96392e+06 -5.81901e+05
+ 9.57935e+05 -3.96481e+06 -5.88484e+05
+ 9.58042e+05 -3.96569e+06 -5.95065e+05
+ 9.58147e+05 -3.96656e+06 -6.01646e+05
+ 9.58250e+05 -3.96743e+06 -6.08225e+05
+ 9.58351e+05 -3.96829e+06 -6.14804e+05
+ 9.58450e+05 -3.96914e+06 -6.21381e+05
+ 9.58548e+05 -3.96999e+06 -6.27958e+05
+ 9.58643e+05 -3.97083e+06 -6.34533e+05
+ 9.58737e+05 -3.97166e+06 -6.41107e+05
+
+
+EPHEM_RATES
+ 1.41611e+02 -8.01984e+02 -3.96134e+03
+ 1.40372e+02 -7.97712e+02 -3.96117e+03
+ 1.39135e+02 -7.93444e+02 -3.96098e+03
+ 1.37900e+02 -7.89179e+02 -3.96080e+03
+ 1.36668e+02 -7.84918e+02 -3.96060e+03
+ 1.35437e+02 -7.80660e+02 -3.96040e+03
+ 1.34209e+02 -7.76406e+02 -3.96019e+03
+ 1.32982e+02 -7.72156e+02 -3.95997e+03
+ 1.31758e+02 -7.67909e+02 -3.95975e+03
+ 1.30535e+02 -7.63666e+02 -3.95952e+03
+ 1.29315e+02 -7.59426e+02 -3.95928e+03
+ 1.28097e+02 -7.55190e+02 -3.95903e+03
+ 1.26881e+02 -7.50957e+02 -3.95878e+03
+ 1.25666e+02 -7.46728e+02 -3.95852e+03
+ 1.24454e+02 -7.42503e+02 -3.95825e+03
+ 1.23244e+02 -7.38281e+02 -3.95798e+03
+ 1.22036e+02 -7.34064e+02 -3.95770e+03
+ 1.20830e+02 -7.29849e+02 -3.95741e+03
+ 1.19627e+02 -7.25639e+02 -3.95712e+03
+ 1.18425e+02 -7.21432e+02 -3.95682e+03
+ 1.17225e+02 -7.17229e+02 -3.95651e+03
+ 1.16027e+02 -7.13030e+02 -3.95620e+03
+ 1.14832e+02 -7.08834e+02 -3.95588e+03
+ 1.13639e+02 -7.04642e+02 -3.95555e+03
+ 1.12447e+02 -7.00454e+02 -3.95521e+03
+ 1.11258e+02 -6.96270e+02 -3.95487e+03
+ 1.10071e+02 -6.92089e+02 -3.95452e+03
+ 1.08886e+02 -6.87913e+02 -3.95417e+03
+ 1.07703e+02 -6.83740e+02 -3.95381e+03
+ 1.06522e+02 -6.79571e+02 -3.95344e+03
+ 1.05343e+02 -6.75406e+02 -3.95306e+03
+ 1.04166e+02 -6.71245e+02 -3.95268e+03
+ 1.02992e+02 -6.67087e+02 -3.95229e+03
+ 1.01819e+02 -6.62934e+02 -3.95190e+03
+ 1.00649e+02 -6.58784e+02 -3.95149e+03
+ 9.94811e+01 -6.54638e+02 -3.95109e+03
+ 9.83150e+01 -6.50497e+02 -3.95067e+03
+ 9.71510e+01 -6.46359e+02 -3.95025e+03
+ 9.59891e+01 -6.42225e+02 -3.94982e+03
+ 9.48292e+01 -6.38095e+02 -3.94939e+03
+ 9.36714e+01 -6.33969e+02 -3.94895e+03
+ 9.25158e+01 -6.29847e+02 -3.94850e+03
+ 9.13623e+01 -6.25729e+02 -3.94804e+03
+ 9.02110e+01 -6.21615e+02 -3.94758e+03
+ 8.90618e+01 -6.17505e+02 -3.94712e+03
+ 8.79147e+01 -6.13399e+02 -3.94664e+03
+ 8.67697e+01 -6.09297e+02 -3.94617e+03
+ 8.56269e+01 -6.05199e+02 -3.94568e+03
+ 8.44862e+01 -6.01105e+02 -3.94519e+03
+ 8.33476e+01 -5.97016e+02 -3.94469e+03
+ 8.22111e+01 -5.92930e+02 -3.94418e+03
+ 8.10767e+01 -5.88848e+02 -3.94367e+03
+ 7.99445e+01 -5.84771e+02 -3.94316e+03
+ 7.88144e+01 -5.80697e+02 -3.94263e+03
+ 7.76865e+01 -5.76628e+02 -3.94210e+03
+ 7.65608e+01 -5.72563e+02 -3.94157e+03
+ 7.54371e+01 -5.68502e+02 -3.94102e+03
+ 7.43157e+01 -5.64445e+02 -3.94048e+03
+ 7.31963e+01 -5.60392e+02 -3.93992e+03
+ 7.20790e+01 -5.56343e+02 -3.93936e+03
+ 7.09639e+01 -5.52299e+02 -3.93880e+03
+ 6.98509e+01 -5.48258e+02 -3.93822e+03
+ 6.87401e+01 -5.44222e+02 -3.93764e+03
+ 6.76315e+01 -5.40190e+02 -3.93706e+03
+ 6.65250e+01 -5.36163e+02 -3.93647e+03
+ 6.54207e+01 -5.32139e+02 -3.93587e+03
+ 6.43184e+01 -5.28120e+02 -3.93527e+03
+ 6.32184e+01 -5.24105e+02 -3.93466e+03
+ 6.21205e+01 -5.20094e+02 -3.93404e+03
+ 6.10248e+01 -5.16088e+02 -3.93342e+03
+ 5.99312e+01 -5.12086e+02 -3.93280e+03
+ 5.88397e+01 -5.08088e+02 -3.93217e+03
+ 5.77504e+01 -5.04094e+02 -3.93153e+03
+ 5.66633e+01 -5.00104e+02 -3.93088e+03
+ 5.55782e+01 -4.96119e+02 -3.93023e+03
+
+
+DT_QUAT 1.56716e-01
+T0_QUAT -4.74852e+01
+NUMBER_OF_QUATERNIONS  607
+QUATERNIONS
+ -6.80811e-01 -8.54969e-02 9.96244e-02 7.20598e-01
+ -6.80756e-01 -8.54869e-02 9.96292e-02 7.20650e-01
+ -6.80701e-01 -8.54770e-02 9.96340e-02 7.20702e-01
+ -6.80647e-01 -8.54670e-02 9.96388e-02 7.20754e-01
+ -6.80592e-01 -8.54570e-02 9.96436e-02 7.20806e-01
+ -6.80537e-01 -8.54471e-02 9.96484e-02 7.20858e-01
+ -6.80483e-01 -8.54371e-02 9.96532e-02 7.20910e-01
+ -6.80428e-01 -8.54272e-02 9.96580e-02 7.20962e-01
+ -6.80373e-01 -8.54172e-02 9.96628e-02 7.21014e-01
+ -6.80319e-01 -8.54073e-02 9.96676e-02 7.21067e-01
+ -6.80264e-01 -8.53973e-02 9.96724e-02 7.21119e-01
+ -6.80209e-01 -8.53874e-02 9.96772e-02 7.21171e-01
+ -6.80155e-01 -8.53774e-02 9.96820e-02 7.21223e-01
+ -6.80100e-01 -8.53675e-02 9.96868e-02 7.21275e-01
+ -6.80045e-01 -8.53575e-02 9.96916e-02 7.21327e-01
+ -6.79991e-01 -8.53476e-02 9.96964e-02 7.21379e-01
+ -6.79936e-01 -8.53376e-02 9.97012e-02 7.21431e-01
+ -6.79882e-01 -8.53277e-02 9.97060e-02 7.21483e-01
+ -6.79827e-01 -8.53178e-02 9.97108e-02 7.21535e-01
+ -6.79772e-01 -8.53078e-02 9.97155e-02 7.21587e-01
+ -6.79718e-01 -8.52979e-02 9.97203e-02 7.21639e-01
+ -6.79663e-01 -8.52879e-02 9.97251e-02 7.21691e-01
+ -6.79608e-01 -8.52780e-02 9.97299e-02 7.21743e-01
+ -6.79554e-01 -8.52681e-02 9.97347e-02 7.21795e-01
+ -6.79499e-01 -8.52581e-02 9.97395e-02 7.21847e-01
+ -6.79444e-01 -8.52482e-02 9.97443e-02 7.21899e-01
+ -6.79390e-01 -8.52383e-02 9.97491e-02 7.21951e-01
+ -6.79335e-01 -8.52283e-02 9.97539e-02 7.22003e-01
+ -6.79280e-01 -8.52184e-02 9.97586e-02 7.22054e-01
+ -6.79226e-01 -8.52085e-02 9.97634e-02 7.22106e-01
+ -6.79171e-01 -8.51985e-02 9.97682e-02 7.22158e-01
+ -6.79117e-01 -8.51886e-02 9.97730e-02 7.22210e-01
+ -6.79062e-01 -8.51787e-02 9.97778e-02 7.22262e-01
+ -6.79007e-01 -8.51688e-02 9.97825e-02 7.22314e-01
+ -6.78953e-01 -8.51588e-02 9.97873e-02 7.22366e-01
+ -6.78898e-01 -8.51489e-02 9.97921e-02 7.22418e-01
+ -6.78843e-01 -8.51390e-02 9.97969e-02 7.22470e-01
+ -6.78789e-01 -8.51291e-02 9.98017e-02 7.22521e-01
+ -6.78734e-01 -8.51191e-02 9.98064e-02 7.22573e-01
+ -6.78679e-01 -8.51092e-02 9.98112e-02 7.22625e-01
+ -6.78625e-01 -8.50993e-02 9.98160e-02 7.22677e-01
+ -6.78570e-01 -8.50894e-02 9.98208e-02 7.22729e-01
+ -6.78515e-01 -8.50795e-02 9.98255e-02 7.22781e-01
+ -6.78461e-01 -8.50696e-02 9.98303e-02 7.22832e-01
+ -6.78406e-01 -8.50596e-02 9.98351e-02 7.22884e-01
+ -6.78352e-01 -8.50497e-02 9.98398e-02 7.22936e-01
+ -6.78297e-01 -8.50398e-02 9.98446e-02 7.22988e-01
+ -6.78242e-01 -8.50299e-02 9.98494e-02 7.23039e-01
+ -6.78188e-01 -8.50200e-02 9.98541e-02 7.23091e-01
+ -6.78133e-01 -8.50101e-02 9.98589e-02 7.23143e-01
+ -6.78078e-01 -8.50002e-02 9.98637e-02 7.23195e-01
+ -6.78024e-01 -8.49903e-02 9.98684e-02 7.23246e-01
+ -6.77969e-01 -8.49804e-02 9.98732e-02 7.23298e-01
+ -6.77914e-01 -8.49705e-02 9.98780e-02 7.23350e-01
+ -6.77860e-01 -8.49606e-02 9.98827e-02 7.23402e-01
+ -6.77805e-01 -8.49507e-02 9.98875e-02 7.23453e-01
+ -6.77750e-01 -8.49408e-02 9.98923e-02 7.23505e-01
+ -6.77696e-01 -8.49309e-02 9.98970e-02 7.23557e-01
+ -6.77641e-01 -8.49210e-02 9.99018e-02 7.23608e-01
+ -6.77587e-01 -8.49111e-02 9.99065e-02 7.23660e-01
+ -6.77532e-01 -8.49012e-02 9.99113e-02 7.23712e-01
+ -6.77477e-01 -8.48913e-02 9.99160e-02 7.23763e-01
+ -6.77423e-01 -8.48814e-02 9.99208e-02 7.23815e-01
+ -6.77368e-01 -8.48715e-02 9.99256e-02 7.23867e-01
+ -6.77313e-01 -8.48616e-02 9.99303e-02 7.23918e-01
+ -6.77259e-01 -8.48517e-02 9.99351e-02 7.23970e-01
+ -6.77204e-01 -8.48418e-02 9.99398e-02 7.24022e-01
+ -6.77149e-01 -8.48319e-02 9.99446e-02 7.24073e-01
+ -6.77095e-01 -8.48220e-02 9.99493e-02 7.24125e-01
+ -6.77040e-01 -8.48121e-02 9.99541e-02 7.24176e-01
+ -6.76986e-01 -8.48022e-02 9.99588e-02 7.24228e-01
+ -6.76931e-01 -8.47924e-02 9.99636e-02 7.24279e-01
+ -6.76876e-01 -8.47825e-02 9.99683e-02 7.24331e-01
+ -6.76822e-01 -8.47726e-02 9.99731e-02 7.24383e-01
+ -6.76767e-01 -8.47627e-02 9.99778e-02 7.24434e-01
+ -6.76712e-01 -8.47528e-02 9.99826e-02 7.24486e-01
+ -6.76658e-01 -8.47430e-02 9.99873e-02 7.24537e-01
+ -6.76603e-01 -8.47331e-02 9.99920e-02 7.24589e-01
+ -6.76548e-01 -8.47232e-02 9.99968e-02 7.24640e-01
+ -6.76494e-01 -8.47133e-02 1.00001e-01 7.24692e-01
+ -6.76439e-01 -8.47034e-02 1.00006e-01 7.24743e-01
+ -6.76385e-01 -8.46936e-02 1.00011e-01 7.24795e-01
+ -6.76330e-01 -8.46837e-02 1.00015e-01 7.24846e-01
+ -6.76275e-01 -8.46738e-02 1.00020e-01 7.24898e-01
+ -6.76221e-01 -8.46640e-02 1.00025e-01 7.24949e-01
+ -6.76166e-01 -8.46541e-02 1.00030e-01 7.25001e-01
+ -6.76111e-01 -8.46442e-02 1.00034e-01 7.25052e-01
+ -6.76057e-01 -8.46344e-02 1.00039e-01 7.25103e-01
+ -6.76002e-01 -8.46245e-02 1.00044e-01 7.25155e-01
+ -6.75947e-01 -8.46146e-02 1.00048e-01 7.25206e-01
+ -6.75893e-01 -8.46048e-02 1.00053e-01 7.25258e-01
+ -6.75838e-01 -8.45949e-02 1.00058e-01 7.25309e-01
+ -6.75784e-01 -8.45850e-02 1.00063e-01 7.25361e-01
+ -6.75729e-01 -8.45752e-02 1.00067e-01 7.25412e-01
+ -6.75674e-01 -8.45653e-02 1.00072e-01 7.25463e-01
+ -6.75620e-01 -8.45554e-02 1.00077e-01 7.25515e-01
+ -6.75565e-01 -8.45456e-02 1.00082e-01 7.25566e-01
+ -6.75510e-01 -8.45357e-02 1.00086e-01 7.25617e-01
+ -6.75456e-01 -8.45259e-02 1.00091e-01 7.25669e-01
+ -6.75401e-01 -8.45160e-02 1.00096e-01 7.25720e-01
+ -6.75346e-01 -8.45062e-02 1.00100e-01 7.25771e-01
+ -6.75292e-01 -8.44963e-02 1.00105e-01 7.25823e-01
+ -6.75237e-01 -8.44865e-02 1.00110e-01 7.25874e-01
+ -6.75183e-01 -8.44766e-02 1.00115e-01 7.25925e-01
+ -6.75128e-01 -8.44668e-02 1.00119e-01 7.25977e-01
+ -6.75073e-01 -8.44569e-02 1.00124e-01 7.26028e-01
+ -6.75019e-01 -8.44471e-02 1.00129e-01 7.26079e-01
+ -6.74964e-01 -8.44372e-02 1.00133e-01 7.26131e-01
+ -6.74909e-01 -8.44274e-02 1.00138e-01 7.26182e-01
+ -6.74855e-01 -8.44175e-02 1.00143e-01 7.26233e-01
+ -6.74800e-01 -8.44077e-02 1.00148e-01 7.26284e-01
+ -6.74746e-01 -8.43979e-02 1.00152e-01 7.26336e-01
+ -6.74691e-01 -8.43880e-02 1.00157e-01 7.26387e-01
+ -6.74636e-01 -8.43782e-02 1.00162e-01 7.26438e-01
+ -6.74582e-01 -8.43683e-02 1.00166e-01 7.26489e-01
+ -6.74527e-01 -8.43585e-02 1.00171e-01 7.26540e-01
+ -6.74472e-01 -8.43487e-02 1.00176e-01 7.26592e-01
+ -6.74418e-01 -8.43388e-02 1.00181e-01 7.26643e-01
+ -6.74363e-01 -8.43290e-02 1.00185e-01 7.26694e-01
+ -6.74309e-01 -8.43192e-02 1.00190e-01 7.26745e-01
+ -6.74254e-01 -8.43093e-02 1.00195e-01 7.26796e-01
+ -6.74199e-01 -8.42995e-02 1.00199e-01 7.26848e-01
+ -6.74145e-01 -8.42897e-02 1.00204e-01 7.26899e-01
+ -6.74090e-01 -8.42798e-02 1.00209e-01 7.26950e-01
+ -6.74035e-01 -8.42700e-02 1.00214e-01 7.27001e-01
+ -6.73981e-01 -8.42602e-02 1.00218e-01 7.27052e-01
+ -6.73926e-01 -8.42504e-02 1.00223e-01 7.27103e-01
+ -6.73872e-01 -8.42405e-02 1.00228e-01 7.27154e-01
+ -6.73817e-01 -8.42307e-02 1.00232e-01 7.27206e-01
+ -6.73762e-01 -8.42209e-02 1.00237e-01 7.27257e-01
+ -6.73708e-01 -8.42111e-02 1.00242e-01 7.27308e-01
+ -6.73653e-01 -8.42013e-02 1.00246e-01 7.27359e-01
+ -6.73598e-01 -8.41914e-02 1.00251e-01 7.27410e-01
+ -6.73544e-01 -8.41816e-02 1.00256e-01 7.27461e-01
+ -6.73489e-01 -8.41718e-02 1.00261e-01 7.27512e-01
+ -6.73435e-01 -8.41620e-02 1.00265e-01 7.27563e-01
+ -6.73380e-01 -8.41522e-02 1.00270e-01 7.27614e-01
+ -6.73325e-01 -8.41424e-02 1.00275e-01 7.27665e-01
+ -6.73271e-01 -8.41325e-02 1.00279e-01 7.27716e-01
+ -6.73216e-01 -8.41227e-02 1.00284e-01 7.27767e-01
+ -6.73162e-01 -8.41129e-02 1.00289e-01 7.27818e-01
+ -6.73107e-01 -8.41031e-02 1.00293e-01 7.27869e-01
+ -6.73052e-01 -8.40933e-02 1.00298e-01 7.27920e-01
+ -6.72998e-01 -8.40835e-02 1.00303e-01 7.27971e-01
+ -6.72943e-01 -8.40737e-02 1.00307e-01 7.28022e-01
+ -6.72888e-01 -8.40639e-02 1.00312e-01 7.28073e-01
+ -6.72834e-01 -8.40541e-02 1.00317e-01 7.28124e-01
+ -6.72779e-01 -8.40443e-02 1.00321e-01 7.28175e-01
+ -6.72725e-01 -8.40345e-02 1.00326e-01 7.28226e-01
+ -6.72670e-01 -8.40247e-02 1.00331e-01 7.28277e-01
+ -6.72615e-01 -8.40149e-02 1.00336e-01 7.28328e-01
+ -6.72561e-01 -8.40051e-02 1.00340e-01 7.28379e-01
+ -6.72506e-01 -8.39953e-02 1.00345e-01 7.28430e-01
+ -6.72452e-01 -8.39855e-02 1.00350e-01 7.28481e-01
+ -6.72397e-01 -8.39757e-02 1.00354e-01 7.28531e-01
+ -6.72342e-01 -8.39659e-02 1.00359e-01 7.28582e-01
+ -6.72288e-01 -8.39561e-02 1.00364e-01 7.28633e-01
+ -6.72233e-01 -8.39463e-02 1.00368e-01 7.28684e-01
+ -6.72178e-01 -8.39365e-02 1.00373e-01 7.28735e-01
+ -6.72124e-01 -8.39268e-02 1.00378e-01 7.28786e-01
+ -6.72069e-01 -8.39170e-02 1.00382e-01 7.28837e-01
+ -6.72015e-01 -8.39072e-02 1.00387e-01 7.28887e-01
+ -6.71960e-01 -8.38974e-02 1.00392e-01 7.28938e-01
+ -6.71905e-01 -8.38876e-02 1.00396e-01 7.28989e-01
+ -6.71851e-01 -8.38778e-02 1.00401e-01 7.29040e-01
+ -6.71796e-01 -8.38680e-02 1.00406e-01 7.29091e-01
+ -6.71742e-01 -8.38583e-02 1.00410e-01 7.29141e-01
+ -6.71687e-01 -8.38485e-02 1.00415e-01 7.29192e-01
+ -6.71632e-01 -8.38387e-02 1.00420e-01 7.29243e-01
+ -6.71578e-01 -8.38289e-02 1.00424e-01 7.29294e-01
+ -6.71523e-01 -8.38191e-02 1.00429e-01 7.29345e-01
+ -6.71469e-01 -8.38094e-02 1.00434e-01 7.29395e-01
+ -6.71414e-01 -8.37996e-02 1.00438e-01 7.29446e-01
+ -6.71359e-01 -8.37898e-02 1.00443e-01 7.29497e-01
+ -6.71305e-01 -8.37800e-02 1.00448e-01 7.29548e-01
+ -6.71250e-01 -8.37703e-02 1.00452e-01 7.29598e-01
+ -6.71196e-01 -8.37605e-02 1.00457e-01 7.29649e-01
+ -6.71141e-01 -8.37507e-02 1.00462e-01 7.29700e-01
+ -6.71086e-01 -8.37410e-02 1.00466e-01 7.29750e-01
+ -6.71032e-01 -8.37312e-02 1.00471e-01 7.29801e-01
+ -6.70977e-01 -8.37214e-02 1.00476e-01 7.29852e-01
+ -6.70922e-01 -8.37117e-02 1.00480e-01 7.29902e-01
+ -6.70868e-01 -8.37019e-02 1.00485e-01 7.29953e-01
+ -6.70813e-01 -8.36921e-02 1.00489e-01 7.30004e-01
+ -6.70759e-01 -8.36824e-02 1.00494e-01 7.30054e-01
+ -6.70704e-01 -8.36726e-02 1.00499e-01 7.30105e-01
+ -6.70649e-01 -8.36629e-02 1.00503e-01 7.30156e-01
+ -6.70595e-01 -8.36531e-02 1.00508e-01 7.30206e-01
+ -6.70540e-01 -8.36434e-02 1.00513e-01 7.30257e-01
+ -6.70486e-01 -8.36336e-02 1.00517e-01 7.30308e-01
+ -6.70431e-01 -8.36238e-02 1.00522e-01 7.30358e-01
+ -6.70376e-01 -8.36141e-02 1.00527e-01 7.30409e-01
+ -6.70322e-01 -8.36043e-02 1.00531e-01 7.30459e-01
+ -6.70267e-01 -8.35946e-02 1.00536e-01 7.30510e-01
+ -6.70213e-01 -8.35848e-02 1.00541e-01 7.30560e-01
+ -6.70158e-01 -8.35751e-02 1.00545e-01 7.30611e-01
+ -6.70103e-01 -8.35653e-02 1.00550e-01 7.30662e-01
+ -6.70049e-01 -8.35556e-02 1.00555e-01 7.30712e-01
+ -6.69994e-01 -8.35458e-02 1.00559e-01 7.30763e-01
+ -6.69940e-01 -8.35361e-02 1.00564e-01 7.30813e-01
+ -6.69885e-01 -8.35264e-02 1.00568e-01 7.30864e-01
+ -6.69830e-01 -8.35166e-02 1.00573e-01 7.30914e-01
+ -6.69776e-01 -8.35069e-02 1.00578e-01 7.30965e-01
+ -6.69721e-01 -8.34971e-02 1.00582e-01 7.31015e-01
+ -6.69667e-01 -8.34874e-02 1.00587e-01 7.31066e-01
+ -6.69612e-01 -8.34777e-02 1.00592e-01 7.31116e-01
+ -6.69558e-01 -8.34679e-02 1.00596e-01 7.31167e-01
+ -6.69503e-01 -8.34582e-02 1.00601e-01 7.31217e-01
+ -6.69448e-01 -8.34485e-02 1.00605e-01 7.31268e-01
+ -6.69394e-01 -8.34387e-02 1.00610e-01 7.31318e-01
+ -6.69339e-01 -8.34290e-02 1.00615e-01 7.31368e-01
+ -6.69285e-01 -8.34193e-02 1.00619e-01 7.31419e-01
+ -6.69230e-01 -8.34095e-02 1.00624e-01 7.31469e-01
+ -6.69175e-01 -8.33998e-02 1.00629e-01 7.31520e-01
+ -6.69121e-01 -8.33901e-02 1.00633e-01 7.31570e-01
+ -6.69066e-01 -8.33803e-02 1.00638e-01 7.31621e-01
+ -6.69012e-01 -8.33706e-02 1.00642e-01 7.31671e-01
+ -6.68957e-01 -8.33609e-02 1.00647e-01 7.31721e-01
+ -6.68902e-01 -8.33512e-02 1.00652e-01 7.31772e-01
+ -6.68848e-01 -8.33414e-02 1.00656e-01 7.31822e-01
+ -6.68793e-01 -8.33317e-02 1.00661e-01 7.31872e-01
+ -6.68739e-01 -8.33220e-02 1.00666e-01 7.31923e-01
+ -6.68684e-01 -8.33123e-02 1.00670e-01 7.31973e-01
+ -6.68630e-01 -8.33026e-02 1.00675e-01 7.32023e-01
+ -6.68575e-01 -8.32928e-02 1.00679e-01 7.32074e-01
+ -6.68520e-01 -8.32831e-02 1.00684e-01 7.32124e-01
+ -6.68466e-01 -8.32734e-02 1.00689e-01 7.32174e-01
+ -6.68411e-01 -8.32637e-02 1.00693e-01 7.32225e-01
+ -6.68357e-01 -8.32540e-02 1.00698e-01 7.32275e-01
+ -6.68302e-01 -8.32443e-02 1.00702e-01 7.32325e-01
+ -6.68247e-01 -8.32346e-02 1.00707e-01 7.32376e-01
+ -6.68193e-01 -8.32249e-02 1.00712e-01 7.32426e-01
+ -6.68138e-01 -8.32152e-02 1.00716e-01 7.32476e-01
+ -6.68084e-01 -8.32054e-02 1.00721e-01 7.32526e-01
+ -6.68029e-01 -8.31957e-02 1.00726e-01 7.32577e-01
+ -6.67974e-01 -8.31860e-02 1.00730e-01 7.32627e-01
+ -6.67920e-01 -8.31763e-02 1.00735e-01 7.32677e-01
+ -6.67865e-01 -8.31666e-02 1.00739e-01 7.32727e-01
+ -6.67811e-01 -8.31569e-02 1.00744e-01 7.32777e-01
+ -6.67756e-01 -8.31472e-02 1.00749e-01 7.32828e-01
+ -6.67702e-01 -8.31375e-02 1.00753e-01 7.32878e-01
+ -6.67647e-01 -8.31278e-02 1.00758e-01 7.32928e-01
+ -6.67592e-01 -8.31181e-02 1.00762e-01 7.32978e-01
+ -6.67538e-01 -8.31084e-02 1.00767e-01 7.33028e-01
+ -6.67483e-01 -8.30987e-02 1.00772e-01 7.33079e-01
+ -6.67429e-01 -8.30891e-02 1.00776e-01 7.33129e-01
+ -6.67374e-01 -8.30794e-02 1.00781e-01 7.33179e-01
+ -6.67320e-01 -8.30697e-02 1.00785e-01 7.33229e-01
+ -6.67265e-01 -8.30600e-02 1.00790e-01 7.33279e-01
+ -6.67210e-01 -8.30503e-02 1.00795e-01 7.33329e-01
+ -6.67156e-01 -8.30406e-02 1.00799e-01 7.33379e-01
+ -6.67101e-01 -8.30309e-02 1.00804e-01 7.33430e-01
+ -6.67047e-01 -8.30212e-02 1.00808e-01 7.33480e-01
+ -6.66992e-01 -8.30115e-02 1.00813e-01 7.33530e-01
+ -6.66938e-01 -8.30019e-02 1.00817e-01 7.33580e-01
+ -6.66883e-01 -8.29922e-02 1.00822e-01 7.33630e-01
+ -6.66828e-01 -8.29825e-02 1.00827e-01 7.33680e-01
+ -6.66774e-01 -8.29728e-02 1.00831e-01 7.33730e-01
+ -6.66719e-01 -8.29631e-02 1.00836e-01 7.33780e-01
+ -6.66665e-01 -8.29535e-02 1.00840e-01 7.33830e-01
+ -6.66610e-01 -8.29438e-02 1.00845e-01 7.33880e-01
+ -6.66556e-01 -8.29341e-02 1.00850e-01 7.33930e-01
+ -6.66501e-01 -8.29244e-02 1.00854e-01 7.33980e-01
+ -6.66446e-01 -8.29148e-02 1.00859e-01 7.34030e-01
+ -6.66392e-01 -8.29051e-02 1.00863e-01 7.34080e-01
+ -6.66337e-01 -8.28954e-02 1.00868e-01 7.34130e-01
+ -6.66283e-01 -8.28857e-02 1.00872e-01 7.34180e-01
+ -6.66228e-01 -8.28761e-02 1.00877e-01 7.34230e-01
+ -6.66174e-01 -8.28664e-02 1.00882e-01 7.34280e-01
+ -6.66119e-01 -8.28567e-02 1.00886e-01 7.34330e-01
+ -6.66064e-01 -8.28471e-02 1.00891e-01 7.34380e-01
+ -6.66010e-01 -8.28374e-02 1.00895e-01 7.34430e-01
+ -6.65955e-01 -8.28278e-02 1.00900e-01 7.34480e-01
+ -6.65901e-01 -8.28181e-02 1.00905e-01 7.34530e-01
+ -6.65846e-01 -8.28084e-02 1.00909e-01 7.34580e-01
+ -6.65792e-01 -8.27988e-02 1.00914e-01 7.34630e-01
+ -6.65737e-01 -8.27891e-02 1.00918e-01 7.34680e-01
+ -6.65683e-01 -8.27795e-02 1.00923e-01 7.34729e-01
+ -6.65628e-01 -8.27698e-02 1.00927e-01 7.34779e-01
+ -6.65573e-01 -8.27601e-02 1.00932e-01 7.34829e-01
+ -6.65519e-01 -8.27505e-02 1.00936e-01 7.34879e-01
+ -6.65464e-01 -8.27408e-02 1.00941e-01 7.34929e-01
+ -6.65410e-01 -8.27312e-02 1.00946e-01 7.34979e-01
+ -6.65355e-01 -8.27215e-02 1.00950e-01 7.35029e-01
+ -6.65301e-01 -8.27119e-02 1.00955e-01 7.35079e-01
+ -6.65246e-01 -8.27022e-02 1.00959e-01 7.35128e-01
+ -6.65192e-01 -8.26926e-02 1.00964e-01 7.35178e-01
+ -6.65137e-01 -8.26829e-02 1.00968e-01 7.35228e-01
+ -6.65082e-01 -8.26733e-02 1.00973e-01 7.35278e-01
+ -6.65028e-01 -8.26636e-02 1.00978e-01 7.35328e-01
+ -6.64973e-01 -8.26540e-02 1.00982e-01 7.35377e-01
+ -6.64919e-01 -8.26444e-02 1.00987e-01 7.35427e-01
+ -6.64864e-01 -8.26347e-02 1.00991e-01 7.35477e-01
+ -6.64810e-01 -8.26251e-02 1.00996e-01 7.35527e-01
+ -6.64755e-01 -8.26154e-02 1.01000e-01 7.35576e-01
+ -6.64701e-01 -8.26058e-02 1.01005e-01 7.35626e-01
+ -6.64646e-01 -8.25962e-02 1.01009e-01 7.35676e-01
+ -6.64591e-01 -8.25865e-02 1.01014e-01 7.35726e-01
+ -6.64537e-01 -8.25769e-02 1.01019e-01 7.35775e-01
+ -6.64482e-01 -8.25673e-02 1.01023e-01 7.35825e-01
+ -6.64428e-01 -8.25576e-02 1.01028e-01 7.35875e-01
+ -6.64373e-01 -8.25480e-02 1.01032e-01 7.35925e-01
+ -6.64319e-01 -8.25384e-02 1.01037e-01 7.35974e-01
+ -6.64264e-01 -8.25288e-02 1.01041e-01 7.36024e-01
+ -6.64210e-01 -8.25191e-02 1.01046e-01 7.36074e-01
+ -6.64155e-01 -8.25095e-02 1.01050e-01 7.36123e-01
+ -6.64101e-01 -8.24999e-02 1.01055e-01 7.36173e-01
+ -6.64046e-01 -8.24902e-02 1.01059e-01 7.36223e-01
+ -6.63991e-01 -8.24806e-02 1.01064e-01 7.36272e-01
+ -6.63937e-01 -8.24710e-02 1.01069e-01 7.36322e-01
+ -6.63882e-01 -8.24614e-02 1.01073e-01 7.36372e-01
+ -6.63828e-01 -8.24518e-02 1.01078e-01 7.36421e-01
+ -6.63773e-01 -8.24421e-02 1.01082e-01 7.36471e-01
+ -6.63719e-01 -8.24325e-02 1.01087e-01 7.36520e-01
+ -6.63664e-01 -8.24229e-02 1.01091e-01 7.36570e-01
+ -6.63610e-01 -8.24133e-02 1.01096e-01 7.36620e-01
+ -6.63555e-01 -8.24037e-02 1.01100e-01 7.36669e-01
+ -6.63501e-01 -8.23941e-02 1.01105e-01 7.36719e-01
+ -6.63446e-01 -8.23845e-02 1.01109e-01 7.36768e-01
+ -6.63392e-01 -8.23749e-02 1.01114e-01 7.36818e-01
+ -6.63337e-01 -8.23652e-02 1.01118e-01 7.36867e-01
+ -6.63282e-01 -8.23556e-02 1.01123e-01 7.36917e-01
+ -6.63228e-01 -8.23460e-02 1.01127e-01 7.36966e-01
+ -6.63173e-01 -8.23364e-02 1.01132e-01 7.37016e-01
+ -6.63119e-01 -8.23268e-02 1.01136e-01 7.37066e-01
+ -6.63064e-01 -8.23172e-02 1.01141e-01 7.37115e-01
+ -6.63010e-01 -8.23076e-02 1.01146e-01 7.37165e-01
+ -6.62955e-01 -8.22980e-02 1.01150e-01 7.37214e-01
+ -6.62901e-01 -8.22884e-02 1.01155e-01 7.37264e-01
+ -6.62846e-01 -8.22788e-02 1.01159e-01 7.37313e-01
+ -6.62792e-01 -8.22692e-02 1.01164e-01 7.37362e-01
+ -6.62737e-01 -8.22596e-02 1.01168e-01 7.37412e-01
+ -6.62683e-01 -8.22500e-02 1.01173e-01 7.37461e-01
+ -6.62628e-01 -8.22404e-02 1.01177e-01 7.37511e-01
+ -6.62574e-01 -8.22308e-02 1.01182e-01 7.37560e-01
+ -6.62519e-01 -8.22212e-02 1.01186e-01 7.37610e-01
+ -6.62464e-01 -8.22116e-02 1.01191e-01 7.37659e-01
+ -6.62410e-01 -8.22021e-02 1.01195e-01 7.37709e-01
+ -6.62355e-01 -8.21925e-02 1.01200e-01 7.37758e-01
+ -6.62301e-01 -8.21829e-02 1.01204e-01 7.37807e-01
+ -6.62246e-01 -8.21733e-02 1.01209e-01 7.37857e-01
+ -6.62192e-01 -8.21637e-02 1.01213e-01 7.37906e-01
+ -6.62137e-01 -8.21541e-02 1.01218e-01 7.37955e-01
+ -6.62083e-01 -8.21445e-02 1.01222e-01 7.38005e-01
+ -6.62028e-01 -8.21350e-02 1.01227e-01 7.38054e-01
+ -6.61974e-01 -8.21254e-02 1.01231e-01 7.38104e-01
+ -6.61919e-01 -8.21158e-02 1.01236e-01 7.38153e-01
+ -6.61865e-01 -8.21062e-02 1.01240e-01 7.38202e-01
+ -6.61810e-01 -8.20966e-02 1.01245e-01 7.38252e-01
+ -6.61756e-01 -8.20871e-02 1.01249e-01 7.38301e-01
+ -6.61701e-01 -8.20775e-02 1.01254e-01 7.38350e-01
+ -6.61647e-01 -8.20679e-02 1.01258e-01 7.38399e-01
+ -6.61592e-01 -8.20583e-02 1.01263e-01 7.38449e-01
+ -6.61538e-01 -8.20488e-02 1.01267e-01 7.38498e-01
+ -6.61483e-01 -8.20392e-02 1.01272e-01 7.38547e-01
+ -6.61429e-01 -8.20296e-02 1.01276e-01 7.38597e-01
+ -6.61374e-01 -8.20201e-02 1.01281e-01 7.38646e-01
+ -6.61320e-01 -8.20105e-02 1.01285e-01 7.38695e-01
+ -6.61265e-01 -8.20009e-02 1.01290e-01 7.38744e-01
+ -6.61211e-01 -8.19914e-02 1.01294e-01 7.38794e-01
+ -6.61156e-01 -8.19818e-02 1.01299e-01 7.38843e-01
+ -6.61102e-01 -8.19722e-02 1.01303e-01 7.38892e-01
+ -6.61047e-01 -8.19627e-02 1.01308e-01 7.38941e-01
+ -6.60993e-01 -8.19531e-02 1.01312e-01 7.38990e-01
+ -6.60938e-01 -8.19436e-02 1.01317e-01 7.39040e-01
+ -6.60883e-01 -8.19340e-02 1.01321e-01 7.39089e-01
+ -6.60829e-01 -8.19244e-02 1.01326e-01 7.39138e-01
+ -6.60774e-01 -8.19149e-02 1.01330e-01 7.39187e-01
+ -6.60720e-01 -8.19053e-02 1.01335e-01 7.39236e-01
+ -6.60665e-01 -8.18958e-02 1.01339e-01 7.39286e-01
+ -6.60611e-01 -8.18862e-02 1.01344e-01 7.39335e-01
+ -6.60556e-01 -8.18767e-02 1.01348e-01 7.39384e-01
+ -6.60502e-01 -8.18671e-02 1.01353e-01 7.39433e-01
+ -6.60447e-01 -8.18576e-02 1.01357e-01 7.39482e-01
+ -6.60393e-01 -8.18480e-02 1.01362e-01 7.39531e-01
+ -6.60338e-01 -8.18385e-02 1.01366e-01 7.39580e-01
+ -6.60284e-01 -8.18289e-02 1.01371e-01 7.39629e-01
+ -6.60229e-01 -8.18194e-02 1.01375e-01 7.39678e-01
+ -6.60175e-01 -8.18098e-02 1.01380e-01 7.39728e-01
+ -6.60120e-01 -8.18003e-02 1.01384e-01 7.39777e-01
+ -6.60066e-01 -8.17908e-02 1.01389e-01 7.39826e-01
+ -6.60011e-01 -8.17812e-02 1.01393e-01 7.39875e-01
+ -6.59957e-01 -8.17717e-02 1.01397e-01 7.39924e-01
+ -6.59902e-01 -8.17621e-02 1.01402e-01 7.39973e-01
+ -6.59848e-01 -8.17526e-02 1.01406e-01 7.40022e-01
+ -6.59793e-01 -8.17431e-02 1.01411e-01 7.40071e-01
+ -6.59739e-01 -8.17335e-02 1.01415e-01 7.40120e-01
+ -6.59684e-01 -8.17240e-02 1.01420e-01 7.40169e-01
+ -6.59630e-01 -8.17145e-02 1.01424e-01 7.40218e-01
+ -6.59575e-01 -8.17049e-02 1.01429e-01 7.40267e-01
+ -6.59521e-01 -8.16954e-02 1.01433e-01 7.40316e-01
+ -6.59467e-01 -8.16859e-02 1.01438e-01 7.40365e-01
+ -6.59412e-01 -8.16764e-02 1.01442e-01 7.40414e-01
+ -6.59358e-01 -8.16668e-02 1.01447e-01 7.40463e-01
+ -6.59303e-01 -8.16573e-02 1.01451e-01 7.40512e-01
+ -6.59249e-01 -8.16478e-02 1.01456e-01 7.40561e-01
+ -6.59194e-01 -8.16383e-02 1.01460e-01 7.40610e-01
+ -6.59140e-01 -8.16287e-02 1.01464e-01 7.40659e-01
+ -6.59085e-01 -8.16192e-02 1.01469e-01 7.40708e-01
+ -6.59031e-01 -8.16097e-02 1.01473e-01 7.40756e-01
+ -6.58976e-01 -8.16002e-02 1.01478e-01 7.40805e-01
+ -6.58922e-01 -8.15907e-02 1.01482e-01 7.40854e-01
+ -6.58867e-01 -8.15811e-02 1.01487e-01 7.40903e-01
+ -6.58813e-01 -8.15716e-02 1.01491e-01 7.40952e-01
+ -6.58758e-01 -8.15621e-02 1.01496e-01 7.41001e-01
+ -6.58704e-01 -8.15526e-02 1.01500e-01 7.41050e-01
+ -6.58649e-01 -8.15431e-02 1.01505e-01 7.41099e-01
+ -6.58595e-01 -8.15336e-02 1.01509e-01 7.41148e-01
+ -6.58540e-01 -8.15241e-02 1.01513e-01 7.41196e-01
+ -6.58486e-01 -8.15146e-02 1.01518e-01 7.41245e-01
+ -6.58431e-01 -8.15051e-02 1.01522e-01 7.41294e-01
+ -6.58377e-01 -8.14956e-02 1.01527e-01 7.41343e-01
+ -6.58322e-01 -8.14861e-02 1.01531e-01 7.41392e-01
+ -6.58268e-01 -8.14765e-02 1.01536e-01 7.41440e-01
+ -6.58213e-01 -8.14670e-02 1.01540e-01 7.41489e-01
+ -6.58159e-01 -8.14575e-02 1.01545e-01 7.41538e-01
+ -6.58104e-01 -8.14480e-02 1.01549e-01 7.41587e-01
+ -6.58050e-01 -8.14385e-02 1.01553e-01 7.41636e-01
+ -6.57996e-01 -8.14290e-02 1.01558e-01 7.41684e-01
+ -6.57941e-01 -8.14196e-02 1.01562e-01 7.41733e-01
+ -6.57887e-01 -8.14101e-02 1.01567e-01 7.41782e-01
+ -6.57832e-01 -8.14006e-02 1.01571e-01 7.41831e-01
+ -6.57778e-01 -8.13911e-02 1.01576e-01 7.41879e-01
+ -6.57723e-01 -8.13816e-02 1.01580e-01 7.41928e-01
+ -6.57669e-01 -8.13721e-02 1.01585e-01 7.41977e-01
+ -6.57614e-01 -8.13626e-02 1.01589e-01 7.42025e-01
+ -6.57560e-01 -8.13531e-02 1.01593e-01 7.42074e-01
+ -6.57505e-01 -8.13436e-02 1.01598e-01 7.42123e-01
+ -6.57451e-01 -8.13341e-02 1.01602e-01 7.42172e-01
+ -6.57396e-01 -8.13246e-02 1.01607e-01 7.42220e-01
+ -6.57342e-01 -8.13152e-02 1.01611e-01 7.42269e-01
+ -6.57287e-01 -8.13057e-02 1.01616e-01 7.42318e-01
+ -6.57233e-01 -8.12962e-02 1.01620e-01 7.42366e-01
+ -6.57179e-01 -8.12867e-02 1.01624e-01 7.42415e-01
+ -6.57124e-01 -8.12772e-02 1.01629e-01 7.42464e-01
+ -6.57070e-01 -8.12678e-02 1.01633e-01 7.42512e-01
+ -6.57015e-01 -8.12583e-02 1.01638e-01 7.42561e-01
+ -6.56961e-01 -8.12488e-02 1.01642e-01 7.42609e-01
+ -6.56906e-01 -8.12393e-02 1.01646e-01 7.42658e-01
+ -6.56852e-01 -8.12299e-02 1.01651e-01 7.42707e-01
+ -6.56797e-01 -8.12204e-02 1.01655e-01 7.42755e-01
+ -6.56743e-01 -8.12109e-02 1.01660e-01 7.42804e-01
+ -6.56688e-01 -8.12014e-02 1.01664e-01 7.42852e-01
+ -6.56634e-01 -8.11920e-02 1.01669e-01 7.42901e-01
+ -6.56580e-01 -8.11825e-02 1.01673e-01 7.42949e-01
+ -6.56525e-01 -8.11730e-02 1.01677e-01 7.42998e-01
+ -6.56471e-01 -8.11636e-02 1.01682e-01 7.43047e-01
+ -6.56416e-01 -8.11541e-02 1.01686e-01 7.43095e-01
+ -6.56362e-01 -8.11446e-02 1.01691e-01 7.43144e-01
+ -6.56307e-01 -8.11352e-02 1.01695e-01 7.43192e-01
+ -6.56253e-01 -8.11257e-02 1.01699e-01 7.43241e-01
+ -6.56198e-01 -8.11163e-02 1.01704e-01 7.43289e-01
+ -6.56144e-01 -8.11068e-02 1.01708e-01 7.43338e-01
+ -6.56089e-01 -8.10973e-02 1.01713e-01 7.43386e-01
+ -6.56035e-01 -8.10879e-02 1.01717e-01 7.43435e-01
+ -6.55981e-01 -8.10784e-02 1.01722e-01 7.43483e-01
+ -6.55926e-01 -8.10690e-02 1.01726e-01 7.43531e-01
+ -6.55872e-01 -8.10595e-02 1.01730e-01 7.43580e-01
+ -6.55817e-01 -8.10501e-02 1.01735e-01 7.43628e-01
+ -6.55763e-01 -8.10406e-02 1.01739e-01 7.43677e-01
+ -6.55708e-01 -8.10312e-02 1.01744e-01 7.43725e-01
+ -6.55654e-01 -8.10217e-02 1.01748e-01 7.43774e-01
+ -6.55599e-01 -8.10123e-02 1.01752e-01 7.43822e-01
+ -6.55545e-01 -8.10028e-02 1.01757e-01 7.43870e-01
+ -6.55491e-01 -8.09934e-02 1.01761e-01 7.43919e-01
+ -6.55436e-01 -8.09839e-02 1.01766e-01 7.43967e-01
+ -6.55382e-01 -8.09745e-02 1.01770e-01 7.44016e-01
+ -6.55327e-01 -8.09651e-02 1.01774e-01 7.44064e-01
+ -6.55273e-01 -8.09556e-02 1.01779e-01 7.44112e-01
+ -6.55218e-01 -8.09462e-02 1.01783e-01 7.44161e-01
+ -6.55164e-01 -8.09367e-02 1.01788e-01 7.44209e-01
+ -6.55110e-01 -8.09273e-02 1.01792e-01 7.44257e-01
+ -6.55055e-01 -8.09179e-02 1.01796e-01 7.44306e-01
+ -6.55001e-01 -8.09084e-02 1.01801e-01 7.44354e-01
+ -6.54946e-01 -8.08990e-02 1.01805e-01 7.44402e-01
+ -6.54892e-01 -8.08896e-02 1.01809e-01 7.44451e-01
+ -6.54837e-01 -8.08801e-02 1.01814e-01 7.44499e-01
+ -6.54783e-01 -8.08707e-02 1.01818e-01 7.44547e-01
+ -6.54729e-01 -8.08613e-02 1.01823e-01 7.44596e-01
+ -6.54674e-01 -8.08519e-02 1.01827e-01 7.44644e-01
+ -6.54620e-01 -8.08424e-02 1.01831e-01 7.44692e-01
+ -6.54565e-01 -8.08330e-02 1.01836e-01 7.44740e-01
+ -6.54511e-01 -8.08236e-02 1.01840e-01 7.44789e-01
+ -6.54456e-01 -8.08142e-02 1.01845e-01 7.44837e-01
+ -6.54402e-01 -8.08047e-02 1.01849e-01 7.44885e-01
+ -6.54348e-01 -8.07953e-02 1.01853e-01 7.44933e-01
+ -6.54293e-01 -8.07859e-02 1.01858e-01 7.44982e-01
+ -6.54239e-01 -8.07765e-02 1.01862e-01 7.45030e-01
+ -6.54184e-01 -8.07671e-02 1.01866e-01 7.45078e-01
+ -6.54130e-01 -8.07576e-02 1.01871e-01 7.45126e-01
+ -6.54075e-01 -8.07482e-02 1.01875e-01 7.45174e-01
+ -6.54021e-01 -8.07388e-02 1.01880e-01 7.45223e-01
+ -6.53967e-01 -8.07294e-02 1.01884e-01 7.45271e-01
+ -6.53912e-01 -8.07200e-02 1.01888e-01 7.45319e-01
+ -6.53858e-01 -8.07106e-02 1.01893e-01 7.45367e-01
+ -6.53803e-01 -8.07012e-02 1.01897e-01 7.45415e-01
+ -6.53749e-01 -8.06918e-02 1.01901e-01 7.45463e-01
+ -6.53695e-01 -8.06823e-02 1.01906e-01 7.45512e-01
+ -6.53640e-01 -8.06729e-02 1.01910e-01 7.45560e-01
+ -6.53586e-01 -8.06635e-02 1.01914e-01 7.45608e-01
+ -6.53531e-01 -8.06541e-02 1.01919e-01 7.45656e-01
+ -6.53477e-01 -8.06447e-02 1.01923e-01 7.45704e-01
+ -6.53423e-01 -8.06353e-02 1.01928e-01 7.45752e-01
+ -6.53368e-01 -8.06259e-02 1.01932e-01 7.45800e-01
+ -6.53314e-01 -8.06165e-02 1.01936e-01 7.45848e-01
+ -6.53259e-01 -8.06071e-02 1.01941e-01 7.45896e-01
+ -6.53205e-01 -8.05977e-02 1.01945e-01 7.45944e-01
+ -6.53151e-01 -8.05883e-02 1.01949e-01 7.45992e-01
+ -6.53096e-01 -8.05789e-02 1.01954e-01 7.46040e-01
+ -6.53042e-01 -8.05696e-02 1.01958e-01 7.46089e-01
+ -6.52987e-01 -8.05602e-02 1.01962e-01 7.46137e-01
+ -6.52933e-01 -8.05508e-02 1.01967e-01 7.46185e-01
+ -6.52879e-01 -8.05414e-02 1.01971e-01 7.46233e-01
+ -6.52824e-01 -8.05320e-02 1.01975e-01 7.46281e-01
+ -6.52770e-01 -8.05226e-02 1.01980e-01 7.46329e-01
+ -6.52715e-01 -8.05132e-02 1.01984e-01 7.46377e-01
+ -6.52661e-01 -8.05038e-02 1.01989e-01 7.46425e-01
+ -6.52607e-01 -8.04945e-02 1.01993e-01 7.46473e-01
+ -6.52552e-01 -8.04851e-02 1.01997e-01 7.46521e-01
+ -6.52498e-01 -8.04757e-02 1.02002e-01 7.46568e-01
+ -6.52443e-01 -8.04663e-02 1.02006e-01 7.46616e-01
+ -6.52389e-01 -8.04569e-02 1.02010e-01 7.46664e-01
+ -6.52335e-01 -8.04475e-02 1.02015e-01 7.46712e-01
+ -6.52280e-01 -8.04382e-02 1.02019e-01 7.46760e-01
+ -6.52226e-01 -8.04288e-02 1.02023e-01 7.46808e-01
+ -6.52171e-01 -8.04194e-02 1.02028e-01 7.46856e-01
+ -6.52117e-01 -8.04100e-02 1.02032e-01 7.46904e-01
+ -6.52063e-01 -8.04007e-02 1.02036e-01 7.46952e-01
+ -6.52008e-01 -8.03913e-02 1.02041e-01 7.47000e-01
+ -6.51954e-01 -8.03819e-02 1.02045e-01 7.47048e-01
+ -6.51900e-01 -8.03726e-02 1.02049e-01 7.47096e-01
+ -6.51845e-01 -8.03632e-02 1.02054e-01 7.47143e-01
+ -6.51791e-01 -8.03538e-02 1.02058e-01 7.47191e-01
+ -6.51736e-01 -8.03445e-02 1.02062e-01 7.47239e-01
+ -6.51682e-01 -8.03351e-02 1.02067e-01 7.47287e-01
+ -6.51628e-01 -8.03257e-02 1.02071e-01 7.47335e-01
+ -6.51573e-01 -8.03164e-02 1.02075e-01 7.47383e-01
+ -6.51519e-01 -8.03070e-02 1.02080e-01 7.47430e-01
+ -6.51464e-01 -8.02977e-02 1.02084e-01 7.47478e-01
+ -6.51410e-01 -8.02883e-02 1.02088e-01 7.47526e-01
+ -6.51356e-01 -8.02789e-02 1.02093e-01 7.47574e-01
+ -6.51301e-01 -8.02696e-02 1.02097e-01 7.47622e-01
+ -6.51247e-01 -8.02602e-02 1.02101e-01 7.47669e-01
+ -6.51193e-01 -8.02509e-02 1.02106e-01 7.47717e-01
+ -6.51138e-01 -8.02415e-02 1.02110e-01 7.47765e-01
+ -6.51084e-01 -8.02322e-02 1.02114e-01 7.47813e-01
+ -6.51029e-01 -8.02228e-02 1.02119e-01 7.47860e-01
+ -6.50975e-01 -8.02135e-02 1.02123e-01 7.47908e-01
+ -6.50921e-01 -8.02041e-02 1.02127e-01 7.47956e-01
+ -6.50866e-01 -8.01948e-02 1.02131e-01 7.48004e-01
+ -6.50812e-01 -8.01854e-02 1.02136e-01 7.48051e-01
+ -6.50758e-01 -8.01761e-02 1.02140e-01 7.48099e-01
+ -6.50703e-01 -8.01667e-02 1.02144e-01 7.48147e-01
+ -6.50649e-01 -8.01574e-02 1.02149e-01 7.48194e-01
+ -6.50595e-01 -8.01481e-02 1.02153e-01 7.48242e-01
+ -6.50540e-01 -8.01387e-02 1.02157e-01 7.48290e-01
+ -6.50486e-01 -8.01294e-02 1.02162e-01 7.48337e-01
+ -6.50431e-01 -8.01200e-02 1.02166e-01 7.48385e-01
+ -6.50377e-01 -8.01107e-02 1.02170e-01 7.48433e-01
+ -6.50323e-01 -8.01014e-02 1.02175e-01 7.48480e-01
+ -6.50268e-01 -8.00920e-02 1.02179e-01 7.48528e-01
+ -6.50214e-01 -8.00827e-02 1.02183e-01 7.48576e-01
+ -6.50160e-01 -8.00734e-02 1.02188e-01 7.48623e-01
+ -6.50105e-01 -8.00640e-02 1.02192e-01 7.48671e-01
+ -6.50051e-01 -8.00547e-02 1.02196e-01 7.48718e-01
+ -6.49997e-01 -8.00454e-02 1.02200e-01 7.48766e-01
+ -6.49942e-01 -8.00361e-02 1.02205e-01 7.48814e-01
+ -6.49888e-01 -8.00267e-02 1.02209e-01 7.48861e-01
+ -6.49834e-01 -8.00174e-02 1.02213e-01 7.48909e-01
+ -6.49779e-01 -8.00081e-02 1.02218e-01 7.48956e-01
+ -6.49725e-01 -7.99988e-02 1.02222e-01 7.49004e-01
+ -6.49671e-01 -7.99894e-02 1.02226e-01 7.49051e-01
+ -6.49616e-01 -7.99801e-02 1.02231e-01 7.49099e-01
+ -6.49562e-01 -7.99708e-02 1.02235e-01 7.49147e-01
+ -6.49508e-01 -7.99615e-02 1.02239e-01 7.49194e-01
+ -6.49453e-01 -7.99522e-02 1.02243e-01 7.49242e-01
+ -6.49399e-01 -7.99428e-02 1.02248e-01 7.49289e-01
+ -6.49344e-01 -7.99335e-02 1.02252e-01 7.49337e-01
+ -6.49290e-01 -7.99242e-02 1.02256e-01 7.49384e-01
+ -6.49236e-01 -7.99149e-02 1.02261e-01 7.49432e-01
+ -6.49181e-01 -7.99056e-02 1.02265e-01 7.49479e-01
+ -6.49127e-01 -7.98963e-02 1.02269e-01 7.49527e-01
+ -6.49073e-01 -7.98870e-02 1.02273e-01 7.49574e-01
+ -6.49018e-01 -7.98777e-02 1.02278e-01 7.49621e-01
+ -6.48964e-01 -7.98684e-02 1.02282e-01 7.49669e-01
+ -6.48910e-01 -7.98591e-02 1.02286e-01 7.49716e-01
+ -6.48855e-01 -7.98498e-02 1.02291e-01 7.49764e-01
+ -6.48801e-01 -7.98405e-02 1.02295e-01 7.49811e-01
+ -6.48747e-01 -7.98311e-02 1.02299e-01 7.49859e-01
+ -6.48692e-01 -7.98218e-02 1.02303e-01 7.49906e-01
+ -6.48638e-01 -7.98125e-02 1.02308e-01 7.49953e-01
+ -6.48584e-01 -7.98033e-02 1.02312e-01 7.50001e-01
+ -6.48529e-01 -7.97940e-02 1.02316e-01 7.50048e-01
+ -6.48475e-01 -7.97847e-02 1.02321e-01 7.50096e-01
+ -6.48421e-01 -7.97754e-02 1.02325e-01 7.50143e-01
+ -6.48367e-01 -7.97661e-02 1.02329e-01 7.50190e-01
+ -6.48312e-01 -7.97568e-02 1.02333e-01 7.50238e-01
+ -6.48258e-01 -7.97475e-02 1.02338e-01 7.50285e-01
+ -6.48204e-01 -7.97382e-02 1.02342e-01 7.50332e-01
+ -6.48149e-01 -7.97289e-02 1.02346e-01 7.50380e-01
+ -6.48095e-01 -7.97196e-02 1.02350e-01 7.50427e-01
+ -6.48041e-01 -7.97103e-02 1.02355e-01 7.50474e-01
+ -6.47986e-01 -7.97010e-02 1.02359e-01 7.50522e-01
+ -6.47932e-01 -7.96918e-02 1.02363e-01 7.50569e-01
+ -6.47878e-01 -7.96825e-02 1.02367e-01 7.50616e-01
+ -6.47823e-01 -7.96732e-02 1.02372e-01 7.50663e-01
+ -6.47769e-01 -7.96639e-02 1.02376e-01 7.50711e-01
+
+
+SCAN_DURATION 9.19928e+01
+INT_TIME 3.52017e-03
+
+ALONG_SCAN_PIXEL_SIZE  7.00000e-03
+CROSS_SCAN_PIXEL_SIZE  7.00000e-03
+
+CENTER_GP -9.76327e-02 -1.33743e+00 0.00000e+00
+SENSOR_POSITION -9.89120e-02 -1.33301e+00 6.73737e+05
+MOUNTING_ANGLES 0.00000e+00 0.00000e+00 0.00000e+00
+
+TOTAL_LINES 26133
+TOTAL_SAMPLES 5176
+
+
+
+
+IKCODE  -41215
+ISIS_Z_DIRECTION  1.00000e+00
+OPTICAL_DIST_COEF 0.00000e+00 0.00000e+00 0.00000e+00
+ITRANSS 4.83755e+00 -1.42857e+02 -8.57704e-03
+ITRANSL 7.85714e-01 -8.57704e-03 1.42857e+02
+DETECTOR_SAMPLE_ORIGIN 2.59250e+03
+DETECTOR_LINE_ORIGIN 0.00000e+00
+DETECTOR_LINE_OFFSET  0.00000e+00
+DETECTOR_SAMPLE_SUMMING  1.00000e+00
+STARTING_SAMPLE 1.00000e+00
+STARTING_LINE 1.00000e+00
+STARTING_EPHEMERIS_TIME 1.58030e+08
+CENTER_EPHEMERIS_TIME 1.58030e+08
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hrsc/truth/sed_h4235_0001_s22_crop_keywords.txt b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hrsc/truth/sed_h4235_0001_s22_crop_keywords.txt
new file mode 100644
index 0000000000000000000000000000000000000000..36544f85291c0ca894abc59d327217ae887c72a4
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/hrsc/truth/sed_h4235_0001_s22_crop_keywords.txt
@@ -0,0 +1,662 @@
+RECTIFICATION_TERMS
+        3.81600e+03 0.00000e+00 1.00000e+00
+        2.58800e+03 1.00000e+00 0.00000e+00
+GROUND_ZERO -7.94589e-02 2.39466e+00 0.00000e+00
+LOAD_PT -7.94589e-02 2.39466e+00 0.00000e+00
+COORD_SYSTEM 1
+IMAGE_MOTION 0
+SENSOR_TYPE USGSAstroLineScannerKLEv
+SENSOR_MODE UNKNOWN
+FOCAL 1.74800e+02
+ATMCO 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_LINE 3.81600e+03 1.42857e+02 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_SAMPLE 2.58800e+03 0.00000e+00 1.42857e+02 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+ABERR    0
+ATMREF   0
+PLATFORM   1
+SOURCE_FLAG  1
+SINGLE_EPHEMERIDE  0
+TRI_PARAMETERS
+0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.74800e+02 0.00000e+00 0.00000e+00
+T_CENTER  -3.57778e+01
+DT_EPHEM  1.42758e-01
+T0_EPHEM  -5.21951e+01
+NUMBER_OF_EPHEM   231
+EPHEM_PTS
+ -2.72727e+06 2.55493e+06 -5.14151e+05
+ -2.72738e+06 2.55504e+06 -5.13572e+05
+ -2.72750e+06 2.55515e+06 -5.12992e+05
+ -2.72761e+06 2.55525e+06 -5.12412e+05
+ -2.72772e+06 2.55536e+06 -5.11833e+05
+ -2.72783e+06 2.55547e+06 -5.11253e+05
+ -2.72794e+06 2.55558e+06 -5.10673e+05
+ -2.72806e+06 2.55569e+06 -5.10094e+05
+ -2.72817e+06 2.55580e+06 -5.09514e+05
+ -2.72828e+06 2.55591e+06 -5.08934e+05
+ -2.72839e+06 2.55602e+06 -5.08355e+05
+ -2.72850e+06 2.55612e+06 -5.07775e+05
+ -2.72861e+06 2.55623e+06 -5.07195e+05
+ -2.72873e+06 2.55634e+06 -5.06616e+05
+ -2.72884e+06 2.55645e+06 -5.06036e+05
+ -2.72895e+06 2.55656e+06 -5.05456e+05
+ -2.72906e+06 2.55667e+06 -5.04876e+05
+ -2.72917e+06 2.55678e+06 -5.04297e+05
+ -2.72928e+06 2.55688e+06 -5.03717e+05
+ -2.72939e+06 2.55699e+06 -5.03137e+05
+ -2.72950e+06 2.55710e+06 -5.02557e+05
+ -2.72962e+06 2.55721e+06 -5.01978e+05
+ -2.72973e+06 2.55732e+06 -5.01398e+05
+ -2.72984e+06 2.55743e+06 -5.00818e+05
+ -2.72995e+06 2.55753e+06 -5.00238e+05
+ -2.73006e+06 2.55764e+06 -4.99658e+05
+ -2.73017e+06 2.55775e+06 -4.99079e+05
+ -2.73028e+06 2.55786e+06 -4.98499e+05
+ -2.73039e+06 2.55797e+06 -4.97919e+05
+ -2.73050e+06 2.55807e+06 -4.97339e+05
+ -2.73061e+06 2.55818e+06 -4.96759e+05
+ -2.73072e+06 2.55829e+06 -4.96179e+05
+ -2.73083e+06 2.55840e+06 -4.95599e+05
+ -2.73094e+06 2.55851e+06 -4.95019e+05
+ -2.73106e+06 2.55861e+06 -4.94440e+05
+ -2.73117e+06 2.55872e+06 -4.93860e+05
+ -2.73128e+06 2.55883e+06 -4.93280e+05
+ -2.73139e+06 2.55894e+06 -4.92700e+05
+ -2.73150e+06 2.55904e+06 -4.92120e+05
+ -2.73161e+06 2.55915e+06 -4.91540e+05
+ -2.73172e+06 2.55926e+06 -4.90960e+05
+ -2.73183e+06 2.55937e+06 -4.90380e+05
+ -2.73194e+06 2.55947e+06 -4.89800e+05
+ -2.73205e+06 2.55958e+06 -4.89220e+05
+ -2.73216e+06 2.55969e+06 -4.88640e+05
+ -2.73227e+06 2.55980e+06 -4.88060e+05
+ -2.73238e+06 2.55990e+06 -4.87480e+05
+ -2.73249e+06 2.56001e+06 -4.86900e+05
+ -2.73260e+06 2.56012e+06 -4.86320e+05
+ -2.73271e+06 2.56022e+06 -4.85740e+05
+ -2.73282e+06 2.56033e+06 -4.85160e+05
+ -2.73293e+06 2.56044e+06 -4.84580e+05
+ -2.73304e+06 2.56055e+06 -4.84000e+05
+ -2.73315e+06 2.56065e+06 -4.83420e+05
+ -2.73326e+06 2.56076e+06 -4.82840e+05
+ -2.73337e+06 2.56087e+06 -4.82260e+05
+ -2.73347e+06 2.56097e+06 -4.81680e+05
+ -2.73358e+06 2.56108e+06 -4.81100e+05
+ -2.73369e+06 2.56119e+06 -4.80520e+05
+ -2.73380e+06 2.56129e+06 -4.79940e+05
+ -2.73391e+06 2.56140e+06 -4.79360e+05
+ -2.73402e+06 2.56151e+06 -4.78779e+05
+ -2.73413e+06 2.56161e+06 -4.78199e+05
+ -2.73424e+06 2.56172e+06 -4.77619e+05
+ -2.73435e+06 2.56183e+06 -4.77039e+05
+ -2.73446e+06 2.56193e+06 -4.76459e+05
+ -2.73457e+06 2.56204e+06 -4.75879e+05
+ -2.73468e+06 2.56215e+06 -4.75299e+05
+ -2.73478e+06 2.56225e+06 -4.74719e+05
+ -2.73489e+06 2.56236e+06 -4.74138e+05
+ -2.73500e+06 2.56247e+06 -4.73558e+05
+ -2.73511e+06 2.56257e+06 -4.72978e+05
+ -2.73522e+06 2.56268e+06 -4.72398e+05
+ -2.73533e+06 2.56279e+06 -4.71818e+05
+ -2.73544e+06 2.56289e+06 -4.71237e+05
+ -2.73555e+06 2.56300e+06 -4.70657e+05
+ -2.73565e+06 2.56310e+06 -4.70077e+05
+ -2.73576e+06 2.56321e+06 -4.69497e+05
+ -2.73587e+06 2.56332e+06 -4.68916e+05
+ -2.73598e+06 2.56342e+06 -4.68336e+05
+ -2.73609e+06 2.56353e+06 -4.67756e+05
+ -2.73620e+06 2.56363e+06 -4.67176e+05
+ -2.73630e+06 2.56374e+06 -4.66595e+05
+ -2.73641e+06 2.56385e+06 -4.66015e+05
+ -2.73652e+06 2.56395e+06 -4.65435e+05
+ -2.73663e+06 2.56406e+06 -4.64855e+05
+ -2.73674e+06 2.56416e+06 -4.64274e+05
+ -2.73685e+06 2.56427e+06 -4.63694e+05
+ -2.73695e+06 2.56437e+06 -4.63114e+05
+ -2.73706e+06 2.56448e+06 -4.62533e+05
+ -2.73717e+06 2.56459e+06 -4.61953e+05
+ -2.73728e+06 2.56469e+06 -4.61373e+05
+ -2.73738e+06 2.56480e+06 -4.60792e+05
+ -2.73749e+06 2.56490e+06 -4.60212e+05
+ -2.73760e+06 2.56501e+06 -4.59632e+05
+ -2.73771e+06 2.56511e+06 -4.59051e+05
+ -2.73782e+06 2.56522e+06 -4.58471e+05
+ -2.73792e+06 2.56532e+06 -4.57890e+05
+ -2.73803e+06 2.56543e+06 -4.57310e+05
+ -2.73814e+06 2.56553e+06 -4.56730e+05
+ -2.73825e+06 2.56564e+06 -4.56149e+05
+ -2.73835e+06 2.56574e+06 -4.55569e+05
+ -2.73846e+06 2.56585e+06 -4.54988e+05
+ -2.73857e+06 2.56595e+06 -4.54408e+05
+ -2.73868e+06 2.56606e+06 -4.53828e+05
+ -2.73878e+06 2.56616e+06 -4.53247e+05
+ -2.73889e+06 2.56627e+06 -4.52667e+05
+ -2.73900e+06 2.56637e+06 -4.52086e+05
+ -2.73910e+06 2.56648e+06 -4.51506e+05
+ -2.73921e+06 2.56658e+06 -4.50925e+05
+ -2.73932e+06 2.56669e+06 -4.50345e+05
+ -2.73942e+06 2.56679e+06 -4.49764e+05
+ -2.73953e+06 2.56690e+06 -4.49184e+05
+ -2.73964e+06 2.56700e+06 -4.48603e+05
+ -2.73975e+06 2.56711e+06 -4.48023e+05
+ -2.73985e+06 2.56721e+06 -4.47442e+05
+ -2.73996e+06 2.56732e+06 -4.46862e+05
+ -2.74007e+06 2.56742e+06 -4.46281e+05
+ -2.74017e+06 2.56753e+06 -4.45701e+05
+ -2.74028e+06 2.56763e+06 -4.45120e+05
+ -2.74038e+06 2.56773e+06 -4.44540e+05
+ -2.74049e+06 2.56784e+06 -4.43959e+05
+ -2.74060e+06 2.56794e+06 -4.43379e+05
+ -2.74070e+06 2.56805e+06 -4.42798e+05
+ -2.74081e+06 2.56815e+06 -4.42217e+05
+ -2.74092e+06 2.56826e+06 -4.41637e+05
+ -2.74102e+06 2.56836e+06 -4.41056e+05
+ -2.74113e+06 2.56846e+06 -4.40476e+05
+ -2.74124e+06 2.56857e+06 -4.39895e+05
+ -2.74134e+06 2.56867e+06 -4.39314e+05
+ -2.74145e+06 2.56878e+06 -4.38734e+05
+ -2.74155e+06 2.56888e+06 -4.38153e+05
+ -2.74166e+06 2.56898e+06 -4.37573e+05
+ -2.74177e+06 2.56909e+06 -4.36992e+05
+ -2.74187e+06 2.56919e+06 -4.36411e+05
+ -2.74198e+06 2.56930e+06 -4.35831e+05
+ -2.74208e+06 2.56940e+06 -4.35250e+05
+ -2.74219e+06 2.56950e+06 -4.34669e+05
+ -2.74229e+06 2.56961e+06 -4.34089e+05
+ -2.74240e+06 2.56971e+06 -4.33508e+05
+ -2.74251e+06 2.56981e+06 -4.32927e+05
+ -2.74261e+06 2.56992e+06 -4.32346e+05
+ -2.74272e+06 2.57002e+06 -4.31766e+05
+ -2.74282e+06 2.57012e+06 -4.31185e+05
+ -2.74293e+06 2.57023e+06 -4.30604e+05
+ -2.74303e+06 2.57033e+06 -4.30024e+05
+ -2.74314e+06 2.57043e+06 -4.29443e+05
+ -2.74324e+06 2.57054e+06 -4.28862e+05
+ -2.74335e+06 2.57064e+06 -4.28281e+05
+ -2.74345e+06 2.57074e+06 -4.27701e+05
+ -2.74356e+06 2.57085e+06 -4.27120e+05
+ -2.74366e+06 2.57095e+06 -4.26539e+05
+ -2.74377e+06 2.57105e+06 -4.25958e+05
+ -2.74387e+06 2.57116e+06 -4.25378e+05
+ -2.74398e+06 2.57126e+06 -4.24797e+05
+ -2.74408e+06 2.57136e+06 -4.24216e+05
+ -2.74419e+06 2.57147e+06 -4.23635e+05
+ -2.74429e+06 2.57157e+06 -4.23054e+05
+ -2.74440e+06 2.57167e+06 -4.22473e+05
+ -2.74450e+06 2.57177e+06 -4.21893e+05
+ -2.74461e+06 2.57188e+06 -4.21312e+05
+ -2.74471e+06 2.57198e+06 -4.20731e+05
+ -2.74482e+06 2.57208e+06 -4.20150e+05
+ -2.74492e+06 2.57219e+06 -4.19569e+05
+ -2.74503e+06 2.57229e+06 -4.18988e+05
+ -2.74513e+06 2.57239e+06 -4.18408e+05
+ -2.74523e+06 2.57249e+06 -4.17827e+05
+ -2.74534e+06 2.57260e+06 -4.17246e+05
+ -2.74544e+06 2.57270e+06 -4.16665e+05
+ -2.74555e+06 2.57280e+06 -4.16084e+05
+ -2.74565e+06 2.57290e+06 -4.15503e+05
+ -2.74576e+06 2.57301e+06 -4.14922e+05
+ -2.74586e+06 2.57311e+06 -4.14341e+05
+ -2.74596e+06 2.57321e+06 -4.13760e+05
+ -2.74607e+06 2.57331e+06 -4.13179e+05
+ -2.74617e+06 2.57342e+06 -4.12599e+05
+ -2.74628e+06 2.57352e+06 -4.12018e+05
+ -2.74638e+06 2.57362e+06 -4.11437e+05
+ -2.74648e+06 2.57372e+06 -4.10856e+05
+ -2.74659e+06 2.57382e+06 -4.10275e+05
+ -2.74669e+06 2.57393e+06 -4.09694e+05
+ -2.74680e+06 2.57403e+06 -4.09113e+05
+ -2.74690e+06 2.57413e+06 -4.08532e+05
+ -2.74700e+06 2.57423e+06 -4.07951e+05
+ -2.74711e+06 2.57433e+06 -4.07370e+05
+ -2.74721e+06 2.57444e+06 -4.06789e+05
+ -2.74731e+06 2.57454e+06 -4.06208e+05
+ -2.74742e+06 2.57464e+06 -4.05627e+05
+ -2.74752e+06 2.57474e+06 -4.05046e+05
+ -2.74762e+06 2.57484e+06 -4.04465e+05
+ -2.74773e+06 2.57494e+06 -4.03884e+05
+ -2.74783e+06 2.57505e+06 -4.03303e+05
+ -2.74793e+06 2.57515e+06 -4.02722e+05
+ -2.74804e+06 2.57525e+06 -4.02141e+05
+ -2.74814e+06 2.57535e+06 -4.01560e+05
+ -2.74824e+06 2.57545e+06 -4.00978e+05
+ -2.74835e+06 2.57555e+06 -4.00397e+05
+ -2.74845e+06 2.57566e+06 -3.99816e+05
+ -2.74855e+06 2.57576e+06 -3.99235e+05
+ -2.74865e+06 2.57586e+06 -3.98654e+05
+ -2.74876e+06 2.57596e+06 -3.98073e+05
+ -2.74886e+06 2.57606e+06 -3.97492e+05
+ -2.74896e+06 2.57616e+06 -3.96911e+05
+ -2.74907e+06 2.57626e+06 -3.96330e+05
+ -2.74917e+06 2.57636e+06 -3.95749e+05
+ -2.74927e+06 2.57646e+06 -3.95167e+05
+ -2.74937e+06 2.57657e+06 -3.94586e+05
+ -2.74948e+06 2.57667e+06 -3.94005e+05
+ -2.74958e+06 2.57677e+06 -3.93424e+05
+ -2.74968e+06 2.57687e+06 -3.92843e+05
+ -2.74978e+06 2.57697e+06 -3.92262e+05
+ -2.74989e+06 2.57707e+06 -3.91681e+05
+ -2.74999e+06 2.57717e+06 -3.91099e+05
+ -2.75009e+06 2.57727e+06 -3.90518e+05
+ -2.75019e+06 2.57737e+06 -3.89937e+05
+ -2.75029e+06 2.57747e+06 -3.89356e+05
+ -2.75040e+06 2.57757e+06 -3.88775e+05
+ -2.75050e+06 2.57767e+06 -3.88193e+05
+ -2.75060e+06 2.57778e+06 -3.87612e+05
+ -2.75070e+06 2.57788e+06 -3.87031e+05
+ -2.75080e+06 2.57798e+06 -3.86450e+05
+ -2.75091e+06 2.57808e+06 -3.85869e+05
+ -2.75101e+06 2.57818e+06 -3.85287e+05
+ -2.75111e+06 2.57828e+06 -3.84706e+05
+ -2.75121e+06 2.57838e+06 -3.84125e+05
+ -2.75131e+06 2.57848e+06 -3.83544e+05
+ -2.75141e+06 2.57858e+06 -3.82962e+05
+ -2.75152e+06 2.57868e+06 -3.82381e+05
+ -2.75162e+06 2.57878e+06 -3.81800e+05
+ -2.75172e+06 2.57888e+06 -3.81218e+05
+ -2.75182e+06 2.57898e+06 -3.80637e+05
+
+
+EPHEM_RATES
+ -7.84879e+02 7.64007e+02 4.06010e+03
+ -7.84554e+02 7.63733e+02 4.06016e+03
+ -7.84229e+02 7.63459e+02 4.06022e+03
+ -7.83904e+02 7.63185e+02 4.06028e+03
+ -7.83579e+02 7.62912e+02 4.06034e+03
+ -7.83254e+02 7.62638e+02 4.06040e+03
+ -7.82930e+02 7.62364e+02 4.06046e+03
+ -7.82605e+02 7.62090e+02 4.06051e+03
+ -7.82280e+02 7.61816e+02 4.06057e+03
+ -7.81955e+02 7.61542e+02 4.06063e+03
+ -7.81630e+02 7.61268e+02 4.06069e+03
+ -7.81305e+02 7.60994e+02 4.06075e+03
+ -7.80981e+02 7.60720e+02 4.06081e+03
+ -7.80656e+02 7.60446e+02 4.06086e+03
+ -7.80331e+02 7.60172e+02 4.06092e+03
+ -7.80006e+02 7.59899e+02 4.06098e+03
+ -7.79682e+02 7.59625e+02 4.06104e+03
+ -7.79357e+02 7.59351e+02 4.06110e+03
+ -7.79032e+02 7.59077e+02 4.06115e+03
+ -7.78708e+02 7.58803e+02 4.06121e+03
+ -7.78383e+02 7.58529e+02 4.06127e+03
+ -7.78058e+02 7.58255e+02 4.06133e+03
+ -7.77733e+02 7.57981e+02 4.06138e+03
+ -7.77409e+02 7.57707e+02 4.06144e+03
+ -7.77084e+02 7.57433e+02 4.06150e+03
+ -7.76760e+02 7.57159e+02 4.06156e+03
+ -7.76435e+02 7.56885e+02 4.06161e+03
+ -7.76110e+02 7.56611e+02 4.06167e+03
+ -7.75786e+02 7.56337e+02 4.06173e+03
+ -7.75461e+02 7.56064e+02 4.06178e+03
+ -7.75137e+02 7.55790e+02 4.06184e+03
+ -7.74812e+02 7.55516e+02 4.06190e+03
+ -7.74487e+02 7.55242e+02 4.06195e+03
+ -7.74163e+02 7.54968e+02 4.06201e+03
+ -7.73838e+02 7.54694e+02 4.06207e+03
+ -7.73514e+02 7.54420e+02 4.06212e+03
+ -7.73189e+02 7.54146e+02 4.06218e+03
+ -7.72865e+02 7.53872e+02 4.06224e+03
+ -7.72540e+02 7.53598e+02 4.06229e+03
+ -7.72216e+02 7.53324e+02 4.06235e+03
+ -7.71891e+02 7.53050e+02 4.06241e+03
+ -7.71567e+02 7.52776e+02 4.06246e+03
+ -7.71242e+02 7.52502e+02 4.06252e+03
+ -7.70918e+02 7.52228e+02 4.06257e+03
+ -7.70594e+02 7.51954e+02 4.06263e+03
+ -7.70269e+02 7.51680e+02 4.06269e+03
+ -7.69945e+02 7.51406e+02 4.06274e+03
+ -7.69620e+02 7.51132e+02 4.06280e+03
+ -7.69296e+02 7.50858e+02 4.06285e+03
+ -7.68972e+02 7.50585e+02 4.06291e+03
+ -7.68647e+02 7.50311e+02 4.06296e+03
+ -7.68323e+02 7.50037e+02 4.06302e+03
+ -7.67999e+02 7.49763e+02 4.06307e+03
+ -7.67674e+02 7.49489e+02 4.06313e+03
+ -7.67350e+02 7.49215e+02 4.06318e+03
+ -7.67026e+02 7.48941e+02 4.06324e+03
+ -7.66701e+02 7.48667e+02 4.06329e+03
+ -7.66377e+02 7.48393e+02 4.06335e+03
+ -7.66053e+02 7.48119e+02 4.06340e+03
+ -7.65729e+02 7.47845e+02 4.06346e+03
+ -7.65405e+02 7.47571e+02 4.06351e+03
+ -7.65080e+02 7.47297e+02 4.06357e+03
+ -7.64756e+02 7.47023e+02 4.06362e+03
+ -7.64432e+02 7.46749e+02 4.06368e+03
+ -7.64108e+02 7.46475e+02 4.06373e+03
+ -7.63784e+02 7.46201e+02 4.06379e+03
+ -7.63459e+02 7.45927e+02 4.06384e+03
+ -7.63135e+02 7.45653e+02 4.06390e+03
+ -7.62811e+02 7.45379e+02 4.06395e+03
+ -7.62487e+02 7.45105e+02 4.06400e+03
+ -7.62163e+02 7.44831e+02 4.06406e+03
+ -7.61839e+02 7.44557e+02 4.06411e+03
+ -7.61515e+02 7.44283e+02 4.06417e+03
+ -7.61191e+02 7.44009e+02 4.06422e+03
+ -7.60867e+02 7.43735e+02 4.06427e+03
+ -7.60543e+02 7.43461e+02 4.06433e+03
+ -7.60219e+02 7.43187e+02 4.06438e+03
+ -7.59895e+02 7.42913e+02 4.06444e+03
+ -7.59571e+02 7.42639e+02 4.06449e+03
+ -7.59247e+02 7.42365e+02 4.06454e+03
+ -7.58923e+02 7.42092e+02 4.06460e+03
+ -7.58599e+02 7.41818e+02 4.06465e+03
+ -7.58275e+02 7.41544e+02 4.06470e+03
+ -7.57951e+02 7.41270e+02 4.06476e+03
+ -7.57627e+02 7.40996e+02 4.06481e+03
+ -7.57303e+02 7.40722e+02 4.06486e+03
+ -7.56979e+02 7.40448e+02 4.06491e+03
+ -7.56655e+02 7.40174e+02 4.06497e+03
+ -7.56332e+02 7.39900e+02 4.06502e+03
+ -7.56008e+02 7.39626e+02 4.06507e+03
+ -7.55684e+02 7.39352e+02 4.06513e+03
+ -7.55360e+02 7.39078e+02 4.06518e+03
+ -7.55036e+02 7.38804e+02 4.06523e+03
+ -7.54712e+02 7.38530e+02 4.06528e+03
+ -7.54389e+02 7.38256e+02 4.06534e+03
+ -7.54065e+02 7.37982e+02 4.06539e+03
+ -7.53741e+02 7.37708e+02 4.06544e+03
+ -7.53417e+02 7.37434e+02 4.06549e+03
+ -7.53094e+02 7.37160e+02 4.06554e+03
+ -7.52770e+02 7.36886e+02 4.06560e+03
+ -7.52446e+02 7.36612e+02 4.06565e+03
+ -7.52123e+02 7.36338e+02 4.06570e+03
+ -7.51799e+02 7.36064e+02 4.06575e+03
+ -7.51475e+02 7.35790e+02 4.06580e+03
+ -7.51152e+02 7.35516e+02 4.06586e+03
+ -7.50828e+02 7.35242e+02 4.06591e+03
+ -7.50504e+02 7.34968e+02 4.06596e+03
+ -7.50181e+02 7.34694e+02 4.06601e+03
+ -7.49857e+02 7.34420e+02 4.06606e+03
+ -7.49533e+02 7.34146e+02 4.06611e+03
+ -7.49210e+02 7.33872e+02 4.06616e+03
+ -7.48886e+02 7.33598e+02 4.06622e+03
+ -7.48563e+02 7.33324e+02 4.06627e+03
+ -7.48239e+02 7.33050e+02 4.06632e+03
+ -7.47916e+02 7.32776e+02 4.06637e+03
+ -7.47592e+02 7.32502e+02 4.06642e+03
+ -7.47269e+02 7.32228e+02 4.06647e+03
+ -7.46945e+02 7.31954e+02 4.06652e+03
+ -7.46622e+02 7.31680e+02 4.06657e+03
+ -7.46298e+02 7.31406e+02 4.06662e+03
+ -7.45975e+02 7.31132e+02 4.06667e+03
+ -7.45651e+02 7.30858e+02 4.06672e+03
+ -7.45328e+02 7.30584e+02 4.06678e+03
+ -7.45005e+02 7.30310e+02 4.06683e+03
+ -7.44681e+02 7.30036e+02 4.06688e+03
+ -7.44358e+02 7.29762e+02 4.06693e+03
+ -7.44034e+02 7.29488e+02 4.06698e+03
+ -7.43711e+02 7.29214e+02 4.06703e+03
+ -7.43388e+02 7.28940e+02 4.06708e+03
+ -7.43064e+02 7.28666e+02 4.06713e+03
+ -7.42741e+02 7.28392e+02 4.06718e+03
+ -7.42418e+02 7.28118e+02 4.06723e+03
+ -7.42095e+02 7.27844e+02 4.06728e+03
+ -7.41771e+02 7.27570e+02 4.06733e+03
+ -7.41448e+02 7.27296e+02 4.06738e+03
+ -7.41125e+02 7.27022e+02 4.06743e+03
+ -7.40801e+02 7.26748e+02 4.06747e+03
+ -7.40478e+02 7.26474e+02 4.06752e+03
+ -7.40155e+02 7.26200e+02 4.06757e+03
+ -7.39832e+02 7.25927e+02 4.06762e+03
+ -7.39509e+02 7.25653e+02 4.06767e+03
+ -7.39185e+02 7.25379e+02 4.06772e+03
+ -7.38862e+02 7.25105e+02 4.06777e+03
+ -7.38539e+02 7.24831e+02 4.06782e+03
+ -7.38216e+02 7.24557e+02 4.06787e+03
+ -7.37893e+02 7.24283e+02 4.06792e+03
+ -7.37570e+02 7.24009e+02 4.06797e+03
+ -7.37247e+02 7.23735e+02 4.06801e+03
+ -7.36924e+02 7.23461e+02 4.06806e+03
+ -7.36601e+02 7.23187e+02 4.06811e+03
+ -7.36277e+02 7.22913e+02 4.06816e+03
+ -7.35954e+02 7.22639e+02 4.06821e+03
+ -7.35631e+02 7.22365e+02 4.06826e+03
+ -7.35308e+02 7.22091e+02 4.06831e+03
+ -7.34985e+02 7.21817e+02 4.06835e+03
+ -7.34662e+02 7.21543e+02 4.06840e+03
+ -7.34339e+02 7.21269e+02 4.06845e+03
+ -7.34016e+02 7.20995e+02 4.06850e+03
+ -7.33693e+02 7.20721e+02 4.06855e+03
+ -7.33371e+02 7.20447e+02 4.06859e+03
+ -7.33048e+02 7.20173e+02 4.06864e+03
+ -7.32725e+02 7.19899e+02 4.06869e+03
+ -7.32402e+02 7.19625e+02 4.06874e+03
+ -7.32079e+02 7.19351e+02 4.06879e+03
+ -7.31756e+02 7.19077e+02 4.06883e+03
+ -7.31433e+02 7.18803e+02 4.06888e+03
+ -7.31110e+02 7.18529e+02 4.06893e+03
+ -7.30788e+02 7.18255e+02 4.06898e+03
+ -7.30465e+02 7.17981e+02 4.06902e+03
+ -7.30142e+02 7.17707e+02 4.06907e+03
+ -7.29819e+02 7.17433e+02 4.06912e+03
+ -7.29496e+02 7.17159e+02 4.06916e+03
+ -7.29174e+02 7.16885e+02 4.06921e+03
+ -7.28851e+02 7.16611e+02 4.06926e+03
+ -7.28528e+02 7.16337e+02 4.06931e+03
+ -7.28205e+02 7.16063e+02 4.06935e+03
+ -7.27883e+02 7.15789e+02 4.06940e+03
+ -7.27560e+02 7.15515e+02 4.06945e+03
+ -7.27237e+02 7.15241e+02 4.06949e+03
+ -7.26915e+02 7.14968e+02 4.06954e+03
+ -7.26592e+02 7.14694e+02 4.06958e+03
+ -7.26269e+02 7.14420e+02 4.06963e+03
+ -7.25947e+02 7.14146e+02 4.06968e+03
+ -7.25624e+02 7.13872e+02 4.06972e+03
+ -7.25302e+02 7.13598e+02 4.06977e+03
+ -7.24979e+02 7.13324e+02 4.06982e+03
+ -7.24657e+02 7.13050e+02 4.06986e+03
+ -7.24334e+02 7.12776e+02 4.06991e+03
+ -7.24012e+02 7.12502e+02 4.06995e+03
+ -7.23689e+02 7.12228e+02 4.07000e+03
+ -7.23366e+02 7.11954e+02 4.07005e+03
+ -7.23044e+02 7.11680e+02 4.07009e+03
+ -7.22722e+02 7.11406e+02 4.07014e+03
+ -7.22399e+02 7.11132e+02 4.07018e+03
+ -7.22077e+02 7.10858e+02 4.07023e+03
+ -7.21754e+02 7.10584e+02 4.07027e+03
+ -7.21432e+02 7.10310e+02 4.07032e+03
+ -7.21109e+02 7.10036e+02 4.07036e+03
+ -7.20787e+02 7.09762e+02 4.07041e+03
+ -7.20465e+02 7.09488e+02 4.07045e+03
+ -7.20142e+02 7.09214e+02 4.07050e+03
+ -7.19820e+02 7.08941e+02 4.07054e+03
+ -7.19498e+02 7.08667e+02 4.07059e+03
+ -7.19175e+02 7.08393e+02 4.07063e+03
+ -7.18853e+02 7.08119e+02 4.07068e+03
+ -7.18531e+02 7.07845e+02 4.07072e+03
+ -7.18208e+02 7.07571e+02 4.07077e+03
+ -7.17886e+02 7.07297e+02 4.07081e+03
+ -7.17564e+02 7.07023e+02 4.07086e+03
+ -7.17242e+02 7.06749e+02 4.07090e+03
+ -7.16920e+02 7.06475e+02 4.07095e+03
+ -7.16597e+02 7.06201e+02 4.07099e+03
+ -7.16275e+02 7.05927e+02 4.07104e+03
+ -7.15953e+02 7.05653e+02 4.07108e+03
+ -7.15631e+02 7.05379e+02 4.07112e+03
+ -7.15309e+02 7.05105e+02 4.07117e+03
+ -7.14987e+02 7.04831e+02 4.07121e+03
+ -7.14664e+02 7.04558e+02 4.07126e+03
+ -7.14342e+02 7.04284e+02 4.07130e+03
+ -7.14020e+02 7.04010e+02 4.07134e+03
+ -7.13698e+02 7.03736e+02 4.07139e+03
+ -7.13376e+02 7.03462e+02 4.07143e+03
+ -7.13054e+02 7.03188e+02 4.07147e+03
+ -7.12732e+02 7.02914e+02 4.07152e+03
+ -7.12410e+02 7.02640e+02 4.07156e+03
+ -7.12088e+02 7.02366e+02 4.07161e+03
+ -7.11766e+02 7.02092e+02 4.07165e+03
+ -7.11444e+02 7.01818e+02 4.07169e+03
+ -7.11122e+02 7.01544e+02 4.07173e+03
+ -7.10800e+02 7.01271e+02 4.07178e+03
+ -7.10478e+02 7.00997e+02 4.07182e+03
+
+
+DT_QUAT 2.61931e-01
+T0_QUAT -5.33272e+01
+NUMBER_OF_QUATERNIONS  135
+QUATERNIONS
+ -2.42564e-01 6.07767e-01 -7.01531e-01 2.82196e-01
+ -2.42620e-01 6.07862e-01 -7.01444e-01 2.82158e-01
+ -2.42676e-01 6.07958e-01 -7.01358e-01 2.82120e-01
+ -2.42731e-01 6.08053e-01 -7.01271e-01 2.82082e-01
+ -2.42787e-01 6.08148e-01 -7.01184e-01 2.82045e-01
+ -2.42843e-01 6.08243e-01 -7.01098e-01 2.82007e-01
+ -2.42899e-01 6.08338e-01 -7.01011e-01 2.81969e-01
+ -2.42954e-01 6.08433e-01 -7.00924e-01 2.81931e-01
+ -2.43010e-01 6.08529e-01 -7.00838e-01 2.81894e-01
+ -2.43066e-01 6.08624e-01 -7.00751e-01 2.81856e-01
+ -2.43121e-01 6.08719e-01 -7.00664e-01 2.81818e-01
+ -2.43177e-01 6.08814e-01 -7.00577e-01 2.81780e-01
+ -2.43233e-01 6.08909e-01 -7.00491e-01 2.81743e-01
+ -2.43288e-01 6.09004e-01 -7.00404e-01 2.81705e-01
+ -2.43344e-01 6.09099e-01 -7.00317e-01 2.81667e-01
+ -2.43400e-01 6.09194e-01 -7.00230e-01 2.81630e-01
+ -2.43455e-01 6.09289e-01 -7.00143e-01 2.81592e-01
+ -2.43511e-01 6.09384e-01 -7.00057e-01 2.81554e-01
+ -2.43567e-01 6.09479e-01 -6.99970e-01 2.81516e-01
+ -2.43622e-01 6.09574e-01 -6.99883e-01 2.81479e-01
+ -2.43678e-01 6.09669e-01 -6.99796e-01 2.81441e-01
+ -2.43733e-01 6.09763e-01 -6.99709e-01 2.81403e-01
+ -2.43789e-01 6.09858e-01 -6.99622e-01 2.81365e-01
+ -2.43844e-01 6.09953e-01 -6.99536e-01 2.81328e-01
+ -2.43900e-01 6.10048e-01 -6.99449e-01 2.81290e-01
+ -2.43955e-01 6.10143e-01 -6.99362e-01 2.81252e-01
+ -2.44011e-01 6.10238e-01 -6.99275e-01 2.81215e-01
+ -2.44066e-01 6.10332e-01 -6.99188e-01 2.81177e-01
+ -2.44122e-01 6.10427e-01 -6.99101e-01 2.81139e-01
+ -2.44177e-01 6.10522e-01 -6.99014e-01 2.81102e-01
+ -2.44233e-01 6.10617e-01 -6.98927e-01 2.81064e-01
+ -2.44288e-01 6.10711e-01 -6.98840e-01 2.81026e-01
+ -2.44344e-01 6.10806e-01 -6.98753e-01 2.80988e-01
+ -2.44399e-01 6.10901e-01 -6.98666e-01 2.80951e-01
+ -2.44454e-01 6.10995e-01 -6.98579e-01 2.80913e-01
+ -2.44510e-01 6.11090e-01 -6.98492e-01 2.80875e-01
+ -2.44565e-01 6.11184e-01 -6.98405e-01 2.80838e-01
+ -2.44621e-01 6.11279e-01 -6.98318e-01 2.80800e-01
+ -2.44676e-01 6.11374e-01 -6.98231e-01 2.80762e-01
+ -2.44731e-01 6.11468e-01 -6.98144e-01 2.80725e-01
+ -2.44787e-01 6.11563e-01 -6.98057e-01 2.80687e-01
+ -2.44842e-01 6.11657e-01 -6.97970e-01 2.80649e-01
+ -2.44897e-01 6.11752e-01 -6.97883e-01 2.80611e-01
+ -2.44953e-01 6.11846e-01 -6.97796e-01 2.80574e-01
+ -2.45008e-01 6.11941e-01 -6.97709e-01 2.80536e-01
+ -2.45063e-01 6.12035e-01 -6.97622e-01 2.80498e-01
+ -2.45118e-01 6.12129e-01 -6.97535e-01 2.80461e-01
+ -2.45174e-01 6.12224e-01 -6.97447e-01 2.80423e-01
+ -2.45229e-01 6.12318e-01 -6.97360e-01 2.80385e-01
+ -2.45284e-01 6.12413e-01 -6.97273e-01 2.80348e-01
+ -2.45339e-01 6.12507e-01 -6.97186e-01 2.80310e-01
+ -2.45394e-01 6.12601e-01 -6.97099e-01 2.80272e-01
+ -2.45450e-01 6.12696e-01 -6.97012e-01 2.80235e-01
+ -2.45505e-01 6.12790e-01 -6.96924e-01 2.80197e-01
+ -2.45560e-01 6.12884e-01 -6.96837e-01 2.80159e-01
+ -2.45615e-01 6.12978e-01 -6.96750e-01 2.80122e-01
+ -2.45670e-01 6.13073e-01 -6.96663e-01 2.80084e-01
+ -2.45725e-01 6.13167e-01 -6.96576e-01 2.80046e-01
+ -2.45781e-01 6.13261e-01 -6.96488e-01 2.80009e-01
+ -2.45836e-01 6.13355e-01 -6.96401e-01 2.79971e-01
+ -2.45891e-01 6.13449e-01 -6.96314e-01 2.79933e-01
+ -2.45946e-01 6.13544e-01 -6.96227e-01 2.79896e-01
+ -2.46001e-01 6.13638e-01 -6.96139e-01 2.79858e-01
+ -2.46056e-01 6.13732e-01 -6.96052e-01 2.79820e-01
+ -2.46111e-01 6.13826e-01 -6.95965e-01 2.79783e-01
+ -2.46166e-01 6.13920e-01 -6.95878e-01 2.79745e-01
+ -2.46221e-01 6.14014e-01 -6.95790e-01 2.79707e-01
+ -2.46276e-01 6.14108e-01 -6.95703e-01 2.79670e-01
+ -2.46331e-01 6.14202e-01 -6.95616e-01 2.79632e-01
+ -2.46386e-01 6.14296e-01 -6.95528e-01 2.79594e-01
+ -2.46441e-01 6.14390e-01 -6.95441e-01 2.79557e-01
+ -2.46496e-01 6.14484e-01 -6.95354e-01 2.79519e-01
+ -2.46551e-01 6.14578e-01 -6.95266e-01 2.79482e-01
+ -2.46606e-01 6.14672e-01 -6.95179e-01 2.79444e-01
+ -2.46661e-01 6.14766e-01 -6.95091e-01 2.79406e-01
+ -2.46716e-01 6.14860e-01 -6.95004e-01 2.79369e-01
+ -2.46770e-01 6.14953e-01 -6.94917e-01 2.79331e-01
+ -2.46825e-01 6.15047e-01 -6.94829e-01 2.79293e-01
+ -2.46880e-01 6.15141e-01 -6.94742e-01 2.79256e-01
+ -2.46935e-01 6.15235e-01 -6.94654e-01 2.79218e-01
+ -2.46990e-01 6.15329e-01 -6.94567e-01 2.79180e-01
+ -2.47045e-01 6.15422e-01 -6.94479e-01 2.79143e-01
+ -2.47099e-01 6.15516e-01 -6.94392e-01 2.79105e-01
+ -2.47154e-01 6.15610e-01 -6.94304e-01 2.79068e-01
+ -2.47209e-01 6.15704e-01 -6.94217e-01 2.79030e-01
+ -2.47264e-01 6.15797e-01 -6.94129e-01 2.78992e-01
+ -2.47319e-01 6.15891e-01 -6.94042e-01 2.78955e-01
+ -2.47373e-01 6.15985e-01 -6.93954e-01 2.78917e-01
+ -2.47428e-01 6.16078e-01 -6.93867e-01 2.78879e-01
+ -2.47483e-01 6.16172e-01 -6.93779e-01 2.78842e-01
+ -2.47538e-01 6.16266e-01 -6.93692e-01 2.78804e-01
+ -2.47592e-01 6.16359e-01 -6.93604e-01 2.78767e-01
+ -2.47647e-01 6.16453e-01 -6.93517e-01 2.78729e-01
+ -2.47702e-01 6.16546e-01 -6.93429e-01 2.78691e-01
+ -2.47756e-01 6.16640e-01 -6.93342e-01 2.78654e-01
+ -2.47811e-01 6.16733e-01 -6.93254e-01 2.78616e-01
+ -2.47866e-01 6.16827e-01 -6.93166e-01 2.78579e-01
+ -2.47920e-01 6.16920e-01 -6.93079e-01 2.78541e-01
+ -2.47975e-01 6.17014e-01 -6.92991e-01 2.78503e-01
+ -2.48029e-01 6.17107e-01 -6.92903e-01 2.78466e-01
+ -2.48084e-01 6.17201e-01 -6.92816e-01 2.78428e-01
+ -2.48139e-01 6.17294e-01 -6.92728e-01 2.78391e-01
+ -2.48193e-01 6.17387e-01 -6.92641e-01 2.78353e-01
+ -2.48248e-01 6.17481e-01 -6.92553e-01 2.78315e-01
+ -2.48302e-01 6.17574e-01 -6.92465e-01 2.78278e-01
+ -2.48357e-01 6.17667e-01 -6.92377e-01 2.78240e-01
+ -2.48411e-01 6.17761e-01 -6.92290e-01 2.78203e-01
+ -2.48466e-01 6.17854e-01 -6.92202e-01 2.78165e-01
+ -2.48520e-01 6.17947e-01 -6.92114e-01 2.78127e-01
+ -2.48575e-01 6.18040e-01 -6.92027e-01 2.78090e-01
+ -2.48629e-01 6.18134e-01 -6.91939e-01 2.78052e-01
+ -2.48684e-01 6.18227e-01 -6.91851e-01 2.78015e-01
+ -2.48738e-01 6.18320e-01 -6.91763e-01 2.77977e-01
+ -2.48792e-01 6.18413e-01 -6.91676e-01 2.77939e-01
+ -2.48847e-01 6.18506e-01 -6.91588e-01 2.77902e-01
+ -2.48901e-01 6.18600e-01 -6.91500e-01 2.77864e-01
+ -2.48956e-01 6.18693e-01 -6.91412e-01 2.77827e-01
+ -2.49010e-01 6.18786e-01 -6.91324e-01 2.77789e-01
+ -2.49064e-01 6.18879e-01 -6.91237e-01 2.77751e-01
+ -2.49119e-01 6.18972e-01 -6.91149e-01 2.77714e-01
+ -2.49173e-01 6.19065e-01 -6.91061e-01 2.77676e-01
+ -2.49227e-01 6.19158e-01 -6.90973e-01 2.77639e-01
+ -2.49282e-01 6.19251e-01 -6.90885e-01 2.77601e-01
+ -2.49336e-01 6.19344e-01 -6.90797e-01 2.77564e-01
+ -2.49390e-01 6.19437e-01 -6.90710e-01 2.77526e-01
+ -2.49444e-01 6.19530e-01 -6.90622e-01 2.77488e-01
+ -2.49499e-01 6.19623e-01 -6.90534e-01 2.77451e-01
+ -2.49553e-01 6.19716e-01 -6.90446e-01 2.77413e-01
+ -2.49607e-01 6.19809e-01 -6.90358e-01 2.77376e-01
+ -2.49661e-01 6.19902e-01 -6.90270e-01 2.77338e-01
+ -2.49716e-01 6.19994e-01 -6.90182e-01 2.77301e-01
+ -2.49770e-01 6.20087e-01 -6.90094e-01 2.77263e-01
+ -2.49824e-01 6.20180e-01 -6.90006e-01 2.77225e-01
+ -2.49878e-01 6.20273e-01 -6.89918e-01 2.77188e-01
+ -2.49932e-01 6.20366e-01 -6.89830e-01 2.77150e-01
+
+
+SCAN_DURATION 3.01221e+01
+INT_TIME 3.94681e-03
+
+ALONG_SCAN_PIXEL_SIZE  7.00000e-03
+CROSS_SCAN_PIXEL_SIZE  7.00000e-03
+
+CENTER_GP -7.94589e-02 2.39466e+00 0.00000e+00
+SENSOR_POSITION -1.20006e-01 2.38871e+00 3.85312e+05
+MOUNTING_ANGLES 0.00000e+00 0.00000e+00 0.00000e+00
+
+TOTAL_LINES 7632
+TOTAL_SAMPLES 5176
+
+
+
+
+IKCODE  -41211
+ISIS_Z_DIRECTION  1.00000e+00
+OPTICAL_DIST_COEF 0.00000e+00 0.00000e+00 0.00000e+00
+ITRANSS -2.79413e+00 -1.42857e+02 1.57079e-02
+ITRANSL 8.57038e+03 1.57079e-02 1.42857e+02
+DETECTOR_SAMPLE_ORIGIN 2.59250e+03
+DETECTOR_LINE_ORIGIN 0.00000e+00
+DETECTOR_LINE_OFFSET  0.00000e+00
+DETECTOR_SAMPLE_SUMMING  1.00000e+00
+STARTING_SAMPLE 1.00000e+00
+STARTING_LINE 1.00000e+00
+STARTING_EPHEMERIS_TIME 2.30605e+08
+CENTER_EPHEMERIS_TIME 2.30605e+08
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lev2/Makefile b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lev2/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..76ff7738faf2cb8c8af89b04b1ddc87234ea9ea8
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lev2/Makefile
@@ -0,0 +1,8 @@
+APPNAME = socetlinescankeywords
+
+include $(ISISROOT)/make/isismake.tsts
+
+commands:
+	$(APPNAME) from=$(INPUT)/PSP_001488_1750_REDmos_hijitreged_1km_o.cub \
+	  to=$(OUTPUT)/PSP_001488_1750_REDmos_keywords.txt >& \
+	  $(OUTPUT)/error.txt || true;
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lev2/truth/error.txt b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lev2/truth/error.txt
new file mode 100644
index 0000000000000000000000000000000000000000..edd5102867447142f5cf73d2581009f421697db1
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lev2/truth/error.txt
@@ -0,0 +1 @@
+**USER ERROR** Input images is a map projected cube ... not a level 1 image.
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lronac/Makefile b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lronac/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..cda222c50d483e184f5042ca04a24fb2f17b0157
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lronac/Makefile
@@ -0,0 +1,20 @@
+APPNAME = socetlinescankeywords
+
+include $(ISISROOT)/make/isismake.tsts
+
+commands:
+#Test LRO-NACR, pole image
+	$(APPNAME) from=$(INPUT)/M139722912RE.lev1.8bit.cub \
+	  to=$(OUTPUT)/M139722912RE_keywords.txt > /dev/null;
+	cat $(OUTPUT)/M139722912RE_keywords.txt | \
+	sed 's/\([0-9]\.[0-9][0-9][0-9][0-9][0-9]\)\([0-9]*\)/\1/g' > \
+	$(OUTPUT)/sed_M139722912RE_keywords.txt
+	$(RM) $(OUTPUT)/M139722912RE_keywords.txt 
+
+#Test LRO-NACL, image aquired while rotating the camera
+	$(APPNAME) from=$(INPUT)/M140944356LE.lev1.8bit.cub \
+	  to=$(OUTPUT)/M140944356LE_keywords.txt > /dev/null;
+	cat $(OUTPUT)/M140944356LE_keywords.txt | \
+	sed 's/\([0-9]\.[0-9][0-9][0-9][0-9][0-9]\)\([0-9]*\)/\1/g' > \
+	$(OUTPUT)/sed_M140944356LE_keywords.txt
+	$(RM) $(OUTPUT)/M140944356LE_keywords.txt 
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lronac/truth/sed_M139722912RE_keywords.txt b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lronac/truth/sed_M139722912RE_keywords.txt
new file mode 100644
index 0000000000000000000000000000000000000000..84cb659c6ce59d23bb0a20b61e22b8b225f30c99
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lronac/truth/sed_M139722912RE_keywords.txt
@@ -0,0 +1,444 @@
+RECTIFICATION_TERMS
+        2.61120e+04 0.00000e+00 1.00000e+00
+        1.26600e+03 1.00000e+00 0.00000e+00
+GROUND_ZERO -1.56952e+00 -2.81024e+00 0.00000e+00
+LOAD_PT -1.56952e+00 -2.81024e+00 0.00000e+00
+COORD_SYSTEM 1
+IMAGE_MOTION 0
+SENSOR_TYPE USGSAstroLineScanner
+SENSOR_MODE UNKNOWN
+FOCAL 7.01570e+02
+ATMCO 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_LINE 2.61120e+04 6.49727e+01 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_SAMPLE 1.26600e+03 0.00000e+00 7.14285e+01 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+ABERR    0
+ATMREF   0
+PLATFORM   1
+SOURCE_FLAG  1
+SINGLE_EPHEMERIDE  0
+TRI_PARAMETERS
+0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 7.01570e+02 0.00000e+00 0.00000e+00
+T_CENTER  0.00000e+00
+DT_EPHEM  1.49055e+00
+T0_EPHEM  -3.57733e+01
+NUMBER_OF_EPHEM   49
+EPHEM_PTS
+ 5.01820e+04 2.60536e+04 -1.79779e+06
+ 4.80229e+04 2.48896e+04 -1.79784e+06
+ 4.58637e+04 2.37256e+04 -1.79789e+06
+ 4.37045e+04 2.25616e+04 -1.79793e+06
+ 4.15454e+04 2.13976e+04 -1.79798e+06
+ 3.93862e+04 2.02336e+04 -1.79803e+06
+ 3.72271e+04 1.90696e+04 -1.79807e+06
+ 3.50679e+04 1.79056e+04 -1.79812e+06
+ 3.29088e+04 1.67416e+04 -1.79817e+06
+ 3.07496e+04 1.55776e+04 -1.79821e+06
+ 2.85904e+04 1.44136e+04 -1.79826e+06
+ 2.64313e+04 1.32496e+04 -1.79831e+06
+ 2.42721e+04 1.20856e+04 -1.79835e+06
+ 2.21128e+04 1.09216e+04 -1.79839e+06
+ 1.99535e+04 9.75763e+03 -1.79842e+06
+ 1.77941e+04 8.59361e+03 -1.79846e+06
+ 1.56347e+04 7.42959e+03 -1.79849e+06
+ 1.34753e+04 6.26557e+03 -1.79851e+06
+ 1.13158e+04 5.10156e+03 -1.79854e+06
+ 9.15635e+03 3.93756e+03 -1.79856e+06
+ 6.99682e+03 2.77357e+03 -1.79857e+06
+ 4.83726e+03 1.60958e+03 -1.79859e+06
+ 2.67769e+03 4.45619e+02 -1.79859e+06
+ 5.18117e+02 -7.18332e+02 -1.79860e+06
+ -1.64147e+03 -1.88226e+03 -1.79860e+06
+ -3.80106e+03 -3.04617e+03 -1.79860e+06
+ -5.96066e+03 -4.21006e+03 -1.79860e+06
+ -8.12025e+03 -5.37393e+03 -1.79859e+06
+ -1.02798e+04 -6.53776e+03 -1.79858e+06
+ -1.24394e+04 -7.70157e+03 -1.79857e+06
+ -1.45989e+04 -8.86534e+03 -1.79855e+06
+ -1.67585e+04 -1.00290e+04 -1.79853e+06
+ -1.89180e+04 -1.11928e+04 -1.79851e+06
+ -2.10775e+04 -1.23564e+04 -1.79848e+06
+ -2.32369e+04 -1.35201e+04 -1.79845e+06
+ -2.53964e+04 -1.46836e+04 -1.79841e+06
+ -2.75557e+04 -1.58472e+04 -1.79837e+06
+ -2.97151e+04 -1.70107e+04 -1.79833e+06
+ -3.18744e+04 -1.81741e+04 -1.79829e+06
+ -3.40337e+04 -1.93376e+04 -1.79825e+06
+ -3.61930e+04 -2.05010e+04 -1.79820e+06
+ -3.83523e+04 -2.16645e+04 -1.79816e+06
+ -4.05116e+04 -2.28279e+04 -1.79811e+06
+ -4.26708e+04 -2.39914e+04 -1.79807e+06
+ -4.48301e+04 -2.51548e+04 -1.79802e+06
+ -4.69894e+04 -2.63183e+04 -1.79798e+06
+ -4.91487e+04 -2.74817e+04 -1.79794e+06
+ -5.13080e+04 -2.86452e+04 -1.79789e+06
+ -5.34673e+04 -2.98086e+04 -1.79785e+06
+
+
+EPHEM_RATES
+ -1.44855e+03 -7.80916e+02 -3.12378e+01
+ -1.44855e+03 -7.80916e+02 -3.12378e+01
+ -1.44855e+03 -7.80916e+02 -3.12378e+01
+ -1.44855e+03 -7.80916e+02 -3.12378e+01
+ -1.44855e+03 -7.80916e+02 -3.12378e+01
+ -1.44855e+03 -7.80916e+02 -3.12378e+01
+ -1.44855e+03 -7.80916e+02 -3.12378e+01
+ -1.44855e+03 -7.80916e+02 -3.12378e+01
+ -1.44855e+03 -7.80916e+02 -3.12378e+01
+ -1.44855e+03 -7.80916e+02 -3.12378e+01
+ -1.44855e+03 -7.80916e+02 -3.12378e+01
+ -1.44857e+03 -7.80919e+02 -3.01086e+01
+ -1.44861e+03 -7.80923e+02 -2.78498e+01
+ -1.44864e+03 -7.80927e+02 -2.55905e+01
+ -1.44867e+03 -7.80928e+02 -2.33314e+01
+ -1.44870e+03 -7.80928e+02 -2.10734e+01
+ -1.44873e+03 -7.80928e+02 -1.88160e+01
+ -1.44875e+03 -7.80925e+02 -1.65584e+01
+ -1.44877e+03 -7.80920e+02 -1.42998e+01
+ -1.44879e+03 -7.80915e+02 -1.20404e+01
+ -1.44881e+03 -7.80908e+02 -9.78131e+00
+ -1.44882e+03 -7.80899e+02 -7.52270e+00
+ -1.44883e+03 -7.80889e+02 -5.26433e+00
+ -1.44884e+03 -7.80877e+02 -3.00579e+00
+ -1.44884e+03 -7.80864e+02 -7.47090e-01
+ -1.44885e+03 -7.80849e+02 1.51136e+00
+ -1.44885e+03 -7.80832e+02 3.76963e+00
+ -1.44884e+03 -7.80814e+02 6.02804e+00
+ -1.44884e+03 -7.80795e+02 8.28660e+00
+ -1.44883e+03 -7.80776e+02 1.05448e+01
+ -1.44882e+03 -7.80755e+02 1.28026e+01
+ -1.44880e+03 -7.80732e+02 1.50606e+01
+ -1.44878e+03 -7.80707e+02 1.73195e+01
+ -1.44876e+03 -7.80680e+02 1.95789e+01
+ -1.44874e+03 -7.80652e+02 2.18378e+01
+ -1.44872e+03 -7.80623e+02 2.40956e+01
+ -1.44869e+03 -7.80593e+02 2.63528e+01
+ -1.44866e+03 -7.80561e+02 2.86104e+01
+ -1.44864e+03 -7.80545e+02 2.97393e+01
+ -1.44864e+03 -7.80545e+02 2.97393e+01
+ -1.44864e+03 -7.80545e+02 2.97393e+01
+ -1.44864e+03 -7.80545e+02 2.97393e+01
+ -1.44864e+03 -7.80545e+02 2.97393e+01
+ -1.44864e+03 -7.80545e+02 2.97393e+01
+ -1.44864e+03 -7.80545e+02 2.97393e+01
+ -1.44864e+03 -7.80545e+02 2.97393e+01
+ -1.44864e+03 -7.80545e+02 2.97393e+01
+ -1.44864e+03 -7.80545e+02 2.97393e+01
+ -1.44864e+03 -7.80545e+02 2.97393e+01
+
+
+DT_QUAT 1.65617e-01
+T0_QUAT -2.31864e+01
+NUMBER_OF_QUATERNIONS  281
+QUATERNIONS
+ 1.15074e-02 -7.70676e-03 -9.69548e-01 2.44510e-01
+ 1.14339e-02 -7.72456e-03 -9.69547e-01 2.44516e-01
+ 1.13604e-02 -7.74235e-03 -9.69546e-01 2.44521e-01
+ 1.12869e-02 -7.76014e-03 -9.69545e-01 2.44526e-01
+ 1.12134e-02 -7.77793e-03 -9.69545e-01 2.44532e-01
+ 1.11399e-02 -7.79573e-03 -9.69544e-01 2.44537e-01
+ 1.10664e-02 -7.81352e-03 -9.69543e-01 2.44543e-01
+ 1.09929e-02 -7.83131e-03 -9.69543e-01 2.44548e-01
+ 1.09194e-02 -7.84911e-03 -9.69542e-01 2.44554e-01
+ 1.08459e-02 -7.86690e-03 -9.69541e-01 2.44559e-01
+ 1.07724e-02 -7.88469e-03 -9.69541e-01 2.44564e-01
+ 1.06989e-02 -7.90248e-03 -9.69540e-01 2.44570e-01
+ 1.06265e-02 -7.92085e-03 -9.69541e-01 2.44568e-01
+ 1.05539e-02 -7.93862e-03 -9.69543e-01 2.44564e-01
+ 1.04811e-02 -7.95586e-03 -9.69543e-01 2.44565e-01
+ 1.04088e-02 -7.97355e-03 -9.69542e-01 2.44571e-01
+ 1.03362e-02 -7.99234e-03 -9.69542e-01 2.44573e-01
+ 1.02618e-02 -8.01115e-03 -9.69544e-01 2.44568e-01
+ 1.01856e-02 -8.03320e-03 -9.69545e-01 2.44568e-01
+ 1.01116e-02 -8.05298e-03 -9.69544e-01 2.44572e-01
+ 1.00405e-02 -8.06875e-03 -9.69544e-01 2.44576e-01
+ 9.96989e-03 -8.08367e-03 -9.69545e-01 2.44573e-01
+ 9.89460e-03 -8.10475e-03 -9.69547e-01 2.44568e-01
+ 9.82075e-03 -8.12431e-03 -9.69546e-01 2.44573e-01
+ 9.74777e-03 -8.14110e-03 -9.69546e-01 2.44578e-01
+ 9.67275e-03 -8.16148e-03 -9.69546e-01 2.44578e-01
+ 9.59647e-03 -8.18516e-03 -9.69548e-01 2.44574e-01
+ 9.52397e-03 -8.20318e-03 -9.69548e-01 2.44574e-01
+ 9.45450e-03 -8.21476e-03 -9.69548e-01 2.44580e-01
+ 9.38048e-03 -8.23417e-03 -9.69548e-01 2.44580e-01
+ 9.30511e-03 -8.25562e-03 -9.69549e-01 2.44577e-01
+ 9.23152e-03 -8.27340e-03 -9.69550e-01 2.44576e-01
+ 9.15948e-03 -8.28806e-03 -9.69550e-01 2.44580e-01
+ 9.08350e-03 -8.30998e-03 -9.69550e-01 2.44583e-01
+ 9.00326e-03 -8.33705e-03 -9.69551e-01 2.44581e-01
+ 8.93202e-03 -8.35240e-03 -9.69551e-01 2.44581e-01
+ 8.86387e-03 -8.36445e-03 -9.69551e-01 2.44583e-01
+ 8.79256e-03 -8.38099e-03 -9.69551e-01 2.44584e-01
+ 8.71597e-03 -8.40411e-03 -9.69552e-01 2.44584e-01
+ 8.64125e-03 -8.42422e-03 -9.69552e-01 2.44584e-01
+ 8.57315e-03 -8.43539e-03 -9.69552e-01 2.44586e-01
+ 8.50084e-03 -8.45318e-03 -9.69553e-01 2.44586e-01
+ 8.42603e-03 -8.47403e-03 -9.69554e-01 2.44585e-01
+ 8.35191e-03 -8.49278e-03 -9.69554e-01 2.44586e-01
+ 8.28076e-03 -8.50700e-03 -9.69554e-01 2.44588e-01
+ 8.21015e-03 -8.52471e-03 -9.69554e-01 2.44589e-01
+ 8.13377e-03 -8.54466e-03 -9.69555e-01 2.44586e-01
+ 8.06053e-03 -8.56268e-03 -9.69555e-01 2.44587e-01
+ 7.98931e-03 -8.57913e-03 -9.69555e-01 2.44589e-01
+ 7.91694e-03 -8.59665e-03 -9.69556e-01 2.44590e-01
+ 7.84107e-03 -8.61751e-03 -9.69557e-01 2.44588e-01
+ 7.76786e-03 -8.63545e-03 -9.69557e-01 2.44588e-01
+ 7.69612e-03 -8.65142e-03 -9.69557e-01 2.44591e-01
+ 7.62315e-03 -8.67027e-03 -9.69557e-01 2.44591e-01
+ 7.54889e-03 -8.68976e-03 -9.69558e-01 2.44590e-01
+ 7.47464e-03 -8.70812e-03 -9.69558e-01 2.44590e-01
+ 7.40228e-03 -8.72550e-03 -9.69558e-01 2.44591e-01
+ 7.32924e-03 -8.74390e-03 -9.69558e-01 2.44593e-01
+ 7.25363e-03 -8.76370e-03 -9.69559e-01 2.44592e-01
+ 7.18057e-03 -8.78260e-03 -9.69559e-01 2.44592e-01
+ 7.10808e-03 -8.80061e-03 -9.69559e-01 2.44593e-01
+ 7.03379e-03 -8.81884e-03 -9.69559e-01 2.44594e-01
+ 6.95768e-03 -8.83886e-03 -9.69559e-01 2.44595e-01
+ 6.88556e-03 -8.85751e-03 -9.69560e-01 2.44595e-01
+ 6.81213e-03 -8.87575e-03 -9.69560e-01 2.44595e-01
+ 6.73792e-03 -8.89454e-03 -9.69560e-01 2.44596e-01
+ 6.66357e-03 -8.91388e-03 -9.69560e-01 2.44597e-01
+ 6.58970e-03 -8.93311e-03 -9.69561e-01 2.44597e-01
+ 6.51683e-03 -8.95107e-03 -9.69561e-01 2.44598e-01
+ 6.44206e-03 -8.97026e-03 -9.69561e-01 2.44598e-01
+ 6.36578e-03 -8.99031e-03 -9.69561e-01 2.44599e-01
+ 6.29195e-03 -9.00981e-03 -9.69561e-01 2.44599e-01
+ 6.21878e-03 -9.02839e-03 -9.69562e-01 2.44600e-01
+ 6.14440e-03 -9.04659e-03 -9.69562e-01 2.44600e-01
+ 6.07137e-03 -9.06582e-03 -9.69562e-01 2.44600e-01
+ 5.99819e-03 -9.08459e-03 -9.69562e-01 2.44602e-01
+ 5.92464e-03 -9.10288e-03 -9.69562e-01 2.44602e-01
+ 5.85034e-03 -9.12208e-03 -9.69563e-01 2.44601e-01
+ 5.77573e-03 -9.14208e-03 -9.69563e-01 2.44602e-01
+ 5.70172e-03 -9.16166e-03 -9.69563e-01 2.44603e-01
+ 5.62856e-03 -9.17966e-03 -9.69563e-01 2.44604e-01
+ 5.55384e-03 -9.19926e-03 -9.69563e-01 2.44604e-01
+ 5.48022e-03 -9.21868e-03 -9.69563e-01 2.44604e-01
+ 5.40701e-03 -9.23783e-03 -9.69563e-01 2.44606e-01
+ 5.33313e-03 -9.25682e-03 -9.69563e-01 2.44607e-01
+ 5.25797e-03 -9.27582e-03 -9.69563e-01 2.44607e-01
+ 5.18336e-03 -9.29541e-03 -9.69563e-01 2.44607e-01
+ 5.11093e-03 -9.31451e-03 -9.69563e-01 2.44608e-01
+ 5.03663e-03 -9.33350e-03 -9.69563e-01 2.44609e-01
+ 4.96205e-03 -9.35285e-03 -9.69563e-01 2.44609e-01
+ 4.88824e-03 -9.37252e-03 -9.69563e-01 2.44609e-01
+ 4.81438e-03 -9.39183e-03 -9.69564e-01 2.44610e-01
+ 4.73999e-03 -9.40924e-03 -9.69564e-01 2.44610e-01
+ 4.66576e-03 -9.42985e-03 -9.69564e-01 2.44611e-01
+ 4.59196e-03 -9.44923e-03 -9.69564e-01 2.44611e-01
+ 4.51838e-03 -9.46744e-03 -9.69564e-01 2.44612e-01
+ 4.44455e-03 -9.48598e-03 -9.69564e-01 2.44612e-01
+ 4.36983e-03 -9.50642e-03 -9.69564e-01 2.44613e-01
+ 4.29574e-03 -9.52498e-03 -9.69564e-01 2.44613e-01
+ 4.22230e-03 -9.54377e-03 -9.69564e-01 2.44613e-01
+ 4.14858e-03 -9.56273e-03 -9.69564e-01 2.44614e-01
+ 4.07468e-03 -9.58206e-03 -9.69564e-01 2.44615e-01
+ 4.00094e-03 -9.60159e-03 -9.69564e-01 2.44616e-01
+ 3.92721e-03 -9.62013e-03 -9.69564e-01 2.44616e-01
+ 3.85326e-03 -9.63833e-03 -9.69564e-01 2.44617e-01
+ 3.77936e-03 -9.65812e-03 -9.69564e-01 2.44617e-01
+ 3.70574e-03 -9.67686e-03 -9.69564e-01 2.44618e-01
+ 3.63212e-03 -9.69495e-03 -9.69563e-01 2.44619e-01
+ 3.55823e-03 -9.71403e-03 -9.69564e-01 2.44619e-01
+ 3.48496e-03 -9.73331e-03 -9.69563e-01 2.44620e-01
+ 3.41050e-03 -9.75241e-03 -9.69563e-01 2.44620e-01
+ 3.33674e-03 -9.77096e-03 -9.69563e-01 2.44621e-01
+ 3.26304e-03 -9.78983e-03 -9.69563e-01 2.44621e-01
+ 3.18919e-03 -9.80903e-03 -9.69563e-01 2.44621e-01
+ 3.11545e-03 -9.82792e-03 -9.69563e-01 2.44622e-01
+ 3.04196e-03 -9.84605e-03 -9.69563e-01 2.44624e-01
+ 2.96799e-03 -9.86572e-03 -9.69563e-01 2.44624e-01
+ 2.89459e-03 -9.88422e-03 -9.69563e-01 2.44624e-01
+ 2.82083e-03 -9.90247e-03 -9.69563e-01 2.44625e-01
+ 2.74667e-03 -9.92129e-03 -9.69562e-01 2.44626e-01
+ 2.67324e-03 -9.94065e-03 -9.69562e-01 2.44627e-01
+ 2.60051e-03 -9.95954e-03 -9.69562e-01 2.44627e-01
+ 2.52672e-03 -9.97780e-03 -9.69562e-01 2.44628e-01
+ 2.45321e-03 -9.99674e-03 -9.69562e-01 2.44629e-01
+ 2.37967e-03 -1.00157e-02 -9.69561e-01 2.44630e-01
+ 2.30599e-03 -1.00341e-02 -9.69561e-01 2.44630e-01
+ 2.23274e-03 -1.00518e-02 -9.69561e-01 2.44631e-01
+ 2.15922e-03 -1.00716e-02 -9.69561e-01 2.44632e-01
+ 2.08590e-03 -1.00899e-02 -9.69560e-01 2.44633e-01
+ 2.01251e-03 -1.01085e-02 -9.69560e-01 2.44634e-01
+ 1.93941e-03 -1.01270e-02 -9.69560e-01 2.44635e-01
+ 1.86661e-03 -1.01451e-02 -9.69560e-01 2.44635e-01
+ 1.79311e-03 -1.01639e-02 -9.69559e-01 2.44637e-01
+ 1.71965e-03 -1.01823e-02 -9.69559e-01 2.44637e-01
+ 1.64587e-03 -1.02002e-02 -9.69559e-01 2.44638e-01
+ 1.57269e-03 -1.02190e-02 -9.69558e-01 2.44639e-01
+ 1.49967e-03 -1.02380e-02 -9.69558e-01 2.44640e-01
+ 1.42610e-03 -1.02562e-02 -9.69558e-01 2.44641e-01
+ 1.35261e-03 -1.02748e-02 -9.69558e-01 2.44641e-01
+ 1.27989e-03 -1.02939e-02 -9.69557e-01 2.44642e-01
+ 1.20622e-03 -1.03124e-02 -9.69557e-01 2.44642e-01
+ 1.13272e-03 -1.03305e-02 -9.69557e-01 2.44643e-01
+ 1.05957e-03 -1.03487e-02 -9.69557e-01 2.44644e-01
+ 9.86248e-04 -1.03675e-02 -9.69556e-01 2.44645e-01
+ 9.12660e-04 -1.03859e-02 -9.69556e-01 2.44645e-01
+ 8.40174e-04 -1.04044e-02 -9.69556e-01 2.44646e-01
+ 7.66800e-04 -1.04229e-02 -9.69555e-01 2.44647e-01
+ 6.93082e-04 -1.04414e-02 -9.69555e-01 2.44647e-01
+ 6.19696e-04 -1.04597e-02 -9.69555e-01 2.44648e-01
+ 5.46910e-04 -1.04777e-02 -9.69554e-01 2.44649e-01
+ 4.73409e-04 -1.04965e-02 -9.69554e-01 2.44649e-01
+ 4.00187e-04 -1.05145e-02 -9.69554e-01 2.44650e-01
+ 3.26975e-04 -1.05327e-02 -9.69553e-01 2.44651e-01
+ 2.53516e-04 -1.05513e-02 -9.69553e-01 2.44651e-01
+ 1.79844e-04 -1.05701e-02 -9.69553e-01 2.44652e-01
+ 1.06339e-04 -1.05885e-02 -9.69552e-01 2.44652e-01
+ 3.33209e-05 -1.06058e-02 -9.69552e-01 2.44653e-01
+ -3.95138e-05 -1.06247e-02 -9.69552e-01 2.44653e-01
+ -1.13041e-04 -1.06429e-02 -9.69551e-01 2.44654e-01
+ -1.87148e-04 -1.06609e-02 -9.69551e-01 2.44654e-01
+ -2.61226e-04 -1.06794e-02 -9.69551e-01 2.44654e-01
+ -3.34422e-04 -1.06977e-02 -9.69551e-01 2.44655e-01
+ -4.08212e-04 -1.07161e-02 -9.69550e-01 2.44655e-01
+ -4.81571e-04 -1.07345e-02 -9.69550e-01 2.44655e-01
+ -5.55838e-04 -1.07527e-02 -9.69550e-01 2.44655e-01
+ -6.30363e-04 -1.07711e-02 -9.69549e-01 2.44656e-01
+ -7.04094e-04 -1.07895e-02 -9.69549e-01 2.44656e-01
+ -7.77188e-04 -1.08074e-02 -9.69549e-01 2.44657e-01
+ -8.51228e-04 -1.08254e-02 -9.69548e-01 2.44657e-01
+ -9.24386e-04 -1.08439e-02 -9.69548e-01 2.44657e-01
+ -9.98120e-04 -1.08623e-02 -9.69548e-01 2.44657e-01
+ -1.07238e-03 -1.08805e-02 -9.69547e-01 2.44657e-01
+ -1.14637e-03 -1.08986e-02 -9.69547e-01 2.44658e-01
+ -1.22001e-03 -1.09171e-02 -9.69547e-01 2.44657e-01
+ -1.29348e-03 -1.09354e-02 -9.69546e-01 2.44658e-01
+ -1.36674e-03 -1.09535e-02 -9.69546e-01 2.44658e-01
+ -1.44037e-03 -1.09719e-02 -9.69546e-01 2.44658e-01
+ -1.51424e-03 -1.09904e-02 -9.69545e-01 2.44658e-01
+ -1.58778e-03 -1.10082e-02 -9.69545e-01 2.44659e-01
+ -1.66114e-03 -1.10271e-02 -9.69544e-01 2.44659e-01
+ -1.73465e-03 -1.10451e-02 -9.69544e-01 2.44660e-01
+ -1.80804e-03 -1.10636e-02 -9.69544e-01 2.44660e-01
+ -1.88191e-03 -1.10820e-02 -9.69543e-01 2.44660e-01
+ -1.95599e-03 -1.11002e-02 -9.69543e-01 2.44661e-01
+ -2.02917e-03 -1.11187e-02 -9.69542e-01 2.44661e-01
+ -2.10169e-03 -1.11372e-02 -9.69542e-01 2.44662e-01
+ -2.17536e-03 -1.11550e-02 -9.69541e-01 2.44662e-01
+ -2.24886e-03 -1.11734e-02 -9.69541e-01 2.44662e-01
+ -2.32220e-03 -1.11918e-02 -9.69540e-01 2.44663e-01
+ -2.39568e-03 -1.12100e-02 -9.69540e-01 2.44663e-01
+ -2.46954e-03 -1.12289e-02 -9.69539e-01 2.44663e-01
+ -2.54469e-03 -1.12472e-02 -9.69539e-01 2.44664e-01
+ -2.61826e-03 -1.12655e-02 -9.69538e-01 2.44664e-01
+ -2.69161e-03 -1.12842e-02 -9.69538e-01 2.44665e-01
+ -2.76422e-03 -1.13026e-02 -9.69537e-01 2.44665e-01
+ -2.83627e-03 -1.13208e-02 -9.69537e-01 2.44666e-01
+ -2.91007e-03 -1.13397e-02 -9.69536e-01 2.44666e-01
+ -2.98330e-03 -1.13579e-02 -9.69536e-01 2.44666e-01
+ -3.05708e-03 -1.13763e-02 -9.69535e-01 2.44666e-01
+ -3.13034e-03 -1.13950e-02 -9.69535e-01 2.44666e-01
+ -3.20364e-03 -1.14135e-02 -9.69534e-01 2.44666e-01
+ -3.27762e-03 -1.14318e-02 -9.69534e-01 2.44666e-01
+ -3.35070e-03 -1.14506e-02 -9.69533e-01 2.44667e-01
+ -3.42433e-03 -1.14691e-02 -9.69533e-01 2.44667e-01
+ -3.49785e-03 -1.14879e-02 -9.69532e-01 2.44668e-01
+ -3.57090e-03 -1.15064e-02 -9.69531e-01 2.44668e-01
+ -3.64392e-03 -1.15246e-02 -9.69531e-01 2.44668e-01
+ -3.71760e-03 -1.15428e-02 -9.69530e-01 2.44668e-01
+ -3.79154e-03 -1.15619e-02 -9.69530e-01 2.44669e-01
+ -3.86441e-03 -1.15802e-02 -9.69529e-01 2.44669e-01
+ -3.93808e-03 -1.15990e-02 -9.69529e-01 2.44669e-01
+ -4.01167e-03 -1.16178e-02 -9.69528e-01 2.44669e-01
+ -4.08514e-03 -1.16364e-02 -9.69528e-01 2.44669e-01
+ -4.15927e-03 -1.16554e-02 -9.69527e-01 2.44669e-01
+ -4.23256e-03 -1.16734e-02 -9.69526e-01 2.44670e-01
+ -4.30618e-03 -1.16925e-02 -9.69526e-01 2.44670e-01
+ -4.37946e-03 -1.17111e-02 -9.69525e-01 2.44670e-01
+ -4.45276e-03 -1.17297e-02 -9.69525e-01 2.44670e-01
+ -4.52616e-03 -1.17484e-02 -9.69524e-01 2.44670e-01
+ -4.59922e-03 -1.17668e-02 -9.69523e-01 2.44671e-01
+ -4.67280e-03 -1.17856e-02 -9.69523e-01 2.44671e-01
+ -4.74606e-03 -1.18040e-02 -9.69522e-01 2.44672e-01
+ -4.81990e-03 -1.18223e-02 -9.69521e-01 2.44672e-01
+ -4.89375e-03 -1.18410e-02 -9.69521e-01 2.44672e-01
+ -4.96716e-03 -1.18600e-02 -9.69520e-01 2.44673e-01
+ -5.04065e-03 -1.18780e-02 -9.69519e-01 2.44673e-01
+ -5.11402e-03 -1.18969e-02 -9.69519e-01 2.44673e-01
+ -5.18707e-03 -1.19149e-02 -9.69518e-01 2.44674e-01
+ -5.26060e-03 -1.19331e-02 -9.69517e-01 2.44674e-01
+ -5.33431e-03 -1.19518e-02 -9.69516e-01 2.44675e-01
+ -5.40772e-03 -1.19705e-02 -9.69515e-01 2.44675e-01
+ -5.48121e-03 -1.19890e-02 -9.69515e-01 2.44675e-01
+ -5.55455e-03 -1.20070e-02 -9.69514e-01 2.44675e-01
+ -5.62764e-03 -1.20256e-02 -9.69513e-01 2.44676e-01
+ -5.70100e-03 -1.20442e-02 -9.69513e-01 2.44676e-01
+ -5.77481e-03 -1.20626e-02 -9.69512e-01 2.44676e-01
+ -5.84873e-03 -1.20811e-02 -9.69511e-01 2.44677e-01
+ -5.92169e-03 -1.20999e-02 -9.69510e-01 2.44677e-01
+ -5.99533e-03 -1.21176e-02 -9.69509e-01 2.44678e-01
+ -6.06850e-03 -1.21364e-02 -9.69509e-01 2.44678e-01
+ -6.14171e-03 -1.21550e-02 -9.69508e-01 2.44678e-01
+ -6.21534e-03 -1.21731e-02 -9.69507e-01 2.44679e-01
+ -6.28930e-03 -1.21918e-02 -9.69506e-01 2.44679e-01
+ -6.36280e-03 -1.22107e-02 -9.69506e-01 2.44679e-01
+ -6.43647e-03 -1.22289e-02 -9.69505e-01 2.44680e-01
+ -6.51003e-03 -1.22475e-02 -9.69504e-01 2.44680e-01
+ -6.58341e-03 -1.22658e-02 -9.69503e-01 2.44680e-01
+ -6.65680e-03 -1.22841e-02 -9.69502e-01 2.44681e-01
+ -6.73054e-03 -1.23030e-02 -9.69502e-01 2.44681e-01
+ -6.80366e-03 -1.23205e-02 -9.69501e-01 2.44682e-01
+ -6.87755e-03 -1.23389e-02 -9.69500e-01 2.44682e-01
+ -6.95077e-03 -1.23579e-02 -9.69499e-01 2.44682e-01
+ -7.02375e-03 -1.23766e-02 -9.69498e-01 2.44683e-01
+ -7.09706e-03 -1.23948e-02 -9.69497e-01 2.44684e-01
+ -7.17076e-03 -1.24138e-02 -9.69496e-01 2.44684e-01
+ -7.24327e-03 -1.24318e-02 -9.69495e-01 2.44685e-01
+ -7.31718e-03 -1.24508e-02 -9.69494e-01 2.44685e-01
+ -7.39045e-03 -1.24694e-02 -9.69493e-01 2.44686e-01
+ -7.46347e-03 -1.24878e-02 -9.69492e-01 2.44686e-01
+ -7.53679e-03 -1.25062e-02 -9.69492e-01 2.44687e-01
+ -7.60937e-03 -1.25240e-02 -9.69491e-01 2.44687e-01
+ -7.68277e-03 -1.25432e-02 -9.69490e-01 2.44688e-01
+ -7.75663e-03 -1.25619e-02 -9.69489e-01 2.44688e-01
+ -7.82981e-03 -1.25800e-02 -9.69488e-01 2.44688e-01
+ -7.90248e-03 -1.25982e-02 -9.69487e-01 2.44689e-01
+ -7.97552e-03 -1.26172e-02 -9.69486e-01 2.44689e-01
+ -8.04955e-03 -1.26349e-02 -9.69485e-01 2.44689e-01
+ -8.12309e-03 -1.26535e-02 -9.69484e-01 2.44690e-01
+ -8.19666e-03 -1.26720e-02 -9.69483e-01 2.44690e-01
+ -8.27023e-03 -1.26904e-02 -9.69482e-01 2.44691e-01
+ -8.34383e-03 -1.27089e-02 -9.69481e-01 2.44691e-01
+ -8.41742e-03 -1.27275e-02 -9.69481e-01 2.44691e-01
+ -8.49102e-03 -1.27460e-02 -9.69480e-01 2.44690e-01
+ -8.56462e-03 -1.27645e-02 -9.69479e-01 2.44690e-01
+ -8.63821e-03 -1.27831e-02 -9.69478e-01 2.44690e-01
+ -8.71181e-03 -1.28016e-02 -9.69477e-01 2.44690e-01
+ -8.78540e-03 -1.28201e-02 -9.69476e-01 2.44690e-01
+ -8.85900e-03 -1.28387e-02 -9.69475e-01 2.44690e-01
+ -8.93260e-03 -1.28572e-02 -9.69474e-01 2.44690e-01
+ -9.00619e-03 -1.28757e-02 -9.69474e-01 2.44690e-01
+ -9.07979e-03 -1.28943e-02 -9.69473e-01 2.44690e-01
+
+
+SCAN_DURATION 4.32261e+01
+INT_TIME 8.27706e-04
+
+ALONG_SCAN_PIXEL_SIZE  1.53910e-02
+CROSS_SCAN_PIXEL_SIZE  1.40000e-02
+
+CENTER_GP -1.56952e+00 -2.81024e+00 0.00000e+00
+SENSOR_POSITION -1.56940e+00 -2.28796e+00 5.98310e+04
+MOUNTING_ANGLES 0.00000e+00 0.00000e+00 0.00000e+00
+
+TOTAL_LINES 52224
+TOTAL_SAMPLES 2532
+
+
+
+
+IKCODE  -85610
+ISIS_Z_DIRECTION  1.00000e+00
+OPTICAL_DIST_COEF 1.83000e-05 0.00000e+00 0.00000e+00
+ITRANSS 0.00000e+00 0.00000e+00 -1.42857e+02
+ITRANSL 0.00000e+00 -1.42857e+02 0.00000e+00
+DETECTOR_SAMPLE_ORIGIN 2.56800e+03
+DETECTOR_LINE_ORIGIN 0.00000e+00
+DETECTOR_LINE_OFFSET  0.00000e+00
+DETECTOR_SAMPLE_SUMMING  2.00000e+00
+STARTING_SAMPLE 1.50000e+00
+STARTING_LINE 1.00000e+00
+STARTING_EPHEMERIS_TIME 3.38355e+08
+CENTER_EPHEMERIS_TIME 3.38355e+08
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lronac/truth/sed_M140944356LE_keywords.txt b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lronac/truth/sed_M140944356LE_keywords.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ec01703fadf0dd8c4fd496dbc4415663d409fb78
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/lronac/truth/sed_M140944356LE_keywords.txt
@@ -0,0 +1,386 @@
+RECTIFICATION_TERMS
+        2.61120e+04 0.00000e+00 1.00000e+00
+        1.26600e+03 1.00000e+00 0.00000e+00
+GROUND_ZERO -1.56032e+00 -3.00333e+00 0.00000e+00
+LOAD_PT -1.56032e+00 -3.00333e+00 0.00000e+00
+COORD_SYSTEM 1
+IMAGE_MOTION 0
+SENSOR_TYPE USGSAstroLineScanner
+SENSOR_MODE UNKNOWN
+FOCAL 6.99620e+02
+ATMCO 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_LINE 2.61120e+04 6.48457e+01 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_SAMPLE 1.26600e+03 0.00000e+00 7.14285e+01 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+ABERR    0
+ATMREF   0
+PLATFORM   1
+SOURCE_FLAG  1
+SINGLE_EPHEMERIDE  0
+TRI_PARAMETERS
+0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 6.99620e+02 0.00000e+00 0.00000e+00
+T_CENTER  0.00000e+00
+DT_EPHEM  1.38883e+00
+T0_EPHEM  -3.05543e+01
+NUMBER_OF_EPHEM   45
+EPHEM_PTS
+ -6.62237e+04 -1.95644e+04 -1.78568e+06
+ -6.40789e+04 -1.87320e+04 -1.78573e+06
+ -6.19341e+04 -1.78996e+04 -1.78577e+06
+ -5.97893e+04 -1.70672e+04 -1.78582e+06
+ -5.76446e+04 -1.62348e+04 -1.78586e+06
+ -5.54998e+04 -1.54024e+04 -1.78590e+06
+ -5.33550e+04 -1.45699e+04 -1.78595e+06
+ -5.12102e+04 -1.37375e+04 -1.78599e+06
+ -4.90655e+04 -1.29051e+04 -1.78604e+06
+ -4.69207e+04 -1.20727e+04 -1.78608e+06
+ -4.47759e+04 -1.12403e+04 -1.78613e+06
+ -4.26311e+04 -1.04079e+04 -1.78617e+06
+ -4.04863e+04 -9.57551e+03 -1.78621e+06
+ -3.83413e+04 -8.74309e+03 -1.78625e+06
+ -3.61963e+04 -7.91068e+03 -1.78629e+06
+ -3.40513e+04 -7.07827e+03 -1.78632e+06
+ -3.19062e+04 -6.24586e+03 -1.78635e+06
+ -2.97610e+04 -5.41346e+03 -1.78637e+06
+ -2.76157e+04 -4.58106e+03 -1.78640e+06
+ -2.54704e+04 -3.74867e+03 -1.78642e+06
+ -2.33251e+04 -2.91630e+03 -1.78644e+06
+ -2.11797e+04 -2.08393e+03 -1.78645e+06
+ -1.90342e+04 -1.25158e+03 -1.78646e+06
+ -1.68888e+04 -4.19243e+02 -1.78647e+06
+ -1.47433e+04 4.13078e+02 -1.78648e+06
+ -1.25977e+04 1.24538e+03 -1.78648e+06
+ -1.04521e+04 2.07767e+03 -1.78648e+06
+ -8.30659e+03 2.90994e+03 -1.78648e+06
+ -6.16098e+03 3.74219e+03 -1.78647e+06
+ -4.01534e+03 4.57442e+03 -1.78646e+06
+ -1.86969e+03 5.40662e+03 -1.78645e+06
+ 2.75958e+02 6.23880e+03 -1.78643e+06
+ 2.42162e+03 7.07095e+03 -1.78642e+06
+ 4.56728e+03 7.90308e+03 -1.78640e+06
+ 6.71295e+03 8.73517e+03 -1.78637e+06
+ 8.85862e+03 9.56726e+03 -1.78635e+06
+ 1.10042e+04 1.03993e+04 -1.78632e+06
+ 1.31499e+04 1.12314e+04 -1.78630e+06
+ 1.52956e+04 1.20635e+04 -1.78628e+06
+ 1.74412e+04 1.28956e+04 -1.78625e+06
+ 1.95869e+04 1.37277e+04 -1.78623e+06
+ 2.17326e+04 1.45598e+04 -1.78620e+06
+ 2.38782e+04 1.53919e+04 -1.78618e+06
+ 2.60239e+04 1.62240e+04 -1.78616e+06
+ 2.81696e+04 1.70561e+04 -1.78613e+06
+
+
+EPHEM_RATES
+ 1.54430e+03 5.99362e+02 -3.18832e+01
+ 1.54430e+03 5.99362e+02 -3.18832e+01
+ 1.54430e+03 5.99362e+02 -3.18832e+01
+ 1.54430e+03 5.99362e+02 -3.18832e+01
+ 1.54430e+03 5.99362e+02 -3.18832e+01
+ 1.54430e+03 5.99362e+02 -3.18832e+01
+ 1.54430e+03 5.99362e+02 -3.18832e+01
+ 1.54430e+03 5.99362e+02 -3.18832e+01
+ 1.54430e+03 5.99362e+02 -3.18832e+01
+ 1.54430e+03 5.99362e+02 -3.18832e+01
+ 1.54430e+03 5.99362e+02 -3.18832e+01
+ 1.54432e+03 5.99362e+02 -3.08176e+01
+ 1.54438e+03 5.99362e+02 -2.86861e+01
+ 1.54443e+03 5.99361e+02 -2.65536e+01
+ 1.54448e+03 5.99361e+02 -2.44204e+01
+ 1.54453e+03 5.99359e+02 -2.22872e+01
+ 1.54457e+03 5.99355e+02 -2.01545e+01
+ 1.54461e+03 5.99351e+02 -1.80230e+01
+ 1.54465e+03 5.99345e+02 -1.58917e+01
+ 1.54469e+03 5.99339e+02 -1.37597e+01
+ 1.54472e+03 5.99331e+02 -1.16268e+01
+ 1.54476e+03 5.99323e+02 -9.49342e+00
+ 1.54479e+03 5.99312e+02 -7.36016e+00
+ 1.54481e+03 5.99301e+02 -5.22721e+00
+ 1.54484e+03 5.99290e+02 -3.09442e+00
+ 1.54486e+03 5.99278e+02 -9.61755e-01
+ 1.54488e+03 5.99266e+02 1.17096e+00
+ 1.54489e+03 5.99251e+02 3.30402e+00
+ 1.54491e+03 5.99235e+02 5.43754e+00
+ 1.54492e+03 5.99218e+02 7.57134e+00
+ 1.54493e+03 5.99201e+02 9.70490e+00
+ 1.54493e+03 5.99182e+02 1.18378e+01
+ 1.54494e+03 5.99162e+02 1.39703e+01
+ 1.54494e+03 5.99142e+02 1.61029e+01
+ 1.54494e+03 5.99131e+02 1.71694e+01
+ 1.54494e+03 5.99131e+02 1.71694e+01
+ 1.54494e+03 5.99131e+02 1.71694e+01
+ 1.54494e+03 5.99131e+02 1.71694e+01
+ 1.54494e+03 5.99131e+02 1.71694e+01
+ 1.54494e+03 5.99131e+02 1.71694e+01
+ 1.54494e+03 5.99131e+02 1.71694e+01
+ 1.54494e+03 5.99131e+02 1.71694e+01
+ 1.54494e+03 5.99131e+02 1.71694e+01
+ 1.54494e+03 5.99131e+02 1.71694e+01
+ 1.54494e+03 5.99131e+02 1.71694e+01
+
+
+DT_QUAT 1.64553e-01
+T0_QUAT -1.89236e+01
+NUMBER_OF_QUATERNIONS  231
+QUATERNIONS
+ 1.43734e-02 1.73633e-02 1.84012e-01 9.82666e-01
+ 1.43396e-02 1.72508e-02 1.84037e-01 9.82663e-01
+ 1.43059e-02 1.71384e-02 1.84061e-01 9.82661e-01
+ 1.42721e-02 1.70260e-02 1.84086e-01 9.82659e-01
+ 1.42384e-02 1.69135e-02 1.84111e-01 9.82657e-01
+ 1.42046e-02 1.68011e-02 1.84136e-01 9.82654e-01
+ 1.41709e-02 1.66887e-02 1.84160e-01 9.82652e-01
+ 1.41371e-02 1.65762e-02 1.84185e-01 9.82650e-01
+ 1.41034e-02 1.64638e-02 1.84210e-01 9.82647e-01
+ 1.40696e-02 1.63514e-02 1.84235e-01 9.82645e-01
+ 1.40358e-02 1.62390e-02 1.84259e-01 9.82643e-01
+ 1.40021e-02 1.61265e-02 1.84284e-01 9.82640e-01
+ 1.39624e-02 1.60106e-02 1.84314e-01 9.82637e-01
+ 1.39217e-02 1.58910e-02 1.84339e-01 9.82635e-01
+ 1.38876e-02 1.57708e-02 1.84350e-01 9.82635e-01
+ 1.38596e-02 1.56523e-02 1.84349e-01 9.82638e-01
+ 1.38269e-02 1.55363e-02 1.84361e-01 9.82638e-01
+ 1.37930e-02 1.54244e-02 1.84383e-01 9.82636e-01
+ 1.37655e-02 1.53194e-02 1.84406e-01 9.82634e-01
+ 1.37485e-02 1.52214e-02 1.84421e-01 9.82633e-01
+ 1.37368e-02 1.51252e-02 1.84421e-01 9.82634e-01
+ 1.37214e-02 1.50246e-02 1.84427e-01 9.82635e-01
+ 1.36952e-02 1.49194e-02 1.84445e-01 9.82634e-01
+ 1.36659e-02 1.48115e-02 1.84464e-01 9.82632e-01
+ 1.36410e-02 1.47042e-02 1.84475e-01 9.82632e-01
+ 1.36253e-02 1.46006e-02 1.84472e-01 9.82634e-01
+ 1.36166e-02 1.45012e-02 1.84465e-01 9.82637e-01
+ 1.36013e-02 1.44026e-02 1.84473e-01 9.82637e-01
+ 1.35825e-02 1.43060e-02 1.84487e-01 9.82636e-01
+ 1.35681e-02 1.42118e-02 1.84498e-01 9.82636e-01
+ 1.35623e-02 1.41210e-02 1.84499e-01 9.82637e-01
+ 1.35633e-02 1.40352e-02 1.84489e-01 9.82640e-01
+ 1.35634e-02 1.39513e-02 1.84490e-01 9.82641e-01
+ 1.35555e-02 1.38668e-02 1.84502e-01 9.82640e-01
+ 1.35454e-02 1.37779e-02 1.84511e-01 9.82640e-01
+ 1.35385e-02 1.36860e-02 1.84508e-01 9.82642e-01
+ 1.35368e-02 1.35936e-02 1.84493e-01 9.82646e-01
+ 1.35361e-02 1.35018e-02 1.84477e-01 9.82650e-01
+ 1.35296e-02 1.34120e-02 1.84479e-01 9.82651e-01
+ 1.35268e-02 1.33327e-02 1.84485e-01 9.82651e-01
+ 1.35338e-02 1.32607e-02 1.84485e-01 9.82652e-01
+ 1.35490e-02 1.31914e-02 1.84474e-01 9.82655e-01
+ 1.35653e-02 1.31201e-02 1.84458e-01 9.82659e-01
+ 1.35716e-02 1.30431e-02 1.84451e-01 9.82661e-01
+ 1.35656e-02 1.29600e-02 1.84453e-01 9.82662e-01
+ 1.35643e-02 1.28782e-02 1.84450e-01 9.82663e-01
+ 1.35721e-02 1.27992e-02 1.84436e-01 9.82667e-01
+ 1.35869e-02 1.27230e-02 1.84412e-01 9.82672e-01
+ 1.35999e-02 1.26492e-02 1.84392e-01 9.82677e-01
+ 1.36059e-02 1.25749e-02 1.84390e-01 9.82678e-01
+ 1.36117e-02 1.25034e-02 1.84389e-01 9.82679e-01
+ 1.36255e-02 1.24350e-02 1.84378e-01 9.82682e-01
+ 1.36467e-02 1.23695e-02 1.84359e-01 9.82686e-01
+ 1.36694e-02 1.23056e-02 1.84339e-01 9.82690e-01
+ 1.36843e-02 1.22406e-02 1.84332e-01 9.82692e-01
+ 1.36908e-02 1.21716e-02 1.84334e-01 9.82692e-01
+ 1.37005e-02 1.20990e-02 1.84325e-01 9.82695e-01
+ 1.37165e-02 1.20249e-02 1.84303e-01 9.82700e-01
+ 1.37344e-02 1.19500e-02 1.84277e-01 9.82705e-01
+ 1.37458e-02 1.18741e-02 1.84259e-01 9.82709e-01
+ 1.37508e-02 1.18005e-02 1.84258e-01 9.82710e-01
+ 1.37657e-02 1.17372e-02 1.84256e-01 9.82711e-01
+ 1.37903e-02 1.16775e-02 1.84244e-01 9.82714e-01
+ 1.38185e-02 1.16182e-02 1.84224e-01 9.82718e-01
+ 1.38416e-02 1.15551e-02 1.84207e-01 9.82721e-01
+ 1.38508e-02 1.14835e-02 1.84204e-01 9.82723e-01
+ 1.38535e-02 1.14051e-02 1.84205e-01 9.82723e-01
+ 1.38639e-02 1.13304e-02 1.84193e-01 9.82726e-01
+ 1.38825e-02 1.12572e-02 1.84171e-01 9.82731e-01
+ 1.39028e-02 1.11849e-02 1.84149e-01 9.82736e-01
+ 1.39172e-02 1.11136e-02 1.84138e-01 9.82738e-01
+ 1.39244e-02 1.10439e-02 1.84141e-01 9.82739e-01
+ 1.39418e-02 1.09797e-02 1.84139e-01 9.82739e-01
+ 1.39660e-02 1.09160e-02 1.84123e-01 9.82743e-01
+ 1.39917e-02 1.08523e-02 1.84106e-01 9.82746e-01
+ 1.40125e-02 1.07873e-02 1.84096e-01 9.82749e-01
+ 1.40231e-02 1.07194e-02 1.84098e-01 9.82749e-01
+ 1.40301e-02 1.06467e-02 1.84102e-01 9.82749e-01
+ 1.40459e-02 1.05714e-02 1.84087e-01 9.82752e-01
+ 1.40655e-02 1.04953e-02 1.84065e-01 9.82757e-01
+ 1.40815e-02 1.04185e-02 1.84049e-01 9.82760e-01
+ 1.40904e-02 1.03422e-02 1.84045e-01 9.82762e-01
+ 1.40958e-02 1.02705e-02 1.84051e-01 9.82761e-01
+ 1.41151e-02 1.02077e-02 1.84049e-01 9.82762e-01
+ 1.41437e-02 1.01461e-02 1.84035e-01 9.82765e-01
+ 1.41689e-02 1.00814e-02 1.84023e-01 9.82768e-01
+ 1.41834e-02 1.00115e-02 1.84019e-01 9.82769e-01
+ 1.41868e-02 9.93614e-03 1.84025e-01 9.82768e-01
+ 1.41901e-02 9.85670e-03 1.84028e-01 9.82769e-01
+ 1.42062e-02 9.77881e-03 1.84012e-01 9.82772e-01
+ 1.42256e-02 9.70239e-03 1.83994e-01 9.82776e-01
+ 1.42402e-02 9.62657e-03 1.83984e-01 9.82778e-01
+ 1.42489e-02 9.55261e-03 1.83986e-01 9.82779e-01
+ 1.42581e-02 9.48347e-03 1.83996e-01 9.82777e-01
+ 1.42778e-02 9.41747e-03 1.83992e-01 9.82778e-01
+ 1.43043e-02 9.35021e-03 1.83980e-01 9.82781e-01
+ 1.43261e-02 9.28165e-03 1.83973e-01 9.82782e-01
+ 1.43385e-02 9.21073e-03 1.83977e-01 9.82782e-01
+ 1.43439e-02 9.13692e-03 1.83988e-01 9.82781e-01
+ 1.43548e-02 9.06132e-03 1.83992e-01 9.82781e-01
+ 1.43762e-02 8.98451e-03 1.83976e-01 9.82784e-01
+ 1.43952e-02 8.90604e-03 1.83964e-01 9.82787e-01
+ 1.44054e-02 8.82640e-03 1.83962e-01 9.82788e-01
+ 1.44105e-02 8.74841e-03 1.83969e-01 9.82787e-01
+ 1.44203e-02 8.67574e-03 1.83979e-01 9.82785e-01
+ 1.44445e-02 8.61071e-03 1.83975e-01 9.82786e-01
+ 1.44730e-02 8.54562e-03 1.83964e-01 9.82789e-01
+ 1.44934e-02 8.47817e-03 1.83964e-01 9.82789e-01
+ 1.45025e-02 8.40539e-03 1.83973e-01 9.82788e-01
+ 1.45051e-02 8.32708e-03 1.83983e-01 9.82787e-01
+ 1.45135e-02 8.24651e-03 1.83982e-01 9.82787e-01
+ 1.45333e-02 8.16660e-03 1.83965e-01 9.82791e-01
+ 1.45499e-02 8.08591e-03 1.83953e-01 9.82793e-01
+ 1.45584e-02 8.00759e-03 1.83955e-01 9.82794e-01
+ 1.45656e-02 7.93488e-03 1.83965e-01 9.82792e-01
+ 1.45804e-02 7.86840e-03 1.83972e-01 9.82791e-01
+ 1.46067e-02 7.80270e-03 1.83964e-01 9.82793e-01
+ 1.46306e-02 7.73452e-03 1.83953e-01 9.82795e-01
+ 1.46440e-02 7.66144e-03 1.83954e-01 9.82795e-01
+ 1.46491e-02 7.58561e-03 1.83963e-01 9.82794e-01
+ 1.46538e-02 7.50812e-03 1.83969e-01 9.82793e-01
+ 1.46676e-02 7.42951e-03 1.83963e-01 9.82795e-01
+ 1.46901e-02 7.35278e-03 1.83945e-01 9.82799e-01
+ 1.47042e-02 7.27389e-03 1.83938e-01 9.82800e-01
+ 1.47090e-02 7.19494e-03 1.83942e-01 9.82800e-01
+ 1.47149e-02 7.12076e-03 1.83950e-01 9.82799e-01
+ 1.47305e-02 7.05271e-03 1.83951e-01 9.82799e-01
+ 1.47577e-02 6.98691e-03 1.83940e-01 9.82801e-01
+ 1.47822e-02 6.92012e-03 1.83932e-01 9.82803e-01
+ 1.47919e-02 6.84848e-03 1.83937e-01 9.82802e-01
+ 1.47962e-02 6.77356e-03 1.83946e-01 9.82801e-01
+ 1.48036e-02 6.69634e-03 1.83948e-01 9.82801e-01
+ 1.48192e-02 6.61778e-03 1.83937e-01 9.82803e-01
+ 1.48410e-02 6.53908e-03 1.83919e-01 9.82807e-01
+ 1.48517e-02 6.45936e-03 1.83915e-01 9.82808e-01
+ 1.48557e-02 6.38171e-03 1.83922e-01 9.82807e-01
+ 1.48647e-02 6.31040e-03 1.83928e-01 9.82807e-01
+ 1.48843e-02 6.24401e-03 1.83925e-01 9.82807e-01
+ 1.49125e-02 6.17725e-03 1.83913e-01 9.82809e-01
+ 1.49340e-02 6.10873e-03 1.83907e-01 9.82811e-01
+ 1.49409e-02 6.03561e-03 1.83914e-01 9.82810e-01
+ 1.49463e-02 5.96064e-03 1.83922e-01 9.82809e-01
+ 1.49588e-02 5.88499e-03 1.83920e-01 9.82809e-01
+ 1.49799e-02 5.80888e-03 1.83907e-01 9.82812e-01
+ 1.50013e-02 5.73161e-03 1.83891e-01 9.82815e-01
+ 1.50089e-02 5.65031e-03 1.83890e-01 9.82815e-01
+ 1.50121e-02 5.57152e-03 1.83896e-01 9.82815e-01
+ 1.50244e-02 5.49942e-03 1.83897e-01 9.82815e-01
+ 1.50485e-02 5.43246e-03 1.83889e-01 9.82816e-01
+ 1.50785e-02 5.36659e-03 1.83876e-01 9.82819e-01
+ 1.50985e-02 5.29843e-03 1.83872e-01 9.82819e-01
+ 1.51027e-02 5.22474e-03 1.83880e-01 9.82818e-01
+ 1.51091e-02 5.14751e-03 1.83884e-01 9.82818e-01
+ 1.51240e-02 5.06860e-03 1.83875e-01 9.82820e-01
+ 1.51455e-02 4.98891e-03 1.83858e-01 9.82823e-01
+ 1.51648e-02 4.90837e-03 1.83844e-01 9.82826e-01
+ 1.51699e-02 4.82704e-03 1.83844e-01 9.82826e-01
+ 1.51770e-02 4.75223e-03 1.83852e-01 9.82825e-01
+ 1.51943e-02 4.68236e-03 1.83851e-01 9.82825e-01
+ 1.52197e-02 4.61394e-03 1.83842e-01 9.82826e-01
+ 1.52457e-02 4.54402e-03 1.83833e-01 9.82828e-01
+ 1.52603e-02 4.47180e-03 1.83834e-01 9.82828e-01
+ 1.52631e-02 4.39540e-03 1.83846e-01 9.82826e-01
+ 1.52728e-02 4.31883e-03 1.83850e-01 9.82826e-01
+ 1.52920e-02 4.24185e-03 1.83842e-01 9.82827e-01
+ 1.53145e-02 4.16362e-03 1.83829e-01 9.82829e-01
+ 1.53304e-02 4.08316e-03 1.83822e-01 9.82831e-01
+ 1.53316e-02 3.99994e-03 1.83829e-01 9.82830e-01
+ 1.53376e-02 3.92200e-03 1.83838e-01 9.82828e-01
+ 1.53569e-02 3.85098e-03 1.83837e-01 9.82829e-01
+ 1.53838e-02 3.78321e-03 1.83830e-01 9.82830e-01
+ 1.54084e-02 3.71521e-03 1.83827e-01 9.82830e-01
+ 1.54205e-02 3.64473e-03 1.83835e-01 9.82829e-01
+ 1.54214e-02 3.56852e-03 1.83849e-01 9.82826e-01
+ 1.54322e-02 3.48857e-03 1.83851e-01 9.82826e-01
+ 1.54516e-02 3.40841e-03 1.83842e-01 9.82828e-01
+ 1.54714e-02 3.32755e-03 1.83831e-01 9.82830e-01
+ 1.54836e-02 3.24587e-03 1.83829e-01 9.82830e-01
+ 1.54851e-02 3.16602e-03 1.83839e-01 9.82829e-01
+ 1.54951e-02 3.09392e-03 1.83849e-01 9.82827e-01
+ 1.55182e-02 3.02525e-03 1.83847e-01 9.82827e-01
+ 1.55443e-02 2.95631e-03 1.83841e-01 9.82828e-01
+ 1.55631e-02 2.88443e-03 1.83840e-01 9.82828e-01
+ 1.55689e-02 2.80865e-03 1.83851e-01 9.82826e-01
+ 1.55710e-02 2.73198e-03 1.83863e-01 9.82824e-01
+ 1.55873e-02 2.65490e-03 1.83862e-01 9.82824e-01
+ 1.56098e-02 2.57800e-03 1.83852e-01 9.82826e-01
+ 1.56283e-02 2.49811e-03 1.83845e-01 9.82827e-01
+ 1.56362e-02 2.41576e-03 1.83847e-01 9.82827e-01
+ 1.56358e-02 2.33603e-03 1.83858e-01 9.82825e-01
+ 1.56480e-02 2.26297e-03 1.83864e-01 9.82824e-01
+ 1.56740e-02 2.19444e-03 1.83859e-01 9.82825e-01
+ 1.56995e-02 2.12657e-03 1.83855e-01 9.82825e-01
+ 1.57150e-02 2.05554e-03 1.83858e-01 9.82824e-01
+ 1.57187e-02 1.97970e-03 1.83871e-01 9.82822e-01
+ 1.57220e-02 1.90253e-03 1.83882e-01 9.82820e-01
+ 1.57423e-02 1.82631e-03 1.83877e-01 9.82821e-01
+ 1.57657e-02 1.74870e-03 1.83866e-01 9.82823e-01
+ 1.57813e-02 1.66927e-03 1.83862e-01 9.82823e-01
+ 1.57864e-02 1.58798e-03 1.83867e-01 9.82822e-01
+ 1.57870e-02 1.50611e-03 1.83877e-01 9.82821e-01
+ 1.58017e-02 1.43123e-03 1.83879e-01 9.82820e-01
+ 1.58291e-02 1.36149e-03 1.83871e-01 9.82821e-01
+ 1.58512e-02 1.29170e-03 1.83869e-01 9.82822e-01
+ 1.58632e-02 1.22019e-03 1.83876e-01 9.82820e-01
+ 1.58680e-02 1.14655e-03 1.83888e-01 9.82818e-01
+ 1.58762e-02 1.07144e-03 1.83895e-01 9.82816e-01
+ 1.58994e-02 9.97186e-04 1.83886e-01 9.82818e-01
+ 1.59221e-02 9.19390e-04 1.83878e-01 9.82819e-01
+ 1.59342e-02 8.38526e-04 1.83877e-01 9.82819e-01
+ 1.59376e-02 7.56274e-04 1.83883e-01 9.82818e-01
+ 1.59411e-02 6.75582e-04 1.83889e-01 9.82817e-01
+ 1.59590e-02 6.01794e-04 1.83888e-01 9.82817e-01
+ 1.59881e-02 5.34803e-04 1.83882e-01 9.82818e-01
+ 1.60080e-02 4.66328e-04 1.83883e-01 9.82817e-01
+ 1.60168e-02 3.94550e-04 1.83892e-01 9.82815e-01
+ 1.60213e-02 3.19733e-04 1.83902e-01 9.82813e-01
+ 1.60322e-02 2.43257e-04 1.83904e-01 9.82813e-01
+ 1.60573e-02 1.65265e-04 1.83893e-01 9.82814e-01
+ 1.60773e-02 8.66788e-05 1.83883e-01 9.82816e-01
+ 1.60864e-02 5.21656e-06 1.83883e-01 9.82816e-01
+ 1.60956e-02 -7.62457e-05 1.83882e-01 9.82816e-01
+ 1.61047e-02 -1.57707e-04 1.83881e-01 9.82816e-01
+ 1.61139e-02 -2.39170e-04 1.83881e-01 9.82816e-01
+ 1.61231e-02 -3.20632e-04 1.83880e-01 9.82816e-01
+ 1.61322e-02 -4.02094e-04 1.83880e-01 9.82816e-01
+ 1.61414e-02 -4.83557e-04 1.83879e-01 9.82816e-01
+ 1.61505e-02 -5.65019e-04 1.83879e-01 9.82816e-01
+ 1.61597e-02 -6.46481e-04 1.83878e-01 9.82816e-01
+ 1.61688e-02 -7.27943e-04 1.83877e-01 9.82816e-01
+ 1.61780e-02 -8.09406e-04 1.83877e-01 9.82816e-01
+
+
+SCAN_DURATION 3.47208e+01
+INT_TIME 6.64844e-04
+
+ALONG_SCAN_PIXEL_SIZE  1.54211e-02
+CROSS_SCAN_PIXEL_SIZE  1.40000e-02
+
+CENTER_GP -1.56032e+00 -3.00333e+00 0.00000e+00
+SENSOR_POSITION -1.56011e+00 -3.07593e+00 4.88615e+04
+MOUNTING_ANGLES 0.00000e+00 0.00000e+00 0.00000e+00
+
+TOTAL_LINES 52224
+TOTAL_SAMPLES 2532
+
+
+
+
+IKCODE  -85600
+ISIS_Z_DIRECTION  1.00000e+00
+OPTICAL_DIST_COEF 1.80999e-05 0.00000e+00 0.00000e+00
+ITRANSS 0.00000e+00 0.00000e+00 1.42856e+02
+ITRANSL 0.00000e+00 1.42856e+02 0.00000e+00
+DETECTOR_SAMPLE_ORIGIN 2.54800e+03
+DETECTOR_LINE_ORIGIN 0.00000e+00
+DETECTOR_LINE_OFFSET  0.00000e+00
+DETECTOR_SAMPLE_SUMMING  2.00000e+00
+STARTING_SAMPLE 1.50000e+00
+STARTING_LINE 1.00000e+00
+STARTING_EPHEMERIS_TIME 3.39577e+08
+CENTER_EPHEMERIS_TIME 3.39577e+08
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/mroctx/Makefile b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/mroctx/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..35df07d6f65a82ca2647f2aef6cef6319702a53c
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/mroctx/Makefile
@@ -0,0 +1,13 @@
+APPNAME = socetlinescankeywords
+
+include $(ISISROOT)/make/isismake.tsts
+
+#Use sed to lower output precision to 5 decimal places in output txt files
+
+commands:
+	$(APPNAME) from=$(INPUT)/P01_001602_1701_XI_09S091W.8bit.cub \
+	  to=$(OUTPUT)/P01_001602_1701_XI_09S091W_keywords.txt > /dev/null;
+	cat $(OUTPUT)/P01_001602_1701_XI_09S091W_keywords.txt | \
+	 sed 's/\([0-9]\.[0-9][0-9][0-9][0-9][0-9]\)\([0-9]*\)/\1/g' > \
+	 $(OUTPUT)/sed_P01_001602_1701_XI_09S091W_keywords.txt
+	$(RM) $(OUTPUT)/P01_001602_1701_XI_09S091W_keywords.txt
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/mroctx/truth/sed_P01_001602_1701_XI_09S091W_keywords.txt b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/mroctx/truth/sed_P01_001602_1701_XI_09S091W_keywords.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0c2ed3482d590fbf845009aafdf87aed398bbb3f
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/mroctx/truth/sed_P01_001602_1701_XI_09S091W_keywords.txt
@@ -0,0 +1,470 @@
+RECTIFICATION_TERMS
+        3.58400e+03 0.00000e+00 1.00000e+00
+        2.50000e+03 1.00000e+00 0.00000e+00
+GROUND_ZERO -1.74751e-01 -1.60303e+00 0.00000e+00
+LOAD_PT -1.74751e-01 -1.60303e+00 0.00000e+00
+COORD_SYSTEM 1
+IMAGE_MOTION 0
+SENSOR_TYPE USGSAstroLineScanner
+SENSOR_MODE UNKNOWN
+FOCAL 3.52927e+02
+ATMCO 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_LINE 3.58400e+03 1.20751e+02 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+IOCOEF_SAMPLE 2.50000e+03 0.00000e+00 1.42857e+02 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00
+ABERR    0
+ATMREF   0
+PLATFORM   1
+SOURCE_FLAG  1
+SINGLE_EPHEMERIDE  0
+TRI_PARAMETERS
+0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 3.52927e+02 0.00000e+00 0.00000e+00
+T_CENTER  0.00000e+00
+DT_EPHEM  1.47849e-01
+T0_EPHEM  -8.13174e+00
+NUMBER_OF_EPHEM   111
+EPHEM_PTS
+ -1.00376e+05 -3.59490e+06 -6.54358e+05
+ -1.00441e+05 -3.59499e+06 -6.53861e+05
+ -1.00505e+05 -3.59509e+06 -6.53364e+05
+ -1.00570e+05 -3.59518e+06 -6.52866e+05
+ -1.00634e+05 -3.59527e+06 -6.52369e+05
+ -1.00699e+05 -3.59537e+06 -6.51872e+05
+ -1.00764e+05 -3.59546e+06 -6.51374e+05
+ -1.00828e+05 -3.59555e+06 -6.50877e+05
+ -1.00893e+05 -3.59564e+06 -6.50380e+05
+ -1.00957e+05 -3.59574e+06 -6.49882e+05
+ -1.01022e+05 -3.59583e+06 -6.49385e+05
+ -1.01086e+05 -3.59592e+06 -6.48888e+05
+ -1.01151e+05 -3.59601e+06 -6.48390e+05
+ -1.01216e+05 -3.59611e+06 -6.47893e+05
+ -1.01280e+05 -3.59620e+06 -6.47396e+05
+ -1.01345e+05 -3.59629e+06 -6.46898e+05
+ -1.01409e+05 -3.59638e+06 -6.46401e+05
+ -1.01474e+05 -3.59648e+06 -6.45903e+05
+ -1.01539e+05 -3.59657e+06 -6.45406e+05
+ -1.01603e+05 -3.59666e+06 -6.44909e+05
+ -1.01668e+05 -3.59675e+06 -6.44411e+05
+ -1.01732e+05 -3.59685e+06 -6.43914e+05
+ -1.01797e+05 -3.59694e+06 -6.43416e+05
+ -1.01862e+05 -3.59703e+06 -6.42919e+05
+ -1.01926e+05 -3.59712e+06 -6.42421e+05
+ -1.01991e+05 -3.59721e+06 -6.41924e+05
+ -1.02055e+05 -3.59730e+06 -6.41426e+05
+ -1.02120e+05 -3.59740e+06 -6.40929e+05
+ -1.02185e+05 -3.59749e+06 -6.40431e+05
+ -1.02249e+05 -3.59758e+06 -6.39934e+05
+ -1.02314e+05 -3.59767e+06 -6.39436e+05
+ -1.02378e+05 -3.59776e+06 -6.38939e+05
+ -1.02443e+05 -3.59785e+06 -6.38441e+05
+ -1.02508e+05 -3.59794e+06 -6.37943e+05
+ -1.02572e+05 -3.59804e+06 -6.37446e+05
+ -1.02637e+05 -3.59813e+06 -6.36948e+05
+ -1.02701e+05 -3.59822e+06 -6.36451e+05
+ -1.02766e+05 -3.59831e+06 -6.35953e+05
+ -1.02831e+05 -3.59840e+06 -6.35455e+05
+ -1.02895e+05 -3.59849e+06 -6.34958e+05
+ -1.02960e+05 -3.59858e+06 -6.34460e+05
+ -1.03024e+05 -3.59867e+06 -6.33962e+05
+ -1.03089e+05 -3.59876e+06 -6.33465e+05
+ -1.03154e+05 -3.59885e+06 -6.32967e+05
+ -1.03218e+05 -3.59894e+06 -6.32469e+05
+ -1.03283e+05 -3.59903e+06 -6.31971e+05
+ -1.03347e+05 -3.59912e+06 -6.31474e+05
+ -1.03412e+05 -3.59921e+06 -6.30976e+05
+ -1.03477e+05 -3.59930e+06 -6.30478e+05
+ -1.03541e+05 -3.59939e+06 -6.29980e+05
+ -1.03606e+05 -3.59948e+06 -6.29482e+05
+ -1.03670e+05 -3.59957e+06 -6.28985e+05
+ -1.03735e+05 -3.59966e+06 -6.28487e+05
+ -1.03800e+05 -3.59975e+06 -6.27989e+05
+ -1.03864e+05 -3.59984e+06 -6.27491e+05
+ -1.03929e+05 -3.59993e+06 -6.26993e+05
+ -1.03993e+05 -3.60002e+06 -6.26495e+05
+ -1.04058e+05 -3.60011e+06 -6.25997e+05
+ -1.04123e+05 -3.60020e+06 -6.25500e+05
+ -1.04187e+05 -3.60029e+06 -6.25002e+05
+ -1.04252e+05 -3.60038e+06 -6.24504e+05
+ -1.04316e+05 -3.60047e+06 -6.24006e+05
+ -1.04381e+05 -3.60056e+06 -6.23508e+05
+ -1.04445e+05 -3.60065e+06 -6.23010e+05
+ -1.04510e+05 -3.60074e+06 -6.22512e+05
+ -1.04575e+05 -3.60083e+06 -6.22014e+05
+ -1.04639e+05 -3.60092e+06 -6.21516e+05
+ -1.04704e+05 -3.60100e+06 -6.21018e+05
+ -1.04768e+05 -3.60109e+06 -6.20520e+05
+ -1.04833e+05 -3.60118e+06 -6.20022e+05
+ -1.04898e+05 -3.60127e+06 -6.19524e+05
+ -1.04962e+05 -3.60136e+06 -6.19026e+05
+ -1.05027e+05 -3.60145e+06 -6.18528e+05
+ -1.05091e+05 -3.60154e+06 -6.18030e+05
+ -1.05156e+05 -3.60162e+06 -6.17532e+05
+ -1.05221e+05 -3.60171e+06 -6.17033e+05
+ -1.05285e+05 -3.60180e+06 -6.16535e+05
+ -1.05350e+05 -3.60189e+06 -6.16037e+05
+ -1.05414e+05 -3.60198e+06 -6.15539e+05
+ -1.05479e+05 -3.60207e+06 -6.15041e+05
+ -1.05544e+05 -3.60215e+06 -6.14543e+05
+ -1.05608e+05 -3.60224e+06 -6.14045e+05
+ -1.05673e+05 -3.60233e+06 -6.13546e+05
+ -1.05737e+05 -3.60242e+06 -6.13048e+05
+ -1.05802e+05 -3.60250e+06 -6.12550e+05
+ -1.05867e+05 -3.60259e+06 -6.12052e+05
+ -1.05931e+05 -3.60268e+06 -6.11554e+05
+ -1.05996e+05 -3.60277e+06 -6.11055e+05
+ -1.06060e+05 -3.60285e+06 -6.10557e+05
+ -1.06125e+05 -3.60294e+06 -6.10059e+05
+ -1.06189e+05 -3.60303e+06 -6.09560e+05
+ -1.06254e+05 -3.60312e+06 -6.09062e+05
+ -1.06319e+05 -3.60320e+06 -6.08564e+05
+ -1.06383e+05 -3.60329e+06 -6.08066e+05
+ -1.06448e+05 -3.60338e+06 -6.07567e+05
+ -1.06512e+05 -3.60346e+06 -6.07069e+05
+ -1.06577e+05 -3.60355e+06 -6.06571e+05
+ -1.06642e+05 -3.60364e+06 -6.06072e+05
+ -1.06706e+05 -3.60372e+06 -6.05574e+05
+ -1.06771e+05 -3.60381e+06 -6.05075e+05
+ -1.06835e+05 -3.60390e+06 -6.04577e+05
+ -1.06900e+05 -3.60398e+06 -6.04079e+05
+ -1.06965e+05 -3.60407e+06 -6.03580e+05
+ -1.07029e+05 -3.60416e+06 -6.03082e+05
+ -1.07094e+05 -3.60424e+06 -6.02583e+05
+ -1.07158e+05 -3.60433e+06 -6.02085e+05
+ -1.07223e+05 -3.60442e+06 -6.01587e+05
+ -1.07288e+05 -3.60450e+06 -6.01088e+05
+ -1.07352e+05 -3.60459e+06 -6.00590e+05
+ -1.07417e+05 -3.60468e+06 -6.00091e+05
+ -1.07481e+05 -3.60476e+06 -5.99593e+05
+
+
+EPHEM_RATES
+ -4.36903e+02 -6.27400e+02 3.36369e+03
+ -4.36903e+02 -6.27400e+02 3.36369e+03
+ -4.36903e+02 -6.27400e+02 3.36369e+03
+ -4.36903e+02 -6.27400e+02 3.36369e+03
+ -4.36903e+02 -6.27400e+02 3.36369e+03
+ -4.36903e+02 -6.27400e+02 3.36369e+03
+ -4.36903e+02 -6.27400e+02 3.36369e+03
+ -4.36903e+02 -6.27400e+02 3.36369e+03
+ -4.36903e+02 -6.27400e+02 3.36369e+03
+ -4.36903e+02 -6.27400e+02 3.36369e+03
+ -4.36903e+02 -6.27400e+02 3.36369e+03
+ -4.36903e+02 -6.27163e+02 3.36373e+03
+ -4.36903e+02 -6.26689e+02 3.36381e+03
+ -4.36903e+02 -6.26215e+02 3.36390e+03
+ -4.36904e+02 -6.25741e+02 3.36398e+03
+ -4.36904e+02 -6.25267e+02 3.36407e+03
+ -4.36904e+02 -6.24793e+02 3.36415e+03
+ -4.36904e+02 -6.24319e+02 3.36424e+03
+ -4.36904e+02 -6.23845e+02 3.36432e+03
+ -4.36905e+02 -6.23371e+02 3.36441e+03
+ -4.36905e+02 -6.22896e+02 3.36449e+03
+ -4.36905e+02 -6.22422e+02 3.36457e+03
+ -4.36905e+02 -6.21948e+02 3.36466e+03
+ -4.36905e+02 -6.21474e+02 3.36474e+03
+ -4.36905e+02 -6.21000e+02 3.36483e+03
+ -4.36905e+02 -6.20526e+02 3.36491e+03
+ -4.36905e+02 -6.20051e+02 3.36499e+03
+ -4.36905e+02 -6.19577e+02 3.36508e+03
+ -4.36905e+02 -6.19103e+02 3.36516e+03
+ -4.36905e+02 -6.18629e+02 3.36525e+03
+ -4.36905e+02 -6.18154e+02 3.36533e+03
+ -4.36905e+02 -6.17680e+02 3.36541e+03
+ -4.36905e+02 -6.17206e+02 3.36550e+03
+ -4.36905e+02 -6.16732e+02 3.36558e+03
+ -4.36905e+02 -6.16257e+02 3.36566e+03
+ -4.36905e+02 -6.15783e+02 3.36575e+03
+ -4.36904e+02 -6.15309e+02 3.36583e+03
+ -4.36904e+02 -6.14834e+02 3.36591e+03
+ -4.36904e+02 -6.14360e+02 3.36600e+03
+ -4.36904e+02 -6.13886e+02 3.36608e+03
+ -4.36904e+02 -6.13411e+02 3.36616e+03
+ -4.36903e+02 -6.12937e+02 3.36625e+03
+ -4.36903e+02 -6.12463e+02 3.36633e+03
+ -4.36903e+02 -6.11988e+02 3.36641e+03
+ -4.36903e+02 -6.11514e+02 3.36649e+03
+ -4.36902e+02 -6.11039e+02 3.36658e+03
+ -4.36902e+02 -6.10565e+02 3.36666e+03
+ -4.36902e+02 -6.10090e+02 3.36674e+03
+ -4.36901e+02 -6.09616e+02 3.36682e+03
+ -4.36901e+02 -6.09142e+02 3.36691e+03
+ -4.36900e+02 -6.08667e+02 3.36699e+03
+ -4.36900e+02 -6.08193e+02 3.36707e+03
+ -4.36899e+02 -6.07718e+02 3.36715e+03
+ -4.36899e+02 -6.07244e+02 3.36723e+03
+ -4.36899e+02 -6.06769e+02 3.36732e+03
+ -4.36898e+02 -6.06295e+02 3.36740e+03
+ -4.36897e+02 -6.05820e+02 3.36748e+03
+ -4.36897e+02 -6.05346e+02 3.36756e+03
+ -4.36896e+02 -6.04871e+02 3.36764e+03
+ -4.36896e+02 -6.04397e+02 3.36773e+03
+ -4.36895e+02 -6.03922e+02 3.36781e+03
+ -4.36895e+02 -6.03447e+02 3.36789e+03
+ -4.36894e+02 -6.02973e+02 3.36797e+03
+ -4.36893e+02 -6.02498e+02 3.36805e+03
+ -4.36893e+02 -6.02024e+02 3.36813e+03
+ -4.36892e+02 -6.01549e+02 3.36822e+03
+ -4.36891e+02 -6.01074e+02 3.36830e+03
+ -4.36891e+02 -6.00600e+02 3.36838e+03
+ -4.36890e+02 -6.00125e+02 3.36846e+03
+ -4.36889e+02 -5.99651e+02 3.36854e+03
+ -4.36888e+02 -5.99176e+02 3.36862e+03
+ -4.36888e+02 -5.98701e+02 3.36870e+03
+ -4.36887e+02 -5.98227e+02 3.36878e+03
+ -4.36886e+02 -5.97752e+02 3.36886e+03
+ -4.36885e+02 -5.97277e+02 3.36894e+03
+ -4.36884e+02 -5.96802e+02 3.36903e+03
+ -4.36883e+02 -5.96328e+02 3.36911e+03
+ -4.36882e+02 -5.95853e+02 3.36919e+03
+ -4.36881e+02 -5.95378e+02 3.36927e+03
+ -4.36881e+02 -5.94904e+02 3.36935e+03
+ -4.36880e+02 -5.94429e+02 3.36943e+03
+ -4.36879e+02 -5.93954e+02 3.36951e+03
+ -4.36878e+02 -5.93479e+02 3.36959e+03
+ -4.36877e+02 -5.93004e+02 3.36967e+03
+ -4.36876e+02 -5.92530e+02 3.36975e+03
+ -4.36874e+02 -5.92055e+02 3.36983e+03
+ -4.36873e+02 -5.91580e+02 3.36991e+03
+ -4.36872e+02 -5.91105e+02 3.36999e+03
+ -4.36871e+02 -5.90630e+02 3.37007e+03
+ -4.36870e+02 -5.90156e+02 3.37015e+03
+ -4.36869e+02 -5.89681e+02 3.37023e+03
+ -4.36868e+02 -5.89206e+02 3.37031e+03
+ -4.36867e+02 -5.88731e+02 3.37039e+03
+ -4.36865e+02 -5.88256e+02 3.37047e+03
+ -4.36864e+02 -5.87781e+02 3.37055e+03
+ -4.36863e+02 -5.87306e+02 3.37063e+03
+ -4.36862e+02 -5.86831e+02 3.37070e+03
+ -4.36860e+02 -5.86357e+02 3.37078e+03
+ -4.36859e+02 -5.85882e+02 3.37086e+03
+ -4.36858e+02 -5.85407e+02 3.37094e+03
+ -4.36857e+02 -5.85169e+02 3.37098e+03
+ -4.36857e+02 -5.85169e+02 3.37098e+03
+ -4.36857e+02 -5.85169e+02 3.37098e+03
+ -4.36857e+02 -5.85169e+02 3.37098e+03
+ -4.36857e+02 -5.85169e+02 3.37098e+03
+ -4.36857e+02 -5.85169e+02 3.37098e+03
+ -4.36857e+02 -5.85169e+02 3.37098e+03
+ -4.36857e+02 -5.85169e+02 3.37098e+03
+ -4.36857e+02 -5.85169e+02 3.37098e+03
+ -4.36857e+02 -5.85169e+02 3.37098e+03
+ -4.36857e+02 -5.85169e+02 3.37098e+03
+
+
+DT_QUAT 8.25419e-02
+T0_QUAT -7.51131e+00
+NUMBER_OF_QUATERNIONS  183
+QUATERNIONS
+ -4.20014e-01 -4.86677e-01 -5.71338e-01 5.10201e-01
+ -4.20038e-01 -4.86696e-01 -5.71320e-01 5.10183e-01
+ -4.20061e-01 -4.86715e-01 -5.71303e-01 5.10164e-01
+ -4.20084e-01 -4.86735e-01 -5.71286e-01 5.10146e-01
+ -4.20107e-01 -4.86754e-01 -5.71269e-01 5.10128e-01
+ -4.20130e-01 -4.86773e-01 -5.71252e-01 5.10110e-01
+ -4.20154e-01 -4.86792e-01 -5.71235e-01 5.10092e-01
+ -4.20177e-01 -4.86811e-01 -5.71218e-01 5.10073e-01
+ -4.20200e-01 -4.86830e-01 -5.71201e-01 5.10055e-01
+ -4.20223e-01 -4.86849e-01 -5.71183e-01 5.10037e-01
+ -4.20246e-01 -4.86868e-01 -5.71166e-01 5.10019e-01
+ -4.20269e-01 -4.86887e-01 -5.71149e-01 5.10001e-01
+ -4.20293e-01 -4.86907e-01 -5.71132e-01 5.09982e-01
+ -4.20315e-01 -4.86926e-01 -5.71115e-01 5.09964e-01
+ -4.20337e-01 -4.86944e-01 -5.71099e-01 5.09947e-01
+ -4.20360e-01 -4.86964e-01 -5.71082e-01 5.09928e-01
+ -4.20383e-01 -4.86985e-01 -5.71065e-01 5.09909e-01
+ -4.20405e-01 -4.87005e-01 -5.71048e-01 5.09890e-01
+ -4.20428e-01 -4.87025e-01 -5.71031e-01 5.09871e-01
+ -4.20452e-01 -4.87045e-01 -5.71014e-01 5.09851e-01
+ -4.20475e-01 -4.87065e-01 -5.70997e-01 5.09832e-01
+ -4.20499e-01 -4.87083e-01 -5.70981e-01 5.09814e-01
+ -4.20522e-01 -4.87103e-01 -5.70964e-01 5.09795e-01
+ -4.20544e-01 -4.87123e-01 -5.70947e-01 5.09776e-01
+ -4.20567e-01 -4.87142e-01 -5.70931e-01 5.09757e-01
+ -4.20590e-01 -4.87162e-01 -5.70913e-01 5.09739e-01
+ -4.20614e-01 -4.87182e-01 -5.70896e-01 5.09719e-01
+ -4.20637e-01 -4.87202e-01 -5.70879e-01 5.09701e-01
+ -4.20660e-01 -4.87220e-01 -5.70862e-01 5.09683e-01
+ -4.20682e-01 -4.87238e-01 -5.70845e-01 5.09666e-01
+ -4.20705e-01 -4.87258e-01 -5.70828e-01 5.09648e-01
+ -4.20727e-01 -4.87278e-01 -5.70811e-01 5.09629e-01
+ -4.20750e-01 -4.87298e-01 -5.70794e-01 5.09610e-01
+ -4.20772e-01 -4.87319e-01 -5.70777e-01 5.09590e-01
+ -4.20795e-01 -4.87339e-01 -5.70760e-01 5.09571e-01
+ -4.20819e-01 -4.87358e-01 -5.70743e-01 5.09553e-01
+ -4.20843e-01 -4.87376e-01 -5.70725e-01 5.09536e-01
+ -4.20866e-01 -4.87396e-01 -5.70708e-01 5.09517e-01
+ -4.20890e-01 -4.87415e-01 -5.70691e-01 5.09498e-01
+ -4.20913e-01 -4.87435e-01 -5.70673e-01 5.09479e-01
+ -4.20935e-01 -4.87456e-01 -5.70657e-01 5.09459e-01
+ -4.20958e-01 -4.87476e-01 -5.70641e-01 5.09439e-01
+ -4.20980e-01 -4.87496e-01 -5.70624e-01 5.09421e-01
+ -4.21003e-01 -4.87516e-01 -5.70607e-01 5.09401e-01
+ -4.21026e-01 -4.87536e-01 -5.70590e-01 5.09382e-01
+ -4.21048e-01 -4.87555e-01 -5.70574e-01 5.09364e-01
+ -4.21070e-01 -4.87575e-01 -5.70557e-01 5.09346e-01
+ -4.21093e-01 -4.87595e-01 -5.70540e-01 5.09327e-01
+ -4.21116e-01 -4.87615e-01 -5.70523e-01 5.09308e-01
+ -4.21139e-01 -4.87634e-01 -5.70506e-01 5.09290e-01
+ -4.21162e-01 -4.87654e-01 -5.70490e-01 5.09271e-01
+ -4.21185e-01 -4.87673e-01 -5.70472e-01 5.09252e-01
+ -4.21208e-01 -4.87692e-01 -5.70455e-01 5.09233e-01
+ -4.21231e-01 -4.87711e-01 -5.70439e-01 5.09215e-01
+ -4.21254e-01 -4.87730e-01 -5.70422e-01 5.09196e-01
+ -4.21277e-01 -4.87753e-01 -5.70405e-01 5.09174e-01
+ -4.21300e-01 -4.87773e-01 -5.70388e-01 5.09155e-01
+ -4.21324e-01 -4.87793e-01 -5.70371e-01 5.09136e-01
+ -4.21348e-01 -4.87813e-01 -5.70353e-01 5.09116e-01
+ -4.21371e-01 -4.87833e-01 -5.70336e-01 5.09097e-01
+ -4.21395e-01 -4.87850e-01 -5.70319e-01 5.09080e-01
+ -4.21418e-01 -4.87869e-01 -5.70302e-01 5.09062e-01
+ -4.21443e-01 -4.87887e-01 -5.70284e-01 5.09044e-01
+ -4.21467e-01 -4.87906e-01 -5.70266e-01 5.09027e-01
+ -4.21491e-01 -4.87926e-01 -5.70249e-01 5.09007e-01
+ -4.21514e-01 -4.87946e-01 -5.70231e-01 5.08988e-01
+ -4.21537e-01 -4.87966e-01 -5.70214e-01 5.08969e-01
+ -4.21562e-01 -4.87983e-01 -5.70197e-01 5.08951e-01
+ -4.21585e-01 -4.88002e-01 -5.70180e-01 5.08933e-01
+ -4.21610e-01 -4.88021e-01 -5.70162e-01 5.08914e-01
+ -4.21634e-01 -4.88040e-01 -5.70144e-01 5.08897e-01
+ -4.21658e-01 -4.88059e-01 -5.70127e-01 5.08878e-01
+ -4.21682e-01 -4.88079e-01 -5.70109e-01 5.08859e-01
+ -4.21705e-01 -4.88098e-01 -5.70092e-01 5.08840e-01
+ -4.21729e-01 -4.88117e-01 -5.70074e-01 5.08822e-01
+ -4.21752e-01 -4.88136e-01 -5.70057e-01 5.08804e-01
+ -4.21775e-01 -4.88156e-01 -5.70040e-01 5.08785e-01
+ -4.21798e-01 -4.88174e-01 -5.70021e-01 5.08769e-01
+ -4.21821e-01 -4.88194e-01 -5.70005e-01 5.08750e-01
+ -4.21846e-01 -4.88213e-01 -5.69986e-01 5.08731e-01
+ -4.21870e-01 -4.88233e-01 -5.69969e-01 5.08712e-01
+ -4.21893e-01 -4.88253e-01 -5.69951e-01 5.08693e-01
+ -4.21916e-01 -4.88273e-01 -5.69934e-01 5.08675e-01
+ -4.21940e-01 -4.88292e-01 -5.69916e-01 5.08656e-01
+ -4.21963e-01 -4.88311e-01 -5.69899e-01 5.08638e-01
+ -4.21987e-01 -4.88330e-01 -5.69882e-01 5.08620e-01
+ -4.22010e-01 -4.88350e-01 -5.69864e-01 5.08602e-01
+ -4.22033e-01 -4.88369e-01 -5.69846e-01 5.08584e-01
+ -4.22056e-01 -4.88389e-01 -5.69829e-01 5.08565e-01
+ -4.22078e-01 -4.88409e-01 -5.69812e-01 5.08546e-01
+ -4.22101e-01 -4.88429e-01 -5.69795e-01 5.08528e-01
+ -4.22123e-01 -4.88449e-01 -5.69778e-01 5.08509e-01
+ -4.22146e-01 -4.88469e-01 -5.69761e-01 5.08489e-01
+ -4.22170e-01 -4.88489e-01 -5.69743e-01 5.08470e-01
+ -4.22193e-01 -4.88509e-01 -5.69726e-01 5.08450e-01
+ -4.22217e-01 -4.88529e-01 -5.69709e-01 5.08432e-01
+ -4.22239e-01 -4.88549e-01 -5.69691e-01 5.08413e-01
+ -4.22261e-01 -4.88570e-01 -5.69674e-01 5.08394e-01
+ -4.22283e-01 -4.88589e-01 -5.69658e-01 5.08375e-01
+ -4.22305e-01 -4.88609e-01 -5.69642e-01 5.08356e-01
+ -4.22328e-01 -4.88629e-01 -5.69625e-01 5.08337e-01
+ -4.22351e-01 -4.88648e-01 -5.69608e-01 5.08319e-01
+ -4.22374e-01 -4.88667e-01 -5.69591e-01 5.08300e-01
+ -4.22397e-01 -4.88687e-01 -5.69574e-01 5.08281e-01
+ -4.22421e-01 -4.88707e-01 -5.69556e-01 5.08261e-01
+ -4.22444e-01 -4.88727e-01 -5.69539e-01 5.08242e-01
+ -4.22467e-01 -4.88745e-01 -5.69522e-01 5.08225e-01
+ -4.22490e-01 -4.88765e-01 -5.69505e-01 5.08206e-01
+ -4.22512e-01 -4.88785e-01 -5.69488e-01 5.08187e-01
+ -4.22535e-01 -4.88805e-01 -5.69471e-01 5.08168e-01
+ -4.22558e-01 -4.88825e-01 -5.69454e-01 5.08149e-01
+ -4.22581e-01 -4.88846e-01 -5.69436e-01 5.08129e-01
+ -4.22604e-01 -4.88865e-01 -5.69419e-01 5.08111e-01
+ -4.22627e-01 -4.88885e-01 -5.69402e-01 5.08092e-01
+ -4.22649e-01 -4.88905e-01 -5.69385e-01 5.08074e-01
+ -4.22672e-01 -4.88924e-01 -5.69368e-01 5.08056e-01
+ -4.22695e-01 -4.88943e-01 -5.69351e-01 5.08037e-01
+ -4.22718e-01 -4.88963e-01 -5.69333e-01 5.08018e-01
+ -4.22740e-01 -4.88982e-01 -5.69317e-01 5.07999e-01
+ -4.22763e-01 -4.89002e-01 -5.69300e-01 5.07980e-01
+ -4.22786e-01 -4.89022e-01 -5.69283e-01 5.07960e-01
+ -4.22810e-01 -4.89042e-01 -5.69266e-01 5.07941e-01
+ -4.22833e-01 -4.89062e-01 -5.69249e-01 5.07922e-01
+ -4.22855e-01 -4.89080e-01 -5.69233e-01 5.07904e-01
+ -4.22877e-01 -4.89100e-01 -5.69216e-01 5.07885e-01
+ -4.22899e-01 -4.89122e-01 -5.69199e-01 5.07865e-01
+ -4.22922e-01 -4.89143e-01 -5.69182e-01 5.07845e-01
+ -4.22945e-01 -4.89162e-01 -5.69165e-01 5.07826e-01
+ -4.22968e-01 -4.89183e-01 -5.69148e-01 5.07806e-01
+ -4.22991e-01 -4.89203e-01 -5.69131e-01 5.07787e-01
+ -4.23012e-01 -4.89222e-01 -5.69115e-01 5.07769e-01
+ -4.23035e-01 -4.89242e-01 -5.69098e-01 5.07750e-01
+ -4.23057e-01 -4.89262e-01 -5.69081e-01 5.07731e-01
+ -4.23079e-01 -4.89281e-01 -5.69065e-01 5.07712e-01
+ -4.23102e-01 -4.89301e-01 -5.69048e-01 5.07693e-01
+ -4.23124e-01 -4.89322e-01 -5.69031e-01 5.07672e-01
+ -4.23147e-01 -4.89342e-01 -5.69014e-01 5.07653e-01
+ -4.23169e-01 -4.89361e-01 -5.68999e-01 5.07634e-01
+ -4.23190e-01 -4.89380e-01 -5.68983e-01 5.07616e-01
+ -4.23212e-01 -4.89400e-01 -5.68967e-01 5.07597e-01
+ -4.23234e-01 -4.89420e-01 -5.68950e-01 5.07577e-01
+ -4.23257e-01 -4.89440e-01 -5.68933e-01 5.07558e-01
+ -4.23279e-01 -4.89460e-01 -5.68915e-01 5.07540e-01
+ -4.23302e-01 -4.89480e-01 -5.68898e-01 5.07521e-01
+ -4.23325e-01 -4.89499e-01 -5.68881e-01 5.07503e-01
+ -4.23347e-01 -4.89518e-01 -5.68865e-01 5.07484e-01
+ -4.23370e-01 -4.89538e-01 -5.68848e-01 5.07465e-01
+ -4.23394e-01 -4.89558e-01 -5.68830e-01 5.07446e-01
+ -4.23417e-01 -4.89578e-01 -5.68813e-01 5.07427e-01
+ -4.23440e-01 -4.89598e-01 -5.68796e-01 5.07407e-01
+ -4.23463e-01 -4.89619e-01 -5.68779e-01 5.07386e-01
+ -4.23485e-01 -4.89638e-01 -5.68762e-01 5.07368e-01
+ -4.23510e-01 -4.89657e-01 -5.68746e-01 5.07348e-01
+ -4.23533e-01 -4.89676e-01 -5.68728e-01 5.07329e-01
+ -4.23555e-01 -4.89695e-01 -5.68712e-01 5.07311e-01
+ -4.23578e-01 -4.89715e-01 -5.68695e-01 5.07292e-01
+ -4.23600e-01 -4.89735e-01 -5.68678e-01 5.07272e-01
+ -4.23622e-01 -4.89756e-01 -5.68662e-01 5.07252e-01
+ -4.23645e-01 -4.89776e-01 -5.68645e-01 5.07233e-01
+ -4.23668e-01 -4.89795e-01 -5.68629e-01 5.07213e-01
+ -4.23691e-01 -4.89815e-01 -5.68612e-01 5.07194e-01
+ -4.23714e-01 -4.89834e-01 -5.68595e-01 5.07174e-01
+ -4.23737e-01 -4.89853e-01 -5.68579e-01 5.07155e-01
+ -4.23760e-01 -4.89872e-01 -5.68562e-01 5.07137e-01
+ -4.23783e-01 -4.89893e-01 -5.68545e-01 5.07117e-01
+ -4.23806e-01 -4.89913e-01 -5.68528e-01 5.07098e-01
+ -4.23829e-01 -4.89933e-01 -5.68510e-01 5.07079e-01
+ -4.23852e-01 -4.89953e-01 -5.68493e-01 5.07060e-01
+ -4.23875e-01 -4.89972e-01 -5.68476e-01 5.07041e-01
+ -4.23896e-01 -4.89990e-01 -5.68459e-01 5.07025e-01
+ -4.23918e-01 -4.90010e-01 -5.68442e-01 5.07006e-01
+ -4.23942e-01 -4.90029e-01 -5.68425e-01 5.06988e-01
+ -4.23966e-01 -4.90047e-01 -5.68407e-01 5.06969e-01
+ -4.23989e-01 -4.90066e-01 -5.68390e-01 5.06951e-01
+ -4.24013e-01 -4.90085e-01 -5.68373e-01 5.06932e-01
+ -4.24036e-01 -4.90104e-01 -5.68355e-01 5.06914e-01
+ -4.24059e-01 -4.90123e-01 -5.68338e-01 5.06896e-01
+ -4.24083e-01 -4.90142e-01 -5.68320e-01 5.06877e-01
+ -4.24106e-01 -4.90161e-01 -5.68303e-01 5.06859e-01
+ -4.24130e-01 -4.90180e-01 -5.68285e-01 5.06840e-01
+ -4.24153e-01 -4.90199e-01 -5.68268e-01 5.06822e-01
+ -4.24177e-01 -4.90218e-01 -5.68251e-01 5.06804e-01
+ -4.24200e-01 -4.90237e-01 -5.68233e-01 5.06785e-01
+
+
+SCAN_DURATION 1.34543e+01
+INT_TIME 1.87699e-03
+
+ALONG_SCAN_PIXEL_SIZE  8.28148e-03
+CROSS_SCAN_PIXEL_SIZE  7.00000e-03
+
+CENTER_GP -1.74751e-01 -1.60303e+00 0.00000e+00
+SENSOR_POSITION -1.74373e-01 -1.59965e+00 2.55325e+05
+MOUNTING_ANGLES 0.00000e+00 0.00000e+00 0.00000e+00
+
+TOTAL_LINES 7168
+TOTAL_SAMPLES 5000
+
+
+
+
+IKCODE  -74021
+ISIS_Z_DIRECTION  1.00000e+00
+OPTICAL_DIST_COEF -7.34339e-03 2.83758e-05 1.28419e-08
+ITRANSS 0.00000e+00 0.00000e+00 1.42857e+02
+ITRANSL 0.00000e+00 1.42857e+02 0.00000e+00
+DETECTOR_SAMPLE_ORIGIN 2.54346e+03
+DETECTOR_LINE_ORIGIN 4.30442e-01
+DETECTOR_LINE_OFFSET  0.00000e+00
+DETECTOR_SAMPLE_SUMMING  1.00000e+00
+STARTING_SAMPLE 1.00000e+00
+STARTING_LINE 1.00000e+00
+STARTING_EPHEMERIS_TIME 2.18055e+08
+CENTER_EPHEMERIS_TIME 2.18055e+08
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/noblobs/Makefile b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/noblobs/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f6686c52d9e19002a9f4898657d1427b271c187e
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/noblobs/Makefile
@@ -0,0 +1,8 @@
+APPNAME = socetlinescankeywords
+
+include $(ISISROOT)/make/isismake.tsts
+
+commands:
+	$(APPNAME) from=$(INPUT)/P01_001602_1701_XI_09S091W.noblobs.cub \
+	  to=$(OUTPUT)/P01_001602_1701_XI_09S091W.txt >& \
+	  $(OUTPUT)/error.txt || true;
diff --git a/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/noblobs/truth/error.txt b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/noblobs/truth/error.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d836889773aae5415328f468fd0a2747d55148a9
--- /dev/null
+++ b/isis/src/socet/apps/socetlinescankeywords_noExtrapolation/tsts/noblobs/truth/error.txt
@@ -0,0 +1 @@
+**USER ERROR** Input image does not contain needed SPICE blobs...run spiceinit with attach=yes.