EclipsedSatFilter.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: EclipsedSatFilter.hpp 1311 2008-07-23 19:32:36Z architest $"
00002 
00008 #ifndef ECLIPSEDSATFILTER_HPP
00009 #define ECLIPSEDSATFILTER_HPP
00010 
00011 //============================================================================
00012 //
00013 //  This file is part of GPSTk, the GPS Toolkit.
00014 //
00015 //  The GPSTk is free software; you can redistribute it and/or modify
00016 //  it under the terms of the GNU Lesser General Public License as published
00017 //  by the Free Software Foundation; either version 2.1 of the License, or
00018 //  any later version.
00019 //
00020 //  The GPSTk is distributed in the hope that it will be useful,
00021 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 //  GNU Lesser General Public License for more details.
00024 //
00025 //  You should have received a copy of the GNU Lesser General Public
00026 //  License along with GPSTk; if not, write to the Free Software Foundation,
00027 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00028 //
00029 //  Dagoberto Salazar - gAGE ( http://www.gage.es ). 2008
00030 //
00031 //============================================================================
00032 
00033 
00034 
00035 #include <math.h>
00036 #include "Triple.hpp"
00037 #include "SunPosition.hpp"
00038 #include "Position.hpp"
00039 #include "ProcessingClass.hpp"
00040 #include "geometry.hpp"                   // DEG_TO_RAD
00041 
00042 
00043 
00044 
00045 namespace gpstk
00046 {
00047 
00050 
00051 
00101    class EclipsedSatFilter : public ProcessingClass
00102    {
00103       public:
00104 
00106       EclipsedSatFilter() : coneAngle(30.0), postShadowPeriod(1800.0)
00107       { setIndex(); };
00108 
00109 
00116       EclipsedSatFilter( const double angle,
00117                          const double pShTime )
00118          : coneAngle(angle), postShadowPeriod(pShTime)
00119       { setIndex(); };
00120 
00121 
00128       virtual satTypeValueMap& Process( const DayTime& epoch,
00129                                         satTypeValueMap& gData )
00130          throw(ProcessingException);
00131 
00132 
00138       virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00139          throw(ProcessingException)
00140       { Process(gData.header.epoch, gData.body); return gData; };
00141 
00142 
00148       virtual gnssRinex& Process(gnssRinex& gData)
00149          throw(ProcessingException);
00150 
00151 
00153       virtual double getConeAngle(void) const
00154       { return coneAngle; };
00155 
00156 
00163       virtual EclipsedSatFilter& setConeAngle(const double angle);
00164 
00165 
00168       virtual double getPostShadowPeriod(void) const
00169       { return postShadowPeriod; };
00170 
00171 
00177       virtual EclipsedSatFilter& setPostShadowPeriod(const double pShTime);
00178 
00179 
00181       virtual int getIndex(void) const;
00182 
00183 
00185       virtual std::string getClassName(void) const;
00186 
00187 
00189       virtual ~EclipsedSatFilter() {};
00190 
00191 
00192    private:
00193 
00194 
00196       double coneAngle;
00197 
00200       double postShadowPeriod;
00201 
00203       std::map<SatID, DayTime> shadowEpoch;
00204 
00206       static int classIndex;
00207 
00209       int index;
00210 
00212       void setIndex(void)
00213       { index = classIndex++; };
00214 
00215 
00216    }; // End of class 'EclipsedSatFilter'
00217 
00218 
00220 
00221 }
00222 #endif   // ECLIPSEDSATFILTER_HPP

Generated on Wed Feb 8 03:30:59 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1