ModelObs Class Reference
[GPS solution algorithms and Tropospheric]

#include <ModelObs.hpp>

Inheritance diagram for ModelObs:

Inheritance graph
[legend]
Collaboration diagram for ModelObs:

Collaboration graph
[legend]
List of all members.

Detailed Description

This class compute modeled (corrected) observations from satellites to a mobile receiver using GNSS data structures (GDS).

The main difference between this class and ModelObsFixedStation is that for a mobile receiver we should "prepare" the computation giving an estimate of the mobile station position. This position may be the last known position or it may be estimated using a method such as Bancroft's.

Prepare() method is used for this.

A typical way to use this class follows:

   RinexObsStream rin("ebre0300.02o");  // Data stream
   RinexNavStream rnavin("brdc0300.02n");   // Ephemeris data stream
   RinexNavData rNavData;
   GPSEphemerisStore bceStore;
   while (rnavin >> rNavData) bceStore.addEphemeris(rNavData);
   bceStore.SearchPast();  // This is the default

   RinexNavHeader rNavHeader;
   IonoModelStore ionoStore;
   IonoModel ioModel;
   rnavin >> rNavHeader;    // Read navigation RINEX header
   ioModel.setModel(rNavHeader.ionAlpha, rNavHeader.ionBeta);
   ionoStore.addIonoModel(CommonTime::BEGINNING_OF_TIME, ioModel);

      // EBRE station nominal position
   Position nominalPos(4833520.3800, 41536.8300, 4147461.2800);

      // Declare a tropospheric model object, setting the defaults
   MOPSTropModel mopsTM( nominalPos.getAltitude(),
                         nominalPos.getGeodeticLatitude(),
                         30 );

      // Declare the modeler object, setting all the parameters
      // in one pass
      // As stated, it will compute the model using the C1 observable
   ModelObs model( ionoStore,
                   mopsTM,
                   bceStore,
                   TypeID::C1 );

      // Set the initial apriori position using the Bancroft method
   model.Prepare();

   gnssRinex gRin;

   while(rin >> gRin)
   {
      gRin >> model;
   }

The "ModelObs" object will visit every satellite in the GNSS data structure that is "gRin" and will try to compute its model: Prefit residual, geometric distance, relativity delay, ionospheric/tropospheric corrections, geometry matrix, etc.

When used with the ">>" operator, this class returns the same incoming data structure with the extra data inserted along their corresponding satellites. Be warned that if a given satellite does not have the observations required, it will be summarily deleted from the data structure.

See also:
ModelObsFixedStation.hpp for modeling data for a fixed station whose coordinates are known.

Definition at line 116 of file ModelObs.hpp.

Public Member Functions

 ModelObs ()
 Implicit constructor.
 ModelObs (const Position &RxCoordinates, IonoModelStore &dIonoModel, TropModel &dTropoModel, XvtStore< SatID > &dEphemeris, const TypeID &dObservable, bool usetgd=true)
 Explicit constructor, taking as input initial receiver coordinates, default ionospheric and tropospheric models, ephemeris to be used, default observable and whether TGD will be computed or not.
 ModelObs (const Position &RxCoordinates, IonoModelStore &dIonoModel, XvtStore< SatID > &dEphemeris, const TypeID &dObservable, bool usetgd=true)
 Explicit constructor, taking as input initial receiver coordinates, default ionospheric model, ephemeris to be used, default observable and whether TGD will be computed or not.
 ModelObs (const Position &RxCoordinates, TropModel &dTropoModel, XvtStore< SatID > &dEphemeris, const TypeID &dObservable, bool usetgd=true)
 Explicit constructor, taking as input initial receiver coordinates, default tropospheric model, ephemeris to be used, default observable and whether TGD will be computed or not.
 ModelObs (const Position &RxCoordinates, XvtStore< SatID > &dEphemeris, const TypeID &dObservable, bool usetgd=true)
 Explicit constructor, taking as input initial receiver coordinates, ephemeris to be used, default observable and whether TGD will be computed or not.
 ModelObs (IonoModelStore &dIonoModel, TropModel &dTropoModel, XvtStore< SatID > &dEphemeris, const TypeID &dObservable, bool usetgd=true)
 Explicit constructor, taking as input default ionospheric and tropospheric models, ephemeris to be used, default observable and whether TGD will be computed or not.
 ModelObs (IonoModelStore &dIonoModel, XvtStore< SatID > &dEphemeris, const TypeID &dObservable, bool usetgd=true)
 Explicit constructor, taking as input default ionospheric model, ephemeris to be used, default observable and whether TGD will be computed or not.
 ModelObs (TropModel &dTropoModel, XvtStore< SatID > &dEphemeris, const TypeID &dObservable, bool usetgd=true)
 Explicit constructor, taking as input default tropospheric model, ephemeris to be used, default observable and whether TGD will be computed or not.
virtual int Prepare (const CommonTime &Tr, std::vector< SatID > &Satellite, std::vector< double > &Pseudorange, const XvtStore< SatID > &Eph)
 Method to set an a priori position of receiver using Bancroft's method.
virtual int Prepare (const CommonTime &time, const satTypeValueMap &data)
 Method to set an a priori position of receiver using Bancroft's method.
virtual int Prepare (const gnssSatTypeValue &gData)
 Method to set an a priori position of receiver using Bancroft's method.
virtual int Prepare (const double &aRx, const double &bRx, const double &cRx, Position::CoordinateSystem s=Position::Cartesian, EllipsoidModel *ell=NULL, ReferenceFrame frame=ReferenceFrame::Unknown)
 Method to set the initial (a priori) position of receiver before Compute() method.
virtual int Prepare (const Position &RxCoordinates)
 Method to set the initial (a priori) position of receiver before Compute() method.
virtual satTypeValueMapProcess (const CommonTime &time, satTypeValueMap &gData) throw (ProcessingException)
 Returns a satTypeValueMap object, adding the new data generated when calling a modeling object.
bool getModelPrepared () const
 Method to get if the model has been prepared.
ModelObssetModelPrepared (const bool &prepare)
 Method to forcefully set whether the model has been prepared.
virtual std::string getClassName (void) const
 Returns a string identifying this object.
virtual ~ModelObs ()
 Destructor.

Protected Attributes

bool modelPrepared


Constructor & Destructor Documentation

ModelObs  )  [inline]
 

Implicit constructor.

Definition at line 121 of file ModelObs.hpp.

ModelObs const Position RxCoordinates,
IonoModelStore dIonoModel,
TropModel dTropoModel,
XvtStore< SatID > &  dEphemeris,
const TypeID dObservable,
bool  usetgd = true
 

Explicit constructor, taking as input initial receiver coordinates, default ionospheric and tropospheric models, ephemeris to be used, default observable and whether TGD will be computed or not.

Parameters:
RxCoordinates Initial receiver coordinates.
dIonoModel Ionospheric model to be used by default.
dTropoModel Tropospheric model to be used by default.
dEphemeris XvtStore<SatID> object to be used by default.
dObservable Observable type to be used by default.
usetgd Whether TGD will be used by default or not.

Definition at line 58 of file ModelObs.cpp.

References ModelObsFixedStation::InitializeValues(), ModelObs::Prepare(), ModelObsFixedStation::setDefaultEphemeris(), ModelObsFixedStation::setDefaultIonoModel(), ModelObsFixedStation::setDefaultObservable(), and ModelObsFixedStation::setDefaultTropoModel().

ModelObs const Position RxCoordinates,
IonoModelStore dIonoModel,
XvtStore< SatID > &  dEphemeris,
const TypeID dObservable,
bool  usetgd = true
 

Explicit constructor, taking as input initial receiver coordinates, default ionospheric model, ephemeris to be used, default observable and whether TGD will be computed or not.

The default tropospheric model will be set to NULL.

Parameters:
RxCoordinates Initial receiver coordinates.
dIonoModel Ionospheric model to be used by default.
dEphemeris XvtStore<SatID> object to be used by default.
dObservable Observable type to be used by default.
usetgd Whether TGD will be used by default or not.

Definition at line 91 of file ModelObs.cpp.

References ModelObsFixedStation::InitializeValues(), ModelObs::Prepare(), ModelObsFixedStation::setDefaultEphemeris(), ModelObsFixedStation::setDefaultIonoModel(), and ModelObsFixedStation::setDefaultObservable().

ModelObs const Position RxCoordinates,
TropModel dTropoModel,
XvtStore< SatID > &  dEphemeris,
const TypeID dObservable,
bool  usetgd = true
 

Explicit constructor, taking as input initial receiver coordinates, default tropospheric model, ephemeris to be used, default observable and whether TGD will be computed or not.

The default ionospheric model will be set to NULL.

Parameters:
RxCoordinates Initial receiver coordinates.
dTropoModel Tropospheric model to be used by default.
dEphemeris XvtStore<SatID> object to be used by default.
dObservable Observable type to be used by default.
usetgd Whether TGD will be used by default or not.

Definition at line 123 of file ModelObs.cpp.

References ModelObsFixedStation::InitializeValues(), ModelObs::Prepare(), ModelObsFixedStation::setDefaultEphemeris(), ModelObsFixedStation::setDefaultObservable(), and ModelObsFixedStation::setDefaultTropoModel().

ModelObs const Position RxCoordinates,
XvtStore< SatID > &  dEphemeris,
const TypeID dObservable,
bool  usetgd = true
 

Explicit constructor, taking as input initial receiver coordinates, ephemeris to be used, default observable and whether TGD will be computed or not.

Both the tropospheric and ionospheric models will be set to NULL.

Parameters:
RxCoordinates Initial receiver coordinates.
dEphemeris XvtStore<SatID> object to be used by default.
dObservable Observable type to be used by default.
usetgd Whether TGD will be used by default or not.

Definition at line 154 of file ModelObs.cpp.

References ModelObsFixedStation::InitializeValues(), ModelObs::Prepare(), ModelObsFixedStation::setDefaultEphemeris(), and ModelObsFixedStation::setDefaultObservable().

ModelObs IonoModelStore dIonoModel,
TropModel dTropoModel,
XvtStore< SatID > &  dEphemeris,
const TypeID dObservable,
bool  usetgd = true
 

Explicit constructor, taking as input default ionospheric and tropospheric models, ephemeris to be used, default observable and whether TGD will be computed or not.

Parameters:
dIonoModel Ionospheric model to be used by default.
dTropoModel Tropospheric model to be used by default.
dObservable Observable type to be used by default.
dEphemeris XvtStore<SatID> object to be used by default.
usetgd Whether TGD will be used by default or not.

Definition at line 183 of file ModelObs.cpp.

References ModelObsFixedStation::InitializeValues(), ModelObsFixedStation::setDefaultEphemeris(), ModelObsFixedStation::setDefaultIonoModel(), ModelObsFixedStation::setDefaultObservable(), and ModelObsFixedStation::setDefaultTropoModel().

ModelObs IonoModelStore dIonoModel,
XvtStore< SatID > &  dEphemeris,
const TypeID dObservable,
bool  usetgd = true
 

Explicit constructor, taking as input default ionospheric model, ephemeris to be used, default observable and whether TGD will be computed or not.

Parameters:
dIonoModel Ionospheric model to be used by default.
dObservable Observable type to be used by default.
dEphemeris XvtStore<SatID> object to be used by default.
usetgd Whether TGD will be used by default or not.
See also:
DataStructures.hpp.

Definition at line 211 of file ModelObs.cpp.

References ModelObsFixedStation::InitializeValues(), ModelObsFixedStation::setDefaultEphemeris(), ModelObsFixedStation::setDefaultIonoModel(), and ModelObsFixedStation::setDefaultObservable().

ModelObs TropModel dTropoModel,
XvtStore< SatID > &  dEphemeris,
const TypeID dObservable,
bool  usetgd = true
 

Explicit constructor, taking as input default tropospheric model, ephemeris to be used, default observable and whether TGD will be computed or not.

Parameters:
dTropoModel Tropospheric model to be used by default.
dObservable Observable type to be used by default.
dEphemeris XvtStore<SatID> object to be used by default.
usetgd Whether TGD will be used by default or not.

Definition at line 238 of file ModelObs.cpp.

References ModelObsFixedStation::InitializeValues(), ModelObsFixedStation::setDefaultEphemeris(), ModelObsFixedStation::setDefaultObservable(), and ModelObsFixedStation::setDefaultTropoModel().

virtual ~ModelObs  )  [inline, virtual]
 

Destructor.

Definition at line 353 of file ModelObs.hpp.


Member Function Documentation

std::string getClassName void   )  const [virtual]
 

Returns a string identifying this object.

Reimplemented from ModelObsFixedStation.

Definition at line 40 of file ModelObs.cpp.

bool getModelPrepared  )  const [inline]
 

Method to get if the model has been prepared.

Definition at line 335 of file ModelObs.hpp.

int Prepare const Position RxCoordinates  )  [virtual]
 

Method to set the initial (a priori) position of receiver before Compute() method.

Returns:
0 if OK -1 if problems arose

Definition at line 374 of file ModelObs.cpp.

References ModelObs::modelPrepared, and ModelObsFixedStation::setInitialRxPosition().

int Prepare const double &  aRx,
const double &  bRx,
const double &  cRx,
Position::CoordinateSystem  s = Position::Cartesian,
EllipsoidModel ell = NULL,
ReferenceFrame  frame = ReferenceFrame::Unknown
[virtual]
 

Method to set the initial (a priori) position of receiver before Compute() method.

Returns:
0 if OK -1 if problems arose

Definition at line 342 of file ModelObs.cpp.

References ModelObs::modelPrepared, and ModelObsFixedStation::setInitialRxPosition().

virtual int Prepare const gnssSatTypeValue gData  )  [inline, virtual]
 

Method to set an a priori position of receiver using Bancroft's method.

Parameters:
gData GNSS data structure to be used
Returns:
0 if OK -1 if problems arose

Definition at line 296 of file ModelObs.hpp.

References gnssData::body, sourceEpochHeader::epoch, and gnssData::header.

int Prepare const CommonTime time,
const satTypeValueMap data
[virtual]
 

Method to set an a priori position of receiver using Bancroft's method.

Parameters:
time CommonTime object for this epoch
data A satTypeValueMap data structure holding the data
Returns:
0 if OK -1 if problems arose

Definition at line 308 of file ModelObs.cpp.

References ModelObsFixedStation::getDefaultEphemeris(), satTypeValueMap::getVectorOfSatID(), satTypeValueMap::getVectorOfTypeID(), and ModelObs::Prepare().

int Prepare const CommonTime Tr,
std::vector< SatID > &  Satellite,
std::vector< double > &  Pseudorange,
const XvtStore< SatID > &  Eph
[virtual]
 

Method to set an a priori position of receiver using Bancroft's method.

Parameters:
Tr Time of observation
Satellite std::vector of satellites in view
Pseudorange std::vector of pseudoranges measured from mobile station to satellites
Eph Satellites Ephemeris
Returns:
0 if OK -1 if problems arose

Definition at line 268 of file ModelObs.cpp.

References Bancroft::Compute(), and PRSolution2::PrepareAutonomousSolution().

Referenced by ModelObs::ModelObs(), and ModelObs::Prepare().

satTypeValueMap & Process const CommonTime time,
satTypeValueMap gData
throw (ProcessingException) [virtual]
 

Returns a satTypeValueMap object, adding the new data generated when calling a modeling object.

Parameters:
time Epoch.
gData Data object holding the data.

Reimplemented from ModelObsFixedStation.

Definition at line 401 of file ModelObs.cpp.

References GPSTK_THROW.

ModelObs& setModelPrepared const bool &  prepare  )  [inline]
 

Method to forcefully set whether the model has been prepared.

Parameters:
prepare Boolean indicating whether the model has been prepared.

Definition at line 344 of file ModelObs.hpp.


Member Data Documentation

bool modelPrepared [protected]
 

Definition at line 359 of file ModelObs.hpp.

Referenced by ModelObs::Prepare().


The documentation for this class was generated from the following files:
Generated on Thu May 23 03:31:43 2013 for GPS ToolKit Software Library by  doxygen 1.3.9.1