MWCSDetector Class Reference
[GPS solution algorithms and Tropospheric]

#include <MWCSDetector.hpp>

Inheritance diagram for MWCSDetector:

Inheritance graph
[legend]
Collaboration diagram for MWCSDetector:

Collaboration graph
[legend]
List of all members.

Detailed Description

This is a class to detect cycle slips using MW observables.

This class is meant to be used with the GNSS data structures objects found in "DataStructures" class.

A typical way to use this class follows:

   RinexObsStream rin("ebre0300.02o");

   gnssRinex gRin;
   ComputeMelbourneWubbena getMW;
   MWCSDetector markCSMW;

   while(rin >> gRin)
   {
      gRin >> getMW >> markCSMW;
   }

The "MWCSDetector" object will visit every satellite in the GNSS data structure that is "gRin" and will decide if a cycle slip has happened in the given observable.

The algorithm will use MW observables, and the LLI1 and LLI2 indexes. The result (a 1 if a cycle slip is found, 0 otherwise) will be stored in the data structure both as the CSL1 and CSL2 indexes.

In taking the decision, this algorithm will use criteria as the maximum interval of time between two successive epochs and the maximum number of Melbourne-Wubbena wavelenghts allowed above or below the MW combination average for that arc.

The default values are usually fine, but you may change them with the appropriate methods. This is of special importance for the maximum interval time, that should be adjusted for your sampling rate. It is 61 seconds by default, which is appropriate for 30 seconds per sample RINEX observation files.

When used with the ">>" operator, this class returns the same incoming data structure with the cycle slip indexes 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.

You should be aware that the Melbourne-Wubbena combination is based on a mix of code and phase observations, so it is very noisy. Therefore, it has a tendency to yield a high number of false positives if you are not careful with its parameters. Because of this, the default parameters are very conservative, i.e., the detector is NOT very sensitive by default.

Best results are achieved when using this detector as a "backup" detector for detectors based in LI combination, like this:

   RinexObsStream rin("ebre0300.02o");

   gnssRinex gRin;
   ComputeLI getLI;
   LICSDetector markCSLI;
   ComputeMelbourneWubbena getMW;
   MWCSDetector markCSMW;

   while(rin >> gRin)
   {
      gRin >> getLI >> getMW >> markCSLI >> markCSMW;
   }

See also:
LICSDetector.hpp and LICSDetector2.hpp for more information.
Warning:
Cycle slip detectors are objets that store their internal state, so you MUST NOT use the SAME object to process DIFFERENT data streams.

Definition at line 124 of file MWCSDetector.hpp.

Public Member Functions

 MWCSDetector ()
 Default constructor, setting default parameters.
 MWCSDetector (const double &mLambdas, const double &dtMax=61.0, const bool &use=true)
 Common constructor.
virtual satTypeValueMapProcess (const DayTime &epoch, satTypeValueMap &gData, const short &epochflag=0) throw (ProcessingException)
 Returns a satTypeValueMap object, adding the new data generated when calling this object.
virtual MWCSDetectorsetDeltaTMax (const double &maxDelta)
 Method to set the maximum interval of time allowed between two successive epochs.
virtual double getDeltaTMax () const
 Method to get the maximum interval of time allowed between two successive epochs, in seconds.
virtual MWCSDetectorsetMaxNumLambdas (const double &mLambdas)
 Method to set the maximum deviation allowed before declaring cycle slip (in number of Melbourne-Wubbena wavelenghts).
virtual double getMaxNumLambdas () const
 Method to get the maximum deviation allowed before declaring cycle slip (in number of Melbourne-Wubbena wavelenghts).
virtual MWCSDetectorsetUseLLI (const bool &use)
 Method to set whether the LLI indexes will be used as an aid or not.
virtual bool getUseLLI () const
 Method to know if the LLI check is enabled or disabled.
virtual gnssSatTypeValueProcess (gnssSatTypeValue &gData) throw (ProcessingException)
 Returns a gnnsSatTypeValue object, adding the new data generated when calling this object.
virtual gnssRinexProcess (gnssRinex &gData) throw (ProcessingException)
 Returns a gnnsRinex object, adding the new data generated when calling this object.
virtual int getIndex (void) const
 Returns an index identifying this object.
virtual std::string getClassName (void) const
 Returns a string identifying this object.
virtual ~MWCSDetector ()
 Destructor.


Constructor & Destructor Documentation

MWCSDetector  )  [inline]
 

Default constructor, setting default parameters.

Definition at line 129 of file MWCSDetector.hpp.

MWCSDetector const double &  mLambdas,
const double &  dtMax = 61.0,
const bool &  use = true
 

Common constructor.

Parameters:
mLambdas Maximum deviation allowed before declaring cycle slip (in number of Melbourne-Wubbena wavelenghts).
dtMax Maximum interval of time allowed between two successive epochs, in seconds.

Definition at line 64 of file MWCSDetector.cpp.

References MWCSDetector::setDeltaTMax(), and MWCSDetector::setMaxNumLambdas().

virtual ~MWCSDetector  )  [inline, virtual]
 

Destructor.

Definition at line 236 of file MWCSDetector.hpp.


Member Function Documentation

std::string getClassName void   )  const [virtual]
 

Returns a string identifying this object.

Implements ProcessingClass.

Definition at line 51 of file MWCSDetector.cpp.

virtual double getDeltaTMax  )  const [inline, virtual]
 

Method to get the maximum interval of time allowed between two successive epochs, in seconds.

Definition at line 173 of file MWCSDetector.hpp.

int getIndex void   )  const [virtual]
 

Returns an index identifying this object.

Implements ProcessingClass.

Definition at line 45 of file MWCSDetector.cpp.

virtual double getMaxNumLambdas  )  const [inline, virtual]
 

Method to get the maximum deviation allowed before declaring cycle slip (in number of Melbourne-Wubbena wavelenghts).

Definition at line 190 of file MWCSDetector.hpp.

virtual bool getUseLLI  )  const [inline, virtual]
 

Method to know if the LLI check is enabled or disabled.

Definition at line 204 of file MWCSDetector.hpp.

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

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

Parameters:
gData Data object holding the data.

Implements ProcessingClass.

Definition at line 241 of file MWCSDetector.cpp.

References GPSTK_THROW.

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

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

Parameters:
gData Data object holding the data.

Implements ProcessingClass.

Definition at line 213 of file MWCSDetector.hpp.

satTypeValueMap & Process const DayTime epoch,
satTypeValueMap gData,
const short &  epochflag = 0
throw (ProcessingException) [virtual]
 

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

Parameters:
epoch Time of observations.
gData Data object holding the data.
epochflag Epoch flag.

Definition at line 85 of file MWCSDetector.cpp.

References GPSTK_THROW, and gpstk::SatIDSet.

MWCSDetector & setDeltaTMax const double &  maxDelta  )  [virtual]
 

Method to set the maximum interval of time allowed between two successive epochs.

Parameters:
maxDelta Maximum interval of time, in seconds

Definition at line 191 of file MWCSDetector.cpp.

Referenced by MWCSDetector::MWCSDetector().

MWCSDetector & setMaxNumLambdas const double &  mLambdas  )  [virtual]
 

Method to set the maximum deviation allowed before declaring cycle slip (in number of Melbourne-Wubbena wavelenghts).

Parameters:
mLambdas Maximum deviation allowed before declaring cycle slip (in number of Melbourne-Wubbena wavelenghts).

Definition at line 217 of file MWCSDetector.cpp.

Referenced by MWCSDetector::MWCSDetector().

virtual MWCSDetector& setUseLLI const bool &  use  )  [inline, virtual]
 

Method to set whether the LLI indexes will be used as an aid or not.

Parameters:
use Boolean value enabling/disabling LLI check.

Definition at line 199 of file MWCSDetector.hpp.


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