*2.3. Antenna Calibration and Retrieval of New ANTEX Entries*

This subsection details the antenna calibration process. It is a fundamental step in our experiment and consists of an elevation-only and an azimuth and elevation dependent correction.

Near-field, multipath and antenna PCVs, summed up as multipath, affect all estimated parameters and residuals in the processing. Objects that are close to the antenna (near-field) affect the antenna patterns especially in the antenna PCO and azimuth- and elevation dependent PCVs. This effect cannot be covered in existing antenna calibrations without conducting the calibration procedure at the same location where the observation is taking place.

The main part of the antenna calibration consists of obtaining satellite phase residuals and is performed using RTKLIB. For each frequency, in our case GPS L1 and L2, the residuals are 'stacked' into elevation and azimuth bins. Two types approaches are used: (1) an elevation-only correction by averaging over all azimuth directions and (2) an azimuth and elevation dependent correction.

The GNSS processing engine RTKLIB [25] is open source and contains a range of Application Programs (APs) to perform real-time and post-processing precise positioning with GNSS data. It employs an Extended Kalman Filter (EKF) to obtain final differential solutions. In our analysis, the baseline processing was performed using the RTKLIB 2.4.3 Command-line User Interface (CLI) RNX2RTKP. Its functions are equivalent to the Graphical User Interface (GUI) program RTKPOST. In its standard configuration the program uses the highest elevation satellite as reference to obtain DDs. The residuals are written to a file for each satellite in view, with a zero value for the reference satellite, actually using a single difference (SD) format to store the DD residuals. For the analysis of the phase center variation we need however SD residuals. To obtain the SD residuals the average of the DD residuals (reference satellite included) must be subtracted from the DD residuals (again reference satellite included). This is the same as using the average DD residuals as reference. In order to use the average DD residuals as a reference, the source code was modified and recompiled. The observed measurement errors now had an expected zero mean of all satellite residuals on each frequency and not only for the highest elevation satellite. In our version the residuals were computed as in previous (legacy) RTKLIB releases. To avoid unintended behavior, the changes were discussed and changed in correspondence with the author of the package on github (see github issue: [26]).

Table 2 shows the processing settings used for the baseline analysis. Important processing options are the positioning solution to static (-p 3), elevation cut-off 5 degrees (-m 5), AR fix-and-hold (-h) and output residuals (-y 2). For Ambiguity Resolution (AR), the LAMBDA algorithm [27] is used within RTKLIB. The basic strategy in RTKLIB is to fix the ambiguities to integer after a float solution has been obtained. In our analysis we decided to use the fix-and-hold method. Further details on a conducted sensitivity case study can be found in Appendix B. The static processing option will strictly constrain the receiver movements for the observation period. It is preferred over a kinematic solution for the residual analysis since the rover antenna position does not change and the measurement errors should reflect this in the residuals and not in the estimated position. Driven by uncertainty about the implementation of applying ANTEX PCV corrections in RTKLIB, the antenna calibrations were not applied directly in the processing. Instead, their influence was analyzed separately. Each observation file of each antenna was processed and the generated output consisted of East, North and Up (ENU) components as well as frequency and azimuth and elevation dependent satellite residuals on code and phase measurements. For the relative antenna calibration, only the phase residuals were utilized.


**Table 2.** RTKLIB RNX2RTKP command line options

To reduce noise and avoid outliers in the data, the residuals of each antenna are stacked over generally three selected DOYs (LEIAR25.R3: 79, 81, 83; TRM55971.00: 87, 88, 90; GA530: 65, 66, 70; AV28 with rectangular bracket: 47, 48, 49; AV28 with circular plane: 285, 286, 287; ANN-MB with rectangular bracket: 58, 61, 62) which were selected after a visible inspection. Only the ANN-MB-00 circular plane data is stacked over two days (DOYs 289 and 290) driven by the short observation period and evident outliers in the observed residuals.

In the first approach, the elevation-only phase patterns are visualised based on a first stacking, by taking the mean from all observations within 0.5 degree elevation bins. Afterwards, to correspond to the ANTEX standard, the stacked elevation-only phase residuals were averaged to 5 degree elevation bins using a moving-average filter. The resulting smoothed curve is shifted and start and end point (5 and 85 degrees) are substituted with the fitted data from a 10th order polynomial that was fitted over the 0.5 degree data. The resulting smoothed residual curve is the relative antenna calibration PCV (see also Section 3.1).

For the second approach, the azimuth and elevation dependent calibration, the number of residuals in each bin is not very large, and there will be many bins that are empty. To obtain meaningful azimuthal PCVs one should typically use longer observation time spans and rotate the antenna during the experiment in order to sample all azimuth directions. Since our experiment did not include rotating the antenna, and the observation period is only a few days, we do not expect very reliable azimuth corrections. To obtain azimuth dependent antenna patterns, the observed residuals were averaged over 5 degree elevation and azimuth bins and stacked over selected days. Since these measurements are generally noisy, the binned residuals are looped through the elevation bins and smoothed by fitting a 10th order polynomial to the data. To avoid evident outliers by fitting a polynomial to the data, gaps and missing data (especially in the North direction, see also Section 3.1) are filled by the nearest value from the current elevation bin. The 5 degree binned data used for the PCV calibration are taken from the resulting fitted polynomial curves.

For both approaches, to obtain absolute PCVs for each tested antenna, the estimated relative PCVs (averaged residuals) must be added to the absolute PCV of the base station antenna. For the absolute PCV of the base station antenna (LEIAR25.R3 LEIT) we used the IGS type mean azimuth and elevation dependent PCVs. Equation (1) shows how the rover antenna PCV is created:

$$
\varphi\_i^r(az, \iota \mathbf{l}) = \varphi\_i^b(az, \iota \mathbf{l}) + \hat{\varphi}\_i^{br}(az, \iota \mathbf{l}).\tag{1}
$$

The superscripts *b* and *r* denote the base and rover, the subscript *i* the frequency, *az* and *el* the azimuth and elevation angles. By adding the estimated relative PCV of the rover (*<sup>ϕ</sup> br*) to the absolute base antenna PCV (*ϕb*), we obtained the absolute PCVs (*ϕ<sup>r</sup>* ) for the tested antenna. To use the newly generated PCVs in PPP tests, a new entry for each antenna was added to, or replaced in, the ANTEX file. Though individual calibrations are available for our base station antenna, we use the IGS I14.ATX ANTEX file that contains type mean calibrations for the base antenna PCV. A recent study by Araszkiewicz et al., 2019 [28] investigated the height variation on the LEIAR25.R3 antenna with type mean and individual calibrations. They conclude that both methods show similar results.

For each approach (elevation-only and azimuth-elevation), a new ANTEX file is created with one new entry for each antenna that can be used for ZTD estimation using PPP. In this way, the antenna names given in the RINEX files do not have to be modified by instead supplying a respectively differently generated ANTEX file.
