ObsID Class Reference

#include <ObsID.hpp>

Inheritance diagram for ObsID:

Inheritance graph
[legend]
Collaboration diagram for ObsID:

Collaboration graph
[legend]
List of all members.

Public Types

enum  ObservationType {
  otUnknown, otAny, otRange, otPhase,
  otDoppler, otSNR, otChannel, otIono,
  otSSI, otLLI, otTrackLen, otNavMsg,
  otUndefined, otLast
}
 The type of observation. More...
enum  CarrierBand {
  cbUnknown, cbAny, cbZero, cbL1,
  cbL2, cbL5, cbG1, cbG2,
  cbE5b, cbE5ab, cbE1, cbE2,
  cbE6, cbC6, cbL1L2, cbUndefined,
  cbLast
}
 The frequency band this obs was collected from. More...
enum  TrackingCode {
  tcUnknown, tcAny, tcCA, tcP,
  tcY, tcW, tcN, tcD,
  tcM, tcC2M, tcC2L, tcC2LM,
  tcI5, tcQ5, tcIQ5, tcGCA,
  tcGP, tcA, tcB, tcC,
  tcBC, tcABC, tcIE5, tcQE5,
  tcIQE5, tcSCA, tcSI5, tcSQ5,
  tcSIQ5, tcCI2, tcCQ2, tcCIQ2,
  tcCI5, tcCQ5, tcCIQ5, tcCI6,
  tcCQ6, tcCIQ6, tcUndefined, tcLast
}
 The code used to collect the observation. More...

Public Member Functions

 ObsID ()
 empty constructor, creates a wildcard object.
 ObsID (ObservationType ot, CarrierBand cb, TrackingCode tc)
 Explicit constructor.
 ObsID (const std::string &id) throw (InvalidParameter)
 Constructor from a string (Rinex 3 style descriptor).
 ObsID (const char *id) throw (InvalidParameter)
 Constructor from c-style string; see c'tor from a string.
virtual bool operator== (const ObsID &right) const
 Equality requires all fields to be the same.
virtual bool operator< (const ObsID &right) const
 This ordering is somewhat arbitrary but is required to be able to use an ObsID as an index to a std::map.
bool operator!= (const ObsID &right) const
bool operator> (const ObsID &right) const
bool operator<= (const ObsID &right) const
bool operator>= (const ObsID &right) const
virtual std::ostream & dump (std::ostream &s) const
 Convenience output method.
virtual ~ObsID ()
 Destructor.

Static Public Member Functions

ObservationType newObservationType (const std::string &s)
 The next three methods are deprecated.
CarrierBand newCarrierBand (const std::string &s)
TrackingCode newTrackingCode (const std::string &s)
ObsID newID (const std::string &id, const std::string &desc="") throw (InvalidParameter)

Public Attributes

ObservationType type
CarrierBand band
TrackingCode code

Static Public Attributes

std::string validRinexSystems
 This string contains the system characters for all valid RINEX systems.
std::map< char, std::map<
char, std::string > > 
validRinexTrackingCodes
 This map[sys][freq] = valid codes gives valid tracking codes for RINEX observations given the system and frequency; e.g.
std::map< TrackingCode, std::string > tcDesc
 These strings are for forming a somewhat verbose description.
std::map< CarrierBand, std::string > cbDesc
std::map< ObservationType,
std::string > 
otDesc
std::map< char, ObservationTypechar2ot
 These strings are used to translate this object to and from a string id.
std::map< char, CarrierBandchar2cb
std::map< char, TrackingCodechar2tc
std::map< ObservationType,
char > 
ot2char
std::map< CarrierBand, char > cb2char
std::map< TrackingCode, char > tc2char
Initializer singleton

Member Enumeration Documentation

enum CarrierBand
 

The frequency band this obs was collected from.

Enumeration values:
cbUnknown 
cbAny  Used to match any carrier band.
cbZero  Used with the channel observation type (see RINEx3 section 5.13).
cbL1  GPS L1, Galileo E2-L1-E1, SBAS L1.
cbL2  GPS L2.
cbL5  GPS L5, Galileo E5a, SBAS L5.
cbG1  Glonass G1.
cbG2  Glonass G2.
cbE5b  Galileo E5b, Compass E5b.
cbE5ab  Galileo E5a+b.
cbE1  Compass E1.
cbE2  Compass E2.
cbE6  Galileo E6.
cbC6  Compass E6.
cbL1L2  Combined L1L2 (like an ionosphere free obs).
cbUndefined 
cbLast  Used to verify that all items are described at compile time.

Definition at line 99 of file ObsID.hpp.

enum ObservationType
 

The type of observation.

Enumeration values:
otUnknown 
otAny  Used to match any observation type.
otRange  pseudorange, in meters
otPhase  accumulated phase, in meters
otDoppler  Doppler, in Hz.
otSNR  Signal strength, in dB-Hz.
otChannel  Channel number.
otIono  Ionospheric delay (see RINEX3 section 5.12).
otSSI  Signal Strength Indicator (RINEX).
otLLI  Loss of Lock Indicator (RINEX).
otTrackLen  Number of continuous epochs of 'good' tracking.
otNavMsg  Navigation Message data.
otUndefined  Undefined.
otLast  Used to verify that all items are described at compile time.

Definition at line 79 of file ObsID.hpp.

enum TrackingCode
 

The code used to collect the observation.

Each of these should uniquely identify a code that was correlated against to track the signal. While the notation generally follows section 5.1 of RINEX 3, due to ambiguities in that specification some extensions are made. Note that as concrete specifications for the codes are released, this list may need to be adjusted. Specifically, this lists assumes that the same I & Q codes will be used on all three of the Galileo carriers. If that is not true, more identifiers need to be allocated

Enumeration values:
tcUnknown 
tcAny  Used to match any tracking code.
tcCA  Legacy GPS civil code.
tcP  Legacy GPS precise code.
tcY  Encrypted legacy GPS precise code.
tcW  Encrypted legacy GPS precise code, codeless Z tracking.
tcN  Encrypted legacy GPS precise code, squaring codeless tracking.
tcD  Encrypted legacy GPS precise code, other codeless tracking.
tcM  Modernized GPS military unique code.
tcC2M  Modernized GPS L2 civil M code.
tcC2L  Modernized GPS L2 civil L code.
tcC2LM  Modernized GPS L2 civil M+L combined tracking (such as Trimble NetRS, Septrentrio, and ITT).
tcI5  Modernized GPS L5 civil in-phase.
tcQ5  Modernized GPS L5 civil quadrature.
tcIQ5  Modernized GPS L5 civil I+Q combined tracking.
tcGCA  Legacy Glonass civil signal.
tcGP  Legacy Glonass precise signal.
tcA  Galileo L1 PRS code.
tcB  Galileo OS/CS/SoL code.
tcC  Galileo Dataless code.
tcBC  Galileo B+C combined tracking.
tcABC  Galileo A+B+C combined tracking.
tcIE5  Galileo L5 I code.
tcQE5  Galileo L5 Q code.
tcIQE5  Galileo L5 I+Q combined tracking.
tcSCA  SBAS civil code.
tcSI5  SBAS L5 I code.
tcSQ5  SBAS L5 Q code.
tcSIQ5  SBAS L5 I+Q code.
tcCI2  Compass E2 I code.
tcCQ2  Compass E2 Q code.
tcCIQ2  Compass E2 I code.
tcCI5  Compass E5 I+Q code.
tcCQ5  Compass E5 Q code.
tcCIQ5  Compass E5 I+Q code.
tcCI6  Compass E6 I code.
tcCQ6  Compass E6 Q code.
tcCIQ6  Compass E2 I+Q code.
tcUndefined 
tcLast  Used to verify that all items are described at compile time.

Definition at line 129 of file ObsID.hpp.


Constructor & Destructor Documentation

ObsID  )  [inline]
 

empty constructor, creates a wildcard object.

Definition at line 180 of file ObsID.hpp.

ObsID ObservationType  ot,
CarrierBand  cb,
TrackingCode  tc
[inline]
 

Explicit constructor.

Definition at line 184 of file ObsID.hpp.

ObsID const std::string &  id  )  throw (InvalidParameter) [explicit]
 

Constructor from a string (Rinex 3 style descriptor).

If this string is 3 characters long, the system is assumed to be GPS. If this string is 4 characters long, the first character is the system designator as described in the Rinex 3 specification. If the Rinex 3 style descriptor isn't currently defined, a new one is silently automatically created with a blank description for the new characters.

Definition at line 264 of file ObsID.cpp.

References ObsID::band, ObsID::cbE5b, ObsID::cbL1, ObsID::cbL2, ObsID::cbL5, ObsID::char2cb, ObsID::char2ot, ObsID::char2tc, ObsID::code, GPSTK_THROW, ObsID::tcC2LM, ObsID::tcCA, ObsID::tcI5, ObsID::tcP, ObsID::tcQ5, and ObsID::type.

ObsID const char *  id  )  throw (InvalidParameter) [inline, explicit]
 

Constructor from c-style string; see c'tor from a string.

Definition at line 205 of file ObsID.hpp.

virtual ~ObsID  )  [inline, virtual]
 

Destructor.

Definition at line 236 of file ObsID.hpp.


Member Function Documentation

std::ostream & dump std::ostream &  s  )  const [virtual]
 

Convenience output method.

Definition at line 366 of file ObsID.cpp.

Referenced by gpstk::StringUtils::asString(), and gpstk::operator<<().

CarrierBand newCarrierBand const std::string &  s  )  [static]
 

ObsID newID const std::string &  id,
const std::string &  desc = ""
throw (InvalidParameter) [static]
 

Definition at line 380 of file ObsID.cpp.

References GPSTK_THROW.

ObservationType newObservationType const std::string &  s  )  [static]
 

The next three methods are deprecated.

TrackingCode newTrackingCode const std::string &  s  )  [static]
 

bool operator!= const ObsID right  )  const [inline]
 

Definition at line 220 of file ObsID.hpp.

References gpstk::operator==().

bool operator< const ObsID right  )  const [virtual]
 

This ordering is somewhat arbitrary but is required to be able to use an ObsID as an index to a std::map.

If an application needs some other ordering, inherit and override this function. One 'feature' that has been added is that an Any code/carrier/type will match any other code/carrier/type in the equality operator. The intent is to support performing an operation like "tell me if this is a pseudorange that was collected on L1 from *any* code".

Definition at line 447 of file ObsID.cpp.

References ObsID::band, ObsID::code, and ObsID::type.

bool operator<= const ObsID right  )  const [inline]
 

Definition at line 226 of file ObsID.hpp.

References gpstk::operator<(), and gpstk::operator==().

bool operator== const ObsID right  )  const [virtual]
 

Equality requires all fields to be the same.

Definition at line 435 of file ObsID.cpp.

References ObsID::band, ObsID::cbAny, ObsID::code, ObsID::otAny, ObsID::tcAny, and ObsID::type.

bool operator> const ObsID right  )  const [inline]
 

Definition at line 223 of file ObsID.hpp.

References gpstk::operator<(), and gpstk::operator==().

bool operator>= const ObsID right  )  const [inline]
 

Definition at line 229 of file ObsID.hpp.

References gpstk::operator<().


Member Data Documentation

CarrierBand band
 

Definition at line 253 of file ObsID.hpp.

Referenced by gpstk::ConvertToTypeID(), gpstk::GetCarrierBand(), CNAVEphemeris::loadData(), CNAVClock::loadData(), ObsID::ObsID(), ObsID::operator<(), and ObsID::operator==().

std::map< ObsID::CarrierBand, char > cb2char [static]
 

Definition at line 60 of file ObsID.cpp.

std::map< ObsID::CarrierBand, std::string > cbDesc [static]
 

Definition at line 53 of file ObsID.cpp.

std::map< char, ObsID::CarrierBand > char2cb [static]
 

Definition at line 57 of file ObsID.cpp.

Referenced by ObsID::ObsID().

std::map< char, ObsID::ObservationType > char2ot [static]
 

These strings are used to translate this object to and from a string id.

Definition at line 56 of file ObsID.cpp.

Referenced by ObsID::ObsID().

std::map< char, ObsID::TrackingCode > char2tc [static]
 

Definition at line 58 of file ObsID.cpp.

Referenced by ObsID::ObsID().

TrackingCode code
 

Definition at line 254 of file ObsID.hpp.

Referenced by gpstk::ConvertToTypeID(), CNAVEphemeris::loadData(), CNAVClock::loadData(), ObsID::ObsID(), ObsID::operator<(), and ObsID::operator==().

std::map< ObsID::ObservationType, char > ot2char [static]
 

Definition at line 59 of file ObsID.cpp.

std::map< ObsID::ObservationType, std::string > otDesc [static]
 

Definition at line 54 of file ObsID.cpp.

Initializer singleton [static]
 

Definition at line 275 of file ObsID.hpp.

std::map< ObsID::TrackingCode, char > tc2char [static]
 

Definition at line 61 of file ObsID.cpp.

std::map< ObsID::TrackingCode, std::string > tcDesc [static]
 

These strings are for forming a somewhat verbose description.

Definition at line 52 of file ObsID.cpp.

ObservationType type
 

Definition at line 252 of file ObsID.hpp.

Referenced by gpstk::ConvertToTypeID(), gpstk::makeSvObsEpoch(), ObsID::ObsID(), ObsID::operator<(), and ObsID::operator==().

std::string validRinexSystems [static]
 

This string contains the system characters for all valid RINEX systems.

Definition at line 67 of file ObsID.cpp.

std::map< char, std::map< char, std::string > > validRinexTrackingCodes [static]
 

This map[sys][freq] = valid codes gives valid tracking codes for RINEX observations given the system and frequency; e.g.

valid['G'][1]="CSLXPWYMN* " The only exception is there is no pseudorange (C) on GPS L1/L2 N (codeless) NB These tracking code characters are ORDERED, basically 'best' to 'worst'

Definition at line 64 of file ObsID.cpp.


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