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

📄 rinex.h

📁 这是用于生成GPS星空图的一个c++程序
💻 H
📖 第 1 页 / 共 3 页
字号:
                                           //   - MARKER NUMBER      string      observerName;            // Name of observer.                                           //   - OBSERVER / AGENCY      string      observerAgency;          // Name of observing agency.                                           //   - OBSERVER / AGENCY      string      receiverNumber;          // Receiver identification number.                                           //   - REC # / TYPE / VERS      string      receiverType;            // Receiver type code                                           //   - REC # / TYPE / VERS      string      receiverFirmwareVersion; // Receiver firmware version.                                           //   - REC # / TYPE / VERS      string      antennaNumber;           // Antenna number.                                           //   - ANT # / TYPE      string      antennaType;             // Antenna type.                                           //   - ANT # / TYPE      double      approxX;                 // Approximate position, X coord.                                           //   - APPROX POSITION XYZ      double      approxY;                 // Approximate position, Y coord.                                           //   - APPROX POSITION XYZ      double      approxZ;                 // Approximate position, Z coord.                                           //   - APPROX POSITION XYZ      double      antennaDeltaH;           // Height of antenna above marker                                           //   - ANTENNA: DELTA H/E/N      double      antennaDeltaE;           // East Eccen. of ant w.r.t. mark,                                           //   - ANTENNA: DELTA H/E/N      double      antennaDeltaN;           // North Eccen. of ant w.r.t. mark,                                           //   - ANTENNA: DELTA H/E/N      unsigned short defWaveLenFactorL1;   // Default Wavelength factor of L1                                           //   - WAVELENGTH FACT L1/2      unsigned short defWaveLenFactorL2;   // Default Wavelength factor of L2                                           //   - WAVELENGTH FACT L1/2      unsigned short numWaveLenPRN;        // # PRNs in all Wavelength records                                           //   - WAVELENGTH FACT L1/2      unsigned short numWaveLenRecords;    // # Wavelength factor records                                           //   - WAVELENGTH FACT L1/2      // Wavelength factor records.      OneWaveLenRec     allWaveLenRecords[ MAXPRNID ];      unsigned short    numObsTypes;                // # observation types                                                    // - # / TYPES  OF OBSERV      enum OBSTYPE      obsTypeList[ MAXOBSTYPES ]; // List of obs types                                                    // - # / TYPES  OF OBSERV      float             obsInterval;                // Obs time interval sec.                                                    //  - INTERVAL      YMDHMS            firstObs;                   // Date & time of first obs                                                    //  - TIME OF FIRST OBS      string            firstObsTimeSystem;         // system for mixed GPS+GLO      YMDHMS            lastObs;                    // Date & time of last obs                                                    //  - TIME OF LAST OBS      string            lastObsTimeSystem;          // system for mixed GPS+GLO      unsigned short     numberLeapSec;      unsigned short     rcvrClockApplied;      unsigned short    numberOfSat;                // # satellites in data.                                                    //  - # OF SATELLITES      ObsCountForPRN    satObsTypeList[MAXPRNID];      unsigned short    nextSat;            // index for satObsTypeList      unsigned int         numberObsEpochs;      static unsigned int  numberObsFiles;  // # Obs Files instantiated      void initializeData();      bool validHeaderRecord(string inputRec);      bool validEventFlagRecord(string inputRec);      bool validObservationsRecord(string inputRec);   };//======================== RinexNavFile Class =============================   class RinexNavFile : public RinexFile   {    public:    //Constructors    RinexNavFile();    RinexNavFile(string pathFilename, ios::openmode mode);    // Destructor    ~RinexNavFile();    // Initializers    bool setA0(double input);    bool setA1(double input);    bool setA2(double input);    bool setA3(double input);    bool setB0(double input);    bool setB1(double input);    bool setB2(double input);    bool setB3(double input);    bool setUtcA0(double input);    bool setUtcA1(double input);    bool setUtcRefTime(long input);    bool setUtcRefWeek(long input);    bool setLeapSec(unsigned short input);    void incrementNumberPRNBlocks(unsigned int n);    unsigned short readHeader();    unsigned short readPRNBlock(PRNBlock &prnBlock);    // Selectors    double               getA0();    double               getA1();    double               getA2();    double               getA3();    double               getB0();    double               getB1();    double               getB2();    double               getB3();    double               getUtcA0();    double               getUtcA1();    long                 getUtcRefTime();    long                 getUtcRefWeek();    unsigned short       getLeapSec();    unsigned int         getNumberPRNBlocks();    static unsigned int  getNavFilesCount();    void                 writeHeaderImage( ofstream &outputStream );    void                 writePRNBlock( ofstream &outputStream,                                        PRNBlock &outputPRNBlock );    private:      RecStruct   headerRecs[MAXNAVHEADERRECTYPES];      double      a0;                      // Ionosphere parameters:      double      a1;                      // A0 to A3 of almanac      double      a2;                      // (page 18 of subframe 4)      double      a3;      double      b0;                      // Ionosphere parameters:      double      b1;                      // B0 to B3 of almanac      double      b2;      double      b3;      double      utcA0;                   // parameters to compute UTC time:      double      utcA1;                   // A0,A1 terms of polynomial      long        utcRefTime;              // T : ref.time for UTC data      long        utcRefWeek;              // W : UTC ref. week number      unsigned short       leapSec;        // Delta time due to leap seconds      unsigned int         numberPRNBlocks;      static unsigned int  numberNavFiles; // # Nav Files instantiated      void initializeData();      bool validHeaderRecord(string inputRec); };//======================== GlonassNavFile Class =============================   class GlonassNavFile : public RinexFile   {    public:    //Constructors    GlonassNavFile();    GlonassNavFile(string pathFilename, ios::openmode mode);    // Destructor    ~GlonassNavFile();    // Initializers    bool setRefTimeYear(unsigned short input);       bool setRefTimeMonth(unsigned short input);     bool setRefTimeDay(unsigned short input);      bool setTimeScaleCorr(double input);    bool setLeapSec(unsigned short input);    void incrementNumberEphemEpochs(unsigned int n);    unsigned short readHeader();    unsigned short readEphemEpoch(GlonassEphemEpoch &navEpoch);    // Selectors    unsigned short       getRefTimeYear();       unsigned short       getRefTimeMonth();     unsigned short       getRefTimeDay();      double               getTimeScaleCorr();    unsigned short       getLeapSec();    unsigned int         getNumberEpochs();    static unsigned int  getFilesCount();    void                 writeHeaderImage( ofstream &outputStream );    void                 writeEphemEpoch( ofstream &outputStream,                                   GlonassEphemEpoch &navEpoch );    private:      RecStruct        headerRecs[MAXNAVHEADERRECTYPES];      unsigned short   refTimeYear;        // Time of reference for system       unsigned short   refTimeMonth;       // time correction      unsigned short   refTimeDay;         // (year, month, day).      double           timeScaleCorr;      // Correct GLONASS system time to                                            // UTC(SU)  (-TauC).      unsigned short       leapSec;        // Leap seconds since 6-Jan-1980      unsigned int         numberEpochs;   // # epochs in the Nav File      static unsigned int  numberFiles;    // # GLONASS Nav Files instantiated      void initializeData();      bool validHeaderRecord(string inputRec); };//===================== GeostationaryNavFile Class ===========================   class GeostationaryNavFile : public RinexFile   {    public:    //Constructors    GeostationaryNavFile();    GeostationaryNavFile(string pathFilename, ios::openmode mode);    // Destructor    ~GeostationaryNavFile();    // Initializers    bool setRefTimeYear(unsigned short input);       bool setRefTimeMonth(unsigned short input);     bool setRefTimeDay(unsigned short input);      bool setCorrToUTC(double input);    bool setLeapSec(unsigned short input);    void incrementNumberEphemEpochs(unsigned int n);    unsigned short readHeader();    unsigned short readEphemEpoch(GeostationaryEphemEpoch &navEpoch);    // Selectors    unsigned short       getRefTimeYear();       unsigned short       getRefTimeMonth();     unsigned short       getRefTimeDay();      double               getCorrToUTC();    unsigned short       getLeapSec();    unsigned int         getNumberEpochs();    static unsigned int  getFilesCount();    void                 writeHeaderImage( ofstream &outputStream );    void                 writeEphemEpoch( ofstream &outputStream,                                GeostationaryEphemEpoch &navEpoch );    private:      RecStruct        headerRecs[MAXNAVHEADERRECTYPES];      unsigned short   refTimeYear;        // Time of reference for system       unsigned short   refTimeMonth;       // time correction      unsigned short   refTimeDay;         // (year, month, day).      double           corrToUTC;          // Correct GEO system time to UTC      unsigned short       leapSec;        // Leap seconds since 6-Jan-1980      unsigned int         numberEpochs;   // # epochs in the Nav File      static unsigned int  numberFiles;    // # GLONASS Nav Files instantiated      void initializeData();      bool validHeaderRecord(string inputRec); };//======================== RinexMetFile Class =============================   class RinexMetFile : public RinexFile   {    public:    //Constructors    RinexMetFile();    RinexMetFile(string pathFilename, ios::openmode mode);    // Destructor    ~RinexMetFile();    // Initializers    bool setMarkerName(string input);    bool setMarkerNumber(string input);    bool setNumMetTypes(unsigned short input);    bool setObsTypeListElement(enum METTYPE input, int i);    bool setSensorModAccurElement(SensorInfo input, int i);    bool setSensorXYZhElement(SensorPosition input, int i);    void incrementNumberMetEpochs(unsigned int n);    unsigned short readHeader();    void initEpochInfo( MetEpoch &epoch);    unsigned short readEpoch( MetEpoch &epoch);    // Selectors    string getMarkerName();    string getMarkerNumber();    unsigned short getNumMetTypes();    enum METTYPE getObsTypeListElement(int i);    SensorInfo getSensorModAccurElement(int i);    SensorPosition getSensorXYZhElement(int i);    unsigned int         getNumberMetEpochs();    static unsigned int  getMetFilesCount();    void writeHeaderImage( ofstream &outputStream );    void writeEpoch( ofstream &outputStream,                        MetEpoch &outputEpoch );    private:      RecStruct   headerRecs[MAXMETHEADERRECTYPES];      string      markerName;                      // Name of antenna marker.                                                   //   - MARKER NAME      string      markerNumber;                    // Number of antenna marker.                                                   //   - MARKER NUMBER      unsigned short    numMetTypes;                // # observation types                                                    //   - # / TYPES  OF OBSERV      enum METTYPE      obsTypeList[ MAXMETTYPES ]; // List of obs types                                                    //   - # / TYPES  OF OBSERV      SensorInfo       sensorModAccur[ MAXMETTYPES ];      SensorPosition   sensorXYZh[ MAXMETTYPES ];      unsigned int         numberMetEpochs;      static unsigned int  numberMetFiles;  // # Met Files instantiated      void initializeData();      bool validHeaderRecord(string inputRec);    };//======================== ClockDataFile Class =============================   class ClockDataFile : public RinexFile   {    public:    //Constructors    ClockDataFile();    ClockDataFile(string pathFilename, ios::openmode mode);    // Destructor    ~ClockDataFile();    // Initializers    bool setLeapSec(unsigned short input);    bool setNumberClkTypes(unsigned short input);    bool setClkTypeListElement(enum CLKTYPE input, int i);    bool setStationName(string input);    bool setStationNumber(string input);    bool setStationClkRef(string input);    bool setACDesignator(string input);    bool setAnalysisCenterName(string input);    bool setNumberAnalysisClockRef(unsigned short input);    bool setAnalysisStartEpoch(DateTime input);    bool setAnalysisStopEpoch(DateTime input);    bool setNumberSolnSta(unsigned short input);    bool setTerrRefFrameOrSinex(string input);    bool setNumberSolnSatellites(unsigned short input);    bool setClkRefListElement(AnalysisClkRefData input, int i);    bool setSolnStaListElement(SolnStaNameData input, int i);    bool setPrnListElement(string input, int i);    void incrementNumberClkEpochs(unsigned int n);    unsigned short readHeader();    void initEpochInfo( ClkEpoch &epoch);    unsigned short readEpoch( ClkEpoch &epoch);    // Selectors    unsigned short getLeapSec();    unsigned short getNumberClkTypes();    enum CLKTYPE   getClkTypeListElement(int i);    string         getStationName();    string         getStationNumber();    string         getStationClkRef();    string         getACDesignator();    string         getAnalysisCenterName();    unsigned short getNumberAnalysisClockRef();    DateTime       getAnalysisStartEpoch();    DateTime       getAnalysisStopEpoch();    unsigned short getNumberSolnSta();    string         getTerrRefFrameOrSinex();    unsigned short getNumberSolnSatellites();    AnalysisClkRefData getClkRefListElement(int i);    SolnStaNameData    getSolnStaListElement(int i);    string             getPrnListElement(int i);    unsigned short         getNumberClkEpochs();    static unsigned short  getClkFilesCount();    void writeHeaderImage( ofstream &outputStream );    void writeEpoch( ofstream &outputStream,                        ClkEpoch &outputEpoch );    private:      RecStruct   headerRecs[MAXCLKHEADERRECTYPES];      unsigned short   leapSec;      unsigned short   numberClkTypes;             // # clock data types      enum CLKTYPE     clkTypeList[ MAXCLKTYPES ]; // List of clock data types      string           stationName;      string           stationNumber;      string           stationClkRef;      string           ACDesignator;      string           analysisCenterName;      unsigned short   numberAnalysisClkRef;      DateTime         analysisStartEpoch;      DateTime         analysisStopEpoch;      AnalysisClkRefData   *clkRefList;    // allocated in readHeader()      SolnStaNameData      *solnStaList;   // allocated in readHeader()      unsigned short   numberSolnSta;      string           terrRefFrameOrSinex;      unsigned short   numberSolnSatellites;      string           *prnList;           // allocated in readHeader()      unsigned short          numberClkEpochs;      static unsigned short   numberClkFiles;      void initializeData();      bool validHeaderRecord(string inputRec);    };//=================== RequiredRecordMissingException ========================   class RequiredRecordMissingException   {       public:         RequiredRecordMissingException( const string& errMsg );	 string ErrorMessage;	 string getMessage();   };//======================== RinexFileException Class =======================   class RinexFileException   {       public:         RinexFileException( const string& errMsg );	 string ErrorMessage;	 string getMessage();   };//======================== RinexReadingException Class =======================   class RinexReadingException   {       public:         RinexReadingException( const string& errMsg );	 string ErrorMessage;	 string getMessage();   };} // namespace NGSrinex#endif

⌨️ 快捷键说明

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