/*************************************************************************** * (C) Copyright 2006 by GATS, Inc. * 11864 Canon Blvd., STE 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. * *************************************************************************** * * Filename: TimeRegistrationTestDriver.cpp * * Description: Main Function to Independently Test TimeRegistration Module * Registration Routines for an individual event * * Author: C.W.Brown * (757)952-1048 * (757)873-5920 * * ***************************************************************************/ #include "Event.h" #include "EventVar.h" #include "ConfigFile.h" #include "AltitudeRegistration.h" #include #include #include using namespace std; int main(int argc, char *argv[]) { int n=0, m=0; double modsig[200]; double modref[200]; double modztp[200]; //double obssig[4][6000]; double obssig01[6000]; double obssig02[6000]; double obssig03[6000]; double obssig04[6000]; double obstim[6000]; double obsztp[6000]; double obslock[6000]; double dopplr[6000]; double obsrsc[6000]; double obssun1[6000]; double obssun2[6000]; double obssun3[6000]; //double obssun[3][6000]; double obsexo = 1.0; double radCurv = 6378.000; double solExt = 0.00952; Event L0; Event L1; Event Tmp; Event SD; ConfigFile Cf("../../tests/AltReg/SOFIELevel1.ini"); char *SOFIE_Obs_file; char *SOFIE_Mod_file; SOFIE_Obs_file = Cf.GetStr("AltitudeRegistration", "SOFIE_OBSDATA_FILE"); SOFIE_Mod_file = Cf.GetStr("AltitudeRegistration", "SOFIE_MODDATA_FILE"); L0.clear(); L1.clear(); L0.setEventNumber(1); ifstream SOFIE_Obs (SOFIE_Obs_file); ifstream SOFIE_Mod (SOFIE_Mod_file); cout << SOFIE_Obs_file << endl; cout << SOFIE_Mod_file << endl; while(!SOFIE_Obs.eof()){ SOFIE_Obs >> obstim[n] >> obsztp[n] >> obsrsc[n] >> obslock[n]; //for(int i=0; i<24; i++) //SOFIE_Obs >> obssig[i][n]; SOFIE_Obs >> obssig01[n] >> obssig02[n] >> obssig03[n] >> obssig04[n]; obssig01[n] = 1 / log(20 * (n + 1)); //for(int i=0; i<3; i++) //SOFIE_Obs >> obssun[i][n]; SOFIE_Obs >> obssun1[n] >> obssun2[n] >> obssun3[n]; dopplr[n] = 6.2; n++; } n--; while(!SOFIE_Mod.eof()){ SOFIE_Mod >> modztp[m] >> modsig[m] >> modref[m]; //SOFIE_Mod >> modsig[m] >> modref[m] >> modztp[m]; m++; } m--; cout << "N: " << n << endl; cout << "M: " << m << endl; /* double data[] = {13504.0396765046, 13504.0396770833, 13504.0396776620, 13504.0396782407, 13504.0396788194, 13504.0396793981, 13504.0396799768, 13504.0396805556, }; */ //n = sizeof(data)/sizeof(double); EventVarVect allSignals("Corrected_Signals"); EventVar sigband("Sig1", obssig01, n); EventVar attSet("L0_AttenuatorSetting", 23000.0, 24); allSignals.addEventVar(sigband); string bName; for(int i=2; i<25; i++){ bName = "BandSignal" + i; allSignals.addEventVar(sigband); } //allSignals.addEventVar(sigband2); //allSignals.addEventVar(sigband3); //allSignals.addEventVar(sigband4); EventVarVect losSun("L1_SolarLineOfSight"); EventVar sunposX("SunPosX", obssun1, n); EventVar sunposY("SunPosY", obssun2, n); EventVar sunposZ("SunPosZ", obssun3, n); losSun.addEventVar(sunposX); losSun.addEventVar(sunposY); losSun.addEventVar(sunposZ); EventVar modSignal("SimulatedTransmittance", modsig, m); EventVar modRefr("SimulatedRefracAngle", modref, m); EventVar modZimp("SimulatedImpactAlts", modztp, m); EventVar timeArray("Final_Signal_Time", obstim, n); EventVar dopplerShift("L1_DopplerShift", dopplr, n); EventVar tpAltitude("L1_TPAlt", obsztp, n); EventVar radiusSC("L1_SCRad", obsrsc, n); EventVar lockdown("DetectorLockdown_EL", obslock, n); //EventVarVect allSignals; EventVar exo("Exoatmospheric Value", obsexo, 1); EventVar ext("L1_SolarExtent", solExt, 1); EventVar radiusCurv("L1_CurvatureRadius", radCurv, 1); L0.addEventVar(attSet); L1.addEventVar(allSignals); L1.addEventVar(losSun); Tmp.addEventVar(modSignal); Tmp.addEventVar(modRefr); Tmp.addEventVar(modZimp); L1.addEventVar(timeArray); L1.addEventVar(tpAltitude); L1.addEventVar(dopplerShift); L1.addEventVar(radiusSC); L1.addEventVar(lockdown); L1.addEventVar(exo); L1.addEventVar(ext); L1.addEventVar(radiusCurv); //L1.addEventVar(); //L1.addEventVar(); //EventVar L0_EventTimes("L0_DetectorTimes", data, n); //L0.addEventVar(L0_EventTimes); cout << "PHere" << endl; AltitudeRegistration(L0, L1, Tmp, SD, Cf); cout << "QHere" << endl; return 0; }