ComputeIURAWeights.hpp

Go to the documentation of this file.
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 //  This file is part of GPSTk, the GPS Toolkit.
00015 //
00016 //  The GPSTk is free software; you can redistribute it and/or modify
00017 //  it under the terms of the GNU Lesser General Public License as published
00018 //  by the Free Software Foundation; either version 2.1 of the License, or
00019 //  any later version.
00020 //
00021 //  The GPSTk is distributed in the hope that it will be useful,
00022 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00023 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00024 //  GNU Lesser General Public License for more details.
00025 //
00026 //  You should have received a copy of the GNU Lesser General Public
00027 //  License along with GPSTk; if not, write to the Free Software Foundation,
00028 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00029 //
00030 //  Dagoberto Salazar - gAGE ( http://www.gage.es ). 2006, 2007, 2008
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    }; // End of class 'ComputeIURAWeights'
00246 
00248 
00249 }  // End of namespace gpstk
00250 #endif // COMPUTEIURAWEIGHTS_HPP

Generated on Tue May 22 03:30:56 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1