CorrectObservables.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: CorrectObservables.hpp 1770 2009-03-04 13:10:43Z architest $"
00002 
00009 #ifndef GPSTK_CORRECTOBSERVABLES_HPP
00010 #define GPSTK_CORRECTOBSERVABLES_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 ). 2007, 2008, 2009
00031 //
00032 //============================================================================
00033 
00034 
00035 
00036 #include <string>
00037 #include "ProcessingClass.hpp"
00038 #include "XvtStore.hpp"
00039 #include "Triple.hpp"
00040 #include "Position.hpp"
00041 #include "Antenna.hpp"
00042 #include "geometry.hpp"
00043 
00044 
00045 
00046 namespace gpstk
00047 {
00048 
00051 
00052 
00110    class CorrectObservables : public ProcessingClass
00111    {
00112    public:
00113 
00115       CorrectObservables()
00116          : pEphemeris(NULL), nominalPos(0.0, 0.0, 0.0), useAzimuth(false),
00117            L1PhaseCenter(0.0, 0.0, 0.0), L2PhaseCenter(0.0, 0.0, 0.0),
00118            L5PhaseCenter(0.0, 0.0, 0.0), L6PhaseCenter(0.0, 0.0, 0.0),
00119            L7PhaseCenter(0.0, 0.0, 0.0), L8PhaseCenter(0.0, 0.0, 0.0),
00120            monumentVector(0.0, 0.0, 0.0), extraBiases(0.0, 0.0, 0.0)
00121       { setIndex(); };
00122 
00123 
00129       CorrectObservables(XvtStore<SatID>& ephem)
00130          : pEphemeris(&ephem), nominalPos(0.0, 0.0, 0.0), useAzimuth(false),
00131            L1PhaseCenter(0.0, 0.0, 0.0), L2PhaseCenter(0.0, 0.0, 0.0),
00132            L5PhaseCenter(0.0, 0.0, 0.0), L6PhaseCenter(0.0, 0.0, 0.0),
00133            L7PhaseCenter(0.0, 0.0, 0.0), L8PhaseCenter(0.0, 0.0, 0.0),
00134            monumentVector(0.0, 0.0, 0.0), extraBiases(0.0, 0.0, 0.0)
00135       { setIndex(); };
00136 
00137 
00144       CorrectObservables( XvtStore<SatID>& ephem,
00145                           const Position& stapos )
00146          : pEphemeris(&ephem), nominalPos(stapos), useAzimuth(false),
00147            L1PhaseCenter(0.0, 0.0, 0.0), L2PhaseCenter(0.0, 0.0, 0.0),
00148            L5PhaseCenter(0.0, 0.0, 0.0), L6PhaseCenter(0.0, 0.0, 0.0),
00149            L7PhaseCenter(0.0, 0.0, 0.0), L8PhaseCenter(0.0, 0.0, 0.0),
00150            monumentVector(0.0, 0.0, 0.0), extraBiases(0.0, 0.0, 0.0)
00151       { setIndex(); };
00152 
00153 
00162       CorrectObservables( XvtStore<SatID>& ephem,
00163                           const Position& stapos,
00164                           const Antenna& antennaObj )
00165          : pEphemeris(&ephem), nominalPos(stapos), antenna(antennaObj),
00166            useAzimuth(true),
00167            L1PhaseCenter(0.0, 0.0, 0.0), L2PhaseCenter(0.0, 0.0, 0.0),
00168            L5PhaseCenter(0.0, 0.0, 0.0), L6PhaseCenter(0.0, 0.0, 0.0),
00169            L7PhaseCenter(0.0, 0.0, 0.0), L8PhaseCenter(0.0, 0.0, 0.0),
00170            monumentVector(0.0, 0.0, 0.0), extraBiases(0.0, 0.0, 0.0)
00171       { setIndex(); };
00172 
00173 
00182       CorrectObservables( XvtStore<SatID>& ephem,
00183                           const Position& stapos,
00184                           const Triple& L1pc )
00185          : pEphemeris(&ephem), nominalPos(stapos), useAzimuth(false),
00186            L1PhaseCenter(L1pc), L2PhaseCenter(0.0, 0.0, 0.0),
00187            L5PhaseCenter(0.0, 0.0, 0.0), L6PhaseCenter(0.0, 0.0, 0.0),
00188            L7PhaseCenter(0.0, 0.0, 0.0), L8PhaseCenter(0.0, 0.0, 0.0),
00189            monumentVector(0.0, 0.0, 0.0), extraBiases(0.0, 0.0, 0.0)
00190       { setIndex(); };
00191 
00192 
00203       CorrectObservables( XvtStore<SatID>& ephem,
00204                           const Position& stapos,
00205                           const Triple& L1pc,
00206                           const Triple& L2pc )
00207          : pEphemeris(&ephem), nominalPos(stapos), useAzimuth(false),
00208            L1PhaseCenter(L1pc), L2PhaseCenter(L2pc),
00209            L5PhaseCenter(0.0, 0.0, 0.0), L6PhaseCenter(0.0, 0.0, 0.0),
00210            L7PhaseCenter(0.0, 0.0, 0.0), L8PhaseCenter(0.0, 0.0, 0.0),
00211            monumentVector(0.0, 0.0, 0.0), extraBiases(0.0, 0.0, 0.0)
00212       { setIndex(); };
00213 
00214 
00227       CorrectObservables( XvtStore<SatID>& ephem,
00228                           const Position& stapos,
00229                           const Triple& L1pc,
00230                           const Triple& L2pc,
00231                           const Triple& extra )
00232          : pEphemeris(&ephem), nominalPos(stapos), useAzimuth(false),
00233            L1PhaseCenter(L1pc), L2PhaseCenter(L2pc),
00234            L5PhaseCenter(0.0, 0.0, 0.0), L6PhaseCenter(0.0, 0.0, 0.0),
00235            L7PhaseCenter(0.0, 0.0, 0.0), L8PhaseCenter(0.0, 0.0, 0.0),
00236            monumentVector(0.0, 0.0, 0.0), extraBiases(extra)
00237       { setIndex(); };
00238 
00239 
00253       CorrectObservables( XvtStore<SatID>& ephem,
00254                           const Position& stapos,
00255                           const Triple& L1pc,
00256                           const Triple& L2pc,
00257                           const Triple& monument,
00258                           const Triple& extra )
00259          : pEphemeris(&ephem), nominalPos(stapos), useAzimuth(false),
00260            L1PhaseCenter(L1pc), L2PhaseCenter(L2pc),
00261            L5PhaseCenter(0.0, 0.0, 0.0), L6PhaseCenter(0.0, 0.0, 0.0),
00262            L7PhaseCenter(0.0, 0.0, 0.0), L8PhaseCenter(0.0, 0.0, 0.0),
00263            monumentVector(monument), extraBiases(extra)
00264       { setIndex(); };
00265 
00266 
00288       CorrectObservables( XvtStore<SatID>& ephem,
00289                           const Position& stapos,
00290                           const Triple& L1pc,
00291                           const Triple& L2pc,
00292                           const Triple& L5pc,
00293                           const Triple& L6pc,
00294                           const Triple& L7pc,
00295                           const Triple& L8pc,
00296                           const Triple& monument,
00297                           const Triple& extra )
00298          : pEphemeris(&ephem), nominalPos(stapos), useAzimuth(false),
00299            L1PhaseCenter(L1pc), L2PhaseCenter(L2pc),
00300            L5PhaseCenter(L5pc), L6PhaseCenter(L6pc),
00301            L7PhaseCenter(L7pc), L8PhaseCenter(L8pc),
00302            monumentVector(monument), extraBiases(extra)
00303       { setIndex(); };
00304 
00305 
00312       virtual satTypeValueMap& Process( const DayTime& time,
00313                                         satTypeValueMap& gData )
00314          throw(ProcessingException);
00315 
00316 
00322       virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00323          throw(ProcessingException)
00324       { Process(gData.header.epoch, gData.body); return gData; };
00325 
00326 
00332       virtual gnssRinex& Process(gnssRinex& gData)
00333          throw(ProcessingException)
00334       { Process(gData.header.epoch, gData.body); return gData; };
00335 
00336 
00338       virtual Position getNominalPosition(void) const
00339       { return nominalPos; };
00340 
00341 
00346       virtual CorrectObservables& setNominalPosition(const Position& stapos)
00347       { nominalPos = stapos; return (*this); };
00348 
00349 
00353       virtual XvtStore<SatID> *getEphemeris(void) const
00354       { return pEphemeris; };
00355 
00356 
00361       virtual CorrectObservables& setEphemeris(XvtStore<SatID>& ephem)
00362       { pEphemeris = &ephem; return (*this); };
00363 
00364 
00368       virtual Triple getL1pc(void) const
00369       { return L1PhaseCenter; };
00370 
00371 
00377       virtual CorrectObservables& setL1pc(const Triple& L1pc)
00378       { L1PhaseCenter = L1pc; return (*this); };
00379 
00380 
00384       virtual Triple getL2pc(void) const
00385       { return L2PhaseCenter; };
00386 
00387 
00393       virtual CorrectObservables& setL2pc(const Triple& L2pc)
00394       { L2PhaseCenter = L2pc; return (*this); };
00395 
00396 
00400       virtual Triple getL5pc(void) const
00401       { return L5PhaseCenter; };
00402 
00403 
00409       virtual CorrectObservables& setL5pc(const Triple& L5pc)
00410       { L5PhaseCenter = L5pc; return (*this); };
00411 
00412 
00416       virtual Triple getL6pc(void) const
00417       { return L6PhaseCenter; };
00418 
00419 
00425       virtual CorrectObservables& setL6pc(const Triple& L6pc)
00426       { L6PhaseCenter = L6pc; return (*this); };
00427 
00428 
00432       virtual Triple getL7pc(void) const
00433       { return L7PhaseCenter; };
00434 
00435 
00441       virtual CorrectObservables& setL7pc(const Triple& L7pc)
00442       { L7PhaseCenter = L7pc; return (*this); };
00443 
00444 
00448       virtual Triple getL8pc(void) const
00449       { return L8PhaseCenter; };
00450 
00451 
00457       virtual CorrectObservables& setL8pc(const Triple& L8pc)
00458       { L8PhaseCenter = L8pc; return (*this); };
00459 
00460 
00463       virtual Triple getMonument(void) const
00464       { return monumentVector; };
00465 
00466 
00471       virtual CorrectObservables& setMonument(const Triple& monument)
00472       { monumentVector = monument; return (*this); };
00473 
00474 
00478       virtual Triple getExtraBiases(void) const
00479       { return extraBiases; };
00480 
00481 
00488       virtual CorrectObservables& setExtraBiases(const Triple& extra)
00489       { extraBiases = extra; return (*this); };
00490 
00491 
00493       virtual Antenna getAntenna(void) const
00494       { return antenna; };
00495 
00496 
00501       virtual CorrectObservables& setAntenna(const Antenna& antennaObj)
00502       { antenna = antennaObj; useAzimuth = true; return (*this); };
00503 
00504 
00507       virtual bool getUseAzimuth(void) const
00508       { return useAzimuth; };
00509 
00510 
00515       virtual CorrectObservables& setUseAzimuth(bool useAzimuthPattern)
00516       { useAzimuth = useAzimuthPattern; return (*this); };
00517 
00518 
00520       virtual int getIndex(void) const;
00521 
00522 
00524       virtual std::string getClassName(void) const;
00525 
00526 
00528       virtual ~CorrectObservables() {};
00529 
00530 
00531    private:
00532 
00533 
00535       XvtStore<SatID> *pEphemeris;
00536 
00537 
00539       Position nominalPos;
00540 
00541 
00543       Antenna antenna;
00544 
00545 
00547       bool useAzimuth;
00548 
00549 
00551       Triple L1PhaseCenter;
00552 
00553 
00555       Triple L2PhaseCenter;
00556 
00557 
00559       Triple L5PhaseCenter;
00560 
00561 
00563       Triple L6PhaseCenter;
00564 
00565 
00567       Triple L7PhaseCenter;
00568 
00569 
00571       Triple L8PhaseCenter;
00572 
00573 
00575       Triple monumentVector;
00576 
00577 
00579       Triple extraBiases;
00580 
00581 
00583       static int classIndex;
00584 
00586       int index;
00587 
00589       void setIndex(void)
00590       { index = classIndex++; };
00591 
00592 
00593    }; // End of class 'CorrectObservables'
00594 
00595 
00597 
00598 }  // End of namespace gpstk
00599 
00600 #endif  // GPSTK_CORRECTOBSERVABLES_HPP

Generated on Thu Feb 9 03:30:55 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1