Support Vector Regression Machine Learning Tool to Predict GNSS Clock Corrections in Real-Time PPP Technique Mutaz Wajeh Abdlmajid Qafisheha,b , Angel Martin Furonesa and Joaquin Torres-Sospedrab,c a Departamento de Ingeniería Cartográfica, Geodesia y Fotogrametría, Universitat Politècnica de València, Camino de Vera, S/N, València, Spain b Institute of New Imaging Technologies,Universtiat Jaume I, Avda Vicente Sos Baynat S/N, Castellón, Spain c UBIK Geospatial Solutions S.L., Espaitec 2, Avda Vicente Sos Baynat S/N, Castellón, Spain Abstract Real-time Precise Point Positioning (PPP) can provide the Global Navigation Satellites Systems (GNSS) users with the ability to determine their position accurately using only one GNSS receiver. The PPP solution does not rely on a base receiver or local GNSS network. However, for establishing a real-time PPP solution, the GNSS users are required to receive the Real-Time Service (RTS) message over the Network Transported of RTCM via Internet Protocol (NTRIP). The RTS message includes orbital, code biases, and clock corrections. GNSS users receive those corrections produced by the analysis center with some latency, which degraded the quality of coordinates obtained through real- time PPP. In this research, we investigate the Support Vector Machine (SVR) machine learning tool to overcome the latency for clock corrections in the IGS03 product. Three days of continuous GNSS observations at BREST permanent station in France were selected as a case study. BNC software was used to generate clock corrections files. Taking as reference the clock correction values without latency. The SVR solution shows a reduction in the standard deviation and range with about 30% and 20%, respectively, in comparison to the latency solution for all satellites except those satellites in GLONASS M block. Keywords Real-time Precise Point Positioning, Latency, Support Vector Regression, Clock corrections prediction. 1. Introduction Precise Point Positioning (PPP) is a Global Navigation Satellite System (GNSS) technique that only uses a stand-alone dual-frequency receiver to obtain high-precision positioning and/or navigation [1, 2, 3, 4]. PPP does not use a reference base station with a second GNSS receiver in order to process observations in a differential way or a connection to a network solution from reference stations. The main importance of the technique is the non-local character of the solution since there are not local reference stations involved, no local movements from those reference stations affect the solution. ICL-GNSS 2020 WiP Proceedings, June 02–04, 2020, Tampere, Finland email: muqawa@doctor.upv.es,mutazq@ppu.edu (M.W.A. Qafisheh); aemartin@upvnet.upv.es (A.M. Furones); jtorres@uji.es,torres@ubikgs.com (J. Torres-Sospedra) orcid: 0000-0003-2920-0404 (M.W.A. Qafisheh); 0000-0001-9379-0694 (A.M. Furones); 0000-0003-4338-4334 (J. Torres-Sospedra) ⃝ c 2020 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). CEUR Workshop Proceedings http://ceur-ws.org ISSN 1613-0073 CEUR Workshop Proceedings (CEUR-WS.org) The absolute character of the technique has made it widely used in deformation monitoring, both in infrastructures and natural or environmental projects [5, 6, 7, 8]. However, PPP not only needs high-precision pseudo-range and carrier phase GNSS observa- tions from the satellites to form the ionosphere-free system equations, but it also needs precise satellite clocks and orbit information, signal biases and the computation of tropospheric de- lay, earth tides, phase wind-up, relativistic effects or antenna-phase offsets error sources to be included in the normal equations of the solution [2, 3]. Precise orbits, clocks and biases files for the GNSS satellites are based on the International GNSS Service (IGS) precise products [9], and the rest of the effects can be modelled with enough accuracy, so that PPP can achieve centimeter accuracy in static mode [10] and sub-decimeter accuracy in the kinematic mode [11], both in the post-process. But post-process solution is not the ideal solution for a deformation monitoring project, so PPP has to be used in real-time. In 2001, the International GNSS Service (IGS), began a pilot project for real-time activities [12]. The objectives were to develop and maintain a real-time tracking network and the com- putation and dissemination of real-time observations and orbit and clock correction products derived from these stations to real-time users. IGS officially launch its Real-Time Service (RTS) in April 2013 based on the IGS infrastructure of global network stations. Currently, 10 analysis centers (ACs) are participating in the RTS: BKG, CNES, DLR, ESA/ESOC, GFZ, Geo++, GMV, NRCan, TUW, and Wuhan university [13, 14, 15, 16, 17]. RTS products are distributed as RTCM state-space representation (SSR) correction streams, and they are broadcasted over the Internet using Networked Transport of RTCM via Internet Protocol (NTRIP). The BNC software provided freely by the BKG Agency can be used to generate real-time PPP results using the SSR orbit and clock correction messages together with the ionosphere- free combined pseudorange and carrier phase observations on two frequencies from a single GNSS receiver [18, 19]. Most of these ACs produce its own real-time products (CLK11 from DLR is an example), but IGS produces combined products based on the ACs individual products, which are considered as the official real-time IGS products (currently available are the IGS01 product, which is a single epoch combination solution, the IGS02, which is a Kalman filter combination product, and the experimental IGS03, which is a Kalman filter combination for GPS and GLONASS satellites [15]). One of the main problems in real-time PPP (RT-PPP) is the latency of the RTS products. Latency can be defined as the sum of the time required to produce the products in the AC centers (process observations, update the correction SSR stream and, in case of the IGS combi- nation products, to combine solutions from each AC), and the time required for the computer where the RT-PPP solution is performed to obtain these products (which is mainly based on the Internet connection). These latencies mean that older corrections for satellites clocks and orbits are applied to real-time observations. The use of IGS products (IGS01, IGS02, or IGS03) in RT-PPP introduces a latency of 30-40 seconds in the solution, which produces an RMS residual for the final coordinates of around 0,15 m in the horizontal component and 0,20 m in the vertical component [20]. A possible solution to remove this latency is to predict orbit and clock corrections from the data previously recorded from the SSR streams. A polynomial fitting is usually used to obtain a prediction of the orbit with less than 0.1 m in accuracy [15]. However, clock correction prediction is very difficult to model due to its random nature (including jumps, offsets, and outliers, Fig. 1). Linear model, quadratic and higher-order polynomial prediction models were used in the past [15, 21, 22, 23, 24, 25].A combined model of linear component and sinusoidal terms used to predict clock corrections is proposed in [26, 27]. Results at an IGS station processed in kinematic mode showed that the position error using the predicted corrections were mostly less than 0.15 m with RMSE generally less than a decimeter [26], and at 0.021 m, 0.049 m and 0.017 m in the east, north, and vertical directions in static mode[27]. In this research, machine learning tools [28, 29, 30] are used in order to predict clock cor- rections, which the main objective to improve accuracy in RT-PPP solution by eliminating the latency effect of the RTS products. Since the focus is placed in the extrapolation of the data (clock corrections in this case) by a regression algorithm, random forest or extreme gradient boosting can’t be used. As there are no test data in the extrapolation values, so the method limits to repeat the last prediction from the test data for the extrapolation values. K-Nearest Neighbor can be used for regression, but if the prediction is located far away from the neighbors, the method will have no solution. This is the case if the latency is large such as in the IGS products. Finally, Support Vector Regression (SVR) is used for the prediction in this research. In a binary classification problem, a support vector machine (SVM) generates a hyperplane from the training data set that is capable of splitting the high-dimensional events into two groups [31] by solving a quadratic optimization problem. The selection of the hyperplane that optimally separates two classes is carried out using only a subset of training samples, which are known as support vectors. SVR uses the same principles as the SVM, trying to fit the error within a certain threshold [32]. 2. Data Collection BNC software was used to obtain 70 hours (with 10 seconds of sample rate) of real-time kine- matic PPP results (with latency) at BREST (France) GNSS permanent station (48o 22’49”N, 4o 29’47”W) and to store real-time corrections such as orbit and clock SSR files. IGS03 is used for the solution, so a latency of 30-33 seconds is reported in the solution as a constant for all the observations during the 70 hours of the experiment. We have checked some other products; for example, CLK11 reports a constant latency value in the same computer and local setup of 10-12 seconds, so the part of the latency related to the local setup and network can be considered small. Figure 1 is the IGS03 SSR clock correction for GPS satellite number 28 and GLONASS satellite number 13. However, the applied methodology in this research can be applied to any GNSS station that provides real-time data streaming. 3. Methodology Pandas and Numpy python libraries are used to read the correction files. Consequently, the clock corrections with the timestamp for each satellite are added to the Numpy array, then, the Numpy array was converted to the Pandas data frame. The final output is the IGS03 data frame, which contains 52 columns (all GPS and GLONASS satellites) with 25881 rows (one row for every recorded epoch). BNC software registers the latency in the PPP coordinates solution file; consequently, the latency values were transferred to the IGS03 data frame using software written in Python Figure 1: IGS03 SSR Clock corrections for GPS satellite number 28 and GLONASS satellite number 13. language. The mean value of latency for the IGS03 SSR stream is 31.6 seconds, with a maximum value of 32.2 seconds and a minimum value of 31.3 seconds. SciKit-learn and Keras libraries for machine learning are used in this research. If we keep in mind the real-time nature of this experiment, computational time should be an essential key to address. So, one minute of a sliding window of data was used for the prediction, that is, SVR is fitted for one minute of data. The data collected in the first minute was used as ground truth, and no prediction was conducted on it. Then, when a new observation is stored, the older one was dropped to maintain the same size of the sliding window. Finally, the latency and the fitted SVR model are used to predict the GNSS clock corrections, so the original IGS03 correction file was re-produced to contain the prediction of the clock corrections instead of having the clock corrections value suffering from the latency. The SVR was tested with different kernels (Sigmoid, Radial Basis Function (RBF), linear, and polynomial) in the development phase. The clock correction values data was splitted into train and test data. The model was trained with 70% of available data. Then 30% of the data was used for testing the SVR model. The R2 score for the RBF kernel was the highest among different kernels. Consequently, the RBF is picked as a kernel for the SVR. RBF is a commonly used kernel in the machine and deep learning due to their general approximation and quicker learning speed. It is essential to tune the parameters for this kernel in order to improve the SVR prediction results. The gamma parameter plays a major role in interpolating, extrapolating, and define the Gaussian shape of the RBF kernel [33]: small gamma values for the RBF kernel means to have a wide Gaussian shape with high bias and low variance, on the contrary, large gamma value sharps the edges of the Gaussian, and that leads to low bias and high variance [34]. C parameter controls the cost of misclassification. A large C value gives low bias and high variance, and small C, provide a higher bias with low variance. The clock correction values experience periodical changing each 3–4 hours influenced by clock frequency variation inside the on-board satellite. The main reason for clock frequency variation is due to periodic orbital changes or temperature variation. There is no such way to define the parameters for all regression and classification cases. Thus, the GridSearchCV was used for parameter tuning. GridSearchCV was conducted every 3.5 hours to define the best parameters in our research to prevent a possible bias of the solution due to a bad parameter configuration of the SVR model. Finally, the clock correction prediction values contain some outliers and jumps caused by the outliers and frequency drift jumps of the atomic clocks of the satellites. The magnitude of those outliers in our data set was in the order of the 5-meters and higher. Thus, to detect and eliminate them, a threshold with magnitude 2-meters was introduced in the software; consequently, whenever the prediction value had a 2-meter magnitude or more, the current observation value (the one corresponding to the latency value) is used instead of the predicted one. We define 2 meters as a “practical rule” after some experiments, but more investigation regarding this threshold value with different data sets are needed. 4. Results Currently, GNSS constellations have a mix of old and new satellites, and the on-board clocks are of different types. GNSS satellites have been launched in different blocks. Each block of satellites shares the same manufacturing components, signal structures, on-board clock, type of antenna, etc. This research focuses on two GNSS systems, the GPS and GLONASS. The current blocks on the GPS system are (II-F, III-A, II-R and, IIR-M), while the GLONASS system contains M and K blocks. Consequently, different types of clocks are implemented in each block with varying character- istics in terms of frequency stability and frequency drift. For example, Cesium and Rubidium deployed on-board GNSS satellites. More information about the types of clocks deployed in GLONASS and GPS can be found in [35, 36, 37]. For this reason, SVR is performed for every individual satellite, and the results are shown for the different GNSS blocks as the satellites for every block had similar results. The results were computed by calculating the differences between the clock correction values without latency and the SVM clock correction prediction values, and compare them with the differences between the clock correction values without latency and the clock correction values with latency. Table 1 is a statistical summary of the obtained results, where column latency stands for the difference between the clock correction values without latency and the clock correction values with latency, and column SVR stands for the difference between clock correction values without latency and the SVM clock prediction values. 5. Discussion The results show that the SVR prediction reduced the standard deviation, as well as the range difference for all satellite blocks except the range of the GLONASS-M block and the SVR R2 score, which is higher for all GNSS satellite blocks. The standard deviation is reduced with a 32%, 30%, 29%, 30%, and 23% for the following satellite blocks: GPS II-F, GPS II-R, GPS IIR-M, GLONASS K, and GLONASS M respectively, with respect to the latency solution, so a mean reduction of 28.8% in the standard deviation is obtained using SVR prediction. A range reduction of 17%, 27%, 15%, 22%, and 18% are obtained for the following satellite blocks: GPS II-F, GPS II-R, GPS IIR-M, GLONASS K, respectively, with respect to latency solution, however for GLONASS M block it increases with 18%, considering only the GNSS blocks with a reduced percentage in the range, a mean reduction value of 20.2% is obtained. From the obtained results we can conclude that no remarkable differences in the reduction of standard deviation are obtained for all satellite blocks with the exception of the GLONASS M block Table 1 Statistical summary of the obtained results, where column latency stands for the difference between the clock correction values without latency and the clock correction values with latency and column SVR stands for the difference between clock correction values without latency and the SVM clock prediction values. Satellite Block Range(m) Standard deviation(m) R2 Score Latency SVR Latency SVR Latency SVR II-F 1.2185 1.0051 0.0166 0.0112 0.9972 0.9986 II-R 0.9972 0.724 0.0253 0.0175 0.987 0.9937 IIR-M 1.2164 1.0295 0.0278 0.0196 0.9879 0.9939 K 2.8167 2.1808 0.0373 0.0258 0.9976 0.9989 M 2.3534 2.7942 0.0458 0.0351 0.9952 0.9971 which present the less percentage reduction, and some differences can be found in the range value: GPS II-R block present a higher reduction in range in comparison with the other two GPS blocks, and GLONASS constellation present a percentage reduction in the K block but a percentage augmentation in the M block. 6. Conclusions Based on the previous results and discussion, we can conclude that SVR was able to produce better clock corrections results than the simple use of the clock corrections values with the latency. And taking as reference the clock correction values without latency, the SVR solution shows a reduction in the standard deviation and range with about 30% and 20%, respectively, in comparison to the latency solution for all satellites except those satellites in GLONASS M block. The next step of this research will be centered to repeat the proposed methodology with different sliding windows intervals for a single satellite depending on the clock values. We will apply different machine learning tools such as neural networks to solve the latency problem. The BNC software can run the PPP with post-process mode. Thus, it is recommended to re-run the BNC in post-processing mode, with the prediction values obtained by the SVR prediction to examine the quality of the coordinates with the influence of the prediction values. These are the values we have got in this experiment; to be confident with the results, we are aware that we must carry out more investigations. References [1] J. Zumberge, M. Heflin, D. Jefferson, M. Watkins, F. Webb, Precise point positioning for the efficient and robust analysis of gps data from large networks, Journal of geophysical research: solid earth 102 (1997) 5005–5017. [2] J. Kouba, P. Héroux, Precise point positioning using igs orbit and clock products, GPS solutions 5 (2001) 12–28. [3] J. Geng, X. Meng, F. N. Teferle, A. Dodson, Performance of precise point positioning with ambiguity resolution for 1-to 4-hour observation periods, Survey Review 42 (2010) 155–165. [4] O. L. Colombo, A. W. Sutter, A. G. Evans, Evaluation of precise, kinematic gps point positioning, in: Proceedings of ION GNSS 17th International Technical Meeting of the Satellite Division, Long Beach, California, 2004, pp. 1423–1430. [5] K. Chen, Real-time precise point positioning and its potential applications, in: Proceedings of the 17th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS 2004), 2001, pp. 1844–1854. [6] P. Héroux, Products and applications for precise point positioning-moving towards real- time, ION GNSS 2004, LongBeach CA, September (2004). [7] J. Kouba, A possible detection of the 26 december 2004 great sumatra-andaman islands earthquake with solution products of the international gnss service, Studia Geophysica et Geodaetica 49 (2005) 463–483. [8] X. Zhang, O. B. Andersen, Surface ice flow velocity and tide retrieval of the amery ice shelf using precise point positioning, Journal of Geodesy 80 (2006) 171–176. [9] J. M. Dow, R. E. Neilan, C. Rizos, The international gnss service in a changing landscape of global navigation satellite systems, Journal of geodesy 83 (2009) 191–198. [10] J. Geng, X. Chen, Y. Pan, S. Mao, C. Li, J. Zhou, K. Zhang, Pride ppp-ar: an open-source software for gps ppp ambiguity resolution, GPS Solutions 23 (2019) 91. [11] Á. Martín, A. B. Anquela, J. L. Berné, , M. Sanmartín, Kinematic gnss-ppp results from various software packages and raw data configurations, Scientific Research and essays 7 (2012) 419–431. [12] M. Caissy, L. Agrotis, Real-time working group and real-time pilot project, Int GNSS Serv Tech Rep 2011 (2011) 183–190. [13] International.GNSS.Services, Real time contributors, 2019. URL: http://www.igs.org/rts/ contributors. [14] T. Grinter, C. Roberts, Real time precise point positioning: Are we there yet?, 2013. [15] T. Hadas, J. Bosy, Igs rts precise orbits and clocks verification and quality degradation over time, GPS solutions 19 (2015) 93–105. [16] A. Martín, A. Anquela, A. Dimas-Pagés, F. Cos-Gayón, Validation of performance of real- time kinematic ppp. a possible tool for deformation monitoring, Measurement 69 (2015) 95–108. doi:10.1016/j.measurement.2015.03.026. [17] M. Elsobeiey, S. Al-Harbi, Performance of real-time precise point positioning using igs real-time service, GPS solutions 20 (2016) 565–571. [18] BKG, Ireal-time gnss satellite orbit and clock corrections from igs and euref sources, 2018. URL: https://igs.bkg.bund.de/ntrip/orbits. [19] A. Sturze, L. Mervart, W. Sohne, G. Weber, G. Wübbena, Real-time ppp using open cors networks and rtcm standards, in: PPP-RTK symposium, Frankfurt, Germany, 2012, pp. 12–13. [20] A. Martín, T. Hadas, A. Dimas, A. Anquela, J. Berne, Influence of real–time products latency on kinematic ppp results, 2015. [21] S.-C. Han, J. Kwon, C. Jekeli, Accurate absolute gps positioning through satellite clock error estimation, Journal of Geodesy 75 (2001) 33–43. [22] G. Huang, Q. Zhang, Real-time estimation of satellite clock offset using adaptively robust kalman filter with classified adaptive factors, GPS solutions 16 (2012) 531–539. [23] G. W. Huang, Q. Zhang, G. C. Xu, Real-time clock offset prediction with an improved model, GPS solutions 18 (2014) 95–104. [24] X. Zhang, X. Li, F. Guo, Satellite clock estimation at 1 hz for realtime kinematic ppp applications, GPS solutions 15 (2011) 315–324. [25] Z. Zheng, X. Lu, Y. Chen, Improved grey model and application in real-time gps satellite clock bias prediction, in: 2008 Fourth International Conference on Natural Computation, volume 2, IEEE, 2008, pp. 419–423. [26] A. El-Mowafy, Impact of predicting real-time clock corrections during their outages on precise point positioning, Survey Review 51 (2019) 183–192. [27] H. Yang, C. Xu, Y. Gao, Analysis of gps satellite clock prediction performance with different update intervals and application to real-time ppp, Survey review 51 (2019) 43– 52. [28] C. M. Bishop, Pattern Recognition and Machine Learning by Christopher M. Bishop, Springer Science+ Business Media, LLC, 2006. [29] R. O. Duda, P. E. Hart, D. G. Stork, Pattern classification, John Wiley & Sons, 2012. [30] K. P. Murphy, Machine learning: a probabilistic perspective, MIT press, 2012. [31] V. Vapnik, V. Vapnik, Statistical learning theory wiley, New York 1 (1998). [32] Bhattacharyya, Support vector regression or svr, 2018. URL: https://medium.com/ coinmonks/support-vector-regression-or-svr-8eb3acf6d0ff. [33] M. Mongillo, Choosing basis functions and shape parameters for radial basis function methods, SIAM undergraduate research online 4 (2011) 2–6. [34] W. L. . K. Parang, K., AN Introduction to Statistical Learning, . Current Medicinal Chemistry, 2012. [35] A. Cernigliaro, S. Valloreia, L. Galleani, P. Tavella, Gnss space clocks: Performance analysis, in: 2013 International Conference on Localization and GNSS (ICL-GNSS), IEEE, 2013, pp. 1–5. [36] P. Daly, I. Kitching, Characterisation of navstar gps and glonass on-board clocks, in: IEEE Symposium on Position Location and Navigation. A Decade of Excellence in the Navigation Sciences, IEEE, 1990, pp. 1–8. [37] U. of Homeland security, Navigation center homepage, 2018. URL: https://www.navcen. uscg.gov/?Do=constellationStatus.