Commit b5d610c3 authored by Tyler Wilson's avatar Tyler Wilson
Browse files

decorstretch app brought into compliance with ISIS coding standards (ref#2280)

git-svn-id: http://subversion.wr.usgs.gov/repos/prog/isis3/trunk@6374 41f8697f-d340-4b68-9986-7bafba869bb8
parent fe19e4ae
Loading
Loading
Loading
Loading
+26 −16
Original line number Diff line number Diff line
#include "Isis.h"
#include "tnt_array2d.h"

#include  "GaussianStretch.h"
#include "PrincipalComponentAnalysis.h"
#include "ProcessBySpectra.h"
#include "Statistics.h"
#include  "GaussianStretch.h"

#include <iomanip>

//Third-party matrix library
#include "tnt_array2d.h"

using namespace std;
using namespace Isis;

void GetData(Buffer &in);
void Transform(Buffer &in, Buffer &out);
void NormalizeAndInvert(Buffer &in, Buffer &out);
void getData(Buffer &in);
void transform(Buffer &in, Buffer &out);
void normalizeAndInvert(Buffer &in, Buffer &out);

PrincipalComponentAnalysis pca(0);
vector<GaussianStretch *> stretches;
@@ -35,13 +39,13 @@ void IsisMain() {
  ProcessByBrick p2;
  p2.SetBrickSize(128, 128, numDimensions);
  p2.SetInputCube("FROM");
  p2.Progress()->SetText("Computing Transform");
  p2.StartProcess(GetData);
  p2.Progress()->SetText("Computing transform");
  p2.StartProcess(getData);
  p2.EndProcess();
  pca.ComputeTransform();

  p.Progress()->SetText("Transforming Cube");
  p.StartProcess(Transform);
  p.StartProcess(transform);
  p.EndProcess();

  Isis::CubeAttributeInput cai;
@@ -50,28 +54,33 @@ void IsisMain() {
  for (int i = 0; i < numDimensions; i++) {
    stretches.push_back(new GaussianStretch(*(icube2->histogram(i + 1) ) ) );
  }
  p.SetOutputCube("TO");

  p.SetOutputCube("TO");
  p.SetBrickSize(128, 128, numDimensions);
  p.Progress()->SetText("Stretching Cube");
  p.StartProcess(NormalizeAndInvert);
  p.StartProcess(normalizeAndInvert);

  for(int i = 0; i < numDimensions; i++) delete stretches[i];
  stretches.clear();
  for (int i = 0; i < numDimensions; i++) {
     delete stretches[i];
  }

  stretches.clear();
  p.EndProcess();

  remove(tmpFileName.toAscii().data() );
}

void GetData(Buffer &in) {

void getData(Buffer &in) {
  pca.AddData(in.DoubleBuffer(), in.size() / in.BandDimension() );
}

// Processing routine for the pca with one input cube
void Transform(Buffer &in, Buffer &out) {
void transform(Buffer &in, Buffer &out) {

  for (int i = 0; i < in.SampleDimension(); i++) {

    for (int j = 0; j < in.LineDimension(); j++) {

      TNT::Array2D<double> pre(1, in.BandDimension());
      for (int k = 0; k < pre.dim2(); k++) {
        int index = i + j * in.SampleDimension() + k * in.SampleDimension() * in.LineDimension();
@@ -89,7 +98,8 @@ void Transform(Buffer &in, Buffer &out) {
}

// Processing routine for the pca with two input cubes
void NormalizeAndInvert(Buffer &in, Buffer &out) {
void normalizeAndInvert(Buffer &in, Buffer &out) {

  for (int i = 0; i < in.SampleDimension(); i++) {
    for (int j = 0; j < in.LineDimension(); j++) {
      TNT::Array2D<double> pre(1, in.BandDimension() );
+4 −0
Original line number Diff line number Diff line
@@ -35,6 +35,10 @@ bool descending(const spRange &r1, const spRange &r2);
void addRange(QString minName, QString maxName, SpecPix pixel);






vector <spRange> rangeList;
int numRange;
int nnull, nlis, nlrs, nhis, nhrs;