MOPSWeight.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: MOPSWeight.hpp 2741 2011-06-22 16:37:02Z nwu $"
00002 
00008 #ifndef GPSTK_MOPSWEIGHT
00009 #define GPSTK_MOPSWEIGHT
00010 
00011 //============================================================================
00012 //
00013 //  This file is part of GPSTk, the GPS Toolkit.
00014 //
00015 //  The GPSTk is free software; you can redistribute it and/or modify
00016 //  it under the terms of the GNU Lesser General Public License as published
00017 //  by the Free Software Foundation; either version 2.1 of the License, or
00018 //  any later version.
00019 //
00020 //  The GPSTk is distributed in the hope that it will be useful,
00021 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 //  GNU Lesser General Public License for more details.
00024 //
00025 //  You should have received a copy of the GNU Lesser General Public
00026 //  License along with GPSTk; if not, write to the Free Software Foundation,
00027 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00028 //
00029 //  Dagoberto Salazar - gAGE. 2006, 2008, 2010
00030 //
00031 //============================================================================
00032 
00033 
00034 
00035 #include "WeightBase.hpp"
00036 #include "XvtStore.hpp"
00037 #include "GPSEphemerisStore.hpp"
00038 #include "TabularEphemerisStore.hpp"
00039 #include "EngEphemeris.hpp"
00040 #include "RinexObsHeader.hpp"
00041 #include "Position.hpp"
00042 #include "SimpleIURAWeight.hpp"
00043 #include "TropModel.hpp"
00044 #include "icd_200_constants.hpp"
00045 #include "geometry.hpp"                   // DEG_TO_RAD
00046 #include <cmath>
00047 #include <vector>
00048 
00049 
00050 namespace gpstk
00051 {
00052 
00055 
00068    class MOPSWeight: WeightBase
00069    {
00070    public:
00071 
00072 
00074       MOPSWeight(void)
00075       { valid = false; };
00076 
00077 
00099       virtual int getWeights( DayTime& time,
00100                               Vector<SatID>& Satellites,
00101                               GPSEphemerisStore& bcEph,
00102                               Vector<double>& ionoCorrections,
00103                               Vector<double>& elevationVector,
00104                               Vector<double>& azimuthVector,
00105                               Position rxPosition,
00106                               int rxClass = 2 )
00107          throw(InvalidWeights);
00108 
00109 
00131       virtual int getWeights( DayTime& time,
00132                               Vector<SatID>& Satellites,
00133                               TabularEphemerisStore& preciseEph,
00134                               Vector<double>& ionoCorrections,
00135                               Vector<double>& elevationVector,
00136                               Vector<double>& azimuthVector,
00137                               Position rxPosition,
00138                               int rxClass = 2 )
00139          throw(InvalidWeights);
00140 
00141 
00143       Vector<double> weightsVector;
00144 
00145 
00148       Vector<SatID> availableSV;
00149 
00150 
00153       Vector<SatID> rejectedSV;
00154 
00155 
00157       virtual bool isValid(void)
00158       { return valid; }
00159 
00160 
00161    private:
00162 
00163 
00165       void Compute( int goodSV,
00166                     SimpleIURAWeight& sIura,
00167                     Vector<SatID>& Satellites,
00168                     Vector<double>& ionoCorrections,
00169                     Vector<double>& elevationVector,
00170                     Vector<double>& azimuthVector,
00171                     Position rxPosition,
00172                     int rxClass )
00173          throw(InvalidWeights);
00174 
00175 
00178       double sigma2iono( double& ionoCorrection,
00179                          double& elevation,
00180                          double& azimuth,
00181                          Position rxPosition )
00182          throw(InvalidWeights);
00183 
00184 
00185    }; // End of class 'MOPSWeight'
00186 
00187 
00189 
00190 
00191 }
00192 #endif   // GPSTK_MOPSWEIGHT

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