Package: gnss-lib-py
gnss_lib_pygnss_lib_pyis a modular Python tool for parsing, analyzing, and
visualizing Global Navigation Satellite Systems (GNSS) data and state
estimates.
It also provides an intuitive and modular framework allowing users to
quickly prototype, implement, and visualize GNSS algorithms.gnss_lib_pyis modular in the sense that multiple types of
algorithms can be easily exchanged for each other and extendable in
facilitating user-specific extensions of existing implementations.gnss_lib_pycontains parsers for common file types used for
storing GNSS measurements, benchmark algorithms for processing
measurements into state estimates and visualization tools for measurements
and state estimates.
The modularity ofgnss_lib_pyis made possibly by the unifyingNavDataclass, which contains methods to add, remove and modify
numeric and string data consistently.
We provide standard row names forNavDataelements on thereference page.
These names ensure cross compatibility between different datasets and
algorithms.DocumentationFull documentation is available on ourreadthedocs website.Code Organizationgnss_lib_pyis organized as:├──data/# Location for data files└──unit_test/# Data files for unit testing├──dev/# Code users do not wish to commit├──docs/# Documentation files├──gnss_lib_py/# gnss_lib_py source files├──algorithms/# Navigation algorithms├──navdata/# NavData data structure├──parsers/# Data parsers├──utils/# GNSS and common utilities├──visualizations/# plotting functions└──__init__.py├──notebooks/# Interactive Jupyter notebooks├──tutorials/# Notebooks with tutorial code├──results/# Location for result images/files├──tests/# Tests for source files├──algorithms/# Tests for files in algorithms├──navdata/# Tests for files in navdata├──parsers/# Tests for files in parsers├──utils/# Tests for files in utils├──visualizations/# Tests for files in visualizations└──test_gnss_lib_py.py# High level checks for repository├──CONTRIBUTORS.md# List of contributors├──build_docs.sh# Bash script to build docs├──poetry.lock# Poetry specific Lock file├──pyproject.toml# List of package dependencies└──requirements.txt# List of packages for pip installIn the directory organization above:Thealgorithmsdirectory contains localization algorithms that
work by passing in aNavDataclass. Currently, the following
algorithms are implemented in thealgorithms:Weighted Least SquaresExtended Kalman FilterCalculating pseudorange residualsFault detection and exclusionThe data parsers in theparsersdirectory allow for either loading
GNSS data intognss_lib_py's unifyingNavDataclass or parsing
precise ephemerides data.
Currently, the following datasets and types are supported:2021 Google Android Derived Dataset2022 Google Android Derived DatasetTU Chemnitz smartLoc DatasetNMEARINEX .o and .nSP3 precise orbitsCLK clock productsTheutilsdirectory contains utilities used to handle
GNSS measurements, time conversions, coordinate transformations,
visualizations, calculating multi-GNSS satellite PVT information,
satellite simulation, file operations, etc.Installationgnss_lib_pyis available throughpipinstallation with:pip install gnss-lib-pyFor directions on how to install an editable or developer installation ofgnss_lib_pyon Linux, MacOS, and Windows, please
see theinstall instructions.TutorialsWe have a range of tutorials on how to easily use this project. They can
all be found in thetutorials section.ReferenceReferences on the package contents, explanation of the benefits of our
custom NavData class, and function-level documentation can all be
found in thereference section.ContributingIf you have a bug report or would like to contribute to our repository,
please follow the guide on thecontributing page.TroubleshootingAnswers to common questions can be found in thetroubleshooting section.AttributionThis project is a product of theStanford NAV Laband currently maintained by Ashwin Kanhere (akanhere [at] stanford [dot] edu)
and Derek Knowles (dcknowles [at] stanford [dot] edu). If using
this project in your own work please cite either of the following:@inproceedings{knowlesmodular2022,
      title = {A Modular and Extendable GNSS Python Library},
      author={Knowles, Derek and Kanhere, Ashwin V and Bhamidipati, Sriramya and Gao, Grace},
      booktitle={Proceedings of the 35th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS+ 2022)},
      institution = {Stanford University},
      year = {2022 [Online]},
      url = {https://github.com/Stanford-NavLab/gnss_lib_py},
      doi = {10.33012/2022.18525}
   }@inproceedings{knowles_kanhere_baselines_2023,
      title = {Localization and Fault Detection Baselines From an Open-Source Python GNSS Library},
      author={Knowles, Derek and Kanhere, Ashwin V and Gao, Grace},
      booktitle={Proceedings of the 36th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS+ 2023)},
      institution = {Stanford University},
      year = {2023 [Online]},
      url = {https://github.com/Stanford-NavLab/gnss_lib_py},
   }Additionally, we would like to thankall contributorsto this project.