Progettazione e sviluppo di una pipeline automatizzata per l'elaborazione di dati GNSS con RTKLIB, Docker e Apache Airflow
View/ Open
Author
Bafico, Giacomo <2003>
Date
2026-10-15Data available
2026-10-22Abstract
La tesi nasce dal tirocinio curriculare svolto presso STAM S.R.L., azienda interessata a integrare due servizi di Galileo: l'High Accuracy Service (HAS), che fornisce correzioni di orbita, orologio e bias di codice e fase per il Precise Point Positioning (PPP) in tempo reale con un singolo ricevitore, e l'Open Service Navigation Message Authentication (OSNMA). Prima di questa integrazione serve un'infrastruttura in grado di acquisire ed elaborare dati GNSS reali in modo affidabile, ripetibile e senza passaggi manuali.
Nella prima fase è stato studiato il software open source RTKLIB, applicato a dati RINEX di stazioni permanenti della rete IGS (International GNSS Service). Sono stati confrontati il Single Point Positioning (SPP) e il PPP, oltre alle configurazioni solo GPS, solo Galileo e combinata: combinando GPS e Galileo, l'incertezza verticale nelle epoche peggiori è scesa da circa 48 a circa 26 m. Le posizioni sono state inoltre confrontate con le coordinate ufficiali IGS delle stazioni.
Successivamente è stato realizzato un ambiente containerizzato basato su Docker e Apache Airflow 3.2.1, con RTKLIB compilato in un'immagine personalizzata. Su questa base è stata sviluppata una pipeline parametrica di sette task (gnss_pipeline_dag), che scarica i file di osservazione e navigazione dall'archivio CDDIS della NASA, li decomprime, converte dal formato Hatanaka i file di osservazione, li elabora con RTKLIB e verifica il risultato. Le fasi di preparazione sono idempotenti, quindi la pipeline può essere rieseguita in sicurezza; il funzionamento è verificato da test unitari con pytest e da un'esecuzione end-to-end in Airflow.
Infine, il lavoro è stato inquadrato nel contesto dei sistemi LEO-PNT, attraverso l'analisi del simulatore LEO-S9. Il risultato è una base modulare e riutilizzabile su cui STAM potrà costruire gli sviluppi futuri, tra cui l'integrazione di HAS e OSNMA, il supporto al PPP e l'elaborazione in tempo reale. This thesis is the outcome of a curricular internship at STAM S.R.L., a company interested in integrating two Galileo services: the High Accuracy Service (HAS), which provides orbit, clock and code/phase bias corrections enabling real-time Precise Point Positioning (PPP) with a single receiver, and the Open Service Navigation Message Authentication (OSNMA). Before such services can be integrated, an infrastructure is needed that acquires and processes real GNSS data reliably, reproducibly and without manual intervention.
The first phase focused on the open-source package RTKLIB, applied to RINEX data from permanent stations of the International GNSS Service (IGS) network. Single Point Positioning (SPP) and PPP were compared, as were GPS-only, Galileo-only and combined configurations: combining GPS and Galileo reduced the worst-case vertical uncertainty from about 48 m to about 26 m. Positions were also compared with the official IGS station coordinates.
A containerized environment based on Docker and Apache Airflow 3.2.1 was then set up, with RTKLIB compiled into a custom image. On top of it, a parametric seven-task pipeline (gnss_pipeline_dag) was developed. It downloads observation and navigation files from NASA's CDDIS archive, decompresses them, converts the observation files from the Hatanaka format, processes them with RTKLIB and verifies the output. The preparation steps are idempotent, so the pipeline can be safely re-run; its behavior is verified by pytest unit tests and by an end-to-end run in Airflow.
Finally, the work was placed in the context of LEO-PNT systems through the analysis of the LEO-S9 simulator. The result is a modular, reusable foundation on which STAM can build future developments, including HAS and OSNMA integration, PPP support and real-time processing.
Type
info:eu-repo/semantics/bachelorThesisCollections
- Laurea Triennale [5454]

