📄 rinex.h
字号:
unsigned short tocMin; double tocSec; double clockBias; double clockDrift; double clockDriftRate; double iode; double crs; double deltan; double mo; double cuc; double eEccen; double cus; double sqrtA; double toe; double cic; double bigOmega; double cis; double io; double crc; double lilOmega; double bigOmegaDot; double idot; double codesOnL2; double toeGPSWeek; double pDataFlagL2; double svAccur; double svHealth; double tgd; double iodc; double transmTime; double fitInterval; double spare1; double spare2; };//===================== GlonassEphemEpoch Class ====================== class GlonassEphemEpoch { public: GlonassEphemEpoch(); // Default Constructor ~GlonassEphemEpoch(); // Destructor //Initializers bool setSatelliteAlmanacNumber(unsigned short input); bool setEpochYear(unsigned short input); bool setEpochMonth(unsigned short input); bool setEpochDay(unsigned short input); bool setEpochHour(unsigned short input); bool setEpochMin(unsigned short input); bool setEpochSec(double input); bool setSvClockBias(double input); bool setSvRelFreqBias(double input); bool setMessageFrameTime(double input); bool setPosX(double input); bool setVelX(double input); bool setAccX(double input); bool setSvHealth(double input); bool setPosY(double input); bool setVelY(double input); bool setAccY(double input); bool setFreqNumber(double input); bool setPosZ(double input); bool setVelZ(double input); bool setAccZ(double input); bool setAgeOfOperation(double input); //Selectors unsigned short getSatelliteAlmanacNumber(); unsigned short getEpochYear(); unsigned short getEpochMonth(); unsigned short getEpochDay(); unsigned short getEpochHour(); unsigned short getEpochMin(); double getEpochSec(); double getSvClockBias(); double getSvRelFreqBias(); double getMessageFrameTime(); double getPosX(); double getVelX(); double getAccX(); double getSvHealth(); double getPosY(); double getVelY(); double getAccY(); double getFreqNumber(); double getPosZ(); double getVelZ(); double getAccZ(); double getAgeOfOperation(); private: unsigned short satelliteAlmanacNumber; unsigned short epochYear; unsigned short epochMonth; unsigned short epochDay; unsigned short epochHour; unsigned short epochMin; double epochSec; double svClockBias; double svRelFreqBias; double messageFrameTime; double posX; double velX; double accX; double svHealth; double posY; double velY; double accY; double freqNumber; double posZ; double velZ; double accZ; double ageOfOperation; }; //===================== GeostationaryEphemEpoch Class ====================== class GeostationaryEphemEpoch { public: GeostationaryEphemEpoch(); // Default Constructor ~GeostationaryEphemEpoch(); // Destructor //Initializers bool setSatelliteNumber(unsigned short input); bool setEpochYear(unsigned short input); bool setEpochMonth(unsigned short input); bool setEpochDay(unsigned short input); bool setEpochHour(unsigned short input); bool setEpochMin(unsigned short input); bool setEpochSec(double input); bool setSvClockBias(double input); bool setSvRelFreqBias(double input); bool setMessageFrameTime(double input); bool setPosX(double input); bool setVelX(double input); bool setAccX(double input); bool setSvHealth(double input); bool setPosY(double input); bool setVelY(double input); bool setAccY(double input); bool setAccurCode(double input); bool setPosZ(double input); bool setVelZ(double input); bool setAccZ(double input); bool setSpare(double input); //Selectors unsigned short getSatelliteNumber(); unsigned short getEpochYear(); unsigned short getEpochMonth(); unsigned short getEpochDay(); unsigned short getEpochHour(); unsigned short getEpochMin(); double getEpochSec(); double getSvClockBias(); double getSvRelFreqBias(); double getMessageFrameTime(); double getPosX(); double getVelX(); double getAccX(); double getSvHealth(); double getPosY(); double getVelY(); double getAccY(); double getAccurCode(); double getPosZ(); double getVelZ(); double getAccZ(); double getSpare(); private: unsigned short satelliteNumber; unsigned short epochYear; unsigned short epochMonth; unsigned short epochDay; unsigned short epochHour; unsigned short epochMin; double epochSec; double svClockBias; double svRelFreqBias; double messageFrameTime; double posX; double velX; double accX; double svHealth; double posY; double velY; double accY; double accurCode; double posZ; double velZ; double accZ; double spare; };//======================== HeaderRecord Class ============================= class HeaderRecord { friend ostream& operator <<(ostream& os, const HeaderRecord& input); friend istream& operator >>(istream& is, HeaderRecord& output); public: //Constructors HeaderRecord(); HeaderRecord(string input); // Destructor ~HeaderRecord(); // Initializers void SetHeaderRecord(string input); void SetFirst60(string input); void SetLabel(string input); // Selectors string GetFirst60(); string GetLabel(); // Operators HeaderRecord& operator=(const HeaderRecord& input); HeaderRecord* operator&(HeaderRecord input); private: string first60; string label; };//======================== RinexHeader Class ============================= class RinexHeader { public: RinexHeader(); RinexHeader( list<HeaderRecord> inputImage ); ~RinexHeader(); void appendHeaderRecord(HeaderRecord addedRec); void insertHeaderRecBeforeLabel(string label, HeaderRecord addedRec); void insertHeaderRecAfterLabel(string label, HeaderRecord addedRec); void overwriteHeaderRecord( string label, string newFirst60 ); void deleteHeaderRecord( string label ); void setHeaderImage( list<HeaderRecord> inputImage ); HeaderRecord getHeaderRecord( string label ); void writeHeaderImage( ofstream &outputStream ); private: list<HeaderRecord> headerImage; };//======================== RinexFile Class ================================ class RinexFile // this is a base class { public: ofstream outputStream; ifstream inputStream; // Constructors RinexFile(); RinexFile(string pathFilename, ios::openmode mode ); // Destructor virtual ~RinexFile(); // Initializers void setPathFilenameMode(string pathFilename, ios::openmode mode); bool setRinexHeaderImage(list<HeaderRecord> input); bool setFormatVersion(float input); bool setRinexFileType(string input); bool setSatSystem(string input); bool setRinexProgram(string input); bool setCreatedByAgency(string input); bool setDateFileCreated(string input); bool incrementNumberErrors(unsigned long n); bool incrementNumberWarnings(unsigned long n); bool incrementNumberLinesRead(unsigned long n); bool setCurrentEpoch(DateTime input); void appendToErrorMessages(string errMessage); void appendToWarningMessages(string warnMessage); void readFileTypeAndProgramName(); // Selectors string getPathFilename(); ios::openmode getFileMode(); RinexHeader getRinexHeaderImage(); float getFormatVersion(); char getRinexFileType(); char getSatSystem(); string getRinexProgram(); string getCreatedByAgency(); string getDateFileCreated(); unsigned long getNumberErrors(); unsigned long getNumberWarnings(); unsigned long getNumberLinesRead(); DateTime getCurrentEpoch(); string getErrorMessages(); string getWarningMessages(); protected: string pathFilename; ios::openmode fileMode; RinexHeader rinexHeaderImage; float formatVersion; char rinexFileType; char satSystem; string rinexProgram; string createdByAgency; string dateFileCreated; unsigned long numberErrors; unsigned long numberWarnings; unsigned long numberLinesRead; DateTime currentEpoch; ostringstream tempStream; ostringstream errorMessages; ostringstream warningMessages; bool validFirstLine(string &recordReadIn); bool blankString(string inputStr); bool alphasInString(string inputStr); void makeRecordLength80(string &inputRec); void truncateHeaderRec(string &inputRec); bool getDouble(string input, double &output); bool getLong(string input, long &output); bool validYMDHMS(long year, long month, long day, long hour, long minute, double second, string &warningString); };//======================== RinexObsFile Class =============================== class RinexObsFile : public RinexFile { public: //Constructors RinexObsFile(); RinexObsFile(string pathFilename, ios::openmode mode); // Destructor ~RinexObsFile(); // Initializers bool setMarkerName(string input); bool setMarkerNumber(string input); bool setObserverName(string input); bool setObserverAgency(string input); bool setReceiverNumber(string input); bool setReceiverType(string input); bool setReceiverFirmwareVersion(string input); bool setAntennaNumber(string input); bool setAntennaType(string input); bool setApproxX(double input); bool setApproxY(double input); bool setApproxZ(double input); bool setAntennaDeltaH(double input); bool setAntennaDeltaE(double input); bool setAntennaDeltaN(double input); bool setDefWaveLenFactorL1(unsigned short input); bool setDefWaveLenFactorL2(unsigned short input); bool setNumWaveLenPRN(unsigned short input); bool setNumWaveLenRecords(unsigned short input); bool setAllWaveLenRecordsElement(OneWaveLenRec input, int i); bool setNumObsTypes(unsigned short input); bool setObsTypeListElement(enum OBSTYPE input, int i); bool setObsInterval(float input); bool setFirstObs(YMDHMS input); bool setFirstObsTimeSystem(string input); bool setLastObs(YMDHMS input); bool setLastObsTimeSystem(string input); bool setNumberLeapSec(unsigned short input); bool setRcvrClockApplied(unsigned short input); bool setNumberOfSat(unsigned short input); bool setSatObsTypeListElement(ObsCountForPRN input, int i); bool setNextSat(unsigned short input); void incrementNumberObsEpochs( unsigned int n ); unsigned short readHeader(); unsigned short readEpoch(ObsEpoch &epoch); // Selectors string getMarkerName(); string getMarkerNumber(); string getObserverName(); string getObserverAgency(); string getReceiverNumber(); string getReceiverType(); string getReceiverFirmwareVersion(); string getAntennaNumber(); string getAntennaType(); double getApproxX(); double getApproxY(); double getApproxZ(); double getAntennaDeltaH(); double getAntennaDeltaE(); double getAntennaDeltaN(); unsigned short getDefWaveLenFactorL1(); unsigned short getDefWaveLenFactorL2(); unsigned short getNumWaveLenPRN(); unsigned short getNumWaveLenRecords(); OneWaveLenRec getAllWaveLenRecordsElement(int i); unsigned short getNumObsTypes(); enum OBSTYPE getObsTypeListElement(int i); float getObsInterval(); YMDHMS getFirstObs(); string getFirstObsTimeSystem(); YMDHMS getLastObs(); string getLastObsTimeSystem(); unsigned short getNumberLeapSec(); unsigned short getRcvrClockApplied(); unsigned short getNumberOfSat(); ObsCountForPRN getSatObsTypeListElement(int i); unsigned short getNextSat(); void writeHeaderImage( ofstream &outputStream ); void writeEpoch( ofstream &outputOBS, ObsEpoch &outputEpoch ); unsigned int getNumberObsEpochs(); static unsigned int getObsFilesCount(); private: RecStruct headerRecs[MAXOBSHEADERRECTYPES]; string markerName; // Name of antenna marker. // - MARKER NAME string markerNumber; // Number of antenna marker.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -