Antex antenna data record: PCOs and PCVs for one antenna. Do not attempt to use an object that is not valid (cf. isValid()).
Definition at line 120 of file AntexData.hpp.
#include <AntexData.hpp>
Classes | |
class | antennaPCOandPCVData |
AntexDataFormatStrings | |
enum | validBits { startAntennaValid = 0x00001, typeSerNumValid = 0x00002, methodValid = 0x00004, daziValid = 0x00008, zenithValid = 0x00010, numFreqValid = 0x00020, validFromValid = 0x00040, validUntilValid = 0x00080, sinexCodeValid = 0x00100, dataCommentValid = 0x00200, startFreqValid = 0x00400, neuFreqValid = 0x00800, endOfFreqValid = 0x01000, startFreqRMSValid = 0x02000, neuFreqRMSValid = 0x04000, endOfFreqRMSValid = 0x08000, endOfAntennaValid = 0x10000, allValid13 = 0x11C3F } |
typedef std::map< double, double > | zenOffsetMap |
map from zenith angle (degrees) to PC offset (millimeters) More... | |
typedef std::map< double, zenOffsetMap > | azimZenMap |
static const GNSSTK_EXPORT std::string | startAntennaString = "START OF ANTENNA" |
"START OF ANTENNA" More... | |
static const GNSSTK_EXPORT std::string | typeSerNumString = "TYPE / SERIAL NO" |
"TYPE / SERIAL NO" More... | |
static const GNSSTK_EXPORT std::string | methodString = "METH / BY / # / DATE" |
"METH / BY / # / DATE" More... | |
static const GNSSTK_EXPORT std::string | daziString = "DAZI" |
"DAZI" More... | |
static const GNSSTK_EXPORT std::string | zenithString = "ZEN1 / ZEN2 / DZEN" |
"ZEN1 / ZEN2 / DZEN" More... | |
static const GNSSTK_EXPORT std::string | numFreqString = "# OF FREQUENCIES" |
"# OF FREQUENCIES" More... | |
static const GNSSTK_EXPORT std::string | validFromString = "VALID FROM" |
"VALID FROM" More... | |
static const GNSSTK_EXPORT std::string | validUntilString = "VALID UNTIL" |
"VALID UNTIL" More... | |
static const GNSSTK_EXPORT std::string | sinexCodeString = "SINEX CODE" |
"SINEX CODE" More... | |
static const GNSSTK_EXPORT std::string | dataCommentString = "COMMENT" |
"COMMENT" More... | |
static const GNSSTK_EXPORT std::string | startFreqString = "START OF FREQUENCY" |
"START OF FREQUENCY" More... | |
static const GNSSTK_EXPORT std::string | neuFreqString = "NORTH / EAST / UP" |
"NORTH / EAST / UP" More... | |
static const GNSSTK_EXPORT std::string | endOfFreqString = "END OF FREQUENCY" |
"END OF FREQUENCY" More... | |
static const GNSSTK_EXPORT std::string | startFreqRMSString = "START OF FREQ RMS" |
"START OF FREQ RMS" More... | |
static const GNSSTK_EXPORT std::string | neuFreqRMSString |
"NORTH / EAST / UP" More... | |
static const GNSSTK_EXPORT std::string | endOfFreqRMSString = "END OF FREQ RMS" |
"END OF FREQ RMS" More... | |
static const GNSSTK_EXPORT std::string | endOfAntennaString = "END OF ANTENNA" |
"END OF ANTENNA" More... | |
static const GNSSTK_EXPORT std::vector< std::string > | SatelliteTypes |
unsigned long | valid |
bool | absolute |
bool | isRxAntenna |
int | PRN |
int | SVN |
char | systemChar |
unsigned int | nFreq |
double | azimDelta |
double | zenRange [3] |
CommonTime | validFrom |
CommonTime | validUntil |
std::string | stringValidFrom |
std::string | stringValidUntil |
std::map< std::string, antennaPCOandPCVData > | freqPCVmap |
map from frequency to antennaPCOandPCVData More... | |
std::string | type |
antenna type from "TYPE / SERIAL NO" More... | |
std::string | serialNo |
antenna serial number from "TYPE / SERIAL NO" More... | |
std::string | satCode |
satellite code from "TYPE / SERIAL NO" More... | |
std::string | cospar |
satellite COSPAR ID from "TYPE / SERIAL NO" More... | |
std::string | method |
calibration method from "METH / BY / # / DATE" More... | |
std::string | agency |
agency from "METH / BY / # / DATE" More... | |
int | noAntCalibrated |
std::string | date |
date from "METH / BY / # / DATE" More... | |
std::string | sinexCode |
name of ant. cal. model from "SINEX CODE" OPTIONAL More... | |
std::vector< std::string > | commentList |
comments found in the data portion of the file More... | |
AntexData () | |
Constructor. More... | |
virtual | ~AntexData () |
Destructor. More... | |
virtual bool | isData () const |
AntexData is a "data", so this function always returns true. More... | |
bool | isValid () const |
Convenience function returns true only if a valid object. More... | |
bool | isValid (CommonTime &time) const |
std::string | name () const |
Generate a name from type and serial number. More... | |
double | getTotalPhaseCenterOffset (const std::string &freq, double azimuth, double elevation) const |
Triple | getPhaseCenterOffset (const std::string &freq) const |
double | getPhaseCenterVariation (const std::string &freq, double azimuth, double elev_nadir) const |
virtual void | dump (std::ostream &s, int detail=0) const |
void | evaluateZenithMap (double zen, const zenOffsetMap &eomap, double &zen_lo, double &zen_hi, double &pco_lo, double &pco_hi) const |
virtual void | reallyPutRecord (FFStream &s) const |
virtual void | reallyGetRecord (FFStream &s) |
void | throwRecordOutOfOrder (unsigned long test, std::string &label) |
void | ParseDataRecord (std::string &line) |
std::string | writeTime (const CommonTime &dt) const |
CommonTime | parseTime (const std::string &line) const |
Additional Inherited Members | |
![]() | |
virtual | ~AntexBase () |
Destructor per the coding standards. More... | |
![]() | |
virtual void | dump (std::ostream &s) const |
void | getRecord (FFStream &s) |
virtual bool | isHeader () const |
void | putRecord (FFStream &s) const |
virtual | ~FFData (void) |
virtual desctuctor More... | |
typedef std::map<double, zenOffsetMap> gnsstk::AntexData::azimZenMap |
map from azimuth angle (deg) to zenOffsetMap the zenOffsetMap WITHOUT azimuth dependence (NOAZI) will be azimZenMap[-1.0] (this may be the only entry)
Definition at line 197 of file AntexData.hpp.
typedef std::map<double, double> gnsstk::AntexData::zenOffsetMap |
map from zenith angle (degrees) to PC offset (millimeters)
Definition at line 192 of file AntexData.hpp.
Validity bits for the ANTEX Data
Definition at line 165 of file AntexData.hpp.
|
inline |
Constructor.
Definition at line 298 of file AntexData.hpp.
|
inlinevirtual |
Destructor.
Definition at line 305 of file AntexData.hpp.
|
virtual |
Dump AntexData. Set detail = 0 for type, serial no., sat codes only.
[in] | detail | 1 for all information except phase center offsets, 2 for all data. |
Definition at line 378 of file AntexData.cpp.
|
protected |
Find zenith angles bracketing the input zenith angle within the given map, and the corresponding PCOs.
Definition at line 532 of file AntexData.cpp.
Get the PC offset values in mm (only, NOT the phase center variations, which should be computed using getPhaseCenterVariations() and added to the PCOs to get the total phase center offset).
freq | frequency (usually G01 or G02) |
Exception | if this object is invalid if frequency does not exist for this data |
Definition at line 205 of file AntexData.cpp.
double gnsstk::AntexData::getPhaseCenterVariation | ( | const std::string & | freq, |
double | azimuth, | ||
double | elev_nadir | ||
) | const |
Compute the phase center variation at the given azimuth and elev_nadir
freq | frequency (usually G01 or G02) |
azimuth | the azimuth angle in degrees, from N going toward E for receivers, or from X going toward Y for satellites |
elev_nadir | elevation in deg from horizontal (North-East) plane for receivers, or nadir angle in degrees from Z axis for satellites |
Exception | if this object is invalid if frequency does not exist for this data if azimuth is out of range, azimuth is replaced with azim % 360 |
Definition at line 234 of file AntexData.cpp.
double gnsstk::AntexData::getTotalPhaseCenterOffset | ( | const std::string & | freq, |
double | azimuth, | ||
double | elevation | ||
) | const |
Compute the total phase center offset at the given azimuth and elev_nadir, including both nominal offset (PCO) and variation (PCV).
freq | frequency e.g. G01 |
azimuth | the azimuth angle in degrees, from N going toward E for receivers, or from X going toward Y for satellites |
elevation | elevation in deg from horizontal (North-East) plane for receivers, or nadir angle in degrees from Z axis for satellites |
Exception | if this object is invalid if frequency does not exist for this data if azimuth is out of range; azimuth is replaced with azim mod 360 |
Definition at line 169 of file AntexData.cpp.
|
inlinevirtual |
AntexData is a "data", so this function always returns true.
Reimplemented from gnsstk::FFData.
Definition at line 308 of file AntexData.hpp.
|
inline |
Convenience function returns true only if a valid object.
Definition at line 311 of file AntexData.hpp.
bool gnsstk::AntexData::isValid | ( | CommonTime & | time | ) | const |
Definition at line 125 of file AntexData.cpp.
string gnsstk::AntexData::name | ( | ) | const |
Generate a name from type and serial number.
Definition at line 150 of file AntexData.cpp.
|
private |
parse a line from the Antex file, filling the data object
FFStreamError |
Definition at line 843 of file AntexData.cpp.
|
private |
This function constructs a CommonTime object from the line for VALID FROM and VALID UNTIL records; default is to return BEGINNING_OF_TIME.
line | the encoded time string found in the Antex record. |
FFStreamError |
Definition at line 1087 of file AntexData.cpp.
|
protectedvirtual |
This functions obtains Antex antenna record from the given FFStream. If there is an error in reading from the stream, it is reset to its original position and its fail-bit is set.
std::exception | |
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 gnsstk::FFData.
Definition at line 789 of file AntexData.cpp.
|
protectedvirtual |
Writes a correctly formatted record from this data to stream s.
std::exception | |
FFStreamError | |
StringUtils::StringException |
Implements gnsstk::FFData.
Definition at line 573 of file AntexData.cpp.
|
private |
helper routine to throw when records are out of order throws if valid contains test (test & valid), otherwise does nothing
Definition at line 832 of file AntexData.cpp.
|
private |
Writes the CommonTime object into Antex ('VALID FROM') format. If it's a bad time, it will return blanks.
StringUtils::StringException |
Definition at line 1145 of file AntexData.cpp.
bool gnsstk::AntexData::absolute |
if true, PCOs are absolute, else they are relative to another antenna
Definition at line 234 of file AntexData.hpp.
std::string gnsstk::AntexData::agency |
agency from "METH / BY / # / DATE"
Definition at line 285 of file AntexData.hpp.
double gnsstk::AntexData::azimDelta |
delta azimuth (degrees) stored in azimZenMap equal to 0 if there is no azimuth dependence from "DAZI" record
Definition at line 261 of file AntexData.hpp.
std::vector<std::string> gnsstk::AntexData::commentList |
comments found in the data portion of the file
Definition at line 293 of file AntexData.hpp.
std::string gnsstk::AntexData::cospar |
satellite COSPAR ID from "TYPE / SERIAL NO"
Definition at line 283 of file AntexData.hpp.
|
static |
"COMMENT"
Definition at line 145 of file AntexData.hpp.
std::string gnsstk::AntexData::date |
date from "METH / BY / # / DATE"
Definition at line 288 of file AntexData.hpp.
|
static |
"DAZI"
Definition at line 133 of file AntexData.hpp.
|
static |
"END OF ANTENNA"
Definition at line 159 of file AntexData.hpp.
"END OF FREQ RMS"
Definition at line 157 of file AntexData.hpp.
|
static |
"END OF FREQUENCY"
Definition at line 151 of file AntexData.hpp.
std::map<std::string, antennaPCOandPCVData> gnsstk::AntexData::freqPCVmap |
map from frequency to antennaPCOandPCVData
Definition at line 278 of file AntexData.hpp.
bool gnsstk::AntexData::isRxAntenna |
if true, this is a receiver antenna, otherwise its a satellite; this flag is set based on the IGS codes kept in array SatelliteTypes.
Definition at line 242 of file AntexData.hpp.
std::string gnsstk::AntexData::method |
calibration method from "METH / BY / # / DATE"
Definition at line 284 of file AntexData.hpp.
|
static |
"METH / BY / # / DATE"
Definition at line 131 of file AntexData.hpp.
|
static |
"NORTH / EAST / UP"
Definition at line 155 of file AntexData.hpp.
|
static |
"NORTH / EAST / UP"
Definition at line 149 of file AntexData.hpp.
unsigned int gnsstk::AntexData::nFreq |
number of frequencies stored, equal to number of keys in map from "# OF FREQUENCIES" record
Definition at line 256 of file AntexData.hpp.
int gnsstk::AntexData::noAntCalibrated |
num. of ant. calibrated from "METH / BY / # / DATE"
Definition at line 286 of file AntexData.hpp.
|
static |
"# OF FREQUENCIES"
Definition at line 137 of file AntexData.hpp.
int gnsstk::AntexData::PRN |
PRN and SVN numbers; used only in the case of satellite antennas, and may not be present, in which case these are both -1.
Definition at line 248 of file AntexData.hpp.
std::string gnsstk::AntexData::satCode |
satellite code from "TYPE / SERIAL NO"
Definition at line 282 of file AntexData.hpp.
|
static |
Values of 'type' that are satellites
Definition at line 189 of file AntexData.hpp.
std::string gnsstk::AntexData::serialNo |
antenna serial number from "TYPE / SERIAL NO"
Definition at line 281 of file AntexData.hpp.
std::string gnsstk::AntexData::sinexCode |
name of ant. cal. model from "SINEX CODE" OPTIONAL
Definition at line 290 of file AntexData.hpp.
|
static |
"SINEX CODE"
Definition at line 143 of file AntexData.hpp.
|
static |
"START OF ANTENNA"
Definition at line 127 of file AntexData.hpp.
"START OF FREQ RMS"
Definition at line 153 of file AntexData.hpp.
|
static |
"START OF FREQUENCY"
Definition at line 147 of file AntexData.hpp.
std::string gnsstk::AntexData::stringValidFrom |
Definition at line 275 of file AntexData.hpp.
std::string gnsstk::AntexData::stringValidUntil |
Definition at line 275 of file AntexData.hpp.
int gnsstk::AntexData::SVN |
Definition at line 248 of file AntexData.hpp.
char gnsstk::AntexData::systemChar |
system character: G or blank GPS, R GLONASS, E GALILEO, etc used only in the case of satellite antennas
Definition at line 252 of file AntexData.hpp.
std::string gnsstk::AntexData::type |
antenna type from "TYPE / SERIAL NO"
Definition at line 280 of file AntexData.hpp.
"TYPE / SERIAL NO"
Definition at line 129 of file AntexData.hpp.
unsigned long gnsstk::AntexData::valid |
Bits of valid are set when corresponding labels are found and data defined
Definition at line 230 of file AntexData.hpp.
CommonTime gnsstk::AntexData::validFrom |
Time limits of validity (OPTIONAL); otherwise set to BEGINNING and END. From "VALID FROM" and "VALID UNTIL" records. Keep the string version for file I/O b/c sometimes the time is of the form: 1994 4 17 23 59 59.9999999 VALID UNTIL and converting this to CommonTime replaces it with ... 24 0 0.000
Definition at line 274 of file AntexData.hpp.
|
static |
"VALID FROM"
Definition at line 139 of file AntexData.hpp.
CommonTime gnsstk::AntexData::validUntil |
Definition at line 274 of file AntexData.hpp.
|
static |
"VALID UNTIL"
Definition at line 141 of file AntexData.hpp.
|
static |
"ZEN1 / ZEN2 / DZEN"
Definition at line 135 of file AntexData.hpp.
double gnsstk::AntexData::zenRange[3] |
minimum, maximum and delta zenith (degrees) stored in zenOffsetMap from "ZEN1 / ZEN2 / DZEN" record
Definition at line 265 of file AntexData.hpp.