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, EllipsoidModel *ell=NULL, ReferenceFrame frame=ReferenceFrame::Unknown)
 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 CommonTime &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 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 CommonTime &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, EllipsoidModel *ell=NULL, ReferenceFrame frame=ReferenceFrame::Unknown)
 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, CommonTime Tr, Position rxGeo, double elevation, double azimuth)
 Method to get the ionospheric corrections.
virtual double getTGDCorrections (CommonTime 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,
EllipsoidModel ell = NULL,
ReferenceFrame  frame = ReferenceFrame::Unknown
 

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.

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).
ell pointer to EllipsoidModel.
frame Reference frame associated with this position.

Definition at line 60 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 83 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 112 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 146 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 179 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 211 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 341 of file ModelObsFixedStation.hpp.


Member Function Documentation

int Compute const CommonTime 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 40 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 319 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 268 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 305 of file ModelObsFixedStation.hpp.

virtual TropModel* getDefaultTropoModel  )  const [inline, virtual]
 

Method to get a pointer to the default tropospheric model.

Definition at line 286 of file ModelObsFixedStation.hpp.

double getIonoCorrections IonoModelStore pIonoModel,
CommonTime  Tr,
Position  rxGeo,
double  elevation,
double  azimuth
[protected, virtual]
 

Method to get the ionospheric corrections.

Definition at line 531 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 251 of file ModelObsFixedStation.hpp.

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

Method to get TGD corrections.

Definition at line 556 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 504 of file ModelObsFixedStation.cpp.

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

virtual void InitializeValues  )  [inline, protected, virtual]
 

Initialization method.

Definition at line 396 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 244 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 234 of file ModelObsFixedStation.hpp.

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

Definition at line 236 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 328 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 280 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 313 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 298 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 485 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 466 of file ModelObsFixedStation.cpp.

References ModelObsFixedStation::rxPos.

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

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

Returns:
0 if OK -1 if problems arose

Definition at line 442 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 257 of file ModelObsFixedStation.hpp.

virtual ModelObsFixedStation& setNULLIonoModel  )  [inline, virtual]
 

Method to set a NULL ionospheric model.

Definition at line 273 of file ModelObsFixedStation.hpp.

virtual ModelObsFixedStation& setNULLTropoModel  )  [inline, virtual]
 

Method to set a NULL tropospheric model.

Definition at line 291 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 263 of file ModelObsFixedStation.hpp.


Member Data Documentation

TypeID defaultObservable [protected]
 

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

Definition at line 389 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 376 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 393 of file ModelObsFixedStation.hpp.

Referenced by ModelObsFixedStation::ModelObsFixedStation().

IonoModelStore* pDefaultIonoModel [protected]
 

Pointer to default ionospheric model.

Definition at line 383 of file ModelObsFixedStation.hpp.

Referenced by ModelObsFixedStation::ModelObsFixedStation().

TropModel* pDefaultTropoModel [protected]
 

Pointer to default tropospheric model.

Definition at line 386 of file ModelObsFixedStation.hpp.

Referenced by ModelObsFixedStation::ModelObsFixedStation().

Position rxPos
 

Either estimated or "a priori" position of receiver.

Definition at line 333 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 380 of file ModelObsFixedStation.hpp.

Referenced by ModelObsFixedStation::ModelObsFixedStation().


The documentation for this class was generated from the following files:
Generated on Tue Jun 18 03:31:44 2013 for GPS ToolKit Software Library by  doxygen 1.3.9.1