Rinex3ClockHeader Class Reference
[RINEX3 clock files]

#include <Rinex3ClockHeader.hpp>

Inheritance diagram for Rinex3ClockHeader:

Inheritance graph
[legend]
Collaboration diagram for Rinex3ClockHeader:

Collaboration graph
[legend]
List of all members.

Detailed Description

This class models the header for a RINEX3 clock file.

See also:
gpstk::Rinex3ClockData and gpstk::Rinex3ClockStream.

rinex_clk_test.cpp and rinex_clk_read_write.cpp for examples.

Definition at line 59 of file Rinex3ClockHeader.hpp.

Public Types

enum  validBits {
  versionValid = 0x01, runByValid = 0x02, commentValid = 0x04, numObsValid = 0x08,
  timeSystemValid = 0x010, leapSecondsValid = 0x020, sysDCBsValid = 0x040, sysPCVsValid = 0x080,
  dataTypesValid = 0x0100, stationNameValid = 0x0200, calibrationClkValid = 0x0400, acNameValid = 0x0800,
  numRefClkValid = 0x01000, analysisClkRefValid = 0x02000, numStationsValid = 0x04000, solnStaNameValid = 0x08000,
  numSatsValid = 0x010000, prnListValid = 0x020000, endValid = 0x080000000, allValid = 0x08003FFFF
}
 Validity bits for the RINEX3 Clock Header. More...

Public Member Functions

 Rinex3ClockHeader ()
 A Simple Constructor.
void clear (void)
 Clear (empty out) header.
virtual ~Rinex3ClockHeader ()
 Destructor.
virtual bool isHeader () const
 Rinex3ClockHeader is a "header" so this function always returns true.
virtual void dump (std::ostream &s) const
 This is a simple Debug output function.
void ParseHeaderRecord (std::string &line) throw (FFStreamError)
 Parse a single header record, and modify valid accordingly.
bool isValid () const
 Return boolean : is this a valid Rinex clock header?

Public Attributes

Rinex3ClockHeaderValues
double version
 RINEX3 VERSION & TYPE.
std::string fileType
 RINEX3 FILETYPE (Clock data etc).
RinexSatID system
 The RINEX3 satellite system.
std::string fileProgram
 The program used to generate this file.
std::string fileAgency
 Who ran the program.
std::string date
 When the program was run.
std::vector< std::string > commentList
 Comments in header (optional).
int numObsTyp
 Number of data types.
std::vector< std::string > obsTypeList
 List of observation types.
std::string timeSystem
 Time system used.
int leapSeconds
 Leap second (optional).
int numTyp
std::vector< std::string > dataTypeList
 List of data types.
std::string clk0Name
 Name for the clocks.
std::string calName
 Calibration station identifier.
std::string ac
 Analysis center ID.
std::string acName
 Analysis center name.
CommonTime timeFirst
 First Epoch (CommonTime object).
std::list< RefClkRecordrefClkList
 List of all reference clock sets.
std::string trfName
 Terrestrial reference frame.
int numSta
 Number of station clocks.
int numSVs
 Number of satellite clocks.
std::vector< std::string > clkNameList
 Names of the sta/sat clocks.
std::vector< TriplestaCoordList
 Coordinates of the stations (m).
unsigned long valid
 Bits set when individual header members are present and valid.
bool isPGM
 flag for PGM/RUN BY/DATE
bool isAC
 flag for AC/ACName

Static Public Attributes

Rinex3ClockHeaderFormatStrings
RINEX3 Clock Header Formatting Strings

const std::string versionString = "RINEX VERSION / TYPE"
 "RINEX VERSION / TYPE"
const std::string runByString = "PGM / RUN BY / DATE"
 "PGM / RUN BY / DATE"
const std::string commentString = "COMMENT"
 "COMMENT"
const std::string numObsString = "SYS / # / OBS TYPES"
 "SYS / # / OBS TYPES"
const std::string timeSystemString = "TIME SYSTEM ID"
 "TIME SYSTEM ID"
const std::string leapSecondsString = "LEAP SECONDS"
 "LEAP SECONDS"
const std::string sysDCBString = "SYS / DCBS APPLIED"
 "SYS / DCBS APPLIED"
const std::string sysPCVString = "SYS / PCVS APPLIED"
 "SYS / PCVS APPLIED"
const std::string dataTypesString = "# / TYPES OF DATA"
 "# / TYPES OF DATA"
const std::string stationNameString = "STATION NAME / NUM"
 "STATION NAME / NUM"
const std::string calibrationClkString = "STATION CLK REF"
 "STATION CLK REF"
const std::string acNameString = "ANALYSIS CENTER"
 "ANALYSIS CENTER"
const std::string numRefClkString = "# OF CLK REF"
 "# OF CLK REF"
const std::string analysisClkRefString = "ANALYSIS CLK REF"
 "ANALYSIS CLK REF"
const std::string numStationsString = "# OF SOLN STA / TRF"
 "# OF SOLN STA / TRF"
const std::string solnStaNameString = "SOLN STA NAME / NUM"
 "SOLN STA NAME / NUM"
const std::string numSatsString = "# OF SOLN SATS"
 "# OF SOLN SATS"
const std::string prnListString = "PRN LIST"
 "PRN LIST"
const std::string endOfHeader = "END OF HEADER"
 "END OF HEADER"
Standard RINEX clock data types
const RinexClkType UN
const RinexClkType AR
const RinexClkType AS
const RinexClkType CR
const RinexClkType DR
const RinexClkType MS

Protected Member Functions

virtual void reallyPutRecord (FFStream &s) const throw (std::exception, FFStreamError, StringUtils::StringException)
 outputs this record to the stream correctly formatted.
virtual void reallyGetRecord (FFStream &s) throw (std::exception, FFStreamError,StringUtils::StringException)
 This function retrieves the RINEX3 Clock Header from the given FFStream.

Friends

class Rinex3ClockData


Member Enumeration Documentation

enum validBits
 

Validity bits for the RINEX3 Clock Header.

Enumeration values:
versionValid  "RINEX VERSION / TYPE"
runByValid  "PGM / RUN BY / DATE"
commentValid  "COMMENT" (optional)
numObsValid  "SYS / # / OBS TYPES"
timeSystemValid  "TIME SYSTEM ID"
leapSecondsValid  "LEAP SECONDS" (optional)
sysDCBsValid  "SYS / DCBS APPLIED"
sysPCVsValid  "SYS / PCVS APPLIED"
dataTypesValid  "# / TYPES OF DATA"
stationNameValid  "STATION NAME / NUM"
calibrationClkValid  "STATION CLK REF"
acNameValid  "ANALYSIS CENTER"
numRefClkValid  "# OF CLK REF"
analysisClkRefValid  "ANALYSIS CLK REF"
numStationsValid  "# OF SOLN STA / TRF"
solnStaNameValid  "SOLN STA NAME / NUM"
numSatsValid  "# OF SOLN SATS"
prnListValid  "PRN LIST"
endValid  "END OF HEADER"
allValid  This mask is for all valid fields.

Definition at line 100 of file Rinex3ClockHeader.hpp.


Constructor & Destructor Documentation

Rinex3ClockHeader  )  [inline]
 

A Simple Constructor.

Definition at line 64 of file Rinex3ClockHeader.hpp.

References gpstk::BEGINNING_OF_TIME.

virtual ~Rinex3ClockHeader  )  [inline, virtual]
 

Destructor.

Definition at line 219 of file Rinex3ClockHeader.hpp.


Member Function Documentation

void clear void   ) 
 

Clear (empty out) header.

Definition at line 79 of file Rinex3ClockHeader.cpp.

References Rinex3ClockHeader::ac, Rinex3ClockHeader::acName, Rinex3ClockHeader::calName, Rinex3ClockHeader::clk0Name, Rinex3ClockHeader::clkNameList, Rinex3ClockHeader::commentList, Rinex3ClockHeader::dataTypeList, Rinex3ClockHeader::date, Rinex3ClockHeader::fileAgency, Rinex3ClockHeader::fileProgram, Rinex3ClockHeader::leapSeconds, Rinex3ClockHeader::numObsTyp, Rinex3ClockHeader::numSta, Rinex3ClockHeader::numSVs, Rinex3ClockHeader::obsTypeList, Rinex3ClockHeader::refClkList, Rinex3ClockHeader::staCoordList, Rinex3ClockHeader::timeFirst, Rinex3ClockHeader::trfName, Rinex3ClockHeader::valid, and Rinex3ClockHeader::version.

void dump std::ostream &  s  )  const [virtual]
 

This is a simple Debug output function.

It simply outputs the version, name and antenna number of this RINEX3 clock header.

Reimplemented from FFData.

Definition at line 554 of file Rinex3ClockHeader.cpp.

References Rinex3ClockHeader::ac, Rinex3ClockHeader::acName, Rinex3ClockHeader::clkNameList, Rinex3ClockHeader::commentList, Rinex3ClockHeader::dataTypeList, Rinex3ClockHeader::date, Rinex3ClockHeader::fileAgency, Rinex3ClockHeader::fileProgram, Rinex3ClockHeader::fileType, Rinex3ClockHeader::leapSeconds, Rinex3ClockHeader::numSta, Rinex3ClockHeader::numSVs, Rinex3ClockHeader::refClkList, Rinex3ClockHeader::system, RinexSatID::systemChar(), RinexSatID::systemString(), Rinex3ClockHeader::valid, and Rinex3ClockHeader::version.

virtual bool isHeader void   )  const [inline, virtual]
 

Rinex3ClockHeader is a "header" so this function always returns true.

Reimplemented from FFData.

Definition at line 224 of file Rinex3ClockHeader.hpp.

bool isValid void   )  const [inline]
 

Return boolean : is this a valid Rinex clock header?

Definition at line 245 of file Rinex3ClockHeader.hpp.

void ParseHeaderRecord std::string &  line  )  throw (FFStreamError)
 

Parse a single header record, and modify valid accordingly.

Used by reallyGetRecord for both Rinex3ClockHeader and Rinex3ClockData.

Definition at line 184 of file Rinex3ClockHeader.cpp.

References gpstk::StringUtils::asDouble(), gpstk::StringUtils::asInt(), CommonTime::asString(), gpstk::StringUtils::asString(), GPSTK_THROW, Rinex3ClockHeader::RefClk::name, Rinex3ClockHeader::RefClkRecord::nRef, Rinex3ClockHeader::RefClkRecord::refWin, Rinex3ClockHeader::RefClk::sigma, gpstk::sqrt(), gpstk::StringUtils::strip(), gpstk::StringUtils::stripFirstWord(), and gpstk::StringUtils::word().

void reallyGetRecord FFStream s  )  throw (std::exception, FFStreamError,StringUtils::StringException) [protected, virtual]
 

This function retrieves the RINEX3 Clock Header from the given FFStream.

If an stream error is encountered, the stream is reset to its original position and its fail-bit is set.

Exceptions:
StringException when a StringUtils function fails
FFStreamError when exceptions(failbit) is set and a read or formatting error occurs. This also resets the stream to its pre-read position.

Implements FFData.

Definition at line 124 of file Rinex3ClockHeader.cpp.

References FFTextStream::formattedGetLine(), GPSTK_RETHROW, GPSTK_THROW, Rinex3ClockStream::header, Rinex3ClockStream::headerRead, and gpstk::StringUtils::stripTrailing().

void reallyPutRecord FFStream s  )  const throw (std::exception, FFStreamError, StringUtils::StringException) [protected, virtual]
 

outputs this record to the stream correctly formatted.

Implements FFData.

Definition at line 110 of file Rinex3ClockHeader.cpp.


Friends And Related Function Documentation

friend class Rinex3ClockData [friend]
 

Definition at line 268 of file Rinex3ClockHeader.hpp.


Member Data Documentation

std::string ac
 

Analysis center ID.

Definition at line 200 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

std::string acName
 

Analysis center name.

Definition at line 201 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

const string acNameString = "ANALYSIS CENTER" [static]
 

"ANALYSIS CENTER"

Definition at line 55 of file Rinex3ClockHeader.cpp.

const string analysisClkRefString = "ANALYSIS CLK REF" [static]
 

"ANALYSIS CLK REF"

Definition at line 57 of file Rinex3ClockHeader.cpp.

const Rinex3ClockHeader::RinexClkType AR [static]
 

const Rinex3ClockHeader::RinexClkType AS [static]
 

const string calibrationClkString = "STATION CLK REF" [static]
 

"STATION CLK REF"

Definition at line 54 of file Rinex3ClockHeader.cpp.

std::string calName
 

Calibration station identifier.

Definition at line 199 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear().

std::string clk0Name
 

Name for the clocks.

Definition at line 198 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear().

std::vector<std::string> clkNameList
 

Names of the sta/sat clocks.

Definition at line 207 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

std::vector<std::string> commentList
 

Comments in header (optional).

Definition at line 191 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

const string commentString = "COMMENT" [static]
 

"COMMENT"

Definition at line 46 of file Rinex3ClockHeader.cpp.

const Rinex3ClockHeader::RinexClkType CR [static]
 

std::vector<std::string> dataTypeList
 

List of data types.

Definition at line 197 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

const string dataTypesString = "# / TYPES OF DATA" [static]
 

"# / TYPES OF DATA"

Definition at line 52 of file Rinex3ClockHeader.cpp.

std::string date
 

When the program was run.

Definition at line 189 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

const Rinex3ClockHeader::RinexClkType DR [static]
 

const string endOfHeader = "END OF HEADER" [static]
 

"END OF HEADER"

Definition at line 62 of file Rinex3ClockHeader.cpp.

std::string fileAgency
 

Who ran the program.

Definition at line 189 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

std::string fileProgram
 

The program used to generate this file.

Definition at line 189 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

std::string fileType
 

RINEX3 FILETYPE (Clock data etc).

Definition at line 186 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::dump().

bool isAC
 

flag for AC/ACName

Definition at line 213 of file Rinex3ClockHeader.hpp.

bool isPGM
 

flag for PGM/RUN BY/DATE

Definition at line 212 of file Rinex3ClockHeader.hpp.

int leapSeconds
 

Leap second (optional).

Definition at line 195 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

const string leapSecondsString = "LEAP SECONDS" [static]
 

"LEAP SECONDS"

Definition at line 49 of file Rinex3ClockHeader.cpp.

const Rinex3ClockHeader::RinexClkType MS [static]
 

const string numObsString = "SYS / # / OBS TYPES" [static]
 

"SYS / # / OBS TYPES"

Definition at line 47 of file Rinex3ClockHeader.cpp.

int numObsTyp
 

Number of data types.

Definition at line 192 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear().

const string numRefClkString = "# OF CLK REF" [static]
 

"# OF CLK REF"

Definition at line 56 of file Rinex3ClockHeader.cpp.

const string numSatsString = "# OF SOLN SATS" [static]
 

"# OF SOLN SATS"

Definition at line 60 of file Rinex3ClockHeader.cpp.

int numSta
 

Number of station clocks.

Definition at line 206 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

const string numStationsString = "# OF SOLN STA / TRF" [static]
 

"# OF SOLN STA / TRF"

Definition at line 58 of file Rinex3ClockHeader.cpp.

int numSVs
 

Number of satellite clocks.

Definition at line 206 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

int numTyp
 

Definition at line 196 of file Rinex3ClockHeader.hpp.

std::vector<std::string> obsTypeList
 

List of observation types.

Definition at line 193 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear().

const string prnListString = "PRN LIST" [static]
 

"PRN LIST"

Definition at line 61 of file Rinex3ClockHeader.cpp.

std::list<RefClkRecord> refClkList
 

List of all reference clock sets.

Definition at line 203 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

const string runByString = "PGM / RUN BY / DATE" [static]
 

"PGM / RUN BY / DATE"

Definition at line 45 of file Rinex3ClockHeader.cpp.

const string solnStaNameString = "SOLN STA NAME / NUM" [static]
 

"SOLN STA NAME / NUM"

Definition at line 59 of file Rinex3ClockHeader.cpp.

std::vector<Triple> staCoordList
 

Coordinates of the stations (m).

Definition at line 208 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear().

const string stationNameString = "STATION NAME / NUM" [static]
 

"STATION NAME / NUM"

Definition at line 53 of file Rinex3ClockHeader.cpp.

const string sysDCBString = "SYS / DCBS APPLIED" [static]
 

"SYS / DCBS APPLIED"

Definition at line 50 of file Rinex3ClockHeader.cpp.

const string sysPCVString = "SYS / PCVS APPLIED" [static]
 

"SYS / PCVS APPLIED"

Definition at line 51 of file Rinex3ClockHeader.cpp.

RinexSatID system
 

The RINEX3 satellite system.

Definition at line 187 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::dump().

CommonTime timeFirst
 

First Epoch (CommonTime object).

Definition at line 202 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear().

std::string timeSystem
 

Time system used.

Definition at line 194 of file Rinex3ClockHeader.hpp.

const string timeSystemString = "TIME SYSTEM ID" [static]
 

"TIME SYSTEM ID"

Definition at line 48 of file Rinex3ClockHeader.cpp.

std::string trfName
 

Terrestrial reference frame.

Definition at line 204 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear().

const Rinex3ClockHeader::RinexClkType UN [static]
 

unsigned long valid
 

Bits set when individual header members are present and valid.

Definition at line 210 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

double version
 

RINEX3 VERSION & TYPE.

Definition at line 185 of file Rinex3ClockHeader.hpp.

Referenced by Rinex3ClockHeader::clear(), and Rinex3ClockHeader::dump().

const string versionString = "RINEX VERSION / TYPE" [static]
 

"RINEX VERSION / TYPE"

Definition at line 44 of file Rinex3ClockHeader.cpp.


The documentation for this class was generated from the following files:
Generated on Mon May 20 03:31:51 2013 for GPS ToolKit Software Library by  doxygen 1.3.9.1