GPSTk data structures


Detailed Description

This is a set of several data structures to be used by other GPSTk classes.

Each data structure is composed of a header and a body. The header contains the information that is common to all the data stored in the structure, and the body contains the data themselves along with the information (indexes) necessary to access them.

In this regard, four basic indexes are considered enough to completely identify any GNSS value:

Moreover, all the GNSS data structures have two main parts:

The general idea is to use the GNSS data structures like WHITE BOXES that are able to carry all the important data around in an easy way, in order to do something like the following to process GNSS data:

   RinexObsStream rin("bahr1620.04o"); // Create the input file stream
   gnssRinex gRin;                     // Declare a gnssRinex object

   ModeledPR modelPR;          // Declare a ModeledReferencePR object
   SolverLMS solver;           // Declare an object to apply LMS method


   // ... other inicialization code here ...


   // Feed the gRin data structure
   while(rin >> gRin)
   {

      gRin.keepOnlyTypeID(TypeID::C1) >> modelPR >> solver;

      // Print the results for this epoch
      cout << gRin.header.epoch.DOYsecond() << "  ";   // Epoch
      cout << solver.solution[0] << "  ";              // dx
      cout << solver.solution[1] << "  ";              // dy
      cout << solver.solution[2] << "  ";              // dz

   }


Namespaces

namespace  gpstk::StringUtils
 Stuff to make the C++ string class a little easier to use.
namespace  gpstk::StringUtils
 Stuff to make the C++ string class a little easier to use.

Classes

class  CodeSmoother
 This class smoothes a given code observable using the corresponding phase observable. More...
class  ComputeCombination
 This class eases computing combination of data for GNSS data structures. More...
class  ComputeDOP
 This class computes the usual DOP values: GDOP, PDOP, TDOP, HDOP and VDOP. More...
class  ComputeIURAWeights
 This class computes satellites weights based on URA Index. More...
class  ComputeLC
 This class eases computing LC combination for GNSS data structures. More...
class  ComputeLdelta
 This class eases computing Ldelta combination for GNSS data structures. More...
class  ComputeLI
 This class eases computing LI combination for GNSS data structures. More...
class  ComputeLinear
 This class computes linear combinations of GDS data. More...
class  ComputeMelbourneWubbena
 This class eases computing Melbourne-Wubbena combination for GNSS data structures. More...
class  ComputeMOPSWeights
 This class computes satellites weights based on the Appendix J of MOPS C. More...
class  ComputePC
 This class eases computing PC combination for GNSS data structures. More...
class  ComputePdelta
 This class eases computing Pdelta combination for GNSS data structures. More...
class  ComputePI
 This class eases computing PI combination for GNSS data structures. More...
class  ComputeSatPCenter
 This class computes the satellite antenna phase correction, in meters. More...
class  ComputeSimpleWeights
 This class computes simple satellites weights partially based on the variance model by Kennedy, 2002. More...
class  ComputeWindUp
 This class computes the wind-up effect on the phase observables, in radians. More...
class  ConvertC1ToP1
 This class convert C1 observable to P1 observable with add (P1-C1) Differences of Code Biases(P1-C1). More...
class  CorrectCodeBiases
 This class corrects observables from differential code biases.(P1-P2) or (P1-C1). More...
class  CorrectObservables
 This class corrects observables from effects such as antenna excentricity, difference in phase centers, offsets due to tidal effects, etc. More...
struct  sourceHeader
 Set of several headers to be used with data structures. Defines a header containing just the source of data. More...
struct  sourceEpochHeader
 Defines a header containing the source and epoch of data. More...
struct  sourceEpochRinexHeader
 Defines a header containing the source and epoch of data, plus extra data extracted from a Rinex file. More...
struct  sourceTypeHeader
 Defines a header containing the source and type of data. More...
struct  sourceSatHeader
 Defines a header containing the source and satellite ID of data. More...
struct  sourceEpochSatHeader
 Defines a header containing the source, satellite ID and epoch of data. More...
struct  sourceEpochTypeHeader
 Defines a header containing the source, type and epoch of data. More...
class  TypeIDNotFound
 Thrown when attempting to access a value and the corresponding TypeID does not exist in the map. More...
class  SatIDNotFound
 Thrown when attempting to access a value and the corresponding SatID does not exist in the map. More...
class  SourceIDNotFound
 Thrown when attempting to access a value and the corresponding source (SourceID) does not exist in the map. More...
class  CommonTimeNotFound
 Thrown when attempting to access a value and the corresponding epoch (CommonTime) does not exist in the map. More...
class  ValueNotFound
 Thrown when attempting to access a value and any of the corresponding indexes (SourceID, SatID or TypeID) does not exist in the map. More...
class  NumberOfTypesMismatch
 Thrown when the number of data values and the number of corresponding types does not match. More...
class  NumberOfSatsMismatch
 Thrown when the number of data values and the number of corresponding satellites does not match. More...
struct  typeValueMap
 Map holding TypeID with corresponding numeric value. More...
struct  satValueMap
 Map holding SatID with corresponding numeric value. More...
struct  satTypeValueMap
 Map holding SatID with corresponding typeValueMap. More...
struct  gnssData
 Basic gnssData structure. More...
struct  gnssSatValue
 GNSS data structure with source, epoch and data type as header (common indexes) and satValueMap as body. More...
struct  gnssTypeValue
 GNSS data structure with source, epoch and satellite as header (common indexes) and typeValueMap as body. More...
struct  gnssSatTypeValue
 GNSS data structure with source and epoch as header (common indexes) and satTypeValueMap as body. More...
struct  gnssRinex
 GNSS data structure with source, epoch and extra Rinex data as header (common indexes) and satTypeValueMap as body. More...
struct  sourceDataMap
 GNSS data structure consisting in a map with SourceID as keys, and satTypeValueMap as elements. More...
struct  gnssDataMap
 GNSS data structure consisting in a map with CommonTime as keys, and sourceDataMap as elements. More...
struct  gnssEquationDefinition
 Object defining the structure of a GNSS equation. More...
struct  gnssLinearCombination
 Object defining the structure of a GNSS linear combination. More...
class  Decimate
 This class decimates GNSS Data Structures data. More...
class  Dumper
 This class dumps the values inside a GNSS Data Structure (GDS), and therefore is meant to be used with the GDS objects found in "DataStructures" class. More...
struct  equationHeader
 Defines a header containing basic equation data. More...
struct  Equation
 GNSS Data Structure to define and handle 'descriptions' of GNSS equations. More...
class  EquationSystem
 This class defines and handles complex equation systems for solvers, generating the Vectors and Matrices they will need, including:. More...
class  Keeper
 This class examines a GNSS Data Structure (GDS) and keeps only specific values according to their TypeIDs. More...
class  LinearCombinations
 This class defines handy linear combinations of GDS data. More...
class  NetworkObsStreams
 This class synchronizes rinex observation data streams. More...
class  PCSmoother
 This class smoothes the PC (ionosphere-free) code observable using the corresponding LC phase observable. More...
class  Pruner
 This class examines a GNSS Data Structure (GDS) and prunes specific values according to their TypeIDs. More...
class  RequireObservables
 This class filters out satellites that don't have the required observations. More...
class  SimpleFilter
 This class filters out satellites with observations grossly out of bounds. More...
class  StochasticModel
 This is a base class to define stochastic models. More...
class  RandomWalkModel
 This class compute the elements of Phi and Q matrices corresponding to a random walk stochastic model. More...
class  WhiteNoiseModel
 This class compute the elements of Phi and Q matrices corresponding to a white noise stochastic model. More...
class  PhaseAmbiguityModel
 This class compute the elements of Phi and Q matrices corresponding to a phase ambiguity variable: Constant stochastic model within cycle slips and white noise stochastic model when a cycle slip happens. More...
class  TropoRandomWalkModel
 This class compute the elements of Phi and Q matrices corresponding to zenital tropospheric wet delays, modeled as a random walk stochastic model. More...
class  Synchronize
 This class synchronizes two GNSS Data Structures data streams. More...
class  Variable
 Class to define and handle 'descriptions' of GNSS variables. More...
class  Antenna
 This class encapsulates the data related to GNSS antennas according to IGS standards. More...

Typedefs

typedef std::set< TypeID > gpstk::TypeIDSet
 Set containing TypeID objects.
typedef std::set< SatID > gpstk::SatIDSet
 Set containing SatID objects.
typedef std::set< SourceID > gpstk::SourceIDSet
 Set containing SourceID objects.
typedef std::map< CommonTime,
satTypeValueMap > 
gpstk::epochSatTypeValueMap
 Map holding epoch with corresponding satTypeValueMap.
typedef std::map< CommonTime,
satValueMap > 
gpstk::epochSatValueMap
 Map holding epoch with corresponding satValueMap.
typedef std::map< CommonTime,
typeValueMap > 
gpstk::epochTypeValueMap
 Map holding epoch with corresponding typeValueMap.
typedef std::list< gnssLinearCombination > gpstk::LinearCombList
 List containing gnssLinearCombination objects.
typedef std::set< Variable > gpstk::VariableSet
 Handy type definition.
typedef std::list< Variable > gpstk::VariableList

Functions

std::ostream & gpstk::operator<< (std::ostream &s, const sourceHeader &sh)
 stream output for sourceHeader
std::ostream & gpstk::operator<< (std::ostream &s, const sourceEpochHeader &seh)
 stream output for sourceEpochHeader
std::ostream & gpstk::operator<< (std::ostream &s, const sourceEpochRinexHeader &serh)
 stream output for sourceEpochRinexHeader
std::ostream & gpstk::operator<< (std::ostream &s, const sourceTypeHeader &sth)
 stream output for sourceTypeHeader
std::ostream & gpstk::operator<< (std::ostream &s, const sourceSatHeader &ssh)
 stream output for sourceSatHeader
std::ostream & gpstk::operator<< (std::ostream &s, const sourceEpochSatHeader &sesh)
 stream output for sourceEpochSatHeader
std::ostream & gpstk::operator<< (std::ostream &s, const sourceEpochTypeHeader &seth)
 Stream output for sourceEpochTypeHeader.
std::ostream & gpstk::operator<< (std::ostream &s, const satTypeValueMap &stvMap)
 stream output for satTypeValueMap
std::ostream & gpstk::operator<< (std::ostream &s, const gnssDataMap &gdsMap)
 stream output for gnssDataMap
SourceID::SourceType gpstk::SatIDsystem2SourceIDtype (const SatID &sid)
 Convenience function to convert from SatID system to SourceID type.
satTypeValueMap gpstk::satTypeValueMapFromRinexObsData (const RinexObsHeader &roh, const RinexObsData &rod)
 roh RinexObsHeader holding the data
satTypeValueMap gpstk::satTypeValueMapFromRinex3ObsData (const Rinex3ObsHeader &roh, const Rinex3ObsData &rod)
 Convenience function to fill a satTypeValueMap with data from Rinex3ObsData.
std::istream & gpstk::operator>> (std::istream &i, gnssRinex &f)
 Stream input for gnssRinex.
std::ostream & gpstk::operator<< (std::ostream &s, gnssRinex &f) throw (FFStreamError, gpstk::StringUtils::StringException)
 Stream output for gnssRinex.


Typedef Documentation

typedef std::map<CommonTime, satTypeValueMap> epochSatTypeValueMap
 

Map holding epoch with corresponding satTypeValueMap.

Definition at line 606 of file DataStructures.hpp.

typedef std::map<CommonTime, satValueMap> epochSatValueMap
 

Map holding epoch with corresponding satValueMap.

Definition at line 609 of file DataStructures.hpp.

typedef std::map<CommonTime, typeValueMap> epochTypeValueMap
 

Map holding epoch with corresponding typeValueMap.

Definition at line 612 of file DataStructures.hpp.

typedef std::list<gnssLinearCombination> LinearCombList
 

List containing gnssLinearCombination objects.

Definition at line 1597 of file DataStructures.hpp.

Referenced by ComputeLinear::getLinearCombinations().

typedef std::set<SatID> SatIDSet
 

Set containing SatID objects.

Definition at line 240 of file DataStructures.hpp.

Referenced by gpstk::extractSatID(), gnssDataMap::extractSatID(), satTypeValueMap::extractSatID(), satValueMap::extractSatID(), EquationSystem::getCurrentSats(), GeneralConstraint::getCurrentSources(), satTypeValueMap::getSatID(), satValueMap::getSatID(), gnssDataMap::getSatIDSet(), sourceDataMap::getSatIDSet(), gnssDataMap::gnssDataMap(), gnssRinex::keepOnlySatID(), gnssSatTypeValue::keepOnlySatID(), gnssSatValue::keepOnlySatID(), satTypeValueMap::keepOnlySatID(), satValueMap::keepOnlySatID(), gnssRinex::keepOnlySatSystem(), SolverPPP::Process(), SimpleFilter::Process(), SatArcMarker::Process(), RequireObservables::Process(), ProblemSatFilter::Process(), PhaseCodeAlignment::Process(), PCSmoother::Process(), OneFreqCSDetector::Process(), NablaOp::Process(), MWCSDetector::Process(), ModelObsFixedStation::Process(), LICSDetector2::Process(), LICSDetector::Process(), IonexModel::Process(), GravitationalDelay::Process(), EclipsedSatFilter::Process(), DeltaOp::Process(), CorrectObservables::Process(), CorrectCodeBiases::Process(), ConvertC1ToP1::Process(), ComputeWindUp::Process(), ComputeTropModel::Process(), ComputeSimpleWeights::Process(), ComputeSatPCenter::Process(), ComputeMOPSWeights::Process(), ComputeMelbourneWubbena::Process(), ComputeIURAWeights::Process(), ComputeIonoModel::Process(), ComputeCombination::Process(), CodeSmoother::Process(), BasicModel::Process(), ModeledReferencePR::processModel(), gpstk::removeSatID(), gnssDataMap::removeSatID(), gpstk::testLoad(), and EquationSystem::~EquationSystem().

typedef std::set<SourceID> SourceIDSet
 

Set containing SourceID objects.

Definition at line 243 of file DataStructures.hpp.

Referenced by gpstk::extractSourceID(), gnssDataMap::extractSourceID(), EquationSystem::getCurrentSources(), gnssDataMap::getSourceIDSet(), sourceDataMap::getSourceIDSet(), GeneralConstraint::getVariables(), gnssDataMap::gnssDataMap(), Differentiator::Process(), gpstk::removeSourceID(), gnssDataMap::removeSourceID(), gpstk::testLoad(), and EquationSystem::~EquationSystem().

typedef std::set<TypeID> TypeIDSet
 

Set containing TypeID objects.

Definition at line 237 of file DataStructures.hpp.

Referenced by CodeKalmanSolver::CodeKalmanSolver(), gpstk::extractTypeID(), gnssDataMap::extractTypeID(), satTypeValueMap::extractTypeID(), typeValueMap::extractTypeID(), NablaOp::getDiffTypeSet(), DoubleOp::getDiffTypeSet(), DeltaOp::getDiffTypeSet(), SimpleFilter::getFilteredType(), RequireObservables::getRequiredType(), satTypeValueMap::getTypeID(), typeValueMap::getTypeID(), Pruner::getTypeSet(), Keeper::getTypeSet(), Dumper::getTypeSet(), gnssRinex::keepOnlyTypeID(), gnssSatTypeValue::keepOnlyTypeID(), gnssTypeValue::keepOnlyTypeID(), satTypeValueMap::keepOnlyTypeID(), typeValueMap::keepOnlyTypeID(), ComputeDOP::Process(), ModeledReferencePR::processModel(), gpstk::removeTypeID(), gnssDataMap::removeTypeID(), SolverPPP::setNEU(), SolverLMS::SolverLMS(), SolverWMS::SolverWMS(), gpstk::testLoad(), and CommonTimeNotFound::~CommonTimeNotFound().

typedef std::list<Variable> VariableList
 

Definition at line 367 of file Variable.hpp.

Referenced by GeneralConstraint::changeState().

typedef std::set<Variable> VariableSet
 

Handy type definition.

Definition at line 365 of file Variable.hpp.

Referenced by GeneralConstraint::changeState(), GeneralConstraint::differenceVariables(), EquationSystem::getCurrentUnknowns(), GeneralConstraint::getVariable(), GeneralConstraint::getVariables(), EquationSystem::getVarUnknowns(), GeneralConstraint::intersectionVariables(), SolverGeneral::postCompute(), SolverGeneral::preCompute(), GeneralConstraint::setCovariance(), GeneralConstraint::unionVariables(), GeneralConstraint::updateRefSat(), and EquationSystem::~EquationSystem().


Function Documentation

std::ostream& operator<< std::ostream &  s,
gnssRinex &  f
throw (FFStreamError, gpstk::StringUtils::StringException)
 

Stream output for gnssRinex.

This handy operator allows to output a gnssRinex data structure directly to an output stream such a RinexObsStream object.

The RinexObsHeader object of output stream should be initialized correctly before any output operation.

For example:

   // Create the input file stream
   RinexObsStream rin("bahr1620.04o");

   //Create the output file stream
   RinexObsStream rout("bahr1620.04o.new", ios::out|ios::trunc);

   // Read the RINEX header
   RinexObsHeader head; //RINEX header object
   rin >> head;
   rout.header = rin.header;

   rout << rout.header;

   gnssRinex gRin;
   while( rin >> gRin )
   {
       rout << gRin
   }

Definition at line 2982 of file DataStructures.cpp.

References gpstk::ConvertToTypeID(), satTypeValueMap::getSatID(), GPSTK_THROW, and satTypeValueMap::numSats().

std::ostream& operator<< std::ostream &  s,
const gnssDataMap &  gdsMap
 

stream output for gnssDataMap

Definition at line 2904 of file DataStructures.cpp.

std::ostream& operator<< std::ostream &  s,
const satTypeValueMap &  stvMap
 

stream output for satTypeValueMap

Definition at line 2892 of file DataStructures.cpp.

std::ostream& operator<< std::ostream &  s,
const sourceEpochTypeHeader &  seth
 

Stream output for sourceEpochTypeHeader.

Definition at line 363 of file DataHeaders.cpp.

std::ostream& operator<< std::ostream &  s,
const sourceEpochSatHeader &  sesh
 

stream output for sourceEpochSatHeader

Definition at line 316 of file DataHeaders.cpp.

std::ostream& operator<< std::ostream &  s,
const sourceSatHeader &  ssh
 

stream output for sourceSatHeader

Definition at line 269 of file DataHeaders.cpp.

References SourceID::dump().

std::ostream& operator<< std::ostream &  s,
const sourceTypeHeader &  sth
 

stream output for sourceTypeHeader

Definition at line 226 of file DataHeaders.cpp.

References SourceID::dump().

std::ostream& operator<< std::ostream &  s,
const sourceEpochRinexHeader &  serh
 

stream output for sourceEpochRinexHeader

Definition at line 183 of file DataHeaders.cpp.

std::ostream& operator<< std::ostream &  s,
const sourceEpochHeader &  seh
 

stream output for sourceEpochHeader

Definition at line 115 of file DataHeaders.cpp.

References SourceID::dump().

std::ostream& operator<< std::ostream &  s,
const sourceHeader &  sh
 

stream output for sourceHeader

Definition at line 71 of file DataHeaders.cpp.

References SourceID::dump().

std::istream& operator>> std::istream &  i,
gnssRinex &  f
 

Stream input for gnssRinex.

This handy operator allows to fed a gnssRinex data structure directly from an input stream such a RinexObsStream object.

For example:

   // Create the input file stream
   RinexObsStream rin("bahr1620.04o");

   // Declare a gnssRinex object
   gnssRinex gRin;

   // Feed the gRin data structure
   while( rin >> gRin )
   {
       // Lots of stuff in here...
   }

Definition at line 2915 of file DataStructures.cpp.

References RinexObsHeader::antennaPosition, RinexObsHeader::antType, RinexObsStream::header, RinexObsHeader::markerName, gpstk::SatIDsystem2SourceIDtype(), gpstk::satTypeValueMapFromRinex3ObsData(), and gpstk::satTypeValueMapFromRinexObsData().

SourceID::SourceType SatIDsystem2SourceIDtype const SatID &  sid  ) 
 

Convenience function to convert from SatID system to SourceID type.

Parameters:
sid Satellite ID.

Definition at line 3141 of file DataStructures.cpp.

Referenced by NetworkObsStreams::addRinexObsFile(), and gpstk::operator>>().

satTypeValueMap satTypeValueMapFromRinex3ObsData const Rinex3ObsHeader &  roh,
const Rinex3ObsData &  rod
 

Convenience function to fill a satTypeValueMap with data from Rinex3ObsData.

Parameters:
roh Rinex3ObsHeader holding the data
rod Rinex3ObsData holding the data.

Definition at line 3272 of file DataStructures.cpp.

References gpstk::ConvertToTypeID(), gpstk::GetCarrierBand(), and gpstk::getWavelength().

Referenced by gpstk::operator>>().

satTypeValueMap satTypeValueMapFromRinexObsData const RinexObsHeader &  roh,
const RinexObsData &  rod
 

roh RinexObsHeader holding the data

Parameters:
roh RinexObsHeader holding the data
rod RinexObsData holding the data.

Definition at line 3180 of file DataStructures.cpp.

References gpstk::ConvertToTypeID(), gpstk::GetCarrierBand(), gpstk::getWavelength(), and gpstk::IsCarrierPhase().

Referenced by gpstk::operator>>().


Generated on Sat May 25 03:31:37 2013 for GPS ToolKit Software Library by  doxygen 1.3.9.1