00001 #pragma ident "$Id: ModelObs.hpp 1312 2008-07-24 18:15:26Z architest $"
00002
00009 #ifndef MODELOBS_HPP
00010 #define MODELOBS_HPP
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #include "ModelObsFixedStation.hpp"
00037 #include "Bancroft.hpp"
00038 #include "PRSolution.hpp"
00039
00040 namespace gpstk
00041 {
00042
00045
00116 class ModelObs : public ModelObsFixedStation
00117 {
00118 public:
00119
00121 ModelObs() : modelPrepared(false)
00122 { setIndex(); };
00123
00124
00138 ModelObs( const Position& RxCoordinates,
00139 IonoModelStore& dIonoModel,
00140 TropModel& dTropoModel,
00141 XvtStore<SatID>& dEphemeris,
00142 const TypeID& dObservable,
00143 bool usetgd = true );
00144
00145
00159 ModelObs( const Position& RxCoordinates,
00160 IonoModelStore& dIonoModel,
00161 XvtStore<SatID>& dEphemeris,
00162 const TypeID& dObservable,
00163 bool usetgd = true );
00164
00165
00179 ModelObs( const Position& RxCoordinates,
00180 TropModel& dTropoModel,
00181 XvtStore<SatID>& dEphemeris,
00182 const TypeID& dObservable,
00183 bool usetgd = true );
00184
00185
00198 ModelObs( const Position& RxCoordinates,
00199 XvtStore<SatID>& dEphemeris,
00200 const TypeID& dObservable,
00201 bool usetgd = true );
00202
00203
00215 ModelObs( IonoModelStore& dIonoModel,
00216 TropModel& dTropoModel,
00217 XvtStore<SatID>& dEphemeris,
00218 const TypeID& dObservable,
00219 bool usetgd = true );
00220
00221
00232 ModelObs( IonoModelStore& dIonoModel,
00233 XvtStore<SatID>& dEphemeris,
00234 const TypeID& dObservable,
00235 bool usetgd = true );
00236
00237
00248 ModelObs( TropModel& dTropoModel,
00249 XvtStore<SatID>& dEphemeris,
00250 const TypeID& dObservable,
00251 bool usetgd = true );
00252
00253
00267 virtual int Prepare( const DayTime& Tr,
00268 std::vector<SatID>& Satellite,
00269 std::vector<double>& Pseudorange,
00270 const XvtStore<SatID>& Eph );
00271
00272
00283 virtual int Prepare( const DayTime& time,
00284 const satTypeValueMap& data );
00285
00286
00296 virtual int Prepare(const gnssSatTypeValue& gData)
00297 { return (Prepare(gData.header.epoch, gData.body)); };
00298
00299
00306 virtual int Prepare( const double& aRx,
00307 const double& bRx,
00308 const double& cRx,
00309 Position::CoordinateSystem s = Position::Cartesian,
00310 GeoidModel *geoid = NULL );
00311
00312
00319 virtual int Prepare(const Position& RxCoordinates);
00320
00321
00328 virtual satTypeValueMap& Process( const DayTime& time,
00329 satTypeValueMap& gData )
00330 throw(ProcessingException);
00331
00332
00334 inline bool getModelPrepared() const
00335 { return modelPrepared; };
00336
00337
00343 inline ModelObs& setModelPrepared(const bool& prepare)
00344 { modelPrepared = prepare; return (*this); };
00345
00346
00348 virtual int getIndex(void) const;
00349
00350
00352 virtual std::string getClassName(void) const;
00353
00354
00356 virtual ~ModelObs() {};
00357
00358
00359 protected:
00360
00361
00362 bool modelPrepared;
00363
00364
00365 private:
00366
00367
00369 static int classIndex;
00370
00371
00373 int index;
00374
00375
00377 void setIndex(void)
00378 { index = classIndex++; };
00379
00380
00381 };
00382
00384
00385 }
00386 #endif // MODELOBS_HPP