Skip to main content

HASlib: an open-source decoder for the Galileo High Accuracy Service

HASlib is an open-source software package intended to facilitate the adoption of the Galileo High Accuracy Service (HAS) with legacy receivers and processing software that lack native support for HAS. The use of HAS is free of charge and enables up to 20 cm horizontal position accuracy with the Precise Point Positioning (PPP) approach. The supported input formats are the Septentrio proprietary SBF format and the receiver-independent BINEX (Binary Exchange) format. The output format of HASlib can be configured to either the draft RTCM 3 SSR (State Space Representation) or the International GNSS Service (IGS) SSR; the inputs and outputs can be passed in the form of files or TCP sockets.

HAS, and PPP in general, is based on correction data which a Global Navigation Satellite System (GNSS) receiver can use to mitigate error sources such as the uncertainty in the satellite orbit predictions. Unfortunately, there exists no single de facto standard for the representation of PPP correction data; the HAS corrections themselves are transmitted in a format of its own which is not identical to any previously existing format. For this reason, HASlib can convert the HAS corrections into RTCM-SSR and IGS-SSR formats. The modular design of HASlib makes it straightforward to implement support for other output formats if necessary.

GNSS satellites transmit data at a relatively low bit rate, but several satellites are visible at the same time. HAS leverages this situation by broadcasting the correction data in a High-Parity Vertical Reed–Solomon encoding scheme. First, the HAS correction message is divided into blocks of 424 bits each; the maximum possible message length is 32 pages, but they are shorter in practice. Then, the message blocks are HPVRS encoded into 255 code blocks of 424 bits each in a way that the original message can be decoded once the receiver has received as many different code blocks as the length of the original message. The different satellites are programmed to broadcast different HPVRS blocks at the same time, thus a receiver can collect the correction data rapidly by tracking several satellites simultaneously. HASlib takes the HPVRS-encoded code blocks, as received by the GNSS receiver, and decodes the correction data.

At the moment, the support for Galileo HAS is quite limited in existing GNSS receivers and PPP software. By using HASlib, processing HAS corrections becomes possible with any receiver and/or software that supports the Galileo E6 signal and some representation of PPP correction data.

HASlib is available for download at the GitHub platform under the European Union Public License (EUPL). Its design is described in the Master’s thesis by Oliver Horst, and a shorter description can be found in the publication Horst et al. 2022. HASlib was developed in the project Precise and Authentic User Location Analysis (PAULA), funded by European Commission DG-DEFIS contract DEFIS/2020/OP/0002.


More info:

Research Professor Zahidul Bhuiyan (

Research Group Manager Tuomo Malkamäki (tuomo.malkamä