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.
