gnss_lib_py
gnss_lib_py is 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 which allows users to
quickly prototype, implement, and visualize GNSS algorithms.
gnss_lib_py is modular in the sense that multiple types of
algorithms or datasets can be easily exchanged for each other.
It is extendable in facilitating user-specific extensions of existing
implementations.
gnss_lib_py contains 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 of gnss_lib_py is made possibly by the unifying
NavData class, with accompanying standard nomenclature, which can be
found in the
reference page.
The standard nomenclature ensures cross compatibility between different
datasets and algorithms.
NavData combines the readability of pandas.DataFrame with numpy.ndarray
allowing for easy and fast access of numbers or strings.
We also provide functionality to add, remove and modify numeric and
string data consistently along with commonly needed supporting
functionality.
Documentation
Full documentation is available on our readthedocs website.
Code Organization
gnss_lib_py is 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 # Initialize gnss_lib_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
└── conftest.py # Common methods for tests
├── 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 install
In the directory organization above:
-
The
algorithmsdirectory contains algorithms that work by passing in aNavDataclass. Currently, the following algorithms are implemented in thealgorithms:- Weighted Least Squares
- Extended Kalman Filter
- Calculating pseudorange residuals
- Fault detection and exclusion
-
The
navdatadirectory defines theNavDataclass, its methods, and functions that operate onNavDatainstances, likesort,concat, and others. -
The data parsers in the
parsersdirectory allow for either loading GNSS data intognss_lib_py's unifyingNavDataclass or parsing precise ephemerides data. Currently, the following datasets and types are supported: -
The
utilsdirectory contains utilities used to handle GNSS measurements, time conversions, coordinate transformations, visualizations, calculating multi-GNSS satellite PVT information, satellite simulation, file operations, etc. -
The
visualizationsdirectory contains methods for plotting quantities inNavData. It includes methods to plot metrics, positions on maps, and skyplots of satellites visible from the receiver position.
Installation
gnss_lib_py is available through pip installation with:
pip install gnss-lib-py
For directions on how to install an editable or developer installation of gnss_lib_py on Linux, MacOS, and Windows, please
see the install instructions.
Tutorials
We have a range of tutorials on how to easily use this project. They can all be found in the tutorials section.
Reference
References on the package contents, explanation of the benefits of our custom NavData class, and function-level documentation can all be found in the reference section.
Contributing
If you have a bug report or would like to contribute to our repository, please follow the guide on the contributing page.
Troubleshooting
Answers to common questions can be found in the troubleshooting section.
Attribution
This project is a product of the Stanford NAV Lab and currently maintained by Daniel Neamati (dneamati [at] stanford [dot] edu) and Derek Knowles. If using this project in your own work please cite the following:
@article{knowles_glp_2024,
title = {gnss_lib_py: Analyzing GNSS data with Python},
author = {Knowles, Derek and Kanhere, Ashwin Vivek and Neamati, Daniel and Gao, Grace},
journal = {SoftwareX},
volume = {27},
year = {2024},
publisher = {Elsevier},
url = {https://github.com/Stanford-NavLab/gnss_lib_py},
doi = {10.1016/j.softx.2024.101811},
}
Additionally, we would like to thank all contributors to this project.
Metadata
Release files for gnss-lib-py 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| gnss_lib_py-1.1.0.tar.gz | 100.6 kB | Without provenance | Details for gnss_lib_py-1.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| gnss_lib_py-1.1.0-py3-none-any.whl | Python 3 | none | any | Details for gnss_lib_py-1.1.0-py3-none-any.whl |
Total release size: 217.7 kB
Release files / gnss_lib_py-1.1.0.tar.gz
| Download URL | gnss_lib_py-1.1.0.tar.gz |
|---|---|
| Size | 100.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
af8635752184481deceafd7c94fb2dc720c5a60839ecca683e8ac19eec35f001
|
|
BLAKE2b-256 checksum How to use checksums |
24fdf867db9bdf85bc0d99a2af84c51d7342117bd8d3e7de34c188f81bddf0f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / gnss_lib_py-1.1.0-py3-none-any.whl
| Download URL | gnss_lib_py-1.1.0-py3-none-any.whl |
|---|---|
| Size | 117.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9af0e9e05e833c2d000eab471dd3345f5792f6812df591ecf91ba81e0fe25ff2
|
|
BLAKE2b-256 checksum How to use checksums |
36b94c8dcde2e76ef22e84d1ad2a2dde79070fdf309730395484e4f2e32323f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for gnss-lib-py 1.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.