Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
GDCPass Class Reference

Detailed Description

Definition at line 402 of file DiscCorr.cpp.

Inheritance diagram for GDCPass:
Inheritance graph
[legend]

Public Member Functions

list< Segment >::iterator createSegment (list< Segment >::iterator sit, int ibeg, string msg=string())
 
void deleteSegment (list< Segment >::iterator &it, string msg=string())
 
int detectGFslips ()
 
int detectGFsmallSlips ()
 
int detectObviousSlips (string which)
 
int detectWLslips ()
 
int detectWLsmallSlips ()
 
string dumpSegments (string msg, int level=2, bool extra=false)
 
long EstimateGFslipFix (list< Segment >::iterator &left, list< Segment >::iterator &right, unsigned int nb, unsigned int ne, long n1)
 
string finish (int iret, SatPass &svp, vector< string > &editCmds)
 
int firstDifferences (string which)
 
int fixAllSlips (string which)
 
void fixOneSlip (list< Segment >::iterator &kt, string which)
 
bool foundGFoutlier (int i, int inew, Stats< double > &pastSt, Stats< double > &futureSt)
 
bool foundGFsmallSlip (int i, int nseg, int iend, int ibeg, deque< int > &pastIn, deque< int > &futureIn, Stats< double > &pastSt, Stats< double > &futureSt)
 
bool foundWLsmallSlip (list< Segment >::iterator &it, int i)
 
 GDCPass (SatPass &sp, const GDCconfiguration &gdc)
 
int GFphaseResiduals (list< Segment >::iterator &it)
 
void GFslipFix (list< Segment >::iterator &left, list< Segment >::iterator &right)
 
int linearCombinations ()
 
int prepareGFdata ()
 
int preprocess ()
 
void WLcomputeStats (list< Segment >::iterator &it)
 
int WLconsistencyCheck ()
 
void WLsigmaStrip (list< Segment >::iterator &it)
 
void WLslipFix (list< Segment >::iterator &left, list< Segment >::iterator &right)
 
int WLstatSweep (list< Segment >::iterator &it, int width)
 
- Public Member Functions inherited from gnsstk::SatPass
int addData (const Epoch &tt, const std::vector< std::string > &obstypes, const std::vector< double > &data, const std::vector< unsigned short > &lli, const std::vector< unsigned short > &ssi, const unsigned short flag=SatPass::OK)
 
int addData (const Epoch &tt, std::vector< std::string > &obstypes, std::vector< double > &data)
 
int addData (const RinexObsData &robs)
 
void clear ()
 clear the data (but not the obs types) from the arrays More...
 
double & data (unsigned int i, const std::string &type)
 
double data (unsigned int i, const std::string &type1, const std::string &type2) const
 
void decimate (const int N, Epoch refTime=CommonTime::BEGINNING_OF_TIME)
 
void dump (std::ostream &os, const std::string &msg1, const std::string &msg2=std::string())
 
unsigned int getCount (unsigned int i) const
 
double getDT () const
 
Epoch getFirstGoodTime () const
 
Epoch getFirstTime () const
 
unsigned short getFlag (unsigned int i) const
 
bool getGLOchannel (int &n, std::string &msg)
 
Epoch getLastGoodTime () const
 
Epoch getLastTime () const
 
double getMaxGap () const
 
int getNgood () const
 
std::vector< std::string > getObsTypes ()
 
std::vector< std::string > getObstypes ()
 Access the obstypes (as strings) More...
 
std::string getOutputFormat ()
 
RinexSatID getSat () const
 
int getStatus () const
 Access the status as r-value only. More...
 
unsigned int getUserFlag (unsigned int i) const
 
bool hasCommonView (const SatPass &that, double *pdelt=NULL, Epoch *pttb=NULL, Epoch *ptte=NULL)
 
bool hasOverlap (const SatPass &that, double *pdelt=NULL, Epoch *pttb=NULL, Epoch *ptte=NULL)
 
bool hasType (std::string type) const
 
bool includesTime (const Epoch &tt) const
 
int index (const Epoch &tt) const
 
unsigned short & LLI (unsigned int i, const std::string &type)
 
unsigned short LLI (unsigned int i, const std::string &type1, const std::string &type2)
 
bool operator< (const SatPass &right) const
 'less than' is required for sort() and map<SatPass,...>.find(SatPass) More...
 
SatPassoperator= (const SatPass &right)
 
void renameObstypes (std::map< std::string, std::string > &subst)
 
 SatPass (const RinexSatID &sat, double dt)
 
 SatPass (const RinexSatID &sat, double dt, std::vector< std::string > obstypes)
 
void setFlag (unsigned int i, unsigned short flag)
 
void setOutputFormat (std::string fmt, int round=3)
 
void setUserFlag (unsigned int i, unsigned int inflag)
 
unsigned int size () const
 
void smooth (bool smoothPR, bool smoothPH, std::string &msg, const double &wl1=L1_WAVELENGTH_GPS, const double &wl2=L2_WAVELENGTH_GPS)
 
void smoothSF (bool smoothPR, bool smoothPH, std::string &msg, const int freq, double wl)
 
bool split (int N, SatPass &newSP)
 
unsigned short & SSI (unsigned int i, const std::string &type)
 
unsigned short SSI (unsigned int i, const std::string &type1, const std::string &type2)
 
int & status ()
 Access the status; l-value may be assigned SP.status() = 1;. More...
 
Epoch time (unsigned int i) const
 
double & timeoffset (unsigned int i)
 
std::string toString (std::string msg="", std::string fmt="%04Y/%02m/%02d %02H:%02M:%06.3f = %04F %w %10.3g")
 
int trimAfter (const Epoch ttag)
 
- Public Member Functions inherited from gnsstk::GDCconfiguration
void DisplayParameterUsage (std::ostream &os, bool advanced=false)
 
 GDCconfiguration ()
 constructor; this sets a full default set of parameters. More...
 
std::string getDescription (const std::string &label)
 Get the description of a parameter. More...
 
double getParameter (const std::string &label)
 Get the parameter in the configuration corresponding to label. More...
 
void setDebugStream (std::ostream &os)
 Tell GDCconfiguration to which stream to send debugging output. More...
 
void setParameter (const std::string &label, double value)
 
void setParameter (std::string cmd)
 
std::string Version ()
 Return version string. More...
 
 ~GDCconfiguration ()
 destructor More...
 

Static Public Attributes

static const unsigned short DETECT = 6
 
static const unsigned short FIX = 24
 
static const unsigned short GFDETECT = 4
 
static const unsigned short GFFIX = 16
 
static const unsigned short WLDETECT = 2
 
static const unsigned short WLFIX = 8
 
- Static Public Attributes inherited from gnsstk::SatPass
static const GNSSTK_EXPORT unsigned short BAD = 0
 flag indicating bad data More...
 
static const GNSSTK_EXPORT unsigned short LL1 = 2
 
static const GNSSTK_EXPORT unsigned short LL2 = 4
 
static const GNSSTK_EXPORT unsigned short LL3 = 6
 
static GNSSTK_EXPORT std::string longfmt
 
static GNSSTK_EXPORT double maxGap = 1800
 size of maximum time gap, in seconds, allowed within SatPass data. More...
 
static const GNSSTK_EXPORT unsigned short OK = 1
 
static GNSSTK_EXPORT std::string outFormat
 
static GNSSTK_EXPORT int outRound = 3
 

Private Member Functions

double cfg_func (string a)
 

Private Attributes

Stats< double > GFPassStats
 stats on the first difference of GF after detectObviousSlips(GF) More...
 
map< string, int > learn
 polynomial fit to the geometry-free range for the whole pass More...
 
list< SegmentSegList
 
list< SlipSlipList
 list of Slips found; used to generate the editing commands on output More...
 
Stats< double > WLPassStats
 temporary storage arrays, parallel to SatPass::data More...
 

Additional Inherited Members

- Static Public Member Functions inherited from gnsstk::SatPass
static double setMaxGap (double gap)
 
- Protected Member Functions inherited from gnsstk::SatPass
int countForTime (const Epoch &tt) const
 
struct SatPassData getData (unsigned int i) const
 
void init (const RinexSatID &sat, double dt, std::vector< std::string > obstypes)
 called by constructors to initialize - see doc for them. More...
 
int pushBack (const Epoch tt, SatPassData &spd)
 
- Protected Member Functions inherited from gnsstk::GDCconfiguration
void initialize ()
 
- Protected Attributes inherited from gnsstk::SatPass
double dt
 Nominal time spacing of the data; determined on input or by decimate() More...
 
Epoch firstTime
 
std::map< std::string, unsigned int > indexForLabel
 
std::map< unsigned int, std::string > labelForIndex
 
Epoch lastTime
 
unsigned int ngood
 number of timetags with good data in the data arrays. More...
 
RinexSatID sat
 Satellite identifier for this data. More...
 
std::vector< SatPassDataspdvector
 ALL data in the pass, stored in SatPassData objects, in time order. More...
 
int Status
 
- Protected Attributes inherited from gnsstk::GDCconfiguration
std::map< std::string, double > CFG
 map containing configuration labels and their values More...
 
std::map< std::string, std::string > CFGdescription
 map containing configuration labels and their descriptions More...
 
std::ostream * p_oflog
 Stream on which to write debug output. More...
 
- Static Protected Attributes inherited from gnsstk::GDCconfiguration
static const GNSSTK_EXPORT std::string GDCVersion = string("6.3 12/15/2015")
 

Constructor & Destructor Documentation

◆ GDCPass()

GDCPass::GDCPass ( SatPass sp,
const GDCconfiguration gdc 
)
explicit

Definition at line 948 of file DiscCorr.cpp.

Member Function Documentation

◆ cfg_func()

double GDCPass::cfg_func ( string  a)
inlineprivate

define this function so that invalid labels will throw, because this fails silently #define cfg(a) CFG[#a] // stringize

Exceptions
Exception

Definition at line 587 of file DiscCorr.cpp.

◆ createSegment()

list< Segment >::iterator GDCPass::createSegment ( list< Segment >::iterator  sit,
int  ibeg,
string  msg = string() 
)

create a new segment from the given one, starting at index ibeg, and insert it after the given iterator. Return an iterator pointing to the new segment. String msg is for debug output

Exceptions
Exception

Definition at line 4299 of file DiscCorr.cpp.

◆ deleteSegment()

void GDCPass::deleteSegment ( list< Segment >::iterator &  it,
string  msg = string() 
)

delete (set all points bad) segment it, optional message is used in debug print

Exceptions
Exception

Definition at line 4493 of file DiscCorr.cpp.

◆ detectGFslips()

int GDCPass::detectGFslips ( )

detect slips in the geometry-free phase

Exceptions
Exception

Definition at line 2976 of file DiscCorr.cpp.

◆ detectGFsmallSlips()

int GDCPass::detectGFsmallSlips ( )

detect small slips in the geometry-free phase using its first difference compute statistics in two windows of fixed width on either side of the point of interest and use these to find slips and outliers

Exceptions
Exception

Definition at line 3178 of file DiscCorr.cpp.

◆ detectObviousSlips()

int GDCPass::detectObviousSlips ( string  which)

detect obvious slips by computing the first difference (of either WL or GFP) and looking for outliers. create new segments where there are slips which is either 'WL' or 'GF'.

Exceptions
Exception

Definition at line 1349 of file DiscCorr.cpp.

◆ detectWLslips()

int GDCPass::detectWLslips ( )

detect slips in the wide lane bias

Exceptions
Exception

Definition at line 1246 of file DiscCorr.cpp.

◆ detectWLsmallSlips()

int GDCPass::detectWLsmallSlips ( )

detect slips in all segments using the results of WLstatSweep() if close to either end (< window width), just chop off the small segment when a slip is found, create a new segment also compute conventional stats for each Segment, store in Segment.WLStats

Exceptions
Exception

Definition at line 1943 of file DiscCorr.cpp.

◆ dumpSegments()

string GDCPass::dumpSegments ( string  msg,
int  level = 2,
bool  extra = false 
)

dump a list of the segments, detail dependent on level level=0 one line summary (number of segments) level=1 one per line list of segments level=2 dump all data, including (if extra) temporary arrays return the level 1 output as a string

Exceptions
Exception

Definition at line 4374 of file DiscCorr.cpp.

◆ EstimateGFslipFix()

long GDCPass::EstimateGFslipFix ( list< Segment >::iterator &  left,
list< Segment >::iterator &  right,
unsigned int  nb,
unsigned int  ne,
long  n1 
)

estimate the size of the slip between segments left and right, using points from indexes nb to ne; n1 is the initial estimate of the slip called by GFslipFix()

Exceptions
Exception

Definition at line 2739 of file DiscCorr.cpp.

◆ finish()

string GDCPass::finish ( int  iret,
SatPass svp,
vector< string > &  editCmds 
)

last call before returning: copy edited data back into caller's SatPass, generate editing commands, and print and return the final summary.

Exceptions
Exception

Definition at line 3862 of file DiscCorr.cpp.

◆ firstDifferences()

int GDCPass::firstDifferences ( string  which)

compute first differences of data arrays for WL and GF gross slips detection. for WL difference the WLbias; for GF, the GFP and the residual GFP-GFR Store results in temporary array A1 and A2

Exceptions
Exception

Definition at line 1516 of file DiscCorr.cpp.

◆ fixAllSlips()

int GDCPass::fixAllSlips ( string  which)

estimate slips in the WL bias and adjust biases appropriately - ie fix WL slips also compute stats for WL for the whole pass

Exceptions
Exception

Definition at line 2281 of file DiscCorr.cpp.

◆ fixOneSlip()

void GDCPass::fixOneSlip ( list< Segment >::iterator &  kt,
string  which 
)

fix the slip at the beginning of the segment pointed to by kt, which is the string 'WL' or 'GF'.

Exceptions
Exception

Definition at line 2393 of file DiscCorr.cpp.

◆ foundGFoutlier()

bool GDCPass::foundGFoutlier ( int  i,
int  inew,
Stats< double > &  pastSt,
Stats< double > &  futureSt 
)

determine if there is an outlier in the GF phase, using the GFP first difference and the statistics computed in detectGFsmallSlips(). Criteria:

  1. adjacent first differences have different signs
  2. they have approximately the same magnitude
  3. that magnitude is large compared to the noise in the dGFP
    Exceptions
    Exception

Definition at line 3331 of file DiscCorr.cpp.

◆ foundGFsmallSlip()

bool GDCPass::foundGFsmallSlip ( int  i,
int  nseg,
int  iend,
int  ibeg,
deque< int > &  pastIn,
deque< int > &  futureIn,
Stats< double > &  pastSt,
Stats< double > &  futureSt 
)

determine if a small GF slip is found, using the first differenced gfp and statistics computed in detectGFsmallSlips() Criteria:

  1. slip is non-trivial - at least one wavelength
  2. the change in the average 1stDiff(GFP) across the slip is small
  3. the slip itself is large compared to the average on either side
  4. the slip itself is large compared to the noise Declare 'slips' that are very near the ends of the segment as outliers Conservatively, ignore small slips that are near the level of the noise, unless there was a WL slip at the same epoch.
    Exceptions
    Exception

Definition at line 3423 of file DiscCorr.cpp.

◆ foundWLsmallSlip()

bool GDCPass::foundWLsmallSlip ( list< Segment >::iterator &  it,
int  i 
)

determine if a slip has been found at index i, in segment nseg (0..) which is associated with it. conditions for a slip to be detected:

  1. test must be >~ 0.67 wlwl
  2. limit must be much smaller than test
  3. slip must be far (>1/2 window) from either end
  4. test must be at a local maximum (~ 2 window widths)
  5. limit must be at a local minimum (") also, large limit (esp near end of a pass) means too much noise, and
    Exceptions
    Exception

Definition at line 2077 of file DiscCorr.cpp.

◆ GFphaseResiduals()

int GDCPass::GFphaseResiduals ( list< Segment >::iterator &  it)

for each segment, fit a polynomial to the gfr, then compute and store the residual of fit; at the same time, compute stats on the first difference of GF

Exceptions
Exception

Definition at line 3077 of file DiscCorr.cpp.

◆ GFslipFix()

void GDCPass::GFslipFix ( list< Segment >::iterator &  left,
list< Segment >::iterator &  right 
)

fix the slip between segments pointed to by left and right

Exceptions
Exception

Definition at line 2567 of file DiscCorr.cpp.

◆ linearCombinations()

int GDCPass::linearCombinations ( )

compute linear combinations and place the result in the data arrays: L1 -> L1; L2 -> GFP(m) P1 -> WLB(cyc) P2 -> -GFR(m)

Exceptions
Exception

Definition at line 1171 of file DiscCorr.cpp.

◆ prepareGFdata()

int GDCPass::prepareGFdata ( )

fit a polynomial to the GF range, and replace P2 (-gfr) with the residual gfp+fit(gfr); divide both P1(gfp) and P2(residual) by wlgf to convert to cycles also place the residual gfp+gfr(cycles) in L1

Exceptions
Exception

Definition at line 2918 of file DiscCorr.cpp.

◆ preprocess()

int GDCPass::preprocess ( )

edit obvious outliers, divide into segments using MaxGap

Exceptions
Exception

Definition at line 984 of file DiscCorr.cpp.

◆ WLcomputeStats()

void GDCPass::WLcomputeStats ( list< Segment >::iterator &  it)

for one segment, compute conventional statistics on the WL bias and count the number of good points

Exceptions
Exception

Definition at line 1588 of file DiscCorr.cpp.

◆ WLconsistencyCheck()

int GDCPass::WLconsistencyCheck ( )

final check on consistency of WL slip fixes with GF slip detection

Exceptions
Exception

Definition at line 3735 of file DiscCorr.cpp.

◆ WLsigmaStrip()

void GDCPass::WLsigmaStrip ( list< Segment >::iterator &  it)

for one segment mark bad points that lie outside N*sigma delete segments that are too small

Exceptions
Exception

Definition at line 1632 of file DiscCorr.cpp.

◆ WLslipFix()

void GDCPass::WLslipFix ( list< Segment >::iterator &  left,
list< Segment >::iterator &  right 
)

fix the slip between segments pointed to by left and right

Exceptions
Exception

Definition at line 2485 of file DiscCorr.cpp.

◆ WLstatSweep()

int GDCPass::WLstatSweep ( list< Segment >::iterator &  it,
int  width 
)

for one segment, compute statistics on the WL bias using a 'two-paned sliding window', each pane of width 'width' good points. store the results in the parallel (to SatPass::data) arrays A1,A2.

Exceptions
Exception

Definition at line 1824 of file DiscCorr.cpp.

Member Data Documentation

◆ DETECT

const unsigned short GDCPass::DETECT = 6
static

Definition at line 405 of file DiscCorr.cpp.

◆ FIX

const unsigned short GDCPass::FIX = 24
static

Definition at line 406 of file DiscCorr.cpp.

◆ GFDETECT

const unsigned short GDCPass::GFDETECT = 4
static

Definition at line 409 of file DiscCorr.cpp.

◆ GFFIX

const unsigned short GDCPass::GFFIX = 16
static

Definition at line 410 of file DiscCorr.cpp.

◆ GFPassStats

Stats<double> GDCPass::GFPassStats
private

stats on the first difference of GF after detectObviousSlips(GF)

Definition at line 611 of file DiscCorr.cpp.

◆ learn

map<string, int> GDCPass::learn
private

polynomial fit to the geometry-free range for the whole pass

keep count of various results: slips, deletions, etc.; print to log in finish()

Definition at line 618 of file DiscCorr.cpp.

◆ SegList

list<Segment> GDCPass::SegList
private

list of Segments, always in time order, of segments of continuous data within the SVPass.

Definition at line 599 of file DiscCorr.cpp.

◆ SlipList

list<Slip> GDCPass::SlipList
private

list of Slips found; used to generate the editing commands on output

Definition at line 602 of file DiscCorr.cpp.

◆ WLDETECT

const unsigned short GDCPass::WLDETECT = 2
static

Definition at line 407 of file DiscCorr.cpp.

◆ WLFIX

const unsigned short GDCPass::WLFIX = 8
static

Definition at line 408 of file DiscCorr.cpp.

◆ WLPassStats

Stats<double> GDCPass::WLPassStats
private

temporary storage arrays, parallel to SatPass::data

stats on the WL bias after editing for the entire pass

Definition at line 608 of file DiscCorr.cpp.


The documentation for this class was generated from the following file:


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:43