/** @file SetUpNonLin @author Brian Magill @creation date 8/24/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 Finds the time corresponding to a given altitude */ #include #include "SetUpNonLin.h" #include "SOFIE_namespace.h" using namespace std; //using GATS_Utilities::ConvertToString; SetUpNonLin::SetUpNonLin(ConfigFile &config, string sectionName) { //string keyName; string strErr; strongCoef.resize(SOFIE::no_of_detectors); weakCoef.resize(SOFIE::no_of_detectors); try { // // To avoid confusion the nonlinearity coeficients are entered in terms // of band number. Notice that the strong & weak ordering for the // H2O and NO channels are the reverse of the other channels. // strongCoef[SOFIE::O3] = config.GetReal(sectionName, "Band_1"); weakCoef[SOFIE::O3] = config.GetReal(sectionName, "Band_2"); strongCoef[SOFIE::PartA] = config.GetReal(sectionName, "Band_3"); weakCoef[SOFIE::PartA] = config.GetReal(sectionName, "Band_4"); weakCoef[SOFIE::H2O] = config.GetReal(sectionName, "Band_5"); strongCoef[SOFIE::H2O] = config.GetReal(sectionName, "Band_6"); strongCoef[SOFIE::CO2A] = config.GetReal(sectionName, "Band_7"); weakCoef[SOFIE::CO2A] = config.GetReal(sectionName, "Band_8"); strongCoef[SOFIE::PartB] = config.GetReal(sectionName, "Band_9"); weakCoef[SOFIE::PartB] = config.GetReal(sectionName, "Band_10"); strongCoef[SOFIE::CH4] = config.GetReal(sectionName, "Band_11"); weakCoef[SOFIE::CH4] = config.GetReal(sectionName, "Band_12"); strongCoef[SOFIE::CO2B] = config.GetReal(sectionName, "Band_13"); weakCoef[SOFIE::CO2B] = config.GetReal(sectionName, "Band_14"); weakCoef[SOFIE::NO] = config.GetReal(sectionName, "Band_15"); strongCoef[SOFIE::NO] = config.GetReal(sectionName, "Band_16"); } catch (exception &ex) { strErr = string("Problem in SetUpNonLin::operator() ") + ex.what(); throw runtime_error(strErr); } }