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

📄 modelobsfixedstation.hpp

📁 一个gps小工具包
💻 HPP
📖 第 1 页 / 共 2 页
字号:
#pragma ident "$Id: $"/** * @file ModelObsFixedStation.hpp * This is a class to compute modeled (corrected) observations from a * reference station (whose position is known), using GNSS data structures. */#ifndef MODELOBSFIXEDSTATION_HPP#define MODELOBSFIXEDSTATION_HPP//============================================================================////  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//  //  Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007////============================================================================#include "ProcessingClass.hpp"#include "EphemerisRange.hpp"#include "EngEphemeris.hpp"#include "XvtStore.hpp"#include "GPSEphemerisStore.hpp"#include "TropModel.hpp"#include "IonoModelStore.hpp"namespace gpstk{      /** @addtogroup GPSsolutions */      //@{      /** This class computes modeled (corrected) observations from a       *  reference station (whose position is known), using GNSS data       *  structures (GDS).       *       * A typical way to use this class follows:       *       * @code       *   // Input observation file stream       *   RinexObsStream rin("ebre0300.02o");       *   // Reference position of receiver station       *   Position nominalPos(4833520.2269, 41537.00768, 4147461.489);       *       *   // Some more code and definitions here...       *       *   gnssRinex gRin;  // GNSS data structure for fixed station data       *       *   // Set defaults of models. A typical C1-based modeling is used       *   ModelObsFixedStation model( nominalPos,       *                               ionoStore,       *                               mopsTM,       *                               bceStore,       *                               TypeID::C1,       *                               true );       *       *   while(rin >> gRin)       *   {       *       *         // Apply the model on the GDS       *      gRin >> model;       *   }       *       * @endcode       *       * The "ModelObsFixedStation" object will visit every satellite in       * the GNSS data structure that is "gRin" and will try to compute       * its model: Prefit residual, geometric distance, relativity delay,       * ionospheric/tropospheric corrections, geometry matrix, etc.       *       * When used with the ">>" operator, this class returns the same       * incoming data structure with the extra data inserted along their       * corresponding satellites. Be warned that if a given satellite does       * not have the observations required, it will be summarily deleted       * from the data structure.       *       * @sa ModelObs.hpp for modeling data from a moving receiver.       *       */   class ModelObsFixedStation : public ProcessingClass   {   public:         /// Default constructor. Models C1 observations, use TGD,         /// but doesn't apply atmospheric models      ModelObsFixedStation()         throw(Exception)         : minElev(10.0), useTGD(true), pDefaultIonoModel(NULL),           pDefaultTropoModel(NULL), defaultObservable(TypeID::C1),           pDefaultEphemeris(NULL)      { InitializeValues(); setIndex(); };         /** Explicit constructor taking as input reference           *  station coordinates.          *          * Those coordinates may be Cartesian (X, Y, Z in meters) or Geodetic          * (Latitude, Longitude, Altitude), but defaults to Cartesian.           *          * Also, a pointer to GeoidModel may be specified, but default is          * NULL (in which case WGS84 values will be used).          *          * @param aRx   first coordinate [ X(m), or latitude (degrees N) ]          * @param bRx   second coordinate [ Y(m), or longitude (degrees E) ]          * @param cRx   third coordinate [ Z, height above ellipsoid or           *              radius, in meters ]          * @param s     coordinate system (default is Cartesian, may be set          *              to Geodetic).          * @param geoid pointer to GeoidModel (default is null, implies WGS84)          */      ModelObsFixedStation( const double& aRx,                            const double& bRx,                            const double& cRx,                             Position::CoordinateSystem s = Position::Cartesian,                            GeoidModel *geoid = NULL )         throw(Exception);         /// Explicit constructor, taking as input a Position object         /// containing reference station coordinates.      ModelObsFixedStation(const Position& RxCoordinates)         throw(Exception);         /** Explicit constructor, taking as input reference station          *  coordinates, default ionospheric and tropospheric models,          *  ephemeris to be used, default observable and whether TGD will          *  be computed or not.          *          * @param RxCoordinates Reference station coordinates.          * @param dIonoModel    Ionospheric model to be used by default.          * @param dTropoModel   Tropospheric model to be used by default.          * @param dEphemeris    EphemerisStore object to be used by default.          * @param dObservable   Observable type to be used by default.          * @param usetgd        Whether TGD will be used by default or not.          *          */      ModelObsFixedStation( const Position& RxCoordinates,                            IonoModelStore& dIonoModel,                            TropModel& dTropoModel,                            XvtStore<SatID>& dEphemeris,                            const TypeID& dObservable,                            bool usetgd = true )         throw(Exception);         /** Explicit constructor, taking as input reference station          *  coordinates, default ionospheric model, ephemeris to be used,          *  default observable and whether TGD will be computed or not.          *          * The default tropospheric model will be set to NULL.          *          * @param RxCoordinates Reference station coordinates.          * @param dIonoModel    Ionospheric model to be used by default.          * @param dEphemeris    EphemerisStore object to be used by default.          * @param dObservable   Observable type to be used by default.          * @param usetgd        Whether TGD will be used by default or not.          *          */      ModelObsFixedStation( const Position& RxCoordinates,                            IonoModelStore& dIonoModel,                            XvtStore<SatID>& dEphemeris,                            const TypeID& dObservable,                            bool usetgd = true )         throw(Exception);         /** Explicit constructor, taking as input reference station          *  coordinates, default tropospheric model, ephemeris to be used,          *  default observable and whether TGD will be computed or not.          *          * The default ionospheric model will be set to NULL.          *          * @param RxCoordinates Reference station coordinates.          * @param dTropoModel   Tropospheric model to be used by default.          * @param dEphemeris    EphemerisStore object to be used by default.          * @param dObservable   Observable type to be used by default.          * @param usetgd        Whether TGD will be used by default or not.          *          */      ModelObsFixedStation( const Position& RxCoordinates,                            TropModel& dTropoModel,                             XvtStore<SatID>& dEphemeris,                            const TypeID& dObservable,                            bool usetgd = true )         throw(Exception);         /** Explicit constructor, taking as input reference station          *  coordinates, ephemeris to be used, default observable and whether          *  TGD will be computed or not.          *          * Both the tropospheric and ionospheric models will be set to NULL.          *          * @param RxCoordinates Reference station coordinates.          * @param dEphemeris    EphemerisStore object to be used by default.          * @param dObservable   Observable type to be used by default.          * @param usetgd        Whether TGD will be used by default or not.          *          */      ModelObsFixedStation( const Position& RxCoordinates,                            XvtStore<SatID>& dEphemeris,                            const TypeID& dObservable,                            bool usetgd = true)         throw(Exception);         /** Returns a satTypeValueMap object, adding the new data generated          *  when calling a modeling object.          *          * @param time      Epoch.          * @param gData     Data object holding the data.          */      virtual satTypeValueMap& Process( const DayTime& time,                                        satTypeValueMap& gData )         throw(Exception);         /** Returns a gnnsSatTypeValue object, adding the new data generated          *  when calling a modeling object.          *          * @param gData    Data object holding the data.          */      virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)         throw(Exception)      { Process(gData.header.epoch, gData.body); return gData; };

⌨️ 快捷键说明

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