#ifndef APPLY_POINTING_SIGNAL_CORRECTION_4_02_2008 #define APPLY_POINTING_SIGNAL_CORRECTION_4_02_2008 /** @class ApplyPointing.h @author Brian Magill @creation date 4/2/2008 $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 Applies the pointing signal correction */ #include "ChannelSignals.h" #include "PointingDriftScaling.h" #include "PointingSigParam.h" #include #include class ApplyPointing { std::valarray lockdownAz; std::valarray lockdownEl; std::valarray solarExtent; PointingDriftScaling calcScaling; bool mode; double cutoffTime; public: ApplyPointing():lockdownAz(0), lockdownEl(0), solarExtent(0), calcScaling(), mode(false), cutoffTime(0.0) { } ApplyPointing(std::valarray const & az, std::valarray const & el, std::valarray const & extent, PointingDriftScaling const & scale, bool flag, double cutoff); ApplyPointing(ApplyPointing const & rhs):lockdownAz(rhs.lockdownAz), lockdownEl(rhs.lockdownEl), solarExtent(rhs.solarExtent), calcScaling(rhs.calcScaling), mode(rhs.mode), cutoffTime(rhs.cutoffTime){} ApplyPointing const & operator = (ApplyPointing const &rhs) { if (this == &rhs) return *this; lockdownAz.resize(rhs.lockdownAz.size()); lockdownEl.resize(rhs.lockdownEl.size()); solarExtent.resize(rhs.solarExtent.size()); lockdownAz = rhs.lockdownAz; lockdownEl = rhs.lockdownEl; solarExtent = rhs.solarExtent; calcScaling = rhs.calcScaling; mode = rhs.mode; cutoffTime = rhs.cutoffTime; return *this; }; bool getAllenUVFromWavelength(double wavelength, double &u, double &v); double getAverageSolarRadius(std::valarray const &extent); double getIntensityFromAllenCurve(double az, double el, double radius, double u, double v); ~ApplyPointing() { }; ChannelSignals operator()(std::valarray const &timeArray, ChannelSignals const &in, PointingSigParam const &pointingParam); }; #endif