GithubHelp home page GithubHelp logo

andrehauschild / gnss_lib_py Goto Github PK

View Code? Open in Web Editor NEW

This project forked from stanford-navlab/gnss_lib_py

1.0 0.0 0.0 43.37 MB

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

License: MIT License

Shell 0.19% Python 84.01% Jupyter Notebook 15.81%

gnss_lib_py's Introduction

build codecov Documentation Status Open In Colab

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.

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 compatibility 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
        ├── 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 install

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
    • Extended Kalman Filter
    • Calculating pseudorange residuals
    • Fault detection and exclusion
  • The data parsers in the parsers directory allow for either loading GNSS data into gnss_lib_py's unifying NavData 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, coordinate transformations, visualizations, calculating multi-GNSS satellite PVT information, 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 (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 thank all contributors to this project.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.