DataStructures.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: DataStructures.hpp 2960 2011-11-02 05:01:16Z yanweignss $"
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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00028 //
00029 //  Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007, 2008, 2009
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 "StringUtils.hpp"
00045 #include "Vector.hpp"
00046 #include "Matrix.hpp"
00047 #include "icd_200_constants.hpp"
00048 
00049 
00050 
00051 namespace gpstk
00052 {
00053 
00113 
00114 
00115       // First, we must declare some important exception objects
00116 
00117 
00121    NEW_EXCEPTION_CLASS(TypeIDNotFound, gpstk::Exception);
00122 
00123 
00127    NEW_EXCEPTION_CLASS(SatIDNotFound, gpstk::Exception);
00128 
00129 
00133    NEW_EXCEPTION_CLASS(SourceIDNotFound, gpstk::Exception);
00134 
00135 
00139    NEW_EXCEPTION_CLASS(DayTimeNotFound, gpstk::Exception);
00140 
00141 
00145    NEW_EXCEPTION_CLASS(ValueNotFound, gpstk::Exception);
00146 
00147 
00151    NEW_EXCEPTION_CLASS(NumberOfTypesMismatch, gpstk::Exception);
00152 
00153 
00157    NEW_EXCEPTION_CLASS(NumberOfSatsMismatch, gpstk::Exception);
00158 
00159 
00160       // Now, some useful type definitions
00161 
00163    typedef std::set<TypeID> TypeIDSet;
00164 
00166    typedef std::set<SatID> SatIDSet;
00167 
00169    typedef std::set<SourceID> SourceIDSet;
00170 
00171 
00173    struct typeValueMap : std::map<TypeID, double>
00174    {
00175 
00177       inline size_t numTypes() const
00178       { return (*this).size(); }
00179 
00180 
00183       TypeIDSet getTypeID() const;
00184 
00185 
00188       typeValueMap extractTypeID(const TypeID& type) const;
00189 
00190 
00194       typeValueMap extractTypeID(const TypeIDSet& typeSet) const;
00195 
00196 
00199       typeValueMap& keepOnlyTypeID(const TypeID& type);
00200 
00201 
00205       typeValueMap& keepOnlyTypeID(const TypeIDSet& typeSet);
00206 
00207 
00210       typeValueMap& removeTypeID(const TypeID& type)
00211       { (*this).erase(type); return (*this); }
00212 
00213 
00217       typeValueMap& removeTypeID(const TypeIDSet& typeSet);
00218 
00219 
00224       double getValue(const TypeID& type) const
00225          throw(TypeIDNotFound);
00226 
00227 
00231       double& operator()(const TypeID& type)
00232          throw(TypeIDNotFound);
00233 
00234 
00236       virtual ~typeValueMap() {};
00237 
00238     };  // End typeValueMap
00239 
00240 
00241 
00243    struct satValueMap : std::map<SatID, double>
00244    {
00245 
00247       size_t numSats() const
00248       { return (*this).size(); }
00249 
00250 
00252       SatIDSet getSatID() const;
00253 
00254 
00256       Vector<SatID> getVectorOfSatID() const;
00257 
00258 
00261       satValueMap extractSatID(const SatID& satellite) const;
00262 
00263 
00268       satValueMap extractSatID( const int& p,
00269                                 const SatID::SatelliteSystem& s ) const;
00270 
00271 
00275       satValueMap extractSatID(const SatIDSet& satSet) const;
00276 
00277 
00280       satValueMap& keepOnlySatID(const SatID& satellite);
00281 
00282 
00286       satValueMap& keepOnlySatID( const int& p,
00287                                   const SatID::SatelliteSystem& s );
00288 
00289 
00292       satValueMap& keepOnlySatID(const SatIDSet& satSet);
00293 
00294 
00297       satValueMap& removeSatID(const SatID& satellite)
00298       { (*this).erase(satellite); return (*this); }
00299 
00300 
00304       satValueMap& removeSatID(const SatIDSet& satSet);
00305 
00306 
00311       double getValue(const SatID& satellite) const
00312          throw(SatIDNotFound);
00313 
00314 
00318       double& operator()(const SatID& satellite)
00319          throw(SatIDNotFound);
00320 
00321 
00323       virtual ~satValueMap() {};
00324 
00325    };  // End of 'satValueMap'
00326 
00327 
00328 
00330    struct satTypeValueMap : std::map<SatID, typeValueMap>
00331    {
00332 
00334       size_t numSats() const
00335       { return (*this).size(); }
00336 
00337 
00342       size_t numElements() const;
00343 
00344 
00346       SatIDSet getSatID() const;
00347 
00348 
00350       Vector<SatID> getVectorOfSatID() const;
00351 
00352 
00356       TypeIDSet getTypeID() const;
00357 
00358 
00361       satTypeValueMap extractSatID(const SatID& satellite) const;
00362 
00363 
00368       satTypeValueMap extractSatID( const int& p,
00369                                     const SatID::SatelliteSystem& s) const;
00370 
00371 
00375       satTypeValueMap extractSatID(const SatIDSet& satSet) const;
00376 
00377 
00380       satTypeValueMap& keepOnlySatID(const SatID& satellite);
00381 
00382 
00386       satTypeValueMap& keepOnlySatID( const int& p,
00387                                       const SatID::SatelliteSystem& s );
00388 
00389 
00392       satTypeValueMap& keepOnlySatID(const SatIDSet& satSet);
00393 
00394 
00397       satTypeValueMap extractTypeID(const TypeID& type) const;
00398 
00399 
00403       satTypeValueMap extractTypeID(const TypeIDSet& typeSet) const;
00404 
00405 
00408       satTypeValueMap& keepOnlyTypeID(const TypeID& type);
00409 
00410 
00414       satTypeValueMap& keepOnlyTypeID(const TypeIDSet& typeSet);
00415 
00416 
00419       satTypeValueMap& removeSatID(const SatID& satellite)
00420       { (*this).erase(satellite); return (*this); }
00421 
00422 
00426       satTypeValueMap& removeSatID(const SatIDSet& satSet);
00427 
00428 
00431       satTypeValueMap& removeTypeID(const TypeID& type);
00432 
00433 
00437       satTypeValueMap& removeTypeID(const TypeIDSet& typeSet);
00438 
00439 
00444       Vector<double> getVectorOfTypeID(const TypeID& type) const;
00445 
00446 
00449       Matrix<double> getMatrixOfTypes(const TypeIDSet& typeSet) const;
00450 
00451 
00467       satTypeValueMap& insertTypeIDVector( const TypeID& type,
00468                                            const Vector<double> dataVector )
00469          throw(NumberOfSatsMismatch);
00470 
00471 
00491       satTypeValueMap& insertMatrix( const TypeIDSet& typeSet,
00492                                      const Matrix<double> dataMatrix )
00493          throw(NumberOfSatsMismatch, NumberOfTypesMismatch);
00494 
00495 
00502       double getValue( const SatID& satellite,
00503                        const TypeID& type ) const
00504          throw( SatIDNotFound, TypeIDNotFound );
00505 
00506 
00509       typeValueMap& operator()(const SatID& satellite)
00510          throw(SatIDNotFound);
00511 
00512 
00514       virtual std::ostream& dump( std::ostream& s,
00515                                   int mode = 0) const;
00516 
00517 
00519       virtual ~satTypeValueMap() {};
00520 
00521    };  // End of 'satTypeValueMap'
00522 
00523 
00524 
00526    std::ostream& operator<<( std::ostream& s,
00527                              const satTypeValueMap& stvMap);
00528 
00529 
00530 
00532    typedef std::map<DayTime, satTypeValueMap>  epochSatTypeValueMap;
00533 
00535    typedef std::map<DayTime, satValueMap>      epochSatValueMap;
00536 
00538    typedef std::map<DayTime, typeValueMap>     epochTypeValueMap;
00539 
00540 
00541 
00542 
00544    template <class HEADER_CLASS, class BODY_CLASS>
00545    struct gnssData
00546    {
00547 
00549       HEADER_CLASS header;
00550 
00551 
00553       BODY_CLASS   body;
00554 
00555 
00556 
00558       gnssData() {}
00559 
00560 
00562       gnssData( const HEADER_CLASS& h,
00563                 const BODY_CLASS& b )
00564       {
00565          header = h;
00566          body = b;
00567       }
00568 
00569 
00571       template<class H, class B>
00572       gnssData(const gnssData<H,B>& g)
00573       {
00574          header = g.header;
00575          body = g.body;
00576       }
00577 
00578 
00580       virtual ~gnssData() {};
00581 
00582    };  // End of 'gnssData'
00583 
00584 
00585 
00586 
00587       // Further type definitions
00588 
00591    struct  gnssSatValue : gnssData<sourceEpochTypeHeader, satValueMap>
00592    {
00593 
00594 
00597       size_t numSats() const
00598       { return body.numSats(); };
00599 
00600 
00602       SatIDSet getSatID() const
00603       { return (*this).body.getSatID(); }
00604 
00605 
00607       Vector<SatID> getVectorOfSatID() const
00608       { return body.getVectorOfSatID(); }
00609 
00610 
00613       gnssSatValue extractSatID(const SatID& satellite) const;
00614 
00615 
00620       gnssSatValue extractSatID( const int& p,
00621                                  const SatID::SatelliteSystem& s ) const;
00622 
00623 
00627       gnssSatValue extractSatID(const SatIDSet& satSet) const;
00628 
00629 
00632       gnssSatValue& keepOnlySatID(const SatID& satellite);
00633 
00634 
00638       gnssSatValue& keepOnlySatID( const int& p,
00639                                    const SatID::SatelliteSystem& s );
00640 
00641 
00644       gnssSatValue& keepOnlySatID(const SatIDSet& satSet);
00645 
00646 
00649       gnssSatValue& removeSatID(const SatID& satellite)
00650       { (*this).body.erase(satellite); return (*this); }
00651 
00652 
00656       gnssSatValue& removeSatID(const SatIDSet& satSet);
00657 
00658 
00663       double getValue(const SatID& satellite) const
00664          throw(SatIDNotFound)
00665       { return (*this).body.getValue(satellite); }
00666 
00667 
00671       double& operator()(const SatID& satellite)
00672          throw(SatIDNotFound)
00673       { return (*this).body(satellite); }
00674 
00675 
00677       virtual ~gnssSatValue() {};
00678 
00679 
00680    };  // End of 'gnssSatValue'
00681 
00682 
00683 
00684 
00687    struct  gnssTypeValue : gnssData<sourceEpochSatHeader, typeValueMap>
00688    {
00689 
00692       size_t numTypes() const
00693       { return body.numTypes(); };
00694 
00695 
00698       TypeIDSet getTypeID() const
00699       { return (*this).body.getTypeID(); }
00700 
00701 
00704       gnssTypeValue extractTypeID(const TypeID& type) const;
00705 
00706 
00710       gnssTypeValue extractTypeID(const TypeIDSet& typeSet) const;
00711 
00712 
00715       gnssTypeValue& keepOnlyTypeID(const TypeID& type);
00716 
00717 
00721       gnssTypeValue& keepOnlyTypeID(const TypeIDSet& typeSet);
00722 
00723 
00726       gnssTypeValue& removeTypeID(const TypeID& type)
00727       { (*this).body.erase(type); return (*this); }
00728 
00729 
00733       gnssTypeValue& removeTypeID(const TypeIDSet& typeSet);
00734 
00735 
00740       double getValue(const TypeID& type) const
00741          throw(TypeIDNotFound)
00742       { return (*this).body.getValue(type); }
00743 
00744 
00747       double& operator()(const TypeID& type)
00748          throw(TypeIDNotFound)
00749       { return (*this).body(type); }
00750 
00751 
00753       virtual ~gnssTypeValue() {};
00754 
00755 
00756    };  // End of 'gnssTypeValue'
00757 
00758 
00759 
00762    struct  gnssSatTypeValue : gnssData<sourceEpochHeader, satTypeValueMap>
00763    {
00764 
00767       size_t numSats() const
00768       { return body.numSats(); };
00769 
00770 
00773       TypeIDSet getTypeID() const
00774       { return (*this).body.getTypeID(); }
00775 
00776 
00778       SatIDSet getSatID() const
00779       { return (*this).body.getSatID(); }
00780 
00781 
00783       Vector<SatID> getVectorOfSatID() const
00784       { return (*this).body.getVectorOfSatID(); }
00785 
00786 
00791       size_t numElements() const
00792       { return body.numElements(); };
00793 
00794 
00797       gnssSatTypeValue extractSatID(const SatID& satellite) const;
00798 
00799 
00804       gnssSatTypeValue extractSatID( const int& p,
00805                                      const SatID::SatelliteSystem& s ) const;
00806 
00807 
00811       gnssSatTypeValue extractSatID(const SatIDSet& satSet) const;
00812 
00813 
00816       gnssSatTypeValue& keepOnlySatID(const SatID& satellite);
00817 
00818 
00822       gnssSatTypeValue& keepOnlySatID( const int& p,
00823                                        const SatID::SatelliteSystem& s );
00824 
00825 
00828       gnssSatTypeValue& keepOnlySatID(const SatIDSet& satSet);
00829 
00830 
00833       gnssSatTypeValue extractTypeID(const TypeID& type) const;
00834 
00835 
00839       gnssSatTypeValue extractTypeID(const TypeIDSet& typeSet) const;
00840 
00841 
00844       gnssSatTypeValue& keepOnlyTypeID(const TypeID& type);
00845 
00846 
00850       gnssSatTypeValue& keepOnlyTypeID(const TypeIDSet& typeSet);
00851 
00852 
00855       gnssSatTypeValue& removeSatID(const SatID& satellite)
00856       { (*this).body.erase(satellite); return (*this); }
00857 
00858 
00862       gnssSatTypeValue& removeSatID(const SatIDSet& satSet);
00863 
00864 
00867       gnssSatTypeValue& removeTypeID(const TypeID& type)
00868       { (*this).body.removeTypeID(type); return (*this); }
00869 
00870 
00874       gnssSatTypeValue& removeTypeID(const TypeIDSet& typeSet);
00875 
00876 
00879       Vector<double> getVectorOfTypeID(const TypeID& type) const
00880       { return ( (*this).body.getVectorOfTypeID(type) ); }
00881 
00882 
00898       gnssSatTypeValue& insertTypeIDVector( const TypeID& type,
00899                                             const Vector<double> dataVector )
00900          throw(NumberOfSatsMismatch)
00901       { (*this).body.insertTypeIDVector(type, dataVector); return (*this); }
00902 
00903 
00923       gnssSatTypeValue& insertMatrix( const TypeIDSet& typeSet,
00924                                       const Matrix<double> dataMatrix )
00925          throw(NumberOfSatsMismatch, NumberOfTypesMismatch)
00926       { (*this).body.insertMatrix(typeSet, dataMatrix); return (*this); }
00927 
00928 
00935       double getValue( const SatID& satellite,
00936                        const TypeID& type ) const
00937          throw( SatIDNotFound, TypeIDNotFound )
00938       { return (*this).body.getValue( satellite, type ); }
00939 
00940 
00988       typeValueMap& operator()(const SatID& satellite)
00989          throw(SatIDNotFound)
00990       { return (*this).body(satellite); }
00991 
00992 
00994       virtual ~gnssSatTypeValue() {};
00995 
00996 
00997    };  // End of 'gnssSatTypeValue'
00998 
00999 
01000 
01003    struct gnssRinex : gnssSatTypeValue
01004    {
01005 
01006 
01008       sourceEpochRinexHeader header;
01009 
01010 
01012       gnssRinex() {};
01013 
01014 
01019       gnssRinex(const gnssSatTypeValue& gds)
01020       { header = gds.header; body = gds.body; };
01021 
01022 
01025       gnssRinex extractSatID(const SatID& satellite) const;
01026 
01027 
01032       gnssRinex extractSatID( const int& p,
01033                               const SatID::SatelliteSystem& s ) const;
01034 
01035 
01039       gnssRinex extractSatID(const SatIDSet& satSet) const;
01040 
01041 
01044       gnssRinex& keepOnlySatID(const SatID& satellite);
01045 
01046 
01050       gnssRinex& keepOnlySatID( const int& p,
01051                                 const SatID::SatelliteSystem& s );
01052 
01053 
01056       gnssRinex& keepOnlySatID(const SatIDSet& satSet);
01057 
01058 
01061       gnssRinex extractTypeID(const TypeID& type) const;
01062 
01063 
01067       gnssRinex extractTypeID(const TypeIDSet& typeSet) const;
01068 
01069 
01072       gnssRinex& keepOnlyTypeID(const TypeID& type);
01073 
01074 
01078       gnssRinex& keepOnlyTypeID(const TypeIDSet& typeSet);
01079 
01080 
01083       gnssRinex& keepOnlySatSystem(const SatID::SatelliteSystem satSys);
01084 
01085 
01086 
01088       virtual ~gnssRinex() {};
01089 
01090 
01091    };  // End of 'gnssRinex'
01092 
01093 
01094 
01096 
01097 
01100    struct sourceDataMap : std::map<SourceID, satTypeValueMap>
01101    {
01102 
01104       sourceDataMap() {};
01105 
01106 
01114       double getValue( const SourceID& source,
01115                        const SatID& satellite,
01116                        const TypeID& type ) const
01117          throw( SourceIDNotFound, SatIDNotFound, TypeIDNotFound );
01118 
01119 
01125       SourceIDSet getSourceIDSet( void ) const;
01126 
01127 
01133       SatIDSet getSatIDSet( void ) const;
01134 
01135 
01137       virtual ~sourceDataMap() {};
01138 
01139 
01140    };    // End of 'sourceDataMap'
01141 
01142 
01143 
01146    struct  gnssDataMap : std::multimap<DayTime, sourceDataMap>
01147    {
01148 
01150       gnssDataMap()
01151          : tolerance(0.1) {};
01152 
01153 
01158       gnssDataMap( double tol )
01159          : tolerance(tol) {};
01160 
01161 
01166       gnssDataMap& addGnssSatTypeValue( const gnssSatTypeValue& gds );
01167 
01168 
01173       gnssDataMap& addGnssRinex( const gnssRinex& gds );
01174 
01175 
01183       gnssRinex getGnssRinex( const SourceID& source ) const;
01184 
01185 
01190       gnssDataMap& addGnssDataMap( const gnssDataMap& gds );
01191 
01192 
01194       gnssDataMap front( void ) const;
01195 
01196 
01198       void pop_front( void );
01199 
01200 
01203       gnssDataMap frontEpoch( void ) const;
01204 
01205 
01209       void pop_front_epoch( void );
01210 
01211 
01213       gnssDataMap back( void ) const;
01214 
01215 
01217       void pop_back( void );
01218 
01219 
01222       gnssDataMap backEpoch( void ) const;
01223 
01224 
01228       void pop_back_epoch( void );
01229 
01230 
01236       gnssDataMap getDataFromEpoch( const DayTime& epoch ) const
01237          throw( DayTimeNotFound );
01238 
01239 
01251       double getValue( const DayTime& epoch,
01252                        const SourceID& source,
01253                        const SatID& satellite,
01254                        const TypeID& type ) const
01255          throw( DayTimeNotFound, ValueNotFound );
01256 
01257 
01268       double getValue( const SourceID& source,
01269                        const SatID& satellite,
01270                        const TypeID& type ) const
01271          throw( ValueNotFound );
01272 
01273 
01283       gnssDataMap& insertValue( const DayTime& epoch,
01284                                 const SourceID& source,
01285                                 const SatID& satellite,
01286                                 const TypeID& type,
01287                                 double value )
01288          throw( DayTimeNotFound, ValueNotFound );
01289 
01290 
01299       gnssDataMap& insertValue( const SourceID& source,
01300                                 const SatID& satellite,
01301                                 const TypeID& type,
01302                                 double value )
01303          throw( ValueNotFound );
01304 
01305 
01311       SourceIDSet getSourceIDSet( void ) const;
01312 
01313 
01319       SatIDSet getSatIDSet( void ) const;
01320 
01321 
01323       double getTolerance( void ) const
01324       { return tolerance; };
01325 
01326 
01331       gnssDataMap& setTolerance( double tol )
01332       { tolerance = std::abs(tol); return (*this); };
01333 
01334 
01336       virtual std::ostream& dump( std::ostream& s,
01337                                   int mode = 0) const;
01338 
01339          
01342       gnssDataMap extractSourceID(const SourceID& source);
01343          
01344 
01348       gnssDataMap extractSourceID(const SourceIDSet& sourceSet);
01349 
01350 
01353       gnssDataMap& keepOnlySourceID(const SourceID& source);
01354 
01355 
01359       gnssDataMap& keepOnlySourceID(const SourceIDSet& sourceSet);
01360 
01361 
01364       gnssDataMap& removeSourceID(const SourceID& source);
01365 
01366 
01370       gnssDataMap& removeSourceID(const SourceIDSet& sourceSet);
01371 
01372 
01375       gnssDataMap extractSatID(const SatID& sat);
01376 
01377 
01381       gnssDataMap extractSatID(const SatIDSet& satSet);
01382 
01383 
01386       gnssDataMap& keepOnlySatID(const SatID& sat);
01387 
01388 
01392       gnssDataMap& keepOnlySatID(const SatIDSet& satSet);
01393 
01394 
01397       gnssDataMap& removeSatID(const SatID& sat);
01398 
01399 
01403       gnssDataMap& removeSatID(const SatIDSet& satSet);
01404 
01405 
01408       gnssDataMap extractTypeID(const TypeID& type);
01409 
01410 
01414       gnssDataMap extractTypeID(const TypeIDSet& typeSet);
01415 
01416 
01419       gnssDataMap& keepOnlyTypeID(const TypeID& type);
01420 
01421 
01425       gnssDataMap& keepOnlyTypeID(const TypeIDSet& typeSet);
01426 
01427 
01430       gnssDataMap& removeTypeID(const TypeID& type);
01431 
01432 
01436       gnssDataMap& removeTypeID(const TypeIDSet& typeSet);
01437 
01438 
01445       virtual gnssDataMap& edit(DayTime tmin, 
01446                                 DayTime tmax = DayTime(DayTime::END_OF_TIME));
01447 
01449       void loadObsFile(std::string obsFile);
01450 
01451 
01453       double tolerance;
01454 
01455 
01457       virtual ~gnssDataMap() {};
01458 
01459 
01460    };    // End of 'gnssDataMap'
01461 
01462 
01463 
01465    std::ostream& operator<<( std::ostream& s,
01466                              const gnssDataMap& gdsMap);
01467 
01468 
01469 
01472    struct  gnssEquationDefinition : gnssData<TypeID, TypeIDSet>
01473    {
01474 
01476       gnssEquationDefinition() {};
01477 
01478 
01480       gnssEquationDefinition( const TypeID& h,
01481                               const TypeIDSet& b )
01482       {
01483          header = h;
01484          body   = b;
01485       }
01486 
01487 
01489       virtual ~gnssEquationDefinition() {};
01490 
01491 
01492    };  // End of 'gnssEquationDefinition'
01493 
01494 
01495 
01499    struct  gnssLinearCombination : gnssData<TypeID, typeValueMap>
01500    {
01501 
01503       gnssLinearCombination() {};
01504 
01505 
01507       gnssLinearCombination( const TypeID& h,
01508                              const typeValueMap& b )
01509       {
01510          header = h;
01511          body   = b;
01512       }
01513 
01514 
01516       virtual ~gnssLinearCombination() {};
01517 
01518 
01519    };  // End of 'gnssLinearCombination'
01520 
01521 
01523    typedef std::list<gnssLinearCombination> LinearCombList;
01524 
01525 
01526 
01530    std::istream& operator>>( std::istream& i,
01531                              gnssSatTypeValue& f )
01532       throw(FFStreamError, gpstk::StringUtils::StringException);
01533 
01534 
01538    gnssSatTypeValue& operator>>( const RinexObsHeader& roh,
01539                                  gnssSatTypeValue& f );
01540 
01541 
01545    gnssSatTypeValue& operator>>( const RinexObsData& rod,
01546                                  gnssSatTypeValue& f );
01547 
01548 
01552    gnssRinex& operator>>( const RinexObsHeader& roh,
01553                           gnssRinex& f );
01554 
01555 
01559    gnssRinex& operator>>( const RinexObsData& rod,
01560                           gnssRinex& f );
01561 
01562 
01565    SourceID::SourceType SatIDsystem2SourceIDtype(const SatID& sid);
01566 
01567 
01570    typeValueMap FilltypeValueMapwithRinexObsTypeMap(
01571                                  const RinexObsData::RinexObsTypeMap& otmap );
01572 
01573 
01577    satTypeValueMap FillsatTypeValueMapwithRinexObsData(
01578                                                    const RinexObsData& rod );
01579 
01580 
01602    std::istream& operator>>( std::istream& i,
01603                              gnssRinex& f )
01604       throw(FFStreamError, gpstk::StringUtils::StringException);
01605 
01606 
01638    std::ostream& operator<<( std::ostream& s,
01639                              gnssRinex& f )
01640       throw(FFStreamError, gpstk::StringUtils::StringException);
01641 
01642 
01649    DayTime parseTime( const std::string& line,
01650                       const RinexObsHeader& hdr )
01651       throw(FFStreamError);
01652 
01653 
01655 
01656 }  // End of namespace gpstk
01657 
01658 #endif // GPSTK_DATASTRUCTURES_HPP

Generated on Wed Feb 8 03:30:58 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1