Modular Python tool for parsing, analyzing, and visualizing Global Navigation Satellite Systems (GNSS) data and state estimates
Project description
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 allowing users to
quickly prototype, implement, and visualize GNSS algorithms.
gnss_lib_py
is 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_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, which contains methods to add, remove and modify
numeric and string data consistently.
We provide standard row names for NavData
elements on the
reference page.
These names ensure cross compatability between different datasets and
algorithms.
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
├── parsers/ # Data parsers
├── utils/ # GNSS and common utilities
└── __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
├── parsers/ # Tests for files in parsers
├── utils/ # Tests for files in utils
└── 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 install
In the directory organization above:
-
The
algorithms
directory contains localization algorithms that work by passing in aNavData
class. Currently, the following algorithms are implemented in thealgorithms
:- Weighted Least Squares
- Extended Kalman Filter
- Calculating pseudorange residuals
- Calculating multi-GNSS satellite PVT information
-
The data parsers in the
parsers
directory allow for either loading GNSS data intognss_lib_py
's unifyingNavData
class or parsing precise ephemerides data. Currently, the following datasets and types are supported: -
The
utils
directory contains utilities used to handle GNSS measurements, time conversions, visualizations, satellite simulation, file operations, etc.
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 Ashwin Kanhere and Derek Knowles. If using this project in your own work please cite 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},
}
Additionally, we would like to thank all contributors to this project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gnss_lib_py-0.1.8.tar.gz
.
File metadata
- Download URL: gnss_lib_py-0.1.8.tar.gz
- Upload date:
- Size: 61.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e50fe8a3df09b273e0f4bab61a2f958063215ff0b7697a4d99ec9a738336b58e |
|
MD5 | e1277aefd481bb9a06e0345ab08b4797 |
|
BLAKE2b-256 | 1ff4c2e78b86409dc2ba369a7cd4ac05b3e4b7cc548ee5b26721ddf1d07c3f13 |
File details
Details for the file gnss_lib_py-0.1.8-py3-none-any.whl
.
File metadata
- Download URL: gnss_lib_py-0.1.8-py3-none-any.whl
- Upload date:
- Size: 66.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82120aa45b9cf23f1cff66186d97c6fac0844af77d442a501c269c7cee678eb6 |
|
MD5 | 76408b9bb2b89e0278636a1fdd53790b |
|
BLAKE2b-256 | 8ec0e6ba1d53016fdad39267623838336a57263375289004da00790f0406ef76 |