GnssParametrization

This class defines the models and parameters of the linearized observation equations for all phase and code measurements (see GnssProcessing) \[\label{gnssParametrizationType:model} \M l - \M f(\M x_0) = \left.\frac{\partial \M f(\M x)}{\partial \M x}\right|_{\M x_0} \Delta\M x + \M\epsilon, \]where the left side is the observation vector minus the effects computed from the a priori models. After each least squares adjustment (see GnssProcessing:processingStep:estimate) the a priori parameters are updated \[\label{gnssParametrizationType:update} \M x_0 := \M x_0 + \Delta\hat{\M x}. \]The vector $\M x_0$ can be written with GnssProcessing:processingStep:writeAprioriSolution. Any outputfiles defined in the parametrizations are written with GnssProcessing:processingStep:writeResults.

Each parametrization (and possible constraint equations) has a name which enables activating/deactivating the estimation of subsets of $\Delta\M x$ with GnssProcessing:processingStep:selectParametrizations. The a priori model $\M f(\M x_0)$ is unaffected and is always reduced.

The model for the different observation types can be described as \[\label{gnssParametrizationType:gnssFullModel} \begin{split} f[\tau\nu a]_r^s(\M x) &= \text{geometry}(\M r_r^s) + \text{clock}^s(t) + \text{clock}_r(t) \\ &+ \text{ionosphere}([\tau\nu],t,\M r_r^s) + \text{troposphere}(t,\M r_r^s) \\ &+ \text{antenna}[\tau\nu a]^s + \text{antenna}[\tau\nu a]_r \\ &+ \text{bias}[\tau\nu a]^s + \text{bias}[\tau\nu a]_r + \lambda[L\nu] N[L\nu a]_r^s + \text{other}(\ldots) + \epsilon[\tau\nu a]_r^s \end{split} \]The notation $[\tau\nu a]_r^s$ describes the attribution to a signal type $\tau$ (i.e., C or L), frequency $\nu$, signal attribute $a$ (e.g., C, W, Q, X), transmitting satellite $s$, and observing receiver $r$. It follows the RINEX 3 definition, see GnssType.

See also GnssProcessing.

IonosphereSTEC

The influence of the ionosphere is modelled by a STEC parameter (slant total electron content) in terms of $[TECU]$ between each transmitter and receiver at each epoch. These parameters are pre-eliminated from the observation equations before accumulating the normal equations. This is similar to using the ionosphere-free linear combination as observations but only one STEC parameter is needed for an arbitrary number of observation types.

The influence on the code and phase observation is modeled as \[\label{gnssParametrizationType:IonosphereSTEC:STEC} \begin{split} \text{ionosphere}([C\nu], STEC) &= \frac{40.3}{f_{\nu}^2}STEC + \frac{7525\M b^T\M k}{f_{\nu}^3}STEC + \frac{r}{f_{\nu}^4}STEC^2 \\ \text{ionosphere}([L\nu], STEC) &= -\frac{40.3}{f_{\nu}^2}STEC - \frac{7525\M b^T\M k}{2f_{\nu}^3}STEC - \frac{r}{3f_{\nu}^4}STEC^2 + \text{bending}(E)STEC^2 \end{split} \]The second order term depends on the magnetosphere $\M b$ and the direction of the signal $\M k$.

If further information about the ionosphere is available (in the form of a prior model or as additional parametrizations such as parametrization:ionosphereMap or parametrization:ionosphereVTEC) the STEC parameters describe local and short–term scintillations. The STEC parameters are estimated as additions to the model and it is advised to constrain them towards zero with a standard deviation of sigmaSTEC.

NameTypeAnnotation
name
stringused for parameter selection
apply2ndOrderCorrection
booleanapply ionospheric correction
apply3rdOrderCorrection
booleanapply ionospheric correction
applyBendingCorrection
booleanapply ionospheric correction
magnetosphere
magnetosphere
nameConstraint
stringused for parameter selection
sigmaSTEC
expressionexpr. for sigma [TECU] for STEC constraint, variable E (elevation) available

IonosphereVTEC

The influence of the ionosphere is modelled by a VTEC parameter (vertical total electron content) in terms of $[TECU]$ for every selected receiver each epoch. The slant TEC is computed using the elevation $E$ dependent Modified Single-Layer Model (MSLM) mapping function \[\label{gnssParametrizationType:IonosphereVTEC:STEC} STEC = \frac{VTEC}{\cos z'} \qquad\text{with}\qquad \sin z'= \left(\frac{R}{R+H}\right)\sin\left(\alpha(\pi/2-E)\right) \]inserted into eq. \eqref{gnssParametrizationType:IonosphereSTEC:STEC}.

The result is written as a times series file at epochs with observations depending on GnssProcessing:processingStep:selectEpochs.

This class provides a simplifed model of the ionosphere for single receivers and enables the separation of the TEC and signal biases, meaning parametrization:tecBiases becomes estimable. Local and short-term scintillations should be considered by adding loosely constrained parametrization:ionosphereSTEC.

The parameter names are <station>:VTEC::<time>.

NameTypeAnnotation
name
string
selectReceivers
platformSelector
outputfileVTEC
filenamevariable {station} available
mapR
doubleconstant of MSLM mapping function
mapH
doubleconstant of MSLM mapping function
mapAlpha
doubleconstant of MSLM mapping function

IonosphereMap

Apriori VTEC maps can be removed from the observations with inputfileGriddedDataTimeSeries (e.g. from GnssIonex2GriddedDataTimeSeries).

The ionosphere is parametrized in terms of $[TECU]$ in a single layer sphere with radiusIonosphericLayer as a temporally changing (e.g. hourly linear splines) spherical harmonics expansion \[ VTEC(\lambda,\theta,t) = \sum_{n=0}^{n_{max}} \sum_{m=0}^n c_{nm}(t)C_{nm}(\lambda,\theta)+s_{nm}(t)S_{nm}(\lambda,\theta) \]up to maxDegree=15 in a solar-geomagentic frame defined by magnetosphere. The VTEC values are mapped to STEC values in the observation equations via eq. \eqref{gnssParametrizationType:IonosphereVTEC:STEC}.

The estimated VTEC inclusive the apriori inputfileGriddedDataTimeSeries can be written to outputfileGriddedDataTimeSeries evaluated at outputGrid and outputTimeSeries.

Local and short-term scintillations should be considered by adding constrained parametrization:ionosphereSTEC. To account for signal biases add parametrization:tecBiases.

The parameter names are

NameTypeAnnotation
name
string
selectReceivers
platformSelector
outputfileGriddedDataTimeSeries
filenamesingle layer VTEC [TECU]
outputGrid
grid
outputTimeSeries
timeSeries
inputfileGriddedDataTimeSeries
filenamesingle layer VTEC [TECU]
maxDegree
uintspherical harmonics parametrization
temporal
parametrizationTemporaltemporal evolution of VTEC values
radiusIonosphericLayer
double[m] radius of ionospheric single layer
mapR
double[m] constant of MSLM mapping function
mapH
double[m] constant of MSLM mapping function
mapAlpha
doubleconstant of MSLM mapping function
magnetosphere
magnetosphere

Clocks

Clock errors are estimated epoch-wise for each selectTransmitter/Receiver. No clock errors are estimated if no valid observations are available (e.g. data gaps in the observations).

These parameters are lineary dependent and would lead to a rank deficiency in the normal equation matrix. To circumvent this issue, the estimation requires an additional zero-mean constraint added in each epoch. This is realized with an additional observation equation \[ 0 = \frac{1}{n_i + n_k} (\sum_i \Delta t^{s_i} + \sum_k \Delta t_{r_k}) \]summed over all selectTransmitters/ReceiversZeroMean with a standard deviation of sigmaZeroMeanConstraint.

The parameter names are <station or prn>:clock::<time>.

NameTypeAnnotation
name
stringused for parameter selection
selectTransmitters
platformSelector
selectReceivers
platformSelector
outputfileClockTransmitter
filenamevariable {prn} available
outputfileClockReceiver
filenamevariable {station} available
nameConstraint
stringused for parameter selection
selectTransmittersZeroMean
platformSelector
selectReceiversZeroMean
platformSelector
sigmaZeroMeanConstraint
double(0 = unconstrained) sigma [m] for zero-mean constraint over all selected clocks

ClocksModel

This parametrization is an alternative to parametrization:clocks. Clock errors are estimated epoch-wise for each selectTransmitter/Receiver and, opposed to parametrization:clocks, are also estimated for epochs that have no valid observations available (e.g. data gaps).

The clock error of the an epoch can be predicted by the clock error of the preceding epoch and an unknown clock drift \[ \Delta t_{i+1} = \Delta t_{i} + t_{drift} dt + \epsilon_i. \]This equation is applied as an additional constraint equation in each epoch \[ 0 = \Delta t_{i+1} - \Delta t_{i} - t_{drift} dt + \epsilon_i. \]The variance $\sigma^2(\epsilon)$ is estimated iteratively by variance component estimation (VCE). Clock jumps are treated as outliers and are automatically downweighted as described in GnssProcessing:processingStep:estimate.

The absolute initial clock error and clock drift cannot be determined if all receiver and transmitter clocks are estimated together due to their linear dependency. This linear dependency would lead to a rank deficiency in the normal equation matrix in the same manner as described in parametrization:clocks. To circumvent the rank deficiency additional zero-mean constraints are required for the first and last epoch. The realization of the constraint is done as an additional observation equation in the form \[ 0 = \frac{1}{n_i + n_k} (\sum_i \Delta t^{s_i} + \sum_k \Delta t_{r_k}) \]summed over all selectTransmitters/ReceiversZeroMean with a standard deviation of sigmaZeroMeanConstraint.

The parameter names are <station or prn>:clock::<time> and <station or prn>:clockDrift::.

NameTypeAnnotation
name
stringused for parameter selection
selectTransmitters
platformSelector
selectReceivers
platformSelector
outputfileClockTransmitter
filenamevariable {prn} available
outputfileClockReceiver
filenamevariable {station} available
huber
doubleclock jumps > huber*sigma0 are downweighted
huberPower
doubleclock jumps > huber: sigma=(e/huber)^huberPower*sigma0
nameConstraint
stringused for parameter selection
selectTransmittersZeroMean
platformSelectoruse these transmitters for zero-mean constraint
selectReceiversZeroMean
platformSelectoruse these receivers for zero-mean constraint
sigmaZeroMeanConstraint
double(0 = unconstrained) sigma [m] for zero-mean constraint over all selected clocks

SignalBiases

Each code and phase observation (e.g C1C or L2W) contains a bias at transmitter/receiver level \[ [\tau\nu a]_r^s(t) = \dots + \text{bias}[\tau\nu a]^s + \text{bias}[\tau\nu a]_r + \dots \]This class provides the apriori model $\M f(\M x_0)$ of eq. \eqref{gnssParametrizationType:model} only.

The inputfileSignalBiasTransmitter/Receiver are read for each receiver and transmitter. The file name is interpreted as a template with the variables {prn} and {station} being replaced by the name. (Infos regarding the variables {prn} and {station} can be found in gnssTransmitterGeneratorType and gnssReceiverGeneratorType respectively). The files can be converted with GnssSinexBias2SignalBias.

The estimation of the biases is complex due to different linear dependencies, which result in rank deficiencies in the system of normal equations. For simplification the parametrization for $\Delta\M x$ has been split into: parametrization:codeBiases, parametrization:tecBiases, and parametrization:ambiguities (including phase biases). The file handling on the other hand still remains within this class. Any prior values for the receiver/transmitter biases are read with the respective inputFileSignalBias. All biases for a receiver/transmitter are accumulated and written to the respective outputFileSignalBias.

NameTypeAnnotation
name
stringused for parameter selection
selectTransmitters
platformSelector
selectReceivers
platformSelector
outputfileSignalBiasTransmitter
filenamevariable {prn} available
outputfileSignalBiasReceiver
filenamevariable {station} available
inputfileSignalBiasTransmitter
filenamevariable {prn} available
inputfileSignalBiasReceiver
filenamevariable {station} available

Ambiguities

Sets up an ambiguity parameter for each track and phase observation type. \[ [L\nu a]_r^s(t) = \dots + \text{bias}[L\nu a]^s + \text{bias}[L\nu a]_r + \lambda[L\nu] N[L\nu a]_r^s \]As the phase observations contain a float bias at transmitter/receiver level, not all ambiguities are resolvable to integer values. The number of resolvable ambiguities can be increased with known phase biases read from file via parametrization:signalBiases. In this case, estimateTransmitter/ReceiverPhaseBiasTransmitter should not be used for the corresponding transmitters and receivers.

In case of GLONASS, the phase biases at receiver level differ between different frequency channels (frequency division multiple access, FDMA) and for each channel an extra float phase bias is estimated. With linearGlonassBias a linear relationship between bias and frequency channel is assumed, which reduces the number of float bias parameters and increases the number of resolvable integer ambiguities.

The integer ambiguities can be resolved and fixed in GnssProcessing:processingStep:resolveAmbiguities. Resolved integer ambiguities are not estimated as unknown parameters in gnssProcessingStepType:estimate anymore and are removed from the system of normal equations.

The estimated phase biases can be written to files in parametrization:signalBiases.

The parameter names are

NameTypeAnnotation
name
stringused for parameter selection
estimateTransmitterPhaseBias
platformSelector
estimateReceiverPhaseBias
platformSelector
linearGlonassBias
booleanbias depends linear on frequency channel number

CodeBiases

Each code observation (e.g C1C or C2W) contains a bias at transmitter/receiver level \[ [C\nu a]_r^s(t) = \dots + \text{bias}[C\nu a]^s + \text{bias}[C\nu a]_r + \dots \]The code biases cannot be estimated together with clock errors and ionospheric delays in an absolute sense as rank deficiencies will occur in the system of normal equations. Therefore, the biases are not initialized and set up as parameters directly but only estimable linear combinations are parametrized.

The basic idea is to set up simplified normal equations with the biases, clock and STEC parameters of one single receiver or transmitter, eliminate clock and STEC parameters and perform an eigen value decomposition of the normal equation matrix \[ \M N = \M Q \M\Lambda \M Q^T. \]Instead of estimating the original bias parameter $\M x$ a transformed set $\bar{\M x}$ is introduced: \[ \bar{\M x} = \M Q^T \M x. \]The new parameters corresponding to eigen values $\lambda>0$ are estimable, the others are left out (set to zero). The behavior can be controlled by explicitly setting up to two bias types with typesClockDatum for each transmitter to zero. These then define the ionosphere-free clock datum of the transmitter. The missing linear combinations, which depend on the STEC parameters, can be added with parametrization:tecBiases.

Additional rank deficiencies may also occur when biases of transmitters and receivers are estimated together. The minimum norm nullspace (also via eigen value decomposition) is formulated as zero constraint equations and added with a standard deviation of sigmaZeroMeanConstraint.

In case of GLONASS the code biases at receiver level can differ between different frequency channels (frequency division multiple access, FDMA) and for each channel an extra code bias is estimated. With linearGlonassBias a linear relationship between bias and frequency channel is assumed, which reduces the number of bias parameters.

The estimated biases can be written to files in parametrization:signalBiases.

The parameter names are <station or prn>:codeBias0<index><combi of gnssTypes>::.

NameTypeAnnotation
name
stringused for parameter selection
selectTransmitters
platformSelector
selectReceivers
platformSelector
linearGlonassBias
booleanbias depends linear on frequency channel number
typesClockDatum
gnssTypefirst two matching types define the ionosphere free transmitter clock (e.g. C1WG, C2WG)
nameConstraint
stringused for parameter selection
sigmaZeroMeanConstraint
double(0 = unconstrained) sigma [m] for null space constraint

TecBiases

Each code observation (e.g C1C or C2W) contains a bias at transmitter/receiver level \[ [C\nu a]_r^s(t) = \dots + \text{bias}[C\nu a]^s + \text{bias}[C\nu a]_r + \ldots \]This parametrization represents the linear combination of signal biases which completely depend on the STEC parameters. Ignoring these bias combinations would result in a biased STEC estimation (all other parameters are nearly unaffected). To determine this part of the signal biases the parametrization:ionosphereSTEC should be constrained. Furthermore, additional information about the ionosphere is required from parametrization:ionosphereVTEC or parametrization:ionosphereMap.

Rank deficiencies due to the signal bias parameters may occur if biases of transmitters and receivers are estimated together. The minimum norm nullspace is formulated as zero constraint equations and added with a standard deviation of sigmaZeroMeanConstraint.

The accumulated estimated result can be written to files in parametrization:signalBiases.

The parameter names are <station or prn>:tecBias0<index><combi of gnssTypes>::.

NameTypeAnnotation
name
stringused for parameter selection
selectTransmitters
platformSelector
selectReceivers
platformSelector
linearGlonassBias
booleanphase or code biases depend linear on frequency channel number
nameConstraint
stringused for parameter selection
sigmaZeroMeanConstraint
double(0 = unconstrained) sigma [m] for null space constraint

TemporalBias

This parametrization resolves the issue of some phase observations suffering from time-variable biases. Such a phenomenon has been found to affect GPS block IIF satellites on the L5 phase measurements (see Montenbruck et al. 2011, DOI: 10.1007/s10291-011-0232-x).

For these time-variable biases an appropriate temporal representation has to be defined in parametrizationTemporal. For example, time-variable biases for GPS block IIF L5 phase observations (type=L5*G) can be represented by a cubic spline with a nodal distance of one hour.

The result is written as a times series file at the processing sampling or the sampling set by GnssProcessing:processingStep:selectEpochs).

This parametrization should be set up in addition to the constant parametrization:signalBiases. Depending on the temporal representation a temporal zero-mean constraint is needed to separate this parametrization from the constant component. The constraint equations are added with a standard deviation of sigmaZeroMeanConstraint.

The parameter names are <prn>:signalBias.<gnssType>:<temporal>:<interval>.

NameTypeAnnotation
name
stringused for parameter selection
selectTransmitters
platformSelector
outputfileBiasTimeSeries
filenamevariable {prn} available
inputfileBiasTimeSeries
filenamevariable {prn} available
type
gnssType
parametrizationTemporal
parametrizationTemporal
nameConstraint
stringused for parameter selection
sigmaZeroMeanConstraint
double(0 = unconstrained) sigma [m] for temporal zero-mean constraint

StaticPositions

Estimates a static position for all selectReceivers in the terrestrial frame.

No-net constraints can be applied for a subset of stations, selectNoNetReceivers, with a standard deviation of noNetTranslationSigma and noNetRotationSigma and noNetScaleSigma. If the template inputfileNoNetPositions is provided the constraints are applied relatively to these positions. Only stations with an existing position file are considered. Without inputfileNoNetPositions the constraints are applied towards the apriori values from GnssProcessing:receiver. As a single corrupted station position can disturb the no-net conditions, the rotation/translation parameters are estimated in a robust least squares adjustment beforehand. The computed weight matrix is used to downweight corrupted stations in the constraint equations.

In case you want to align to an ITRF/IGS reference frame, precise coordinates can be generated with Sinex2StationPositions.

The parameter names are

NameTypeAnnotation
name
stringused for parameter selection
selectReceivers
platformSelector
outputfileGriddedPosition
filenamedelta north east up for all stations
outputfilePosition
filenamevariable {station} available, full estimated coordinates (in TRF)
nameConstraint
stringused for parameter selection
selectNoNetReceivers
platformSelector
inputfileNoNetPositions
filenamevariable {station} available, precise coordinates used for no-net constraints (in TRF)
noNetTranslationSigma
double(0 = unconstrained) sigma [m] for no-net translation constraint on station coordinates
noNetRotationSigma
double(0 = unconstrained) sigma [m] at Earth's surface for no-net rotation constraint on station coordinates
noNetScaleSigma
double(0 = unconstrained) sigma [m] for no-net scale constraint on station coordinates
huber
doublestations > huber*sigma0 are downweighted in no-net constraint
huberPower
doublestations > huber: sigma=(e/huber)^huberPower*sigma0

KinematicPositions

Estimates the epoch-wise outputfilePositions in an Earth-fixed frame (or in case of LEO satellites in an intertial frame).

The $3\times3$ epoch wise outputfileCovarianceEpoch are computed within GnssProcessing:processingStep:computeCovarianceMatrix

The parameter names are

NameTypeAnnotation
name
stringused for parameter selection
selectReceivers
platformSelector
outputfilePositions
filenamevariable {station} available, estimated kinematic positions/orbit
outputfileCovarianceEpoch
filenamevariable {station} available, 3x3 epoch covariances

LeoDynamicOrbits

The estimation of (reduced) dynamic orbits is formulated as variational equations. It is based on inputfileVariational calculated with PreprocessingVariationalEquation. Necessary integrations are performed by integrating a moving interpolation polynomial of degree integrationDegree. The parametrizationAcceleration must include at least those parameters that were estimated in PreprocessingVariationalEquationOrbitFit. Additional stochasticPulse parameters can be set up to reduce orbit mismodeling. If not enough epochs with observations are available (minEstimableEpochsRatio) the LEO satellite is disabled.

The parameters and parameter names are divided into global

and arc related parameters

NameTypeAnnotation
name
stringused for parameter selection
selectReceivers
platformSelector
outputfileOrbit
filenamevariable {station} available
outputfileParameters
filenamevariable {station} available
inputfileVariational
filenamevariable {station} available
stochasticPulse
timeSeries[mu/s] parametrization of stochastic pulses
parametrizationAcceleration
parametrizationAccelerationorbit force parameters
ephemerides
ephemerides
minEstimableEpochsRatio
doubledrop satellites with lower ratio of estimable epochs to total epochs
integrationDegree
uintintegration of forces by polynomial approximation of degree n
interpolationDegree
uintfor orbit interpolation and velocity calculation

TransmitterDynamicOrbits

Same as leoDynamicOrbits but for transmitting GNSS satellites. For more details see orbit integration.

NameTypeAnnotation
name
stringused for parameter selection
selectTransmitters
platformSelector
outputfileOrbit
filenamevariable {prn} available
outputfileParameters
filenamevariable {prn} available
inputfileVariational
filenamevariable {prn} available
stochasticPulse
timeSeries[mu/s] parametrization of stochastic pulses
parametrizationAcceleration
parametrizationAccelerationorbit force parameters
ephemerides
ephemerides
minEstimableEpochsRatio
doubledrop satellites with lower ratio of estimable epochs to total epochs
integrationDegree
uintintegration of forces by polynomial approximation of degree n
interpolationDegree
uintfor orbit interpolation and velocity calculation

Troposphere

A priori tropospheric correction is handled by a troposphere model (e.g. Vienna Mapping Functions 3). Additional parameters in $[m]$ for zenith wet delay and gradients can be set up via troposphereWetEstimation (usually 2-hourly linear splines) and troposphereGradientEstimation (usually a daily trend). These parameters can be soft-constrained using parametrization:constraints to avoid an unsolvable system of normal equations in case of data gaps.

The parameter names are

NameTypeAnnotation
name
stringused for parameter selection
selectReceivers
platformSelector
outputfileTroposphere
filenamecolumns: MJD, ZHD, ZWD, dry north gradient, wet north gradient, dry east gradient, wet east gradient, ...
troposphere
tropospherea priori troposphere model
troposphereWetEstimation
parametrizationTemporal[m] parametrization of zenith wet delays
troposphereGradientEstimation
parametrizationTemporal[degree] parametrization of north and east gradients

EarthRotation

Earth rotation parameters (ERPs) can be estimated by defining estimatePole ($x_p$, $y_p\, [mas]$) and estimateUT1 ($dUT1\, [ms], LOD$).

Estimating length of day (LOD) with the sign according to IGS conventions requires a negative value in parametrizationTemporal:trend:timeStep.

Constraints on the defined parameters can be added via parametrization:constraints. An example would be to set up estimateUT1:constant so the $dUT1$ parameter is included in the normal equation system . Since $dUT1$ cannot be determined by GNSS, a hard constraint to its a priori value can then be added.

The parameter names are

NameTypeAnnotation
name
stringused for parameter selection
outputfileEOP
filenameEOP time series (mjd, xp, yp, sp, dUT1, LOD, X, Y, S)
estimatePole
parametrizationTemporalxp, yp [mas]
estimateUT1
parametrizationTemporalrotation angle [ms]
estimateNutation
parametrizationTemporaldX, dY [mas]

ReceiverAntennas

This class is for parametrization the antenna for their antenna center offsets (ACO) and antenna center variations (ACV) by antennaCenterVariations. The receivers to be estimated can be selected by selectReceivers.

The amount of patterns to be estimated is configurable with a list of patternTypes. For each added patternTypes a set of parameters will be evaluated. The observations will be assigned to the first patternTypes that matches their own. E.g. having the patterns: ***G and L1* would lead to all GPS observations be assigned to the observation equations of the first pattern. The patterntype L1* would then consist of all other GNSS L1 phase observations. addNonMatchingTypes will, if activated, create automatically patterns for observations that are not selected within the list patternTypes. Furthermore, it is possible to group same antenna build types from different receivers by groupAntennas. The grouping by same antenna build ignores antenna serial numbers.

To estimate the antenna variation parameters, a longer period of observations might be necessary for accurate estimations. Hence one should use this parametrization by accumulating normal equations from several epochs. This can be accomplished as the last steps in the processing steps by adding ReceiverAntennas to current selected parameters with GnssProcessing:processingStep:selectParametrizations and write the normal equation matrix with GnssProcessing:processingStep:writeNormalEquations. The written normal equations can then be accumulated with NormalsAccumulate and solved by NormalsSolverVCE. Further, one should apply constraints to the normal equations by GnssAntennaNormalsConstraint since the estimation of ACO and ACV can lead to rank deficiencies in the normal equation matrix. Last the solved normal equation can be parsed to a antenna definition file with the program ParameterVector2GnssAntennaDefinition.

As example referring to the cookbook GNSS satellite orbit determination and station network analysis, one could add additionally receiverAntennas as parametrization. Since the estimations are done on a daily basis for each receiver we add an additional selectParametrizations which disables parameter.receiverAntenna. After all stations are processed together with all parameters, one adds parameter.receiverAntenna with selectParametrizations to the current selected parametrizations. The last processingStep is GnssProcessing:processingStep:writeNormalEquations to write the daily normal equations including the parametrization receiverAntennas into files. These normal equation files are then processed with the programs:

Note that the apriori value $\M x_0$ for this parametrization is always zero and never updated according to eq. \eqref{gnssParametrizationType:update}.

The parameter names are <antennaName>:<antennaCenterVariations>.<gnssType>::.

NameTypeAnnotation
name
stringused for parameter selection
selectReceivers
platformSelector
antennaCenterVariations
parametrizationGnssAntennaestimate antenna center variations
patternTypes
gnssTypegnssType for each pattern (first match is used)
addNonMatchingTypes
booleanadd patterns for additional observed gnssTypes that don't match any of the above
groupAntennas
booleancommon ACVs for same antenna build types (ignores antenna serial number)

TransmitterAntennas

Same as receiverAntennas but for transmitting antennas (GNSS satellites).

The parameter names are <antennaName>:<antennaCenterVariations>.<gnssType>::.

NameTypeAnnotation
name
stringused for parameter selection
selectTransmitters
platformSelector
antennaCenterVariations
parametrizationGnssAntennaestimate antenna center variations
patternTypes
gnssTypegnssType for each pattern (first match is used)
addNonMatchingTypes
booleanadd patterns for additional observed gnssTypes that don't match any of the above
groupAntennas
booleancommon ACVs for same antenna build types (ignores antenna serial number)

Constraints

Add a pseudo observation equation (constraint) for each selected parameters \[ b-x_0 = 1 \cdot dx + \epsilon, \]where $b$ is the bias and $x_0$ is the a priori value of the parameter if relativeToApriori is not set. The standard deviation sigma is used to weight the observation equations.

NameTypeAnnotation
name
string
parameters
parameterSelectorparameter to constrain
sigma
doublesigma of the constraint (same unit as parameter)
bias
doubleconstrain all selected parameters towards this value
relativeToApriori
booleanconstrain only dx and not full x=dx+x0

Group

Groups a set of parameters. This class can be used to structure complex parametrizations and has no further effect itself.

NameTypeAnnotation
parametrization
gnssParametrization