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

📄 modeledreferencepr.hpp

📁 gps源代码
💻 HPP
📖 第 1 页 / 共 2 页
字号:
         * @param pTropModel    Pointer to tropospheric model to be used. By default points to NULL.         * @param pIonoModel    Pointer to ionospheric model to be used. By default points to NULL.         * @param extraBiases   Extra bias to be added to the model.         *         * @return         *  1 if satellite has valid data         *         * @sa TropModel.hpp, IonoModelStore.hpp.         */        int Compute(const DayTime& Tr, SatID& Satellite, double& Pseudorange,            const EphemerisStore& Eph, const double& extraBiases, TropModel *pTropModel=NULL,            IonoModelStore *pIonoModel=NULL) 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& processModel(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& processModel(gnssSatTypeValue& gData) throw(Exception)        {            (*this).processModel(gData.header.epoch, gData.body);            return gData;        };        /** Returns a gnnsRinex object, adding the new data generated when calling a modeling object.         *         * @param gData    Data object holding the data.         */        virtual gnssRinex& processModel(gnssRinex& gData) throw(Exception)        {            (*this).processModel(gData.header.epoch, gData.body);            return gData;        };        /// Boolean variable indicating if SV instrumental delays (TGD) will be included  in results. It is true by default.        bool useTGD;        /// Method to get satellite elevation cut-off angle. By default, it is set to 10 degrees.        virtual double getMinElev() const        {           return minElev;        };        /// Method to set satellite elevation cut-off angle. By default, it is set to 10 degrees.        virtual void setMinElev(double newElevation)        {           minElev = newElevation;        };        /** Method to set the default ionospheric model.         * @param dIonoModel    Ionospheric model to be used by default.         */        virtual void setDefaultIonoModel(IonoModelStore& dIonoModel)        {           pDefaultIonoModel = &dIonoModel;        };        /** Method to get a pointer to the default ionospheric model.         */        virtual IonoModelStore* getDefaultIonoModel() const        {           return pDefaultIonoModel;        };        /// Method to set a NULL ionospheric model.        virtual void setNULLIonoModel()        {           pDefaultIonoModel = NULL;        };        /** Method to set the default tropospheric model.         * @param dTropoModel    Tropospheric model to be used by default.         */        virtual void setDefaultTropoModel(TropModel& dTropoModel)        {           pDefaultTropoModel = &dTropoModel;        };        /** Method to get a pointer to the default tropospheric model.         */        virtual TropModel* getDefaultTropoModel() const        {           return pDefaultTropoModel;        };        /// Method to set a NULL tropospheric model.        virtual void setNULLTropoModel()        {           pDefaultTropoModel = NULL;        };        /** Method to set the default extra biases.         * @param eBiases    Vector with the default extra biases         */        virtual void setDefaultExtraBiases(Vector<double>& eBiases)        {           extraBiases = eBiases;        };        /** Method to set the default observable to be used when fed with GNSS data structures.         * @param type      TypeID object to be used by default         */        virtual void setDefaultObservable(const TypeID& type)        {           defaultObservable = type;        };        /// Method to get the default observable being used with GNSS data structures.        virtual TypeID getDefaultObservable() const        {           return defaultObservable;        };        /** Method to set the default EphemerisStore to be used with GNSS data structures.         * @param ephem     EphemerisStore object to be used by default         */        virtual void setDefaultEphemeris(EphemerisStore& ephem)        {           pDefaultEphemeris = &ephem;        };        /** Method to get a pointer to the default EphemerisStore to be used with GNSS data structures.         */        virtual EphemerisStore* getDefaultEphemeris() const        {           return pDefaultEphemeris;        };        /// Destructor.        virtual ~ModeledReferencePR() throw() {};    protected:        /// Pointer to default ionospheric model.        IonoModelStore *pDefaultIonoModel;        /// Pointer to default tropospheric model.        TropModel *pDefaultTropoModel;        /// Default observable to be used when fed with GNSS data structures.        TypeID defaultObservable;        /// Pointer to default EphemerisStore object when working with GNSS data structures.        EphemerisStore* pDefaultEphemeris;        /// Initialization method        virtual void InitializeValues() throw(Exception) {             setInitialRxPosition();            geometricRho(0);            svClockBiases(0);            svXvt(0);            svTGD(0);            svRelativity(0);            ionoCorrections(0);            tropoCorrections(0);            modeledPseudoranges(0);            prefitResiduals(0);            extraBiases(0);            availableSV(0);            rejectedSV(0);        };        /** Method to set the initial (a priori) position of receiver.         * @return         *  0 if OK         *  -1 if problems arose         */        virtual int setInitialRxPosition(const double& aRx, const double& bRx, const double& cRx,             Position::CoordinateSystem s=Position::Cartesian,            GeoidModel *geoid=NULL) throw(GeometryException)         {            try {                Position rxpos(aRx, bRx, cRx, s, geoid);                setInitialRxPosition(rxpos);                return 0;            }            catch(GeometryException& e) {                return -1;            }        };        /// Method to set the initial (a priori) position of receiver.        virtual int setInitialRxPosition(const Position& RxCoordinates) throw(GeometryException)         {            try {                (*this).rxPos = RxCoordinates;                return 0;            }            catch(GeometryException& e) {                return -1;            }        };        /// Method to set the initial (a priori) position of receiver.        virtual int setInitialRxPosition() throw(GeometryException)         {            try {                Position rxpos(0.0, 0.0, 0.0, Position::Cartesian, NULL);                setInitialRxPosition(rxpos);                return 0;            }            catch(GeometryException& e) {                return -1;            }        };        /// Method to get the tropospheric corrections.        virtual double getTropoCorrections(TropModel *pTropModel, double elevation) throw()         {            double tropoCorr(0.0);            try {                tropoCorr = pTropModel->correction(elevation);                // Check validity                if(!(pTropModel->isValid())) tropoCorr = 0.0;            }            catch(TropModel::InvalidTropModel& e) {                tropoCorr = 0.0;            }            return tropoCorr;        };        /// Method to get the ionospheric corrections.        virtual double getIonoCorrections(IonoModelStore *pIonoModel, DayTime Tr, Geodetic rxGeo, double elevation, double azimuth) throw()         {            double ionoCorr(0.0);            try {                ionoCorr = pIonoModel->getCorrection(Tr, rxGeo, elevation, azimuth);            }            catch(IonoModelStore::NoIonoModelFound& e) {                ionoCorr = 0.0;            }            return ionoCorr;        };        /// Method to get TGD corrections.        virtual double getTGDCorrections(DayTime Tr, const EphemerisStore& Eph, SatID sat) throw()         {            double TGDCorr(0.0);            try {                TGDCorr = (Eph.getTGD(sat, Tr));            }            catch(EphemerisStore::NoTGDFound& e) {                TGDCorr = 0.0;            }            return TGDCorr;        };    }; // class ModeledReferencePR    /// Input operator from gnssSatTypeValue to ModeledReferencePR.    inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, ModeledReferencePR& modRefPR) throw(Exception)    {            modRefPR.processModel(gData);            return gData;    }    /// Input operator from gnssRinex to ModeledReferencePR.    inline gnssRinex& operator>>(gnssRinex& gData, ModeledReferencePR& modRefPR) throw(Exception)    {            modRefPR.processModel(gData);            return gData;    }   //@}} // namespace#endif

⌨️ 快捷键说明

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