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
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
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"
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 };
00217
00218
00220
00221 }
00222 #endif // ECLIPSEDSATFILTER_HPP