Skip to main content

Modular Python tool for parsing, analyzing, and visualizing Global Navigation Satellite Systems (GNSS) data

Project description

build codecov Documentation Status

gnss_lib_py

gnss_lib_py is a modular Python tool for parsing, analyzing, and visualizing Global Navigation Satellite Systems (GNSS) data. 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.

satellite skyplot

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
   └── setup.py                       # Setup file

In the directory organization above:

  • The algorithms directory contains localization algorithms that work by passing in a NavData class. Currently, the following algorithms are implemented in the algorithms:

    • Weighted Least Squares
    • Calculating pseudorange residuals
  • The data parsers in the parsers directory allow for loading GNSS data into gnss_lib_py's unifying NavData class. 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.

  • Currently, the following data visualization tools are available in the utils directory:

    * Skyplot: showing the movement of GNSS satellites during the
      elapsed time of the provided `NavData` class.
    * Metric plotting: allows you to plot a specific array of data
      from the `NavData` class
    * Metric plotting by constellation: allows you to plot a specific
      array of data but broken up by individual constellations and
      signal types.
    * Residual plotting: specifically optimized for plotting residuals.
    

Installation

For directions on how to install the gnss_lib_py project, 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gnss-lib-py-0.1.5.tar.gz (43.5 kB view details)

Uploaded Source

Built Distribution

gnss_lib_py-0.1.5-py3-none-any.whl (46.0 kB view details)

Uploaded Python 3

File details

Details for the file gnss-lib-py-0.1.5.tar.gz.

File metadata

  • Download URL: gnss-lib-py-0.1.5.tar.gz
  • Upload date:
  • Size: 43.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.9

File hashes

Hashes for gnss-lib-py-0.1.5.tar.gz
Algorithm Hash digest
SHA256 fb25949f19ad316b255e4a13598eba83c4119faa5a6252d21f6dc2bf7cbe541a
MD5 584840057159fbffda354d75ef6db1c3
BLAKE2b-256 cca529f6d45e34fcbd6a84043bd7ffd5dc8f9f2b3e35550742a934e42b810b39

See more details on using hashes here.

File details

Details for the file gnss_lib_py-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: gnss_lib_py-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 46.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.9

File hashes

Hashes for gnss_lib_py-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 2f20d4b2269825b506d32d4f8567e3500fea6503c7570ff15e0e8cbcc29e188f
MD5 c61b3aab268785365a5c4dc87d3b4c4c
BLAKE2b-256 3d9b752df1bc36655615cf8e2cba61468861dccd7f29c941a9f52a234e11d082

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page