// // $Id$ //----------------------------------------------------------------------- // // (c) Copyright 2006 by GATS, Inc., // 11864 Canon Blvd, Suite 101, Newport News VA 23606 // // All Rights Reserved. No part of this software or publication may be // reproduced, stored in a retrieval system, or transmitted, in any form // or by any means, electronic, mechanical, photocopying, recording, or // otherwise without the prior written permission of GATS, Inc. // //----------------------------------------------------------------------- // // Module: AltitudeRegistration.cpp // // Author: Christopher W. Brown // //----------------------------------------------------------------------- // // Modification History: // //----------------------------------------------------------------------- // Include Files: //----------------------------------------------------------------------- // #include #include #include "ConfigFile.h" #include "EventVar.h" #include "AltitudeRegistration.h" #include "AltReg.h" #include "CO2Reg.h" #include "RefrReg.h" #include "ModelData.h" #include "MakeTransmissions.h" using namespace std; int AltitudeRegistration(Event& L0, Event& L1, Event& Tmp, Event& SD, ConfigFile& cf){ if(Tmp.EventVarExists("ZAltImpact_Band13")) RefractionRegistration(L0, L1, Tmp, SD, cf); else CO2Registration(L0, L1, Tmp, SD, cf); return 0; } void CO2Registration(Event& L0, Event& L1, Event& Tmp, Event& SD, ConfigFile& cf){ cout << endl << "Start CO2 Registration" << endl; int AltRegMethod = cf.GetInt("AltitudeRegistration", "AltRegMethodOutput"); CO2Reg Band13(L1, SD, cf, 0); ModelData B13Sim(L1, SD, cf, 0); CO2Reg Band07(L1, SD, cf, 1); ModelData B07Sim(L1, SD, cf, 1); ModelData B32Sim(L1, SD, cf, 2); RefrReg Refr(L1, SD, cf, 2); //ModelData CO2_07Sim(L1, SD, cf, 1); //ModelData RefrSim(L1, SD, cf, 2); cout << "Start Band 13 Registration" << endl; B13Sim.readForwardModelData(L1, SD); Band13.readGeometricData(L1, SD, cf); Band13.readAttenSettings(L0); Band13.calcAngleGeomCenter(); Band13.calcAngleGeomEdge(); Band13.calcImpactData(B13Sim); Band13.doPressureRegistration(L1, B13Sim); Band13.writeToEvent(Tmp); //CO2Reg Band 07 cout << "Start Band 07 Registration" << endl; B07Sim.readForwardModelData(L1, SD); Band07.readGeometricData(L1, SD, cf); Band07.readAttenSettings(L0); Band07.calcAngleGeomCenter(); Band07.calcAngleGeomEdge(); Band07.calcImpactData(B07Sim); Band07.doPressureRegistration(L1, B07Sim); Band07.writeToEvent(Tmp); //Read Refraction Data For Output //L1.getEventVar("angleRefrEdgeBottom", Ev1); //L1.deleteEventVar("angleRefrEdgeBottom"); //L1.getEventVar("zImpactEdgeBottom", Ev2); //L1.deleteEventVar("zImpactEdgeBottom"); //Write Output from CO2 Registration -- Band 13 //Band13.putZcompare(altRegQA_Z); //Band13.putRefractionData(Ev1, Ev2, rms, mean); //CO2.applyCenterSumOffsets(); //LED move this after createcenterSums // Band13.createAltitudeGrid(L1); B32Sim.readForwardModelData(L1, SD); Band13.createCenterSumData(L1, Tmp, B32Sim); Band13.createAltitudeGrid(L1); //Band13.gridCenterSums(L1); //Band13.createCenterSumData(L1, B32Sim, B13Sim); //Band13.writeOutput(L1); //RefrSim.readForwardModelData(L1, SD); //Band32Sim.readForwardModelData(L1, SD); ///* COMMENTED TO NOT RUN FIRST TIME Refr.readGeometricData(L1, SD, cf); Refr.calcAngleGeomCenter(); Refr.calcAngleGeomEdge(); //Calculates the Bottom Edge Refr.doRefractionRegistration(L1, B32Sim); Refr.writeToEvent(Tmp); //*/ if(AltRegMethod == 13){ //Band13.createAltitudeGrid(L1); Band13.writeOutput(L1); } if(AltRegMethod == 7){ Band07.createAltitudeGrid(L1); Band07.writeOutput(L1); } //MakeTransmissions(L1); std::cerr << "In CO2Registration \n"; return; } void RefractionRegistration(Event& L0, Event& L1, Event& Tmp, Event& SD, ConfigFile& cf){ cout << endl << "Start Refraction Registration" << endl; int AltRegMethod = cf.GetInt("AltitudeRegistration", "AltRegMethodOutput"); ModelData RefrSim(L1, SD, cf, 2); RefrReg Refr(L1, SD, cf, 2); EventVar zBand13; EventVar zBand13pt; EventVar zBand07; EventVar zBand32; EventVarVect methodBands; Tmp.getEventVar("ZAltImpact_Band13", zBand13); Tmp.deleteEventVar("ZAltImpact_Band13"); methodBands.addEventVar(zBand13); Tmp.getEventVar("ZAltImpact_Band07", zBand07); //Tmp.getEventVar("ZAltImpact_Band07", zBand13); Tmp.deleteEventVar("ZAltImpact_Band07"); methodBands.addEventVar(zBand07); Tmp.getEventVar("ZAltImpact_Band32", zBand32); //Tmp.getEventVar("ZAltImpact_Band32", zBand13); Tmp.deleteEventVar("ZAltImpact_Band32"); methodBands.addEventVar(zBand32); L1.getEventVar("ZAltImpact_Band13pt", zBand13pt); //L1.getEventVar("ZAltImpact_Band13pt", zBand13); L1.deleteEventVar("ZAltImpact_Band13pt"); methodBands.addEventVar(zBand13pt); //RefrSim.readForwardModelData(L1, SD); //Band13.createCenterSumData(L1, Tmp, B32Sim); RefrSim.readForwardModelData(L1, SD); Refr.readGeometricData(L1, SD, cf); Refr.calcAngleGeomCenter(); Refr.calcAngleGeomEdge(); //Calculates the Bottom Edge //Refr.doRefractionRegistration(RefrSim, solarExtent); Refr.doRefractionRegistration(L1, RefrSim); //Refr.compareAltRegMethods(Band13, Band07, Band32, Band13A); Refr.compareAltRegMethods(methodBands); //Refr.compareAltRegMethods(zBand13, zBand07, zBand32, zBand13pt); Refr.writeComparisonValues(L1); if(AltRegMethod == 13) Refr.recreateAltitudeGrid(L1, zBand13); if(AltRegMethod == 7) Refr.recreateAltitudeGrid(L1, zBand07); if(AltRegMethod == 32){ Refr.createAltitudeGrid(L1); Refr.writeOutput(L1); } MakeTransmissions(L1); std::cerr << "In RefractionRegistration \n"; return; }