DoubleOp Class Reference
[GPS solution algorithms and Tropospheric]

#include <DoubleOp.hpp>

Inheritance diagram for DoubleOp:

Inheritance graph
[legend]
Collaboration diagram for DoubleOp:

Collaboration graph
[legend]
List of all members.

Detailed Description

This class applies the double difference (differences on ground and satellite -related data) to GNSS data structures.

A typical way to use this class follows:

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

      // Input observation file stream for REFERENCE STATION
   RinexObsStream rinRef("garr1900.07o");
      // Reference station nominal position
   Position nominalPosRef(4796983.7690, 160308.7500, 4187339.9860);

      // Some more code and definitions here...

      // GNSS data structure for rover data
   gnssRinex gRin;

      // GNSS data structure for reference station data
   gnssRinex gRef;

      // Set model defaults. A typical C1-based modeling is used
      // Set up rover's modeling object
   ModeledPR model( nominalPos,
                    ionoStore,
                    mopsTM,
                    bceStore,
                    TypeID::C1,
                    true );

      // Set up reference station's modeling object
   ModeledReferencePR modelRef( nominalPosRef,
                                ionoStore,
                                mopsTM,
                                bceStore,
                                TypeID::C1,
                                true );

      // Create an object to compute the single differences
      // of prefit residuals
   DoubleOp delta;


   while(rin >> gRin)
   {

      rinRef >> gRef;   // Be sure that data streams ARE synchronized
                        // before following on!!!

         // Set the reference data to be differenced
      delta.setRefData(gRef.body);

         // Apply model to reference data
      gRef >> modelRef;

         // By default, difference is applied on code prefit residuals
      gRin >> model >> delta >> solver;
   }

The "DoubleOp" object will visit every satellite in the GNSS data structure that is "gRin" and will substract from the specified type or types (code prefit residuals by default) the corresponding data in the "gRef" data structure.

Afterwards, it will REMOVE reference satellite data from the GNSS data structure and will substract the specified type or types (code prefit residuals, dx, dy, dz by default) from the corresponding data in the rest of the "gRef" data structure.

Take notice that in the default case the code prefit residuals were computed by objects of classes such as "ModeledPR" and "ModeledReferencePR" (among others) objects, so those steps are mandatory.

Be warned that, by default, if a given satellite in "gRin" does not have the data required to be differenced, it will be summarily deleted from the data structure.

Warning:
A satellite will be kept as the reference satellite until it's elevation less than 'refSatMinElev', then a new satellite with the highest elevation will be picked up as the reference satellite.
See also:
DoubleOp.hpp for double differences on ground and satellite related data.

Definition at line 135 of file DoubleOp.hpp.

Public Member Functions

 DoubleOp ()
 Constructor.
 DoubleOp (const TypeID &difftype)
 Common constructor taking as input the type of data values to be differenced.
virtual DoubleOpsetDiffType (const TypeID &difftype)
 Method to set data type values to be differenced.
virtual DoubleOpaddDiffType (const TypeID &difftype)
 Method to add a data value type to be differenced.
virtual DoubleOpsetDiffTypeSet (const TypeIDSet &diffSet)
 Method to establish a set of data values to be differenced.
virtual DoubleOpaddDiffTypeSet (const TypeIDSet &diffSet)
 Method to add a set of data value types to be differenced.
virtual TypeIDSet getDiffTypeSet (void) const
 Method to get the set of data value types to be differenced.
virtual DoubleOpsetRefData (const satTypeValueMap &gData)
 Method to set the satTypeValueMap data object holding reference station data.
virtual DoubleOpsetRefData (const gnssSatTypeValue &gData)
 Method to set the gnssSatTypeValue data object holding reference station data.
virtual DoubleOpsetRefData (const gnssRinex &gData)
 Method to set the gnssRinex data object holding reference station data.
virtual satTypeValueMap getRefData (void) const
 Method to get the satTypeValueMap data object holding reference station data.
virtual DoubleOpsetRefSourceID (const SourceID &refSource)
 Method to set the gnssRinex data object holding reference station data.
virtual SourceID getRefSourceID (void) const
 Method to get the satTypeValueMap data object holding reference station SourceID.
virtual DoubleOpsetRefSat (const SatID &rSat)
 Method to set the reference satellite to be used.
virtual SatID getRefSat (void) const
 Method to get the reference satellite being used.
virtual DoubleOpsetRefSatMinElevation (const double &minElevation)
 Method to set the minimum elevation allowed for the reference.
virtual double getRefSatMinElevation () const
 Method to get the minimum elevation allowed for the reference satellite in degree.
virtual satTypeValueMapProcess (satTypeValueMap &gData) throw (ProcessingException)
 Returns a reference to a satTypeValueMap object after differencing data type values given in 'diffTypes' field with respect to reference station data in 'refData' field.
virtual gnssSatTypeValueProcess (gnssSatTypeValue &gData) throw (ProcessingException)
 Returns a reference to a gnssSatTypeValue object after differencing data type values given in 'diffTypes' field with respect to reference station data in 'refData' field.
virtual gnssRinexProcess (gnssRinex &gData) throw (ProcessingException)
 Returns a reference to a gnnsRinex object after differencing data type values given in 'diffTypes' field with respect to reference station data in 'refData' field.
virtual std::string getClassName (void) const
 Returns a string identifying this object.
 ~DoubleOp ()
 Destructor.

Protected Attributes

DeltaOp sdStations
 Object to do single difference between receivers.
NablaOp sdSatellites
 Object to do single difference between satellites.
SourceID refSourceID
 Reference receiver SourceID to get SD between stations.
SatID refSatID
 Reference satellite SatID to get SD between satellites.
double refSatMinElev
 Minimum elevation for the reference satellite default is 35 degree.


Constructor & Destructor Documentation

DoubleOp  )  [inline]
 

Constructor.

Definition at line 140 of file DoubleOp.hpp.

DoubleOp const TypeID difftype  )  [inline]
 

Common constructor taking as input the type of data values to be differenced.

Parameters:
difftype TypeID of data values to be differenced.

Definition at line 149 of file DoubleOp.hpp.

~DoubleOp  )  [inline]
 

Destructor.

Definition at line 326 of file DoubleOp.hpp.


Member Function Documentation

virtual DoubleOp& addDiffType const TypeID difftype  )  [inline, virtual]
 

Method to add a data value type to be differenced.

Parameters:
difftype TypeID of data values to be added to the ones being differenced.

Definition at line 174 of file DoubleOp.hpp.

virtual DoubleOp& addDiffTypeSet const TypeIDSet diffSet  )  [inline, virtual]
 

Method to add a set of data value types to be differenced.

Parameters:
diffSet TypeIDSet of data values to be added to the ones being differenced.

Definition at line 200 of file DoubleOp.hpp.

std::string getClassName void   )  const [virtual]
 

Returns a string identifying this object.

Implements ProcessingClass.

Definition at line 36 of file DoubleOp.cpp.

virtual TypeIDSet getDiffTypeSet void   )  const [inline, virtual]
 

Method to get the set of data value types to be differenced.

Definition at line 208 of file DoubleOp.hpp.

References gpstk::TypeIDSet.

virtual satTypeValueMap getRefData void   )  const [inline, virtual]
 

Method to get the satTypeValueMap data object holding reference station data.

Definition at line 243 of file DoubleOp.hpp.

virtual SatID getRefSat void   )  const [inline, virtual]
 

Method to get the reference satellite being used.

Definition at line 272 of file DoubleOp.hpp.

virtual double getRefSatMinElevation  )  const [inline, virtual]
 

Method to get the minimum elevation allowed for the reference satellite in degree.

Definition at line 286 of file DoubleOp.hpp.

virtual SourceID getRefSourceID void   )  const [inline, virtual]
 

Method to get the satTypeValueMap data object holding reference station SourceID.

Definition at line 259 of file DoubleOp.hpp.

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

Returns a reference to a gnnsRinex object after differencing data type values given in 'diffTypes' field with respect to reference station data in 'refData' field.

Parameters:
gData Data object holding the data.

Implements ProcessingClass.

Definition at line 317 of file DoubleOp.hpp.

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

Returns a reference to a gnssSatTypeValue object after differencing data type values given in 'diffTypes' field with respect to reference station data in 'refData' field.

Parameters:
gData Data object holding the data.

Implements ProcessingClass.

Definition at line 306 of file DoubleOp.hpp.

satTypeValueMap & Process satTypeValueMap gData  )  throw (ProcessingException) [virtual]
 

Returns a reference to a satTypeValueMap object after differencing data type values given in 'diffTypes' field with respect to reference station data in 'refData' field.

Parameters:
gData Data object holding the data.

Definition at line 46 of file DoubleOp.cpp.

References GPSTK_THROW.

virtual DoubleOp& setDiffType const TypeID difftype  )  [inline, virtual]
 

Method to set data type values to be differenced.

Parameters:
difftype TypeID of data values to be differenced.
Warning:
Previously set data type values will be deleted. If this is not what you want, see method 'addDiffType()'.

Definition at line 162 of file DoubleOp.hpp.

virtual DoubleOp& setDiffTypeSet const TypeIDSet diffSet  )  [inline, virtual]
 

Method to establish a set of data values to be differenced.

Parameters:
diffSet TypeIDSet of data values to be differenced.
Warning:
Previously set data type values will be deleted. If this is not what you want, see method 'addDiffTypeSet()'.

Definition at line 188 of file DoubleOp.hpp.

virtual DoubleOp& setRefData const gnssRinex gData  )  [inline, virtual]
 

Method to set the gnssRinex data object holding reference station data.

Parameters:
gData gnssRinex data object holding reference station data.

Definition at line 237 of file DoubleOp.hpp.

References gnssData::body.

virtual DoubleOp& setRefData const gnssSatTypeValue gData  )  [inline, virtual]
 

Method to set the gnssSatTypeValue data object holding reference station data.

Parameters:
gData gnssSatTypeValue data object holding reference station data.

Definition at line 227 of file DoubleOp.hpp.

References gnssData::body.

virtual DoubleOp& setRefData const satTypeValueMap gData  )  [inline, virtual]
 

Method to set the satTypeValueMap data object holding reference station data.

Parameters:
gData satTypeValueMap data object holding reference station data.

Definition at line 217 of file DoubleOp.hpp.

virtual DoubleOp& setRefSat const SatID rSat  )  [inline, virtual]
 

Method to set the reference satellite to be used.

Parameters:
rSat SatID of reference satellite to be used.

Definition at line 267 of file DoubleOp.hpp.

virtual DoubleOp& setRefSatMinElevation const double &  minElevation  )  [inline, virtual]
 

Method to set the minimum elevation allowed for the reference.

Parameters:
rSat minimum elevation allowed for the reference satellite.

Definition at line 280 of file DoubleOp.hpp.

virtual DoubleOp& setRefSourceID const SourceID refSource  )  [inline, virtual]
 

Method to set the gnssRinex data object holding reference station data.

Parameters:
refSource SourceID data object holding reference station SourceID.

Definition at line 253 of file DoubleOp.hpp.


Member Data Documentation

SatID refSatID [protected]
 

Reference satellite SatID to get SD between satellites.

Definition at line 340 of file DoubleOp.hpp.

double refSatMinElev [protected]
 

Minimum elevation for the reference satellite default is 35 degree.

Definition at line 344 of file DoubleOp.hpp.

SourceID refSourceID [protected]
 

Reference receiver SourceID to get SD between stations.

Definition at line 337 of file DoubleOp.hpp.

NablaOp sdSatellites [protected]
 

Object to do single difference between satellites.

Definition at line 334 of file DoubleOp.hpp.

DeltaOp sdStations [protected]
 

Object to do single difference between receivers.

Definition at line 331 of file DoubleOp.hpp.


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