/** @file MakeTransmissions.cpp @author Brian Magill @date 5/16/2007 $Date:$ $Revision:$ @copyright (©) 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. @brief Converts signals into transmissions */ #include #include #include #include "MakeTransmissions.h" #include "SOFIE_namespace.h" #include "FillNonFinite.hpp" using namespace std; void MakeTransmissions(Event& L1) { string strErr; unsigned long i; unsigned long diffIndx; unsigned long strongIndx[] = {SOFIE::O3_strong, SOFIE::PartA_strong, SOFIE::H2O_strong, SOFIE::CO2A_strong, SOFIE::PartB_strong, SOFIE::CH4_strong, SOFIE::CO2B_strong, SOFIE::NO_strong}; EventVarVect signalVect; EventVarVect transVect("GRIDDED_TRANSMISSIONS"); EventVar SigRef; EventVar signal; FillNonFinite > correctIt; L1.getEventVar("gridSignals", signalVect); L1.getEventVar("L1_Drift_Signal_Ref", SigRef); signal.resize(signalVect[0].size()); for(i = SOFIE::O3_strong; i <= SOFIE::NO_strong; i++) { signal = signalVect[i]/SigRef[i]; if(!isfinite(signal.sum()) ) { cerr << "Warning! transmission " << i + 1 << " has nonfinite values!!" << endl; strErr = "Warning, transmission has nonfinite values!!"; L1.addLogEntry(strErr); correctIt(signal); } transVect.addEventVar(signal); } for(i = 0; i < SOFIE::no_of_chan_diffs; i++) { diffIndx = i + SOFIE::O3_diff; // signal = signalVect[diffIndx]/SigRef[ strongIndx[i] ]; signal = signalVect[diffIndx]/signalVect[ strongIndx[i] ]; if(!isfinite(signal.sum()) ) { cerr << "Note: channel modulation " << i + 1 << " has nonfinite values!!" << endl; strErr = "Note: channel modulation has nonfinite values!!"; L1.addLogEntry(strErr); correctIt(signal); } transVect.addEventVar(signal); } L1.addEventVar(transVect); }