gLAB: an advanced GNSS software for research and pedagogical purposes

Mar 2023 | No Comment

We give an example of a straight forward procedure tailored to understand and question the effects of different error components in both SIS domain and the position domain

Adrià Rovira-Garcia

Research group of Astronomy and Geomatics, Universitat Politècnica de Catalunya, Spain Corresponding author: Universitat Politecnica de Catalunya, Spain,

Deimos Ibáñez-Segura

Research group of Astronomy and Geomatics, Universitat Politècnica de Catalunya, Spain

Mowen Li

Research group of Astronomy and Geomatics, Universitat Politècnica de Catalunya, Spain

María Teresa Alonso

Research group of Astronomy and Geomatics, Universitat Politècnica de Catalunya, Spain

Jaume Sanz

Research group of Astronomy and Geomatics, Universitat Politècnica de Catalunya, Spain

Guillermo González-Casdo

Research group of Astronomy and Geomatics, Universitat Politècnica de Catalunya, Spain

José Miguel Juan

Research group of Astronomy and Geomatics, Universitat Politècnica de Catalunya, Spain


The Global Navigation Satellite System (GNSS) allows computing the Position, Velocity and Time (PVT) of users equipped with appropriate hardware (i.e. an antenna and a receiver) and software. The latter estimates the PVT from the ranging measurements and ephemeris transmitted by the GNSS satellites in frequencies of the L band.

The research group of Astronomy and Geomatics (gAGE) at the Universitat Politecnica de Catalunya (UPC) has been developing the GNSS LABoratory (gLAB) tool suite since 2009, in the context of the European Space Agency (ESA) educational program on satellite navigation (EDUNAV). gLAB is a multi-purpose software capable of determining the PVT in several modes: stand-alone (e.g. as a smartphone or car navigator), differential (e.g. surveying equipment or precise farming), and augmented with integrity (e.g. civil aviation or safety of life applications).

gLAB has been designed for two main sets of users and functions. The first one is to educate University students and professionals in the art and science of GNSS data processing. This includes newcomers to the GNSS field that highly appreciate the Graphical User Interface (GUI), the default templates with the necessary configuration or the messages with warnings and errors. The second group of users are those with previous experience on GNSS. Those are interested into a high computation speed, high-accuracy positioning, batch processing and access to the intermediate computation steps.

In the present contribution, we present some examples in which gLAB serves as an education platform. The data sets are actual GNSS measurements collected by the publicly available International GNSS Service (IGS), together with other IGS products such as the satellite orbits and clocks broadcast in the navigation message. The proposed methodology and procedures are tailored to understand the effects of different error components in both the Signal in Space (SIS) and the position domain, by activating or deactivating different modeling terms in gLAB. The results illustrate some examples of how the PVT can be enhanced or deteriorated when using different processing strategies or propagation effects present in the GNSS signals traversing the atmosphere, among others. We conclude that gLAB is a useful tool to learn GNSS data processing or to expand any prior knowledge.


The origin of navigation dates back to ancient times, when sailors computed the position and course with the use of Astronomic, Cartographic and Geometry references. The principles and techniques to guide vessels from a given origin to a destination remained unchanged for several millennials. However, with the advent of space activities following the first artificial satellite launch Sputnik in 1957, the navigation has been revolutionised.

Global Navigation Satellite System (GNSS) [1] [2] comprises the space and ground segments that allow users equipped with appropriate hardware and software to compute its Position, Velocity and Time (PVT), see Figure 1. The space segment is composed by a constellation of space vehicles at an almost circular orbit of about 20,000 km in height [3].

Three constellations have already declared their Full Operational Capability (FOC). Namely, the Global Positioning System (GPS, US Air Force), completed in 1994; the Global Navigation Satellite System (GLONASS, Russian Federal Space Agency) completed in 1995 (and restored in 2011); BeiDou Navigation Satellite System (BDS, China National Space Administration) commissioned in 2020. The fourth constellation is being completed: the Galileo (European Commission). Together, these four GNSS constellations account for more than 100 satellites.

Each GNSS monitors the satellites by means of a worldwide network of few tens of permanent stations with ground antennas. Such control segment maintains the GNSS satellites healthy and performing nominally. The status of each GNSS constellation can be monitored in real-time at the websites [5]-[8].

The present contribution focusses on the third segment, composed by users of the GNSS. Currently, there are more than 5 billion GNSS devices in use across the world, a number expected to double by 2031 [9]. The GNSS receiver acquires and demodulates radio-navigating signals at the frequencies of the L band, i.e. around 1.2 GHz. Those frequencies are allocated by the International Telecommunication Union (ITU) [10] and are depicted in Figure 2.

The receiver then generates the code and carrier-phase measurements (i.e. the so-called observables). These measurements are used to estimate the PVT of the GNSS receiver by means of Weighted Least Squares (WLS) or the Kalman filter [11], among other techniques. Currently, several software packages exist that are capable of processing GNSS data in an automatic manner.

The GNSS LABoratory tool (gLAB) is an advanced educational multi-purpose software used for processing and analysing GNSS data [12][13]. Since 2009, gLAB has been developed by the research group of Astronomy and Geomatics (gAGE) at the Universitat Politecnica de Catalunya (UPC), in the context of several contracts with the European Space Agency (ESA).

gLAB is open-source and allows to fully control its internal processing through its many configuration options. This is a great advantage with respect to proprietary GNSS data processing programs produced by receiver manufacturers, or other entities, which do not allow any modification and hence, from the user/scientific point of view, are black boxes.

The remaining of the present contribution is organised as follows. Section 2 addresses the basic GNSS measurement equation. Section 3 presents the data used. Section 4 analyses in detail the effects of considering/neglecting some modelling terms. Last section concludes the paper summarizing the results.


Equation 1 presents the fundamental modelling of the code pseudorange measurements, in meters, whose terms are defined in the Nomenclature section.

where the GNSS signal has propagated from the antenna of the emitting satellite to the antenna of the receiver. Without the loss of generality, but for clarity purposes, we restrict our analysis to the signals of the GPS constellation, at the frequency fand for the civilian Coarse Acquisition (CA) pseudorange measurement.

expansion and apply linear Algebra procedures to solve for the user position, its velocity, and its time offset with respect to GNSS time. The interested reader is pointed to [1]-[4] for further details.

gLAB implements different options to account the different model terms in Eq.1. For instance, the one defined in the Standard Positioning Service (SPS) of GPS [14], which is embedded in most of the mass-market receivers that we use in our everyday life. Figure 3 depicts the gLAB Graphical User Interface (GUI) modelling options, stored as pre-configured templates.

Hence, the gLAB user can use this baseline configuration effortless. It is worth to note, that these options can be modified to meet most of GNSS data processing needs, or, as we will see in the next section, the default options can be modified to get hands-on education on satellite navigation.

The gLAB GUI was designed having in mind newcomers to the GNSS field, such as our students at UPC, other Universities or professional courses where we teach GNSS. Every option displays information, so that the user can get familiar with the options that is selecting. In addition, it triggers warnings and errors to avoid any miss-configuration of the tool. Finally, it is worth to mention a second group of users with previous experience on GNSS, such as professionals and companies. Those are interested into the high computation speed offered by gLAB, its high-accuracy positioning capabilities in batch processing and access to the intermediate computation steps.

Data Set

GNSS data can be obtained free of charge from the International GNSS Service (IGS) [15][16]. Figure 4 depicts the status of the extensive permanent network of stations belonging to IGS and available from [17]. Any user can download GNSS measurements, satellite positions (i.e. ephemerides), and Earth rotation parameters, among other products.

As an example, we gathered data from a permanent station named Cachoeira Paulista (i.e. “CHPI” according to the IGS naming convention). The receiver is located in the south of Brazil, at a geographical longitude of -22.7º and latitude of -45.0º. We processed 24 h of data belonging to January 1st 2004, a year within the maximum of the 23rd Solar Cycle. The latitude and date of the experiment are chosen so that the ionospheric delay on the GNSS measurements is greatest.


This section presents some examples of processing computed with the gLAB tool. The approach is tailored to understand the effect of error components in both the Signal in Space (SIS) domain and in the position domain. In order to address quantitatively and qualitative such effects, we follow the procedure of activating or deactivating some SPS modelling terms in gLAB.

Figure 5 depicts the delay occurred at the ionosphere, i.e. the upper layer of the atmosphere comprised from 60 to more than 2000 km of altitude. The electromagnetic energy from the Sun produces photoionization, which produces free electrons that interact (i.e. delaying) with the GNSS signals propagating from the GPS satellites to the receiver at CHPI.

In order to correct this delay, the SPS employs the Klobuchar model [18] as Ionospheric Correction Algorithm (ICA). The Klobuchar ICA uses eight coefficients transmitted in the navigation message that are updated every day. The Klobuchar can correct the ionospheric delay with Root Mean Square (RMS) errors between 50 to 60%.

We now turn our attention to the navigation performance. Since we are using data collected at a permanent ground station, we know its coordinates with an accuracy of few centimetres. Therefore, we can infer the navigation error of SPS modelling in Eq. 1, by computing the difference from the estimated coordinates of CHPI and those already known. For clarity purposes we will separate such differences (i.e. errors) in the vertical and horizontal planes.

Figure 6 depicts the effect of correctly modelling the ionospheric delay on the user coordinates. For this purpose, the process is executed twice. In the first run (whose results are depicted in blue colour), we apply the full SPS modelling, with all terms of Eq.1 included. In the second run (depicted in red colour), we intentionally disconnect the ionospheric model, maintaining all other processing options from the SPS unchanged.

We can observe that the vertical component of the error is degraded by a factor three when the ionospheric delay is not corrected. As it can be seen, the vertical position error is linked to the ionospheric delay modelling previously depicted in Figure 5. The bottom plot depicts the horizontal component of the error, by plotting the North vs the East error. In this case, we do not appreciate a degradation of the error.

The reason for such asymmetry in the vertical and horizontal is an example of question posed to the students using gLAB in the laboratory sessions. The analysis of the results raises interesting questions and discussions that link the observed results with the theoretical aspects seen in the lectures.


gLAB is a useful tool to learn about GNSS data processing or to expand any prior knowledge. Using actual data sets collected by the publicly available IGS network, we give an example of a straightforward procedure tailored to understand and question the effects of different error components in both SIS domain and the position domain. The gLAB tool suite can be downloaded together with different Books and Tutorials on GNSS Data Processing from our website


The present work was supported in part by the by project RTI2018-094295- B-I00 from the Agencia Española de Investigación of the Spanish Ministry of Science, Innovation and Universities MCIN/AEI 10.13039/50110001103, which is co-founded by the FEDER program. The authors acknowledge the use of data and products provided by the International GNSS Service.


[1] Parkinson B, Spilker J, Enge, P. “Global Positioning System, Vols I and II, Theory and Applications” American Institute of Aeronautics: Reston, VA, USA, 1996.

[2] Hofmann-Wellenhof B, Lichtenegger H, Wasle E (2008) GNSS – GlobalNavigation Satellite Systems. Springer, Vienna, Austria

[3] Teunissen PJ, Montenbruck O (2017) “Springer Handbook of Global Navigation Satellite Systems” Springer Cham, Berlin

[4] Sanz J, Juan JM, Hernández-Pajares M, (2013) “GNSS Data Processing, Vol. I: Fundamentals and Algorithms; ESTEC TM-23/1” European Space Agency Communications: Noordwijk, The Netherlands.

[5] https://www.navcen.uscg. gov/?Do=constellationStatus




[9] European Union Agency for the Space Programme (2022) “EO and GNSS Market Report Issue 1, 2022”. Publications Office of the European Union

[10] International Telecommunication Union (2021) “ITU-R: Managing the radiofrequency spectrum for the world”

[11] Kalman RE (1960) A New Approach to Linear Filtering and Prediction Problems. Transactions of the ASME– Journal of Basic Engineering 82, 35-45.

[12] Ibáñez-Segura, D. Rovira-Garcia A, Alonso, MT, Sanz J, Juan JM, González-Casado G, López-Martínez M. “EGNOS 1046 Maritime Service Assessment”. Sensors 20.

[13] Sanz J, Rovira-Garcia A, HernándezPajares M, Juan JM, Ventura-Traveset J, López-Echazarreta C, “The ESA/UPC GNSS-Lab Tool (gLAB): An advanced educational and professional package for GNSS data processing and analysis”, Proceedings of Toulouse Space Show 2012 4th International Conference on Space Applications, Jul. 2012

[14] United States Department of Defense (2020).Global Positioning System Standard Positioning Service Performance Standard.

[15] Beutler G, Rothacher M, Schaer S, Springer T, Kouba J, Neilan R. The International GPS Service (IGS): An interdisciplinary service in support of Earth sciences. Adv. Space Res. 1999, 23, 631–653 .

[16] Montenbruck O, Steigenberger P, Prange L, Deng Z, Zhao Q, Perosanz FJ, Romero I, Noll CE, Stürze A, Weber G, et al (2017) “The Multi-GNSS Experiment (MGEX) of the International GNSS Service (IGS)–Achievements, prospects and challenges”. Advances in Space Research 59, 1671–1697

[17] International GNSS Service (2022)

[18] Klobuchar JA (1987). Ionospheric Time-Delay Algorithm for SingleFrequency GPS Users. IEEE Transactions on Aerospace and Electronic Systems 23, 325–331

The paper was orignally published in the proceedings of 4rth Symposium on Space Educational Activities, Barcelona, April 2022 under a Creative Commons license : Attribution- NonCommercial-NoDerivs 4.0 International.

Copyright: Authors 2022.

The paper is republished here with permission.

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.