Table of Contents
Fetching ...

gnss_lib_py: Analyzing GNSS Data with Python

Derek Knowles, Ashwin Vivek Kanhere, Daniel Neamati, Grace Gao

TL;DR

The paper introduces gnss_lib_py, a Python library designed to parse, analyze, and visualize GNSS data from diverse sources. It addresses fragmentation across GNSS data formats by unifying inputs into a common NavData structure and providing modular parsers, localization algorithms (e.g., Extended Kalman Filter and Weighted Least Squares), visualizations, and utility tools including automatic ephemeris download and atmospheric effect simulation. Key contributions include end-to-end workflow support, data-type-agnostic processing, and demonstrable impact in research topics such as spoofing mitigation, outlier detection, and urban LOS prediction, as well as integration into Stanford coursework. The work underscores the library’s open-source, well-documented design, which facilitates rapid algorithm benchmarking, education, and reproducible GNSS research across industry and academia.

Abstract

This paper presents gnss_lib_py, a Python library used to parse, analyze, and visualize data from a variety of GNSS (Global Navigation Satellite Systems) data sources. The gnss_lib_py library's ease of use, modular capabilities, testing coverage, and extensive documentation make it an attractive tool not only for scientific and industry users wanting a quick, out-of-the-box solution but also for advanced GNSS users developing new GNSS algorithms. gnss_lib_py has already demonstrated its usefulness and impact through presentation in academic conferences, use in research papers, and adoption in graduate-level university course curricula.

gnss_lib_py: Analyzing GNSS Data with Python

TL;DR

The paper introduces gnss_lib_py, a Python library designed to parse, analyze, and visualize GNSS data from diverse sources. It addresses fragmentation across GNSS data formats by unifying inputs into a common NavData structure and providing modular parsers, localization algorithms (e.g., Extended Kalman Filter and Weighted Least Squares), visualizations, and utility tools including automatic ephemeris download and atmospheric effect simulation. Key contributions include end-to-end workflow support, data-type-agnostic processing, and demonstrable impact in research topics such as spoofing mitigation, outlier detection, and urban LOS prediction, as well as integration into Stanford coursework. The work underscores the library’s open-source, well-documented design, which facilitates rapid algorithm benchmarking, education, and reproducible GNSS research across industry and academia.

Abstract

This paper presents gnss_lib_py, a Python library used to parse, analyze, and visualize data from a variety of GNSS (Global Navigation Satellite Systems) data sources. The gnss_lib_py library's ease of use, modular capabilities, testing coverage, and extensive documentation make it an attractive tool not only for scientific and industry users wanting a quick, out-of-the-box solution but also for advanced GNSS users developing new GNSS algorithms. gnss_lib_py has already demonstrated its usefulness and impact through presentation in academic conferences, use in research papers, and adoption in graduate-level university course curricula.
Paper Structure (10 sections, 5 figures, 1 table)

This paper contains 10 sections, 5 figures, 1 table.

Figures (5)

  • Figure 1: The system architecture of gnss_lib_py is divided into five main categories: parsers, NavData, algorithms, visualizations, and additional utilities.
  • Figure 2: Code needed to calculate a GNSS receiver's position using satellite measurement data.
  • Figure 3: Skyplot of satellite locations.
  • Figure 4: GNSS state estimate data plotted on a map.
  • Figure 5: Satellite positions across multiple timesteps.