GnssReceiverGenerator
Definition and basic information of GNSS receivers.
Most of the input files are provided in GROOPS file formats at https://ftp.tugraz.at/outgoing/ITSG/groops (marked with * below). These files are regularly updated.
- inputfileStationInfo*: Antenna and receiver information, antenna reference point offsets, antenna orientations. Created via GnssStationLog2Platform or PlatformCreate.
- inputfileAntennaDefinition*: Antenna center offsets and variations. Created via GnssAntex2AntennaDefinition or GnssAntennaDefinitionCreate.
- inputfileReceiverDefinition: Observed signal types (optional). Created via GnssReceiverDefinitionCreate in case you want to define which signal types a receiver model can observe.
- inputfileAccuracyDefinition*: Elevation and azimuth dependent accuracy. Created via GnssAntennaDefinitionCreate.
- inputfileObservation: Converted from RINEX observation files via RinexObservation2GnssReceiver.
It is possible to limit the observation types to be used in the processing by a list of useType and any observation types not defined within the list are ignored and discarded. Similarly observations defined in the list of ignoreType are ignored and discarded. The codes used follow the RINEX 3 definition.
Each receiver goes through a preprocessing step individually, where observation outliers are removed or downweighted, continuous tracks of phase observations are defined for ambiguity parametrization, cycle slips are detected, and receivers are disabled if they do not fulfill certain requirements. The preprocessing step consists of an initial PPP estimation done by robust least squares adjustment and checks whether the position error of the solutions exceeds codeMaxPositionDiff. If the error exceeds the threshold the receiver will be discarded. The preprocessing also sets initial clock error values and removes tracks that stay below a certain elevation mask (elevationTrackMinimum).
See also GnssProcessing and GnssSimulateReceiver.
StationNetwork
A network of GNSS ground stations is defined via inputfileStationList.
Each line can contain more than one station. The first station in each line for which inputfileObservations
exists and contains enough observations is used for the processing.
All input files except inputfileAntennaDefinition,
inputfileReceiverDefinition, and
inputfileAccuracyDefinition are read for each station.
The file name is interpreted as a template with the variable {station}
being replaced by the station name.
The effects of loading and tidal deformation on station positions can be corrected for via loadingDisplacement and tidalDisplacement, respectively. Tidal deformations typically include:
- earthTide: Earth tidal deformations (IERS conventions)
-
doodsonHarmonicTide: ocean tidal deformations
(e.g. fes2014b_n720, minDegree=
1
) -
doodsonHarmonicTide: atmospheric tidal deformation
(e.g. AOD1B RL06, minDegree=
1
) - poleTide: pole tidal deformations (IERS conventions)
- poleOceanTide: ocean pole tidal deformations (IERS conventions)
Name | Type | Annotation |
---|---|---|
inputfileStationList | filename | ascii file with station names |
maxStationCount | uint | maximum number of stations to be used |
inputfileStationInfo | filename | variable {station} available. station metadata (antennas, receivers, ...) |
inputfileAntennaDefinition | filename | antenna center offsets and variations |
noAntennaPatternFound | choice | what should happen if no antenna pattern is found for an observation |
ignoreObservation | ignore observation if no matching pattern is found | |
useNearestFrequency | use pattern of nearest frequency if no matching pattern is found | |
throwException | throw exception if no matching pattern is found | |
inputfileReceiverDefinition | filename | observed signal types |
inputfileAccuracyDefinition | filename | elevation and azimuth dependent accuracy |
inputfileStationPosition | filename | variable {station} available. |
inputfileClock | filename | variable {station} available |
inputfileObservations | filename | variable {station} available |
loadingDisplacement | gravityfield | loading deformation |
tidalDisplacement | tides | tidal deformation |
ephemerides | ephemerides | for tidal deformation |
inputfileDeformationLoadLoveNumber | filename | |
inputfilePotentialLoadLoveNumber | filename | if full potential is given and not only loading potential |
useType | gnssType | only use observations that match any of these patterns |
ignoreType | gnssType | ignore observations that match any of these patterns |
elevationCutOff | angle | [degree] ignore observations below cutoff |
elevationTrackMinimum | angle | [degree] ignore tracks that never exceed minimum elevation |
minObsCountPerTrack | uint | tracks with less number of epochs with observations are dropped |
minEstimableEpochsRatio | double | [0,1] drop stations with lower ratio of estimable epochs to total epochs |
preprocessing | sequence | settings for preprocessing of observations/stations |
printStatistics | boolean | print preprocesssing statistics for all receivers |
huber | double | residuals > huber*sigma0 are downweighted |
huberPower | double | residuals > huber: sigma=(e/huber)^huberPower*sigma0 |
codeMaxPositionDiff | double | [m] max. allowed position error by PPP code only clock error estimation |
denoisingLambda | double | regularization parameter for total variation denoising used in cylce slip detection |
tecWindowSize | uint | (0 = disabled) window size for TEC smoothness evaluation used in cycle slip detection |
tecSigmaFactor | double | factor applied to moving standard deviation used as threshold in TEC smoothness evaluation during cycle slip detection |
outputfileTrackBefore | filename | variables {station}, {prn}, {trackTimeStart}, {trackTimeEnd}, {types}, TEC and MW-like combinations in cycles for each track before cycle slip detection |
outputfileTrackAfter | filename | variables {station}, {prn}, {trackTimeStart}, {trackTimeEnd}, {types}, TEC and MW-like combinations in cycles for each track after cycle slip detection |
LowEarthOrbiter
A single low-Earth orbiting (LEO) satellite with an onboard GNSS receiver. An apriori orbit is needed as inputfileOrbit. Attitude data must be provided via inputfileStarCamera. If no attitude data is available from the satellite operator, the star camera data can be simulated by using SimulateStarCamera.
Name | Type | Annotation |
---|---|---|
inputfileStationInfo | filename | satellite metadata (antenna, receiver, ...) |
inputfileAntennaDefinition | filename | antenna center offsets and variations |
noAntennaPatternFound | choice | what should happen if no antenna pattern is found for an observation |
ignoreObservation | ignore observation if no matching pattern is found | |
useNearestFrequency | use pattern of nearest frequency if no matching pattern is found | |
throwException | throw exception if no matching pattern is found | |
inputfileReceiverDefinition | filename | observed signal types |
inputfileAccuracyDefinition | filename | elevation and azimut dependent accuracy |
inputfileObservations | filename | |
inputfileOrbit | filename | approximate positions |
inputfileStarCamera | filename | satellite attitude |
sigmaFactorPhase | expression | PHASE: factor = f(FREQ, ELE, SNR, ROTI, dTEc, IONOINDEX) |
sigmaFactorCode | expression | CODE: factor = f(FREQ, ELE, SNR, ROTI, dTEc, IONOINDEX) |
supportsIntegerAmbiguities | boolean | receiver tracks full cycle integer ambiguities |
wavelengthFactor | double | factor to account for half-wavelength observations (collected by codeless squaring techniques) |
useType | gnssType | only use observations that match any of these patterns |
ignoreType | gnssType | ignore observations that match any of these patterns |
elevationCutOff | angle | [degree] ignore observations below cutoff |
minObsCountPerTrack | uint | tracks with less number of epochs with observations are dropped |
preprocessing | sequence | settings for preprocessing of observations/stations |
printStatistics | boolean | print preprocesssing statistics for all receivers |
huber | double | residuals > huber*sigma0 are downweighted |
huberPower | double | residuals > huber: sigma=(e/huber)^huberPower*sigma0 |
codeMaxPositionDiff | double | [m] max. allowed position error by PPP code only clock error estimation |
denoisingLambda | double | regularization parameter for total variation denoising used in cylce slip detection |
tecWindowSize | uint | (0 = disabled) window size for TEC smoothness evaluation used in cycle slip detection |
tecSigmaFactor | double | factor applied to moving standard deviation used as threshold in TEC smoothness evaluation during cycle slip detection |
outputfileTrackBefore | filename | variables {station}, {prn}, {timeStart}, {timeEnd}, {types}, TEC and MW-like combinations in cycles for each track before cycle slip detection |
outputfileTrackAfter | filename | variables {station}, {prn}, {timeStart}, {timeEnd}, {types}, TEC and MW-like combinations in cycles for each track after cycle slip detection |