IonexModel.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: IonexModel.hpp 1804 2009-03-17 15:13:29Z coandrei $"
00002 
00003 
00011 #ifndef GPSTK_IONEXMODEL_HPP
00012 #define GPSTK_IONEXMODEL_HPP
00013 
00014 //============================================================================
00015 //
00016 //  This file is part of GPSTk, the GPS Toolkit.
00017 //
00018 //  The GPSTk is free software; you can redistribute it and/or modify
00019 //  it under the terms of the GNU Lesser General Public License as published
00020 //  by the Free Software Foundation; either version 2.1 of the License, or
00021 //  any later version.
00022 //
00023 //  The GPSTk is distributed in the hope that it will be useful,
00024 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00025 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00026 //  GNU Lesser General Public License for more details.
00027 //
00028 //  You should have received a copy of the GNU Lesser General Public
00029 //  License along with GPSTk; if not, write to the Free Software Foundation,
00030 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00031 //
00032 //  Octavian Andrei - FGI ( http://www.fgi.fi ). 2008, 2009
00033 //
00034 //============================================================================
00035 
00036 
00037 #include "IonexStore.hpp"
00038 #include "Position.hpp"
00039 #include "ProcessingClass.hpp"
00040 #include "TypeID.hpp"
00041 
00042 
00043 
00044 namespace gpstk
00045 {
00046 
00049 
00106    class IonexModel : public ProcessingClass
00107    {
00108    public:
00109 
00110 
00112       IonexModel() : pDefaultMaps(NULL), useDCB(true)
00113       { setIndex(); };
00114 
00115 
00118       IonexModel(const Position& RxCoordinates)
00119          throw(Exception);
00120 
00121 
00133       IonexModel( const Position& RxCoordinates,
00134                   IonexStore& istore,
00135                   const TypeID& dObservable = TypeID::P1,
00136                   const bool& applyDCB = true,
00137                   const std::string& ionoMap = "SLM" )
00138          throw(Exception);
00139 
00140 
00147       virtual satTypeValueMap& Process( const DayTime& time,
00148                                         satTypeValueMap& gData )
00149          throw(Exception);
00150 
00151 
00157       virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00158          throw(Exception)
00159       { Process(gData.header.epoch, gData.body); return gData; };
00160 
00161 
00167       virtual gnssRinex& Process(gnssRinex& gData)
00168          throw(Exception)
00169       { Process(gData.header.epoch, gData.body); return gData; };
00170 
00171 
00173       virtual TypeID getDefaultObservable() const
00174       { return defaultObservable; };
00175 
00176 
00181       virtual IonexModel& setDefaultObservable(const TypeID& type)
00182       { defaultObservable = type; return (*this); };
00183 
00184 
00187       virtual IonexStore* getDefaultMaps(void) const
00188       { return pDefaultMaps; };
00189 
00190 
00196       virtual IonexModel& setDefaultMaps(IonexStore& istore)
00197       { pDefaultMaps = &istore; return (*this); };
00198 
00199 
00201       virtual bool getUseDCB(void) const
00202       { return useDCB; };
00203 
00204 
00210       virtual IonexModel& setUseDCB(bool applyDCB)
00211       { useDCB = applyDCB; return (*this); };
00212 
00213 
00220       virtual int setInitialRxPosition(const Position& RxCoordinates)
00221          throw(GeometryException);
00222 
00223 
00225       virtual int setInitialRxPosition(void)
00226          throw(GeometryException);
00227 
00228 
00230       virtual std::string getIonoMapType() const
00231       { return ionoMapType; };
00232 
00233 
00241       virtual IonexModel& setIonoMapType(const std::string& ionoMap);
00242 
00243 
00252       virtual double getDCBCorrections( const DayTime& time,
00253                                         const IonexStore& Maps,
00254                                         SatID sat )
00255          throw();
00256 
00257 
00259       virtual int getIndex(void) const;
00260 
00261 
00263       virtual std::string getClassName(void) const;
00264 
00265 
00267       virtual ~IonexModel() {};
00268 
00269 
00270    protected:
00271 
00272 
00274       TypeID defaultObservable;
00275 
00276 
00279       IonexStore* pDefaultMaps;
00280 
00281 
00283       Position rxPos;
00284 
00285 
00289       bool useDCB;
00290 
00291 
00294       std::string ionoMapType;
00295 
00296 
00299       double ionoHeight;
00300 
00301 
00302    private:
00303 
00304 
00306       static int classIndex;
00307 
00308 
00310       int index;
00311 
00312 
00314       void setIndex(void)
00315       { index = classIndex++; };
00316 
00317 
00318    }; // End of class 'IonexModel'
00319 
00320 
00322 
00323 
00324 }  // End of namespace gpstk
00325 #endif   // GPSTK_IONEXMODEL_HPP
00326 
00327 
00328 
00329 

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