00001 #pragma ident "$Id: ComputeIURAWeights.hpp 1315 2008-07-25 18:35:21Z architest $"
00002
00009 #ifndef COMPUTEIURAWEIGHTS_HPP
00010 #define COMPUTEIURAWEIGHTS_HPP
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
00036 #include "WeightBase.hpp"
00037 #include "EngEphemeris.hpp"
00038 #include "TabularEphemerisStore.hpp"
00039 #include "GPSEphemerisStore.hpp"
00040 #include "ProcessingClass.hpp"
00041
00042
00043 namespace gpstk
00044 {
00045
00048
00049
00090 class ComputeIURAWeights : public WeightBase, public ProcessingClass
00091 {
00092 public:
00093
00094
00096 ComputeIURAWeights() : pBCEphemeris(NULL), pTabEphemeris(NULL)
00097 { setIndex(); };
00098
00099
00104 ComputeIURAWeights(GPSEphemerisStore& bcephem)
00105 : pBCEphemeris(&bcephem), pTabEphemeris(NULL)
00106 { setIndex(); };
00107
00108
00114 ComputeIURAWeights(TabularEphemerisStore& tabephem)
00115 : pBCEphemeris(NULL), pTabEphemeris(&tabephem)
00116 { setIndex(); };
00117
00118
00123 ComputeIURAWeights(XvtStore<SatID>& ephem)
00124 { setDefaultEphemeris(ephem); setIndex(); };
00125
00126
00132 virtual satTypeValueMap& Process( const DayTime& time,
00133 satTypeValueMap& gData )
00134 throw(ProcessingException);
00135
00136
00142 virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00143 throw(ProcessingException)
00144 { Process(gData.header.epoch, gData.body); return gData; };
00145
00146
00152 virtual gnssRinex& Process(gnssRinex& gData)
00153 throw(ProcessingException)
00154 { Process(gData.header.epoch, gData.body); return gData; };
00155
00156
00162 virtual ComputeIURAWeights& setDefaultEphemeris(XvtStore<SatID>& ephem);
00163
00164
00170 virtual ComputeIURAWeights& setDefaultEphemeris(GPSEphemerisStore& ephem)
00171 { pBCEphemeris = &ephem; pTabEphemeris = NULL; return (*this); };
00172
00173
00179 virtual ComputeIURAWeights& setDefaultEphemeris(
00180 TabularEphemerisStore& ephem )
00181 { pBCEphemeris = NULL; pTabEphemeris = &ephem; return (*this); };
00182
00183
00185 virtual int getIndex(void) const;
00186
00187
00189 virtual std::string getClassName(void) const;
00190
00191
00193 virtual ~ComputeIURAWeights() {};
00194
00195
00196 protected:
00197
00198
00200 GPSEphemerisStore* pBCEphemeris;
00201
00202
00204 TabularEphemerisStore* pTabEphemeris;
00205
00206
00213 virtual double getWeight( const SatID& sat,
00214 const DayTime& time,
00215 const TabularEphemerisStore* preciseEph )
00216 throw(InvalidWeights);
00217
00218
00225 virtual double getWeight( const SatID& sat,
00226 const DayTime& time,
00227 const GPSEphemerisStore* bcEph )
00228 throw(InvalidWeights);
00229
00230
00231 private:
00232
00233
00235 static int classIndex;
00236
00238 int index;
00239
00241 void setIndex(void)
00242 { index = classIndex++; };
00243
00244
00245 };
00246
00248
00249 }
00250 #endif // COMPUTEIURAWEIGHTS_HPP