/** @file PressProfile.cpp @author Brian Magill @creationdate 8/15/2006 $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 contains a pressure profile */ #include "PressProfile.h" #include "VectorLinInterp.hpp" #include "LinLogInterp.hpp" #include //#include using namespace std; PressProfile::PressProfile(valarray const &z, valarray const &tem) { assert(z.size() == tem.size()); altitude.reserve(z.size() ); pressure.reserve(tem.size() ); for(unsigned long i = 0; i < z.size(); i++) { altitude.push_back(z[i]); pressure.push_back(tem[i]); } hasData = true; } PressProfile::PressProfile(valarray const &z, valarray const &tem) { assert(z.size() == tem.size()); altitude.reserve(z.size() ); pressure.reserve(tem.size() ); for(unsigned long i = 0; i < z.size(); i++) { altitude.push_back(z[i]); pressure.push_back(tem[i]); } hasData = true; } PressProfile::PressProfile(std::vector const &z, std::vector const &tem) { assert(z.size() == tem.size()); altitude = z; pressure = tem; hasData = true; } PressProfile::PressProfile(std::vector const &z, std::vector const &tem) { assert(z.size() == tem.size()); altitude.reserve(z.size() ); pressure.reserve(tem.size() ); for(unsigned long i = 0; i < z.size(); i++) { altitude.push_back(z[i]); pressure.push_back(tem[i]); } hasData = true; } double PressProfile::MinAlt() { return *(min_element(altitude.begin(), altitude.end() ) ); } double PressProfile::MaxAlt() { return *(max_element(altitude.begin(), altitude.end() ) ); } double PressProfile::operator()(double z) { double interpT; interpT = LinLogInterp(pressure, altitude, z); return interpT; }