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(DayTime::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 DayTime &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 DayTime &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, GeoidModel *geoid=NULL)
 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 DayTime &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 int getIndex (void) const
 Returns an index identifying this object.
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 67 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 101 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 134 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 166 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 196 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 225 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 253 of file ModelObs.cpp.

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

virtual ~ModelObs  )  [inline, virtual]
 

Destructor.

Definition at line 356 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 49 of file ModelObs.cpp.

int getIndex void   )  const [virtual]
 

Returns an index identifying this object.

Reimplemented from ModelObsFixedStation.

Definition at line 44 of file ModelObs.cpp.

bool getModelPrepared  )  const [inline]
 

Method to get if the model has been prepared.

Definition at line 334 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 389 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,
GeoidModel geoid = NULL
[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 358 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 DayTime time,
const satTypeValueMap data
[virtual]
 

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

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

Definition at line 324 of file ModelObs.cpp.

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

int Prepare const DayTime 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 284 of file ModelObs.cpp.

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

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

satTypeValueMap & Process const DayTime 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 416 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 343 of file ModelObs.hpp.


Member Data Documentation

bool modelPrepared [protected]
 

Definition at line 362 of file ModelObs.hpp.

Referenced by ModelObs::Prepare().


The documentation for this class was generated from the following files:
Generated on Wed Feb 8 03:31:31 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1