⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rinexobsdata.hpp

📁 一个gps小工具包
💻 HPP
字号:
#pragma ident "$Id: RinexObsData.hpp 297 2006-11-11 10:13:33Z architest $"//============================================================================////  This file is part of GPSTk, the GPS Toolkit.////  The GPSTk is free software; you can redistribute it and/or modify//  it under the terms of the GNU Lesser General Public License as published//  by the Free Software Foundation; either version 2.1 of the License, or//  any later version.////  The GPSTk is distributed in the hope that it will be useful,//  but WITHOUT ANY WARRANTY; without even the implied warranty of//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the//  GNU Lesser General Public License for more details.////  You should have received a copy of the GNU Lesser General Public//  License along with GPSTk; if not, write to the Free Software Foundation,//  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA//  //  Copyright 2004, The University of Texas at Austin////============================================================================//============================================================================////This software developed by Applied Research Laboratories at the University of//Texas at Austin, under contract to an agency or agencies within the U.S. //Department of Defense. The U.S. Government retains all rights to use,//duplicate, distribute, disclose, or release this software. ////Pursuant to DoD Directive 523024 //// DISTRIBUTION STATEMENT A: This software has been approved for public //                           release, distribution is unlimited.////=============================================================================/** * @file RinexObsData.hpp * Encapsulate RINEX observation file data, including I/O */#ifndef RINEXOBSDATA_HPP#define RINEXOBSDATA_HPP#include <vector>#include <list>#include <map>#include "DayTime.hpp"#include "FFStream.hpp"#include "RinexObsBase.hpp"#include "RinexObsHeader.hpp"namespace gpstk{   /** @addtogroup RinexObs */   //@{      /**       * This class models a RINEX Observation Data Record.       *       * @sa gpstk::RinexObsStream and gpstk::RinexObsHeader.       * @sa rinex_obs_test.cpp and rinex_obs_read_write.cpp for examples.       */      class RinexObsData : public RinexObsBase   {   public:         /// A structure used to store a single RINEX Data point.      struct RinexDatum      {         RinexDatum() : data(0), lli(0), ssi(0) {}         double data;  ///< The actual data point.         short lli;    ///< See the RINEX Spec. for an explanation.         short ssi;    ///< See the RINEX Spec. for an explanation.      };               /// map from RinexObsType to RinexDatum.      typedef std::map<RinexObsHeader::RinexObsType, RinexDatum> RinexObsTypeMap;         /// map from SatID to RinexObsTypeMap.      typedef std::map<SatID, RinexObsTypeMap> RinexSatMap;      gpstk::DayTime time;    ///< the time corresponding to the observations        /** Epoch flag has the following values         * 0 ok         * 1 power failure since previous epoch         * 2 start moving antenna         * 3 new site occupation (end moving antenna)         *   at least MARKER NAME header record follows         * 4 header records follow         * 5 external event         * 6 cycle slip record - same format as observation, but slips not data,         *   and LLI and SSI are blank         */      short epochFlag;         /** number of satellites in this observation, except when epochFlag = 2-5,          * then the number of auxiliary header records to follow.          */      short numSvs;      double clockOffset;      ///< optional clock offset      RinexSatMap obs;         ///< the map of observations      RinexObsHeader auxHeader;///< auxiliary header records (epochFlag 2-5)         /// Constructor.      RinexObsData() : time(gpstk::DayTime::BEGINNING_OF_TIME){}         /// Destructor      virtual ~RinexObsData() {}         // The next four lines is our common interface         /// RinexObsData is a "data", so this function always returns true.      virtual bool isData() const {return true;}         /**          * A Debug output function.          * Dumps the time of observations and the IDs of the Sats          * in the map.          */      virtual void dump(std::ostream& s) const;   protected:         /**          * Writes a correctly formatted record from this data to stream \a s.          * When printing comment records, you'll need to format them correctly          * yourself.  This means making sure that "COMMENT" is at the end          * of the line and that they're the correct length (<= 80 chrs).          * Also make sure to correctly set the epochFlag to the correct          * number for the type of header data you want to write.          */      virtual void reallyPutRecord(FFStream& s) const          throw(std::exception, FFStreamError,               gpstk::StringUtils::StringException);           /**          * This functions obtains a RINEX Observation record from the given           * FFStream.          * If there is an error in reading from the stream, it is reset          * to its original position and its fail-bit is set.          * Because of the Rinex Obs format, a RinexObsData record returned          * might not have data in it.  Check the RinexSatMap for empty()          * before using any data in it.          * @throws StringException when a StringUtils function fails          * @throws FFStreamError when exceptions(failbit) is set and          *  a read or formatting error occurs.  This also resets the          *  stream to its pre-read position.          */      virtual void reallyGetRecord(FFStream& s)          throw(std::exception, FFStreamError,               gpstk::StringUtils::StringException);   private:         /// Writes the daytime object into RINEX format. If it's a bad time,         /// it will return blanks.      std::string writeTime(const DayTime& dt) const         throw(gpstk::StringUtils::StringException);         /**          * This function constructs a DayTime object from the given parameters.          * @param line the encoded time string found in the RINEX record.          * @param hdr the RINEX Observation Header object for the current RINEX file.          */      DayTime parseTime(const std::string& line, const RinexObsHeader& hdr) const         throw(FFStreamError);   }; // class RinexObsData   //@}} // namespace#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -