From 95b1fcfc3addd25b14544ef09019c0a9c8220063 Mon Sep 17 00:00:00 2001
From: Jesse Mapel
Date: Fri, 10 Jun 2022 15:08:30 -0700
Subject: [PATCH] Modify framestitch to preserve tables and kernels
---
isis/src/base/apps/framestitch/framestitch.cpp | 18 ++++++++----------
isis/src/base/apps/framestitch/framestitch.xml | 6 +++---
isis/tests/FunctionalTestsFrameStitch.cpp | 1 +
3 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/isis/src/base/apps/framestitch/framestitch.cpp b/isis/src/base/apps/framestitch/framestitch.cpp
index 883d355ba9..52c8246a36 100644
--- a/isis/src/base/apps/framestitch/framestitch.cpp
+++ b/isis/src/base/apps/framestitch/framestitch.cpp
@@ -82,6 +82,7 @@ namespace Isis {
*/
void framestitch(UserInterface &ui) {
ProcessByBrick process;
+ process.PropagatePolygons(false);
// It is very important that the odd cube gets added first as later on
// we'll use frameNumber % 2 to index the input cube vector
@@ -151,12 +152,12 @@ namespace Isis {
}
int reducedFrameHeight = frameHeight - numLinesOverlap;
-
+
QString outCubeFile = ui.GetCubeName("TO");
Cube *outCube = process.SetOutputCube(
outCubeFile, CubeAttributeOutput(outCubeFile),
evenCube->sampleCount(), numFrames * reducedFrameHeight, evenCube->bandCount());
-
+
// If there's an even number of frames and the inputs are flipped, we have to
// swap even and odd because the first frame in the even cube is valid and the
// first frame in the odd cube is now all NULL.
@@ -172,8 +173,6 @@ namespace Isis {
// Processing setup
process.SetBrickSize(evenCube->sampleCount(), frameHeight, evenCube->bandCount());
- process.PropagateTables(false);
- process.PropagatePolygons(false);
// Put together the frames from the two input cubes. Note that we
// wipe a total of numLinesOverlap lines from each frame as we do
@@ -182,7 +181,7 @@ namespace Isis {
Brick buff(evenCube->sampleCount(), reducedFrameHeight, evenCube->bandCount(),
evenCube->pixelType());
-
+
// Set reading position
buff.SetBasePosition(1, frame * frameHeight + numLinesOverlap/2 + 1, 1);
@@ -190,19 +189,18 @@ namespace Isis {
if (swapInputCubes)
inIndex = 1 - inIndex;
- if (inIndex == 0)
+ if (inIndex == 0)
oddCube->read(buff);
else
evenCube->read(buff);
// Set writing position
buff.SetBasePosition(1, frame * reducedFrameHeight + 1, 1);
-
+
outCube->write(buff);
}
// Update the output label
- outCube->deleteGroup("Kernels");
if (!outCube->hasGroup("Instrument")) {
outCube->putGroup(PvlGroup("Instrument"));
}
@@ -243,9 +241,9 @@ namespace Isis {
if (!outInst.hasKeyword("NumLinesOverlap"))
outInst.addKeyword(PvlKeyword("NumLinesOverlap"));
outInst["numLinesOverlap"].setValue(toString(numLinesOverlap));
-
+
process.EndProcess();
-
+
return;
}
diff --git a/isis/src/base/apps/framestitch/framestitch.xml b/isis/src/base/apps/framestitch/framestitch.xml
index 5a04f442b0..a0dbff5213 100644
--- a/isis/src/base/apps/framestitch/framestitch.xml
+++ b/isis/src/base/apps/framestitch/framestitch.xml
@@ -14,8 +14,8 @@
data as the first several rows of the next frame, reduntant
lines can be eliminated with the num_lines_overlap parameter.
This program is designed to be run before processing the
- data in another software package as it removes the camera
- information from the output cube.
+ data in another software package and the output cube will not
+ produce a valid camera model for further processing in ISIS.
When many push frame images are ingested into ISIS, their frames are separated
@@ -149,7 +149,7 @@
If not entered, the program will assume the value 0. A value
- of 2 or 4 works reasonably for LRO WAC images.
+ of 2 or 4 works reasonably for LRO WAC images.
0
diff --git a/isis/tests/FunctionalTestsFrameStitch.cpp b/isis/tests/FunctionalTestsFrameStitch.cpp
index e97ca0bbe7..54239c132c 100644
--- a/isis/tests/FunctionalTestsFrameStitch.cpp
+++ b/isis/tests/FunctionalTestsFrameStitch.cpp
@@ -7,6 +7,7 @@
#include "LineManager.h"
#include "SpecialPixel.h"
#include "Statistics.h"
+#include "Table.h"
#include "TestUtilities.h"
#include "Fixtures.h"