ModelObsFixedStation Class Reference
[GPS solution algorithms and Tropospheric]

#include <ModelObsFixedStation.hpp>

Inheritance diagram for ModelObsFixedStation:

Inheritance graph
[legend]
Collaboration diagram for ModelObsFixedStation:

Collaboration graph
[legend]
List of all members.

Detailed Description

This class computes modeled (corrected) observations from a reference station (whose position is known), using GNSS data structures (GDS).

A typical way to use this class follows:

      // Input observation file stream
   RinexObsStream rin("ebre0300.02o");
      // Reference position of receiver station
   Position nominalPos(4833520.2269, 41537.00768, 4147461.489);

      // Some more code and definitions here...

   gnssRinex gRin;      // GNSS data structure for fixed station data

      // Set defaults of models. A typical C1-based modeling is used
   ModelObsFixedStation model( nominalPos,
                               ionoStore,
                               mopsTM,
                               bceStore,
                               TypeID::C1,
                               true );

   while(rin >> gRin)
   {

         // Apply the model on the GDS
      gRin >> model;
   }

The "ModelObsFixedStation" 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:
ModelObs.hpp for modeling data from a moving receiver.

Definition at line 98 of file ModelObsFixedStation.hpp.

Public Member Functions

 ModelObsFixedStation ()
 Default constructor.
 ModelObsFixedStation (const double &aRx, const double &bRx, const double &cRx, Position::CoordinateSystem s=Position::Cartesian, GeoidModel *geoid=NULL)
 Explicit constructor taking as input reference station coordinates.
 ModelObsFixedStation (const Position &RxCoordinates)
 Explicit constructor, taking as input a Position object containing reference station coordinates.
 ModelObsFixedStation (const Position &RxCoordinates, IonoModelStore &dIonoModel, TropModel &dTropoModel, XvtStore< SatID > &dEphemeris, const TypeID &dObservable, bool usetgd=true)
 Explicit constructor, taking as input reference station coordinates, default ionospheric and tropospheric models, ephemeris to be used, default observable and whether TGD will be computed or not.
 ModelObsFixedStation (const Position &RxCoordinates, IonoModelStore &dIonoModel, XvtStore< SatID > &dEphemeris, const TypeID &dObservable, bool usetgd=true)
 Explicit constructor, taking as input reference station coordinates, default ionospheric model, ephemeris to be used, default observable and whether TGD will be computed or not.
 ModelObsFixedStation (const Position &RxCoordinates, TropModel &dTropoModel, XvtStore< SatID > &dEphemeris, const TypeID &dObservable, bool usetgd=true)
 Explicit constructor, taking as input reference station coordinates, default tropospheric model, ephemeris to be used, default observable and whether TGD will be computed or not.
 ModelObsFixedStation (const Position &RxCoordinates, XvtStore< SatID > &dEphemeris, const TypeID &dObservable, bool usetgd=true)
 Explicit constructor, taking as input reference station coordinates, ephemeris to be used, default observable and whether TGD will be computed or not.
virtual satTypeValueMapProcess (const DayTime &time, satTypeValueMap &gData) throw (ProcessingException)
 Returns a satTypeValueMap object, adding the new data generated when calling a modeling object.
virtual gnssSatTypeValueProcess (gnssSatTypeValue &gData) throw (ProcessingException)
 Returns a gnnsSatTypeValue object, adding the new data generated when calling a modeling object.
virtual gnssRinexProcess (gnssRinex &gData) throw (ProcessingException)
 Returns a gnnsRinex object, adding the new data generated when calling a modeling object.
virtual double getMinElev () const
 Method to get satellite elevation cut-off angle.
virtual ModelObsFixedStationsetMinElev (double newElevation)
 Method to set satellite elevation cut-off angle.
virtual ModelObsFixedStationsetTGD (bool use)
 Method to set if instrumental delays (TGD) will be used or not in the modeling (it is set to true by default).
virtual IonoModelStoregetDefaultIonoModel () const
 Method to get a pointer to the default ionospheric model.
virtual ModelObsFixedStationsetNULLIonoModel ()
 Method to set a NULL ionospheric model.
virtual ModelObsFixedStationsetDefaultIonoModel (IonoModelStore &dIonoModel)
 Method to set the default ionospheric model.
virtual TropModelgetDefaultTropoModel () const
 Method to get a pointer to the default tropospheric model.
virtual ModelObsFixedStationsetNULLTropoModel ()
 Method to set a NULL tropospheric model.
virtual ModelObsFixedStationsetDefaultTropoModel (TropModel &dTropoModel)
 Method to set the default tropospheric model.
virtual TypeID getDefaultObservable () const
 Method to get the default observable being used with GNSS data structures.
virtual ModelObsFixedStationsetDefaultObservable (const TypeID &type)
 Method to set the default observable to be used when fed with GNSS data structures.
virtual XvtStore< SatID > * getDefaultEphemeris () const
 Method to get a pointer to the default XvtStore<SatID> to be used with GNSS data structures.
virtual ModelObsFixedStationsetDefaultEphemeris (XvtStore< SatID > &ephem)
 Method to set the default XvtStore<SatID> to be used with GNSS data structures.
virtual int getIndex (void) const
 Returns an index identifying this object.
virtual std::string getClassName (void) const
 Returns a string identifying this object.
virtual ~ModelObsFixedStation ()
 Destructor.

Public Attributes

Position rxPos
 Either estimated or "a priori" position of receiver.

Protected Member Functions

int Compute (const DayTime &Tr, Vector< SatID > &Satellite, Vector< double > &Pseudorange, const XvtStore< SatID > &Eph, TropModel *pTropModel=NULL, IonoModelStore *pIonoModel=NULL) throw (Exception)
 Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data.
virtual void InitializeValues ()
 Initialization method.
virtual int setInitialRxPosition (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.
virtual int setInitialRxPosition (const Position &RxCoordinates)
 Method to set the initial (a priori) position of receiver.
virtual int setInitialRxPosition ()
 Method to set the initial (a priori) position of receiver.
virtual double getTropoCorrections (TropModel *pTropModel, double elevation)
 Method to get the tropospheric corrections.
virtual double getIonoCorrections (IonoModelStore *pIonoModel, DayTime Tr, Geodetic rxGeo, double elevation, double azimuth)
 Method to get the ionospheric corrections.
virtual double getTGDCorrections (DayTime Tr, const XvtStore< SatID > &Eph, SatID sat)
 Method to get TGD corrections.

Protected Attributes

double minElev
 The elevation cut-off angle for accepted satellites.
bool useTGD
 Boolean variable indicating if SV instrumental delays (TGD) will be included in results.
IonoModelStorepDefaultIonoModel
 Pointer to default ionospheric model.
TropModelpDefaultTropoModel
 Pointer to default tropospheric model.
TypeID defaultObservable
 Default observable to be used when fed with GNSS data structures.
XvtStore< SatID > * pDefaultEphemeris
 Pointer to default XvtStore<SatID> object when working with GNSS data structures.


Constructor & Destructor Documentation

ModelObsFixedStation  )  [inline]
 

Default constructor.

Models C1 observations, use TGD, but doesn't apply atmospheric models

Definition at line 104 of file ModelObsFixedStation.hpp.

ModelObsFixedStation const double &  aRx,
const double &  bRx,
const double &  cRx,
Position::CoordinateSystem  s = Position::Cartesian,
GeoidModel geoid = NULL
 

Explicit constructor taking as input reference station coordinates.

Those coordinates may be Cartesian (X, Y, Z in meters) or Geodetic (Latitude, Longitude, Altitude), but defaults to Cartesian.

Also, a pointer to GeoidModel may be specified, but default is NULL (in which case WGS84 values will be used).

Parameters:
aRx first coordinate [ X(m), or latitude (degrees N) ]
bRx second coordinate [ Y(m), or longitude (degrees E) ]
cRx third coordinate [ Z, height above ellipsoid or radius, in meters ]
s coordinate system (default is Cartesian, may be set to Geodetic).
geoid pointer to GeoidModel (default is null, implies WGS84)

Definition at line 71 of file ModelObsFixedStation.cpp.

References ModelObsFixedStation::defaultObservable, ModelObsFixedStation::InitializeValues(), ModelObsFixedStation::minElev, ModelObsFixedStation::pDefaultEphemeris, ModelObsFixedStation::pDefaultIonoModel, ModelObsFixedStation::pDefaultTropoModel, ModelObsFixedStation::setInitialRxPosition(), and ModelObsFixedStation::useTGD.

ModelObsFixedStation const Position RxCoordinates  ) 
 

Explicit constructor, taking as input a Position object containing reference station coordinates.

Definition at line 94 of file ModelObsFixedStation.cpp.

References ModelObsFixedStation::defaultObservable, ModelObsFixedStation::InitializeValues(), ModelObsFixedStation::minElev, ModelObsFixedStation::pDefaultEphemeris, ModelObsFixedStation::pDefaultIonoModel, ModelObsFixedStation::pDefaultTropoModel, ModelObsFixedStation::setInitialRxPosition(), and ModelObsFixedStation::useTGD.

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

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

Parameters:
RxCoordinates Reference station coordinates.
dIonoModel Ionospheric model to be used by default.
dTropoModel Tropospheric model to be used by default.
dEphemeris EphemerisStore 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 124 of file ModelObsFixedStation.cpp.

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

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

Explicit constructor, taking as input reference station 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 Reference station coordinates.
dIonoModel Ionospheric model to be used by default.
dEphemeris EphemerisStore 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 159 of file ModelObsFixedStation.cpp.

References ModelObsFixedStation::InitializeValues(), ModelObsFixedStation::minElev, ModelObsFixedStation::pDefaultTropoModel, ModelObsFixedStation::setDefaultEphemeris(), ModelObsFixedStation::setDefaultIonoModel(), ModelObsFixedStation::setDefaultObservable(), ModelObsFixedStation::setInitialRxPosition(), and ModelObsFixedStation::useTGD.

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

Explicit constructor, taking as input reference station 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 Reference station coordinates.
dTropoModel Tropospheric model to be used by default.
dEphemeris EphemerisStore 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 193 of file ModelObsFixedStation.cpp.

References ModelObsFixedStation::InitializeValues(), ModelObsFixedStation::minElev, ModelObsFixedStation::pDefaultIonoModel, ModelObsFixedStation::setDefaultEphemeris(), ModelObsFixedStation::setDefaultObservable(), ModelObsFixedStation::setDefaultTropoModel(), ModelObsFixedStation::setInitialRxPosition(), and ModelObsFixedStation::useTGD.

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

Explicit constructor, taking as input reference station 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 Reference station coordinates.
dEphemeris EphemerisStore 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 226 of file ModelObsFixedStation.cpp.

References ModelObsFixedStation::InitializeValues(), ModelObsFixedStation::minElev, ModelObsFixedStation::pDefaultIonoModel, ModelObsFixedStation::pDefaultTropoModel, ModelObsFixedStation::setDefaultEphemeris(), ModelObsFixedStation::setDefaultObservable(), ModelObsFixedStation::setInitialRxPosition(), and ModelObsFixedStation::useTGD.

virtual ~ModelObsFixedStation  )  [inline, virtual]
 

Destructor.

Definition at line 346 of file ModelObsFixedStation.hpp.


Member Function Documentation

int Compute const DayTime Tr,
Vector< SatID > &  Satellite,
Vector< double > &  Pseudorange,
const XvtStore< SatID > &  Eph,
TropModel pTropModel = NULL,
IonoModelStore pIonoModel = NULL
throw (Exception) [protected]
 

Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data.

Parameters:
Tr Measured time of reception of the data.
Satellite Vector of satellites.
Pseudorange Vector of raw pseudoranges (parallel to satellite), in meters.
Eph EphemerisStore to be used.
pTropModel Pointer to tropospheric model to be used. By default points to NULL.
pIonoModel Pointer to ionospheric model to be used. By default points to NULL.
Returns:
Number of satellites with valid data
See also:
TropModel.hpp, IonoModelStore.hpp.

std::string getClassName void   )  const [virtual]
 

Returns a string identifying this object.

Implements ProcessingClass.

Reimplemented in ModelObs.

Definition at line 49 of file ModelObsFixedStation.cpp.

virtual XvtStore<SatID>* getDefaultEphemeris  )  const [inline, virtual]
 

Method to get a pointer to the default XvtStore<SatID> to be used with GNSS data structures.

Definition at line 320 of file ModelObsFixedStation.hpp.

Referenced by ModelObs::Prepare().

virtual IonoModelStore* getDefaultIonoModel  )  const [inline, virtual]
 

Method to get a pointer to the default ionospheric model.

Definition at line 269 of file ModelObsFixedStation.hpp.

virtual TypeID getDefaultObservable  )  const [inline, virtual]
 

Method to get the default observable being used with GNSS data structures.

Definition at line 306 of file ModelObsFixedStation.hpp.

virtual TropModel* getDefaultTropoModel  )  const [inline, virtual]
 

Method to get a pointer to the default tropospheric model.

Definition at line 287 of file ModelObsFixedStation.hpp.

int getIndex void   )  const [virtual]
 

Returns an index identifying this object.

Implements ProcessingClass.

Reimplemented in ModelObs.

Definition at line 44 of file ModelObsFixedStation.cpp.

double getIonoCorrections IonoModelStore pIonoModel,
DayTime  Tr,
Geodetic  rxGeo,
double  elevation,
double  azimuth
[protected, virtual]
 

Method to get the ionospheric corrections.

Definition at line 552 of file ModelObsFixedStation.cpp.

References IonoModelStore::getCorrection().

virtual double getMinElev  )  const [inline, virtual]
 

Method to get satellite elevation cut-off angle.

By default, it is set to 10 degrees.

Definition at line 252 of file ModelObsFixedStation.hpp.

double getTGDCorrections DayTime  Tr,
const XvtStore< SatID > &  Eph,
SatID  sat
[protected, virtual]
 

Method to get TGD corrections.

Definition at line 577 of file ModelObsFixedStation.cpp.

References GPSEphemerisStore::findEphemeris(), and EngEphemeris::getTgd().

double getTropoCorrections TropModel pTropModel,
double  elevation
[protected, virtual]
 

Method to get the tropospheric corrections.

Definition at line 525 of file ModelObsFixedStation.cpp.

References TropModel::correction(), and TropModel::isValid().

virtual void InitializeValues  )  [inline, protected, virtual]
 

Initialization method.

Definition at line 401 of file ModelObsFixedStation.hpp.

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

virtual gnssRinex& Process gnssRinex gData  )  throw (ProcessingException) [inline, virtual]
 

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

Parameters:
gData Data object holding the data.

Implements ProcessingClass.

Definition at line 245 of file ModelObsFixedStation.hpp.

virtual gnssSatTypeValue& Process gnssSatTypeValue gData  )  throw (ProcessingException) [inline, virtual]
 

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

Parameters:
gData Data object holding the data.

Implements ProcessingClass.

Definition at line 235 of file ModelObsFixedStation.hpp.

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 in ModelObs.

Definition at line 252 of file ModelObsFixedStation.cpp.

References CorrectedEphemerisRange::azimuthGeodetic, CorrectedEphemerisRange::ComputeAtTransmitTime(), CorrectedEphemerisRange::cosines, CorrectedEphemerisRange::elevationGeodetic, GPSTK_THROW, CorrectedEphemerisRange::rawrange, CorrectedEphemerisRange::relativity, gpstk::SatIDSet, CorrectedEphemerisRange::svclkbias, and CorrectedEphemerisRange::svPosVel.

virtual ModelObsFixedStation& setDefaultEphemeris XvtStore< SatID > &  ephem  )  [inline, virtual]
 

Method to set the default XvtStore<SatID> to be used with GNSS data structures.

Parameters:
ephem XvtStore<SatID> object to be used by default

Definition at line 329 of file ModelObsFixedStation.hpp.

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

virtual ModelObsFixedStation& setDefaultIonoModel IonoModelStore dIonoModel  )  [inline, virtual]
 

Method to set the default ionospheric model.

Parameters:
dIonoModel Ionospheric model to be used by default.

Definition at line 281 of file ModelObsFixedStation.hpp.

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

virtual ModelObsFixedStation& setDefaultObservable const TypeID type  )  [inline, virtual]
 

Method to set the default observable to be used when fed with GNSS data structures.

Parameters:
type TypeID object to be used by default

Definition at line 314 of file ModelObsFixedStation.hpp.

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

virtual ModelObsFixedStation& setDefaultTropoModel TropModel dTropoModel  )  [inline, virtual]
 

Method to set the default tropospheric model.

Parameters:
dTropoModel Tropospheric model to be used by default.

Definition at line 299 of file ModelObsFixedStation.hpp.

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

int setInitialRxPosition  )  [protected, virtual]
 

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

Definition at line 506 of file ModelObsFixedStation.cpp.

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

int setInitialRxPosition const Position RxCoordinates  )  [protected, virtual]
 

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

Definition at line 487 of file ModelObsFixedStation.cpp.

References ModelObsFixedStation::rxPos.

int setInitialRxPosition const double &  aRx,
const double &  bRx,
const double &  cRx,
Position::CoordinateSystem  s = Position::Cartesian,
GeoidModel geoid = NULL
[protected, virtual]
 

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

Returns:
0 if OK -1 if problems arose

Definition at line 464 of file ModelObsFixedStation.cpp.

References ModelObsFixedStation::setInitialRxPosition().

virtual ModelObsFixedStation& setMinElev double  newElevation  )  [inline, virtual]
 

Method to set satellite elevation cut-off angle.

By default, it is set to 10 degrees.

Definition at line 258 of file ModelObsFixedStation.hpp.

virtual ModelObsFixedStation& setNULLIonoModel  )  [inline, virtual]
 

Method to set a NULL ionospheric model.

Definition at line 274 of file ModelObsFixedStation.hpp.

virtual ModelObsFixedStation& setNULLTropoModel  )  [inline, virtual]
 

Method to set a NULL tropospheric model.

Definition at line 292 of file ModelObsFixedStation.hpp.

virtual ModelObsFixedStation& setTGD bool  use  )  [inline, virtual]
 

Method to set if instrumental delays (TGD) will be used or not in the modeling (it is set to true by default).

Definition at line 264 of file ModelObsFixedStation.hpp.


Member Data Documentation

TypeID defaultObservable [protected]
 

Default observable to be used when fed with GNSS data structures.

Definition at line 394 of file ModelObsFixedStation.hpp.

Referenced by ModelObsFixedStation::ModelObsFixedStation().

double minElev [protected]
 

The elevation cut-off angle for accepted satellites.

By default it is set to 10 degrees.

Definition at line 381 of file ModelObsFixedStation.hpp.

Referenced by ModelObsFixedStation::ModelObsFixedStation().

XvtStore<SatID>* pDefaultEphemeris [protected]
 

Pointer to default XvtStore<SatID> object when working with GNSS data structures.

Definition at line 398 of file ModelObsFixedStation.hpp.

Referenced by ModelObsFixedStation::ModelObsFixedStation().

IonoModelStore* pDefaultIonoModel [protected]
 

Pointer to default ionospheric model.

Definition at line 388 of file ModelObsFixedStation.hpp.

Referenced by ModelObsFixedStation::ModelObsFixedStation().

TropModel* pDefaultTropoModel [protected]
 

Pointer to default tropospheric model.

Definition at line 391 of file ModelObsFixedStation.hpp.

Referenced by ModelObsFixedStation::ModelObsFixedStation().

Position rxPos
 

Either estimated or "a priori" position of receiver.

Definition at line 334 of file ModelObsFixedStation.hpp.

Referenced by ModelObsFixedStation::setInitialRxPosition().

bool useTGD [protected]
 

Boolean variable indicating if SV instrumental delays (TGD) will be included in results.

It is true by default.

Definition at line 385 of file ModelObsFixedStation.hpp.

Referenced by ModelObsFixedStation::ModelObsFixedStation().


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