DataStructures.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: DataStructures.hpp 3319 2012-09-19 16:58:10Z prestonherrmann $"
00002 
00008 #ifndef GPSTK_DATASTRUCTURES_HPP
00009 #define GPSTK_DATASTRUCTURES_HPP
00010 
00011 //============================================================================
00012 //
00013 //  This file is part of GPSTk, the GPS Toolkit.
00014 //
00015 //  The GPSTk is free software; you can redistribute it and/or modify
00016 //  it under the terms of the GNU Lesser General Public License as published
00017 //  by the Free Software Foundation; either version 2.1 of the License, or
00018 //  any later version.
00019 //
00020 //  The GPSTk is distributed in the hope that it will be useful,
00021 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 //  GNU Lesser General Public License for more details.
00024 //
00025 //  You should have received a copy of the GNU Lesser General Public
00026 //  License along with GPSTk; if not, write to the Free Software Foundation,
00027 //  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
00028 //
00029 //  Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007, 2008, 2009, 2011
00030 //
00031 //============================================================================
00032 
00033 
00034 #include <utility>
00035 #include <vector>
00036 #include <set>
00037 #include <map>
00038 #include <string>
00039 
00040 #include "DataHeaders.hpp"
00041 #include "FFData.hpp"
00042 #include "RinexObsStream.hpp"
00043 #include "RinexObsData.hpp"
00044 #include "Rinex3ObsStream.hpp"
00045 #include "Rinex3ObsData.hpp"
00046 #include "StringUtils.hpp"
00047 #include "Vector.hpp"
00048 #include "Matrix.hpp"
00049 #include "CivilTime.hpp"
00050 #include "YDSTime.hpp"
00051 #include "GNSSconstants.hpp"
00052 
00053 
00054 
00055 namespace gpstk
00056 {
00057 
00117 
00118 
00119       // First, we must declare some important exception objects
00120 
00121 
00125    NEW_EXCEPTION_CLASS(TypeIDNotFound, gpstk::Exception);
00126 
00127 
00131    NEW_EXCEPTION_CLASS(SatIDNotFound, gpstk::Exception);
00132 
00133 
00137    NEW_EXCEPTION_CLASS(SourceIDNotFound, gpstk::Exception);
00138 
00139 
00143    NEW_EXCEPTION_CLASS(CommonTimeNotFound, gpstk::Exception);
00144 
00145 
00149    NEW_EXCEPTION_CLASS(ValueNotFound, gpstk::Exception);
00150 
00151 
00155    NEW_EXCEPTION_CLASS(NumberOfTypesMismatch, gpstk::Exception);
00156 
00157 
00161    NEW_EXCEPTION_CLASS(NumberOfSatsMismatch, gpstk::Exception);
00162 
00163 
00164       // Now, some useful type definitions
00165 
00167    typedef std::set<TypeID> TypeIDSet;
00168 
00170    typedef std::set<SatID> SatIDSet;
00171 
00173    typedef std::set<SourceID> SourceIDSet;
00174 
00175 
00177    struct typeValueMap : std::map<TypeID, double>
00178    {
00179 
00181       inline size_t numTypes() const
00182       { return (*this).size(); }
00183 
00184 
00187       TypeIDSet getTypeID() const;
00188 
00189 
00192       typeValueMap extractTypeID(const TypeID& type) const;
00193 
00194 
00198       typeValueMap extractTypeID(const TypeIDSet& typeSet) const;
00199 
00200 
00203       typeValueMap& keepOnlyTypeID(const TypeID& type);
00204 
00205 
00209       typeValueMap& keepOnlyTypeID(const TypeIDSet& typeSet);
00210 
00211 
00214       typeValueMap& removeTypeID(const TypeID& type)
00215       { (*this).erase(type); return (*this); }
00216 
00217 
00221       typeValueMap& removeTypeID(const TypeIDSet& typeSet);
00222 
00223 
00228       double getValue(const TypeID& type) const
00229          throw(TypeIDNotFound);
00230 
00231 
00235       double& operator()(const TypeID& type)
00236          throw(TypeIDNotFound);
00237 
00238 
00240       virtual ~typeValueMap() {};
00241 
00242     };  // End typeValueMap
00243 
00244 
00245 
00247    struct satValueMap : std::map<SatID, double>
00248    {
00249 
00251       size_t numSats() const
00252       { return (*this).size(); }
00253 
00254 
00256       SatIDSet getSatID() const;
00257 
00258 
00260       Vector<SatID> getVectorOfSatID() const;
00261 
00262 
00265       satValueMap extractSatID(const SatID& satellite) const;
00266 
00267 
00272       satValueMap extractSatID( const int& p,
00273                                 const SatID::SatelliteSystem& s ) const;
00274 
00275 
00279       satValueMap extractSatID(const SatIDSet& satSet) const;
00280 
00281 
00284       satValueMap& keepOnlySatID(const SatID& satellite);
00285 
00286 
00290       satValueMap& keepOnlySatID( const int& p,
00291                                   const SatID::SatelliteSystem& s );
00292 
00293 
00296       satValueMap& keepOnlySatID(const SatIDSet& satSet);
00297 
00298 
00301       satValueMap& removeSatID(const SatID& satellite)
00302       { (*this).erase(satellite); return (*this); }
00303 
00304 
00308       satValueMap& removeSatID(const SatIDSet& satSet);
00309 
00310 
00315       double getValue(const SatID& satellite) const
00316          throw(SatIDNotFound);
00317 
00318 
00322       double& operator()(const SatID& satellite)
00323          throw(SatIDNotFound);
00324 
00325 
00327       virtual ~satValueMap() {};
00328 
00329    };  // End of 'satValueMap'
00330 
00331 
00332 
00334    struct satTypeValueMap : std::map<SatID, typeValueMap>
00335    {
00336 
00338       size_t numSats() const
00339       { return (*this).size(); }
00340 
00341 
00346       size_t numElements() const;
00347 
00348 
00350       SatIDSet getSatID() const;
00351 
00352 
00354       Vector<SatID> getVectorOfSatID() const;
00355 
00356 
00360       TypeIDSet getTypeID() const;
00361 
00362 
00365       satTypeValueMap extractSatID(const SatID& satellite) const;
00366 
00367 
00372       satTypeValueMap extractSatID( const int& p,
00373                                     const SatID::SatelliteSystem& s) const;
00374 
00375 
00379       satTypeValueMap extractSatID(const SatIDSet& satSet) const;
00380 
00381 
00384       satTypeValueMap& keepOnlySatID(const SatID& satellite);
00385 
00386 
00390       satTypeValueMap& keepOnlySatID( const int& p,
00391                                       const SatID::SatelliteSystem& s );
00392 
00393 
00396       satTypeValueMap& keepOnlySatID(const SatIDSet& satSet);
00397 
00398 
00401       satTypeValueMap extractTypeID(const TypeID& type) const;
00402 
00403 
00407       satTypeValueMap extractTypeID(const TypeIDSet& typeSet) const;
00408 
00409 
00412       satTypeValueMap& keepOnlyTypeID(const TypeID& type);
00413 
00414 
00418       satTypeValueMap& keepOnlyTypeID(const TypeIDSet& typeSet);
00419 
00420 
00423       satTypeValueMap& removeSatID(const SatID& satellite)
00424       { (*this).erase(satellite); return (*this); }
00425 
00426 
00430       satTypeValueMap& removeSatID(const SatIDSet& satSet);
00431 
00432 
00435       satTypeValueMap& removeTypeID(const TypeID& type);
00436 
00437 
00441       satTypeValueMap& removeTypeID(const TypeIDSet& typeSet);
00442 
00443 
00448       Vector<double> getVectorOfTypeID(const TypeID& type) const;
00449 
00450 
00453       Matrix<double> getMatrixOfTypes(const TypeIDSet& typeSet) const;
00454 
00455 
00471       satTypeValueMap& insertTypeIDVector( const TypeID& type,
00472                                            const Vector<double> dataVector )
00473          throw(NumberOfSatsMismatch);
00474 
00475 
00495       satTypeValueMap& insertMatrix( const TypeIDSet& typeSet,
00496                                      const Matrix<double> dataMatrix )
00497          throw(NumberOfSatsMismatch, NumberOfTypesMismatch);
00498 
00499 
00506       double getValue( const SatID& satellite,
00507                        const TypeID& type ) const
00508          throw( SatIDNotFound, TypeIDNotFound );
00509 
00510 
00513       typeValueMap& operator()(const SatID& satellite)
00514          throw(SatIDNotFound);
00515 
00516 
00518       virtual std::ostream& dump( std::ostream& s,
00519                                   int mode = 0) const;
00520 
00521 
00523       virtual ~satTypeValueMap() {};
00524 
00525    };  // End of 'satTypeValueMap'
00526 
00527 
00528 
00530    std::ostream& operator<<( std::ostream& s,
00531                              const satTypeValueMap& stvMap);
00532 
00533 
00534 
00536    typedef std::map<CommonTime, satTypeValueMap>  epochSatTypeValueMap;
00537 
00539    typedef std::map<CommonTime, satValueMap>      epochSatValueMap;
00540 
00542    typedef std::map<CommonTime, typeValueMap>     epochTypeValueMap;
00543 
00544 
00545 
00546 
00548    template <class HEADER_CLASS, class BODY_CLASS>
00549    struct gnssData
00550    {
00551 
00553       HEADER_CLASS header;
00554 
00555 
00557       BODY_CLASS   body;
00558 
00559 
00560 
00562       gnssData() {}
00563 
00564 
00566       gnssData( const HEADER_CLASS& h,
00567                 const BODY_CLASS& b )
00568       {
00569          header = h;
00570          body = b;
00571       }
00572 
00573 
00575       template<class H, class B>
00576       gnssData(const gnssData<H,B>& g)
00577       {
00578          header = g.header;
00579          body = g.body;
00580       }
00581 
00582 
00584       virtual ~gnssData() {};
00585 
00586    };  // End of 'gnssData'
00587 
00588 
00589 
00590 
00591       // Further type definitions
00592 
00595    struct  gnssSatValue : gnssData<sourceEpochTypeHeader, satValueMap>
00596    {
00597 
00598 
00601       size_t numSats() const
00602       { return body.numSats(); };
00603 
00604 
00606       SatIDSet getSatID() const
00607       { return (*this).body.getSatID(); }
00608 
00609 
00611       Vector<SatID> getVectorOfSatID() const
00612       { return body.getVectorOfSatID(); }
00613 
00614 
00617       gnssSatValue extractSatID(const SatID& satellite) const;
00618 
00619 
00624       gnssSatValue extractSatID( const int& p,
00625                                  const SatID::SatelliteSystem& s ) const;
00626 
00627 
00631       gnssSatValue extractSatID(const SatIDSet& satSet) const;
00632 
00633 
00636       gnssSatValue& keepOnlySatID(const SatID& satellite);
00637 
00638 
00642       gnssSatValue& keepOnlySatID( const int& p,
00643                                    const SatID::SatelliteSystem& s );
00644 
00645 
00648       gnssSatValue& keepOnlySatID(const SatIDSet& satSet);
00649 
00650 
00653       gnssSatValue& removeSatID(const SatID& satellite)
00654       { (*this).body.erase(satellite); return (*this); }
00655 
00656 
00660       gnssSatValue& removeSatID(const SatIDSet& satSet);
00661 
00662 
00667       double getValue(const SatID& satellite) const
00668          throw(SatIDNotFound)
00669       { return (*this).body.getValue(satellite); }
00670 
00671 
00675       double& operator()(const SatID& satellite)
00676          throw(SatIDNotFound)
00677       { return (*this).body(satellite); }
00678 
00679 
00681       virtual ~gnssSatValue() {};
00682 
00683 
00684    };  // End of 'gnssSatValue'
00685 
00686 
00687 
00688 
00691    struct  gnssTypeValue : gnssData<sourceEpochSatHeader, typeValueMap>
00692    {
00693 
00696       size_t numTypes() const
00697       { return body.numTypes(); };
00698 
00699 
00702       TypeIDSet getTypeID() const
00703       { return (*this).body.getTypeID(); }
00704 
00705 
00708       gnssTypeValue extractTypeID(const TypeID& type) const;
00709 
00710 
00714       gnssTypeValue extractTypeID(const TypeIDSet& typeSet) const;
00715 
00716 
00719       gnssTypeValue& keepOnlyTypeID(const TypeID& type);
00720 
00721 
00725       gnssTypeValue& keepOnlyTypeID(const TypeIDSet& typeSet);
00726 
00727 
00730       gnssTypeValue& removeTypeID(const TypeID& type)
00731       { (*this).body.erase(type); return (*this); }
00732 
00733 
00737       gnssTypeValue& removeTypeID(const TypeIDSet& typeSet);
00738 
00739 
00744       double getValue(const TypeID& type) const
00745          throw(TypeIDNotFound)
00746       { return (*this).body.getValue(type); }
00747 
00748 
00751       double& operator()(const TypeID& type)
00752          throw(TypeIDNotFound)
00753       { return (*this).body(type); }
00754 
00755 
00757       virtual ~gnssTypeValue() {};
00758 
00759 
00760    };  // End of 'gnssTypeValue'
00761 
00762 
00763 
00766    struct  gnssSatTypeValue : gnssData<sourceEpochHeader, satTypeValueMap>
00767    {
00768 
00771       size_t numSats() const
00772       { return body.numSats(); };
00773 
00774 
00777       TypeIDSet getTypeID() const
00778       { return (*this).body.getTypeID(); }
00779 
00780 
00782       SatIDSet getSatID() const
00783       { return (*this).body.getSatID(); }
00784 
00785 
00787       Vector<SatID> getVectorOfSatID() const
00788       { return (*this).body.getVectorOfSatID(); }
00789 
00790 
00795       size_t numElements() const
00796       { return body.numElements(); };
00797 
00798 
00801       gnssSatTypeValue extractSatID(const SatID& satellite) const;
00802 
00803 
00808       gnssSatTypeValue extractSatID( const int& p,
00809                                      const SatID::SatelliteSystem& s ) const;
00810 
00811 
00815       gnssSatTypeValue extractSatID(const SatIDSet& satSet) const;
00816 
00817 
00820       gnssSatTypeValue& keepOnlySatID(const SatID& satellite);
00821 
00822 
00826       gnssSatTypeValue& keepOnlySatID( const int& p,
00827                                        const SatID::SatelliteSystem& s );
00828 
00829 
00832       gnssSatTypeValue& keepOnlySatID(const SatIDSet& satSet);
00833 
00834 
00837       gnssSatTypeValue extractTypeID(const TypeID& type) const;
00838 
00839 
00843       gnssSatTypeValue extractTypeID(const TypeIDSet& typeSet) const;
00844 
00845 
00848       gnssSatTypeValue& keepOnlyTypeID(const TypeID& type);
00849 
00850 
00854       gnssSatTypeValue& keepOnlyTypeID(const TypeIDSet& typeSet);
00855 
00856 
00859       gnssSatTypeValue& removeSatID(const SatID& satellite)
00860       { (*this).body.erase(satellite); return (*this); }
00861 
00862 
00866       gnssSatTypeValue& removeSatID(const SatIDSet& satSet);
00867 
00868 
00871       gnssSatTypeValue& removeTypeID(const TypeID& type)
00872       { (*this).body.removeTypeID(type); return (*this); }
00873 
00874 
00878       gnssSatTypeValue& removeTypeID(const TypeIDSet& typeSet);
00879 
00880 
00883       Vector<double> getVectorOfTypeID(const TypeID& type) const
00884       { return ( (*this).body.getVectorOfTypeID(type) ); }
00885 
00886 
00902       gnssSatTypeValue& insertTypeIDVector( const TypeID& type,
00903                                             const Vector<double> dataVector )
00904          throw(NumberOfSatsMismatch)
00905       { (*this).body.insertTypeIDVector(type, dataVector); return (*this); }
00906 
00907 
00927       gnssSatTypeValue& insertMatrix( const TypeIDSet& typeSet,
00928                                       const Matrix<double> dataMatrix )
00929          throw(NumberOfSatsMismatch, NumberOfTypesMismatch)
00930       { (*this).body.insertMatrix(typeSet, dataMatrix); return (*this); }
00931 
00932 
00939       double getValue( const SatID& satellite,
00940                        const TypeID& type ) const
00941          throw( SatIDNotFound, TypeIDNotFound )
00942       { return (*this).body.getValue( satellite, type ); }
00943 
00944 
00992       typeValueMap& operator()(const SatID& satellite)
00993          throw(SatIDNotFound)
00994       { return (*this).body(satellite); }
00995 
00996 
00998       virtual ~gnssSatTypeValue() {};
00999 
01000 
01001    };  // End of 'gnssSatTypeValue'
01002 
01003 
01004 
01007    struct gnssRinex : gnssSatTypeValue
01008    {
01009 
01010 
01012       sourceEpochRinexHeader header;
01013 
01014 
01016       gnssRinex() {};
01017 
01018 
01023       gnssRinex(const gnssSatTypeValue& gds)
01024       { header = gds.header; body = gds.body; };
01025 
01026 
01029       gnssRinex extractSatID(const SatID& satellite) const;
01030 
01031 
01036       gnssRinex extractSatID( const int& p,
01037                               const SatID::SatelliteSystem& s ) const;
01038 
01039 
01043       gnssRinex extractSatID(const SatIDSet& satSet) const;
01044 
01045 
01048       gnssRinex& keepOnlySatID(const SatID& satellite);
01049 
01050 
01054       gnssRinex& keepOnlySatID( const int& p,
01055                                 const SatID::SatelliteSystem& s );
01056 
01057 
01060       gnssRinex& keepOnlySatID(const SatIDSet& satSet);
01061 
01062 
01065       gnssRinex extractTypeID(const TypeID& type) const;
01066 
01067 
01071       gnssRinex extractTypeID(const TypeIDSet& typeSet) const;
01072 
01073 
01076       gnssRinex& keepOnlyTypeID(const TypeID& type);
01077 
01078 
01082       gnssRinex& keepOnlyTypeID(const TypeIDSet& typeSet);
01083 
01084 
01087       gnssRinex& keepOnlySatSystem(const SatID::SatelliteSystem satSys);
01088 
01089 
01090 
01092       virtual ~gnssRinex() {};
01093 
01094 
01095    };  // End of 'gnssRinex'
01096 
01097 
01098 
01100 
01101 
01104    struct sourceDataMap : std::map<SourceID, satTypeValueMap>
01105    {
01106 
01108       sourceDataMap() {};
01109 
01110 
01118       double getValue( const SourceID& source,
01119                        const SatID& satellite,
01120                        const TypeID& type ) const
01121          throw( SourceIDNotFound, SatIDNotFound, TypeIDNotFound );
01122 
01123 
01129       SourceIDSet getSourceIDSet( void ) const;
01130 
01131 
01137       SatIDSet getSatIDSet( void ) const;
01138 
01139 
01141       virtual ~sourceDataMap() {};
01142 
01143 
01144    };    // End of 'sourceDataMap'
01145 
01146 
01147 
01150    struct  gnssDataMap : std::multimap<CommonTime, sourceDataMap>
01151    {
01152 
01154       gnssDataMap()
01155          : tolerance(0.1) {};
01156 
01157 
01162       gnssDataMap( double tol )
01163          : tolerance(tol) {};
01164 
01165 
01170       gnssDataMap& addGnssSatTypeValue( const gnssSatTypeValue& gds );
01171 
01172 
01177       gnssDataMap& addGnssRinex( const gnssRinex& gds );
01178 
01179 
01187       gnssRinex getGnssRinex( const SourceID& source ) const;
01188 
01189 
01194       gnssDataMap& addGnssDataMap( const gnssDataMap& gds );
01195 
01196 
01198       gnssDataMap front( void ) const;
01199 
01200 
01202       void pop_front( void );
01203 
01204 
01207       gnssDataMap frontEpoch( void ) const;
01208 
01209 
01213       void pop_front_epoch( void );
01214 
01215 
01217       gnssDataMap back( void ) const;
01218 
01219 
01221       void pop_back( void );
01222 
01223 
01226       gnssDataMap backEpoch( void ) const;
01227 
01228 
01232       void pop_back_epoch( void );
01233 
01234 
01240       gnssDataMap getDataFromEpoch( const CommonTime& epoch ) const
01241          throw( CommonTimeNotFound );
01242 
01243 
01255       double getValue( const CommonTime& epoch,
01256                        const SourceID& source,
01257                        const SatID& satellite,
01258                        const TypeID& type ) const
01259          throw( CommonTimeNotFound, ValueNotFound );
01260 
01261 
01272       double getValue( const SourceID& source,
01273                        const SatID& satellite,
01274                        const TypeID& type ) const
01275          throw( ValueNotFound );
01276 
01277 
01287       gnssDataMap& insertValue( const CommonTime& epoch,
01288                                 const SourceID& source,
01289                                 const SatID& satellite,
01290                                 const TypeID& type,
01291                                 double value )
01292          throw( CommonTimeNotFound, ValueNotFound );
01293 
01294 
01303       gnssDataMap& insertValue( const SourceID& source,
01304                                 const SatID& satellite,
01305                                 const TypeID& type,
01306                                 double value )
01307          throw( ValueNotFound );
01308 
01309 
01315       SourceIDSet getSourceIDSet( void ) const;
01316 
01317 
01323       SatIDSet getSatIDSet( void ) const;
01324 
01325 
01327       double getTolerance( void ) const
01328       { return tolerance; };
01329 
01330 
01335       gnssDataMap& setTolerance( double tol )
01336       { tolerance = std::abs(tol); return (*this); };
01337 
01338 
01340       virtual std::ostream& dump( std::ostream& s,
01341                                   int mode = 0) const;
01342 
01343          
01346       gnssDataMap extractSourceID(const SourceID& source);
01347          
01348 
01352       gnssDataMap extractSourceID(const SourceIDSet& sourceSet);
01353 
01354 
01357       gnssDataMap& keepOnlySourceID(const SourceID& source);
01358 
01359 
01363       gnssDataMap& keepOnlySourceID(const SourceIDSet& sourceSet);
01364 
01365 
01368       gnssDataMap& removeSourceID(const SourceID& source);
01369 
01370 
01374       gnssDataMap& removeSourceID(const SourceIDSet& sourceSet);
01375 
01376 
01379       gnssDataMap extractSatID(const SatID& sat);
01380 
01381 
01385       gnssDataMap extractSatID(const SatIDSet& satSet);
01386 
01387 
01390       gnssDataMap& keepOnlySatID(const SatID& sat);
01391 
01392 
01396       gnssDataMap& keepOnlySatID(const SatIDSet& satSet);
01397 
01398 
01401       gnssDataMap& removeSatID(const SatID& sat);
01402 
01403 
01407       gnssDataMap& removeSatID(const SatIDSet& satSet);
01408 
01409 
01412       gnssDataMap extractTypeID(const TypeID& type);
01413 
01414 
01418       gnssDataMap extractTypeID(const TypeIDSet& typeSet);
01419 
01420 
01423       gnssDataMap& keepOnlyTypeID(const TypeID& type);
01424 
01425 
01429       gnssDataMap& keepOnlyTypeID(const TypeIDSet& typeSet);
01430 
01431 
01434       gnssDataMap& removeTypeID(const TypeID& type);
01435 
01436 
01440       gnssDataMap& removeTypeID(const TypeIDSet& typeSet);
01441 
01442 
01449       virtual gnssDataMap& edit(CommonTime tmin, 
01450                                 CommonTime tmax = CommonTime::END_OF_TIME);
01451 
01453       void loadObsFile(std::string obsFile);
01454 
01455 
01457       double tolerance;
01458 
01459 
01461       virtual ~gnssDataMap() {};
01462 
01463 
01464    };    // End of 'gnssDataMap'
01465 
01466 
01467 
01469    std::ostream& operator<<( std::ostream& s,
01470                              const gnssDataMap& gdsMap);
01471 
01472 
01473 
01476    struct  gnssEquationDefinition : gnssData<TypeID, TypeIDSet>
01477    {
01478 
01480       gnssEquationDefinition() {};
01481 
01482 
01484       gnssEquationDefinition( const TypeID& h,
01485                               const TypeIDSet& b )
01486       {
01487          header = h;
01488          body   = b;
01489       }
01490 
01491 
01493       virtual ~gnssEquationDefinition() {};
01494 
01495 
01496    };  // End of 'gnssEquationDefinition'
01497 
01498 
01499 
01503    struct  gnssLinearCombination : gnssData<TypeID, typeValueMap>
01504    {
01505 
01507       gnssLinearCombination() {};
01508 
01509 
01511       gnssLinearCombination( const TypeID& h,
01512                              const typeValueMap& b )
01513       {
01514          header = h;
01515          body   = b;
01516       }
01517 
01518 
01520       virtual ~gnssLinearCombination() {};
01521 
01522 
01523    };  // End of 'gnssLinearCombination'
01524 
01525 
01527    typedef std::list<gnssLinearCombination> LinearCombList;
01528 
01529 
01532    SourceID::SourceType SatIDsystem2SourceIDtype(const SatID& sid);
01533 
01534 
01535 
01540    satTypeValueMap satTypeValueMapFromRinexObsData(
01541                            const RinexObsHeader& roh, const RinexObsData& rod );
01542 
01543 
01548    satTypeValueMap satTypeValueMapFromRinex3ObsData(
01549                          const Rinex3ObsHeader& roh, const Rinex3ObsData& rod );
01550 
01551 
01573    std::istream& operator>>( std::istream& i, gnssRinex& f );
01574 
01575 
01607    std::ostream& operator<<( std::ostream& s,
01608                              gnssRinex& f )
01609       throw(FFStreamError, gpstk::StringUtils::StringException);
01610 
01611 
01613 
01614 }  // End of namespace gpstk
01615 
01616 #endif // GPSTK_DATASTRUCTURES_HPP

Generated on Sun May 19 03:31:06 2013 for GPS ToolKit Software Library by  doxygen 1.3.9.1