Go to the documentation of this file.
47 #ifndef GNSSTK_DISCONTINUITY_CORRECTOR_INCLUDE
48 #define GNSSTK_DISCONTINUITY_CORRECTOR_INCLUDE
57 #include "gnsstk_export.h"
90 std::map<unsigned, std::string> m;
91 m[
BEG] = std::string(
"Begin");
92 m[
WLSLIP] = std::string(
"WLslip");
93 m[
GFSLIP] = std::string(
"GFslip");
94 m[
WLFIX] = std::string(
"WLfix");
95 m[
GFFIX] = std::string(
"GFfix");
96 m[
WLMARK] = std::string(
"WLmark");
97 m[
GFMARK] = std::string(
"GFmark");
98 m[
REJ] = std::string(
"Reject");
105 static const std::map<unsigned, std::string>
markStr;
108 static const unsigned
116 static const unsigned
166 Arc(
int ind,
unsigned n,
unsigned ng,
unsigned m)
226 std::map<unsigned, std::string>::const_iterator it;
234 return std::string(
"Unknown");
243 std::map<unsigned, std::string>::const_iterator it;
246 if (
mark & it->first)
248 msg += std::string(msg.empty() ?
"" :
"/") + it->second;
256 std::ostringstream os;
258 << std::fixed << std::setprecision(2) << 100. *
ngood / double(
npts)
270 std::ostringstream os;
271 os << std::fixed << std::setprecision(prec);
365 std::string
tag = std::string(),
366 bool advanced =
false);
375 if (
CFGdesc[a] == std::string())
377 Exception e(
"cfg(UNKNOWN LABEL) : " + a);
465 std::vector<std::string>& cmds,
481 std::vector<double> dataL1, std::vector<double> dataL2,
482 std::vector<double> dataP1, std::vector<double> dataP2,
483 std::vector<double>
dt, std::vector<int>
flags, std::string& retMsg,
484 std::vector<std::string>& cmds,
int GLOn = -99,
485 std::string
outfmt = std::string(
"%4F %10.3g"));
491 std::vector<unsigned> v;
499 std::vector<unsigned> v;
507 std::vector<std::string> v;
523 static const unsigned OK;
524 static const unsigned BAD;
525 static const unsigned
527 static const unsigned
531 static const unsigned
536 static const unsigned WL;
537 static const unsigned GF;
539 static const std::vector<std::string>
LAB;
540 static std::vector<double>
wl;
545 std::map<std::string, double>
CFG;
678 int filterWindow(
const unsigned which,
const std::string label,
692 const unsigned which);
714 bool addArc(
const int index,
const unsigned mark);
749 for (std::map<int, Arc>::iterator ait =
Arcs.begin();
750 ait !=
Arcs.end(); ++ait)
767 void getArcStats(std::map<int, Arc>::iterator& ait,
const unsigned which);
801 void dumpData(std::ostream& os,
const std::string msg = std::string());
820 void findArc(
const unsigned int ind, std::map<int, Arc>::iterator& ait)
822 if (
int(ind) < ait->second.index)
827 while (ait !=
Arcs.end() &&
828 ind >= ait->second.index + ait->second.npts)
831 if (ait ==
Arcs.end())
845 void DumpArcs(
const std::string&
tag,
const std::string& label,
855 const std::string&
tag,
const std::string& label,
892 #endif // GNSSTK_DISCONTINUITY_CORRECTOR_INCLUDE
unsigned int index
index in the data array(s) at which this event occurs
double wlWL
WL wavelength ~86cm, in meters.
int n
number of points in stats(ave,sig) - may be > npts in Arc
static const unsigned OK
Values for flags[] = bit maps.
std::map< std::string, std::string > CFGdesc
map containing configuration labels and their descriptions
static std::vector< std::string > create_vector_LAB()
helper routine to initialize vectors
static const std::vector< unsigned > SLIP
int GLOchan
GLONASS frequency channel (-99 by default in GDC())
void ForceUniqueNumber(int n)
std::vector< double > dataWL
static std::vector< unsigned > create_vector_SLIP()
helper routine to initialize vectors
double wlNL
NL wavelength ~10.7cm, in meters.
int DiscontinuityCorrector(SatPass &SP, std::string &retMsg, std::vector< std::string > &cmds, int GLOn=-99)
double sigma
for slips, RSS future and past sigma on the data
double dt
data time spacing, from SatPass, in sec
static const unsigned WLSHORT
flag for data with Arc.ngood < MinPts
std::string tag
begin each output line with 'GDC <unique>' ( <label>)
double wlGF
GF wavelength = wl2-wl1 = 5.376cm, in meters.
int index
index in data arrays of beginning ("break")
std::string brkString() const
string giving brief summary of break info e.g. WLslip/GFslip/WLfix 445 pts 438 good
int ProcessOneCombo(const unsigned which)
std::map< std::string, double > CFG
map containing configuration labels and their values
void DumpHits(const std::vector< FilterHit< double >> &filterResults, const std::string &tag, const std::string &label, int prec=-1)
static const unsigned ISOLATED
flag for isolated good data (< MinPts)
double GFbias
bias determined by initial value of GF, in wl
Epoch beginT
begin time from SatPass
double getParameter(std::string label)
int fixSlips(const unsigned which)
static const unsigned WLMARK
64 slip suspected but not found on WL
static const unsigned GFSLIP
4 slip found on GF
static const unsigned WL
conveniences
unsigned npts
number of points in the segment -> last index
std::map< int, std::string > CFGlist
void dumpData(std::ostream &os, const std::string msg=std::string())
dump the data stored in the data arrays
int CFGindex
map used to keep them in order
little class used to store information about one data array within this Arc
void init()
initialize (clear or empty) an Arc
int mergeFilterResultsIntoArcs(std::vector< FilterHit< double >> &hits, const unsigned which)
static const unsigned GFFIX
16 slip fixed on GF
unsigned ngood
number of good data points in the segment
long long N2bias
bias in L2 at initial point (from P2=wl2*(N2bias+L2))
RinexSatID sat
member data used internally
static std::vector< double > wl
vector of wavelengths
std::string SPSstr
SPS output of SatPass, or generated equivalent.
static std::map< unsigned, std::string > create_mark_string_map()
helper routine to initialize markStr map
gdc()
constructor; this sets a full default set of parameters.
long long N1bias
bias in L1 at initial point (from P1=wl1*(N1bias+L1))
std::map< int, int > findGaps(const Arc &arc)
double wl1
L1 wavelength, from sat, in meters.
static const unsigned GFMARK
32 slip suspected but not found on GF
static const unsigned GFOUTLIER
flag for data called outlier by GF filter
void findArc(const unsigned int ind, std::map< int, Arc >::iterator &ait)
std::string returnMessage(int prec=-1, int wid=-1)
build the string that is returned by the discontinuity corrector
static const unsigned BAD
flag for bad data = 1 NB SatPass::BAD = 0
std::vector< double > dataGF
static const unsigned WLSLIP
2 slip found on WL
double WLbias
bias determined by initial value of WL, in wl
unsigned mark
bitmap identifying actions that created or modified Arc
int filterFirstDiff(const unsigned which, const std::string label, double limit, std::vector< FilterHit< double >> &hits)
void fixUpArcs()
modify Arcs: recompute npts and ngood, remove empty Arcs
bool isGLO
true if this is a GLONASS satellite
int oswidth
output stream width
static const unsigned GF
used internally to denote the GF combo
std::map< int, Arc > Arcs
unsigned int npts
number data points in segment (= a delta index)
Epoch xtime(const int &i)
compute a time tag from array index: beginT + (xdata[i]==ndt)*dt
Arc(const Arc &right)
copy constructor
void flagBadData(const FilterHit< double > &hit, const unsigned flagvalue)
Arc & operator=(const Arc &right)
operator=
static const unsigned WLOUTLIER
flag for data called outlier by WL filter
std::string markString() const
void applyFixesToSatPass(SatPass &SP)
void DisplayParameterUsage(std::ostream &os, std::string tag=std::string(), bool advanced=false)
#define GNSSTK_RETHROW(exc)
static const std::vector< std::string > LAB
vector of labels: WL, GF
int getUniqueNumber()
get the unique number; note that it is incremented at start of Disc..Corr()
int unique
unique number, counting passes or calls
Arc(int ind, unsigned n, unsigned ng, unsigned m)
c'tor with minimum info
unsigned computeNgood(Arc &arc)
recompute the number of good points in an Arc
static const std::map< unsigned, std::string > markStr
strings describing values used for Arc::mark
unsigned int ngood
number of good (flag==0) points in this segment
static const unsigned WLFIX
8 slip fixed on WL
double alpha
alpha, from sat
void generateCmds(std::vector< std::string > &cmds)
void DumpArcs(const std::string &tag, const std::string &label, int prec=-1)
int GrossProcessing(const unsigned which)
static const GNSSTK_EXPORT std::string GDCVersion
Version string.
void getArcStats(const unsigned which)
double cfg_func(std::string a)
#define GNSSTK_THROW(exc)
event type
type of event: BOD, outlier(s), slip, other
static std::vector< unsigned > create_vector_FIX()
helper routine to initialize vectors
double beta
beta, from sat
static const unsigned REJ
128 segment of bad data - returnMessage() only
std::string message
readable description of whatever
Arcinfo WLinfo
Arcinfo for each datatype.
bool setParameter(std::string cmd)
double wl2
L2 wavelength, from sat, in meters.
static const unsigned BEG
mark bitmap values for characterizing Arc: BEG, slips, fixes, etc; see init()
int osprec
output stream precision
static const unsigned GFSHORT
flag for data with Arc.ngood < MinPts
std::vector< double > xdata
std::string asString(const int prec=3) const
double ave
average value of the data in the Arc (data units)
std::string outfmt
output time format, from SatPass
bool addArc(const int index, const unsigned mark)
static const std::vector< unsigned > FIX
slips, fixes
void init()
Initializer used in c'tor to define default configuration.
int FineProcessing(const unsigned which)
int filterWindow(const unsigned which, const std::string label, double limit, std::vector< FilterHit< double >> &hits)
static std::string markString(const unsigned mark)
convert one mark into a readable string
Arc(const FilterHit< double > &seg)
create an Arc from a FilterHit (filters returns a vector of FilterHit)
gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:39