#include <MWCSDetector.hpp>
Inheritance diagram for MWCSDetector:


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; }
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 satTypeValueMap & | Process (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 MWCSDetector & | setDeltaTMax (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 MWCSDetector & | setMaxNumLambdas (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 MWCSDetector & | setUseLLI (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 gnssSatTypeValue & | Process (gnssSatTypeValue &gData) throw (ProcessingException) |
| Returns a gnnsSatTypeValue object, adding the new data generated when calling this object. | |
| virtual gnssRinex & | Process (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. | |
|
|
Default constructor, setting default parameters.
Definition at line 129 of file MWCSDetector.hpp. |
|
||||||||||||||||
|
Common constructor.
Definition at line 64 of file MWCSDetector.cpp. References MWCSDetector::setDeltaTMax(), and MWCSDetector::setMaxNumLambdas(). |
|
|
Destructor.
Definition at line 236 of file MWCSDetector.hpp. |
|
|
Returns a string identifying this object.
Implements ProcessingClass. Definition at line 51 of file MWCSDetector.cpp. |
|
|
Method to get the maximum interval of time allowed between two successive epochs, in seconds.
Definition at line 173 of file MWCSDetector.hpp. |
|
|
Returns an index identifying this object.
Implements ProcessingClass. Definition at line 45 of file MWCSDetector.cpp. |
|
|
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. |
|
|
Method to know if the LLI check is enabled or disabled.
Definition at line 204 of file MWCSDetector.hpp. |
|
|
Returns a gnnsRinex object, adding the new data generated when calling this object.
Implements ProcessingClass. Definition at line 241 of file MWCSDetector.cpp. References GPSTK_THROW. |
|
|
Returns a gnnsSatTypeValue object, adding the new data generated when calling this object.
Implements ProcessingClass. Definition at line 213 of file MWCSDetector.hpp. |
|
||||||||||||||||
|
Returns a satTypeValueMap object, adding the new data generated when calling this object.
Definition at line 85 of file MWCSDetector.cpp. References GPSTK_THROW, and gpstk::SatIDSet. |
|
|
Method to set the maximum interval of time allowed between two successive epochs.
Definition at line 191 of file MWCSDetector.cpp. Referenced by MWCSDetector::MWCSDetector(). |
|
|
Method to set the 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(). |
|
|
Method to set whether the LLI indexes will be used as an aid or not.
Definition at line 199 of file MWCSDetector.hpp. |
1.3.9.1