gnss-lib-py


Namegnss-lib-py JSON
Version 1.0.2 PyPI version JSON
download
home_pagehttps://github.com/Stanford-NavLab/gnss_lib_py
SummaryModular Python tool for parsing, analyzing, and visualizing Global Navigation Satellite Systems (GNSS) data and state estimates
upload_time2024-02-14 03:01:18
maintainer
docs_urlNone
authorDerek Knowles
requires_python>=3.8,<3.12
licenseMIT
keywords gnss
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![build](https://github.com/Stanford-NavLab/gnss_lib_py/actions/workflows/build.yml/badge.svg)](https://github.com/Stanford-NavLab/gnss_lib_py/actions/workflows/build.yml)
[![codecov](https://codecov.io/gh/Stanford-NavLab/gnss_lib_py/branch/main/graph/badge.svg?token=1FBGEWRFM6)](https://codecov.io/gh/Stanford-NavLab/gnss_lib_py)
[![Documentation Status](https://readthedocs.org/projects/gnss_lib_py/badge/?version=latest)](https://gnss-lib-py.readthedocs.io/en/latest/?badge=latest)
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1DYfuiM5ipz0B-lgjKYcL1Si-V4jNBEac?usp=sharing)

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.

<img src="https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/docs/source/img/skyplot.png" alt="satellite skyplot" width="600"/>

`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](https://gnss-lib-py.readthedocs.io/en/latest/reference/reference.html).
These names ensure cross compatibility between different datasets and
algorithms.

Documentation
-------------
Full documentation is available on our [readthedocs website](https://gnss-lib-py.readthedocs.io/en/latest/index.html).


Code Organization
-----------------

`gnss_lib_py` is organized as:

```bash

   ├── 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:

      * [2021 Google Android Derived Dataset](https://www.kaggle.com/c/google-smartphone-decimeter-challenge)
      * [2022 Google Android Derived Dataset](https://www.kaggle.com/competitions/smartphone-decimeter-2022)
      * [TU Chemnitz smartLoc Dataset](https://www.tu-chemnitz.de/projekt/smartLoc/gnss_dataset.html.en#Datasets)
      * [NMEA](https://www.sparkfun.com/datasheets/GPS/NMEA%20Reference%20Manual-Rev2.1-Dec07.pdf)
      * [RINEX .o and .n](https://files.igs.org/pub/data/format/rinex305.pdf)
      * [SP3 precise orbits](https://cddis.nasa.gov/Data_and_Derived_Products/GNSS/orbit_products.html)
      * [CLK clock products](https://cddis.nasa.gov/Data_and_Derived_Products/GNSS/clock_products.html)

  * 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](https://gnss-lib-py.readthedocs.io/en/latest/install.html).

Tutorials
---------
We have a range of tutorials on how to easily use this project. They can
all be found in the [tutorials section](https://gnss-lib-py.readthedocs.io/en/latest/tutorials/tutorials.html).

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](https://gnss-lib-py.readthedocs.io/en/latest/reference/reference.html).

Contributing
------------
If you have a bug report or would like to contribute to our repository,
please follow the guide on the [contributing page](https://gnss-lib-py.readthedocs.io/en/latest/contributing/contributing.html).

Troubleshooting
---------------
Answers to common questions can be found in the [troubleshooting section](https://gnss-lib-py.readthedocs.io/en/latest/troubleshooting.html).

Attribution
-----------
This project is a product of the [Stanford NAV Lab](https://navlab.stanford.edu/)
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](https://github.com/Stanford-NavLab/gnss_lib_py/blob/main/CONTRIBUTORS.md) to this project.


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Stanford-NavLab/gnss_lib_py",
    "name": "gnss-lib-py",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8,<3.12",
    "maintainer_email": "",
    "keywords": "gnss",
    "author": "Derek Knowles",
    "author_email": "dcknowles@stanford.edu",
    "download_url": "https://files.pythonhosted.org/packages/46/0d/53ab51f800ea3efa4db31ee847ad0f9a036dbb98b7888653634553c8cad1/gnss_lib_py-1.0.2.tar.gz",
    "platform": null,
    "description": "[![build](https://github.com/Stanford-NavLab/gnss_lib_py/actions/workflows/build.yml/badge.svg)](https://github.com/Stanford-NavLab/gnss_lib_py/actions/workflows/build.yml)\n[![codecov](https://codecov.io/gh/Stanford-NavLab/gnss_lib_py/branch/main/graph/badge.svg?token=1FBGEWRFM6)](https://codecov.io/gh/Stanford-NavLab/gnss_lib_py)\n[![Documentation Status](https://readthedocs.org/projects/gnss_lib_py/badge/?version=latest)](https://gnss-lib-py.readthedocs.io/en/latest/?badge=latest)\n[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1DYfuiM5ipz0B-lgjKYcL1Si-V4jNBEac?usp=sharing)\n\ngnss_lib_py\n===========\n\n`gnss_lib_py` is a modular Python tool for parsing, analyzing, and\nvisualizing Global Navigation Satellite Systems (GNSS) data and state\nestimates.\nIt also provides an intuitive and modular framework allowing users to\nquickly prototype, implement, and visualize GNSS algorithms.\n`gnss_lib_py` is modular in the sense that multiple types of\nalgorithms can be easily exchanged for each other and extendable in\nfacilitating user-specific extensions of existing implementations.\n\n<img src=\"https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/docs/source/img/skyplot.png\" alt=\"satellite skyplot\" width=\"600\"/>\n\n`gnss_lib_py` contains parsers for common file types used for\nstoring GNSS measurements, benchmark algorithms for processing\nmeasurements into state estimates and visualization tools for measurements\nand state estimates.\nThe modularity of `gnss_lib_py` is made possibly by the unifying\n`NavData` class, which contains methods to add, remove and modify\nnumeric and string data consistently.\nWe provide standard row names for `NavData` elements on the\n[reference page](https://gnss-lib-py.readthedocs.io/en/latest/reference/reference.html).\nThese names ensure cross compatibility between different datasets and\nalgorithms.\n\nDocumentation\n-------------\nFull documentation is available on our [readthedocs website](https://gnss-lib-py.readthedocs.io/en/latest/index.html).\n\n\nCode Organization\n-----------------\n\n`gnss_lib_py` is organized as:\n\n```bash\n\n   \u251c\u2500\u2500 data/                          # Location for data files\n      \u2514\u2500\u2500 unit_test/                  # Data files for unit testing\n   \u251c\u2500\u2500 dev/                           # Code users do not wish to commit\n   \u251c\u2500\u2500 docs/                          # Documentation files\n   \u251c\u2500\u2500 gnss_lib_py/                   # gnss_lib_py source files\n        \u251c\u2500\u2500 algorithms/               # Navigation algorithms\n        \u251c\u2500\u2500 navdata/                  # NavData data structure\n        \u251c\u2500\u2500 parsers/                  # Data parsers\n        \u251c\u2500\u2500 utils/                    # GNSS and common utilities\n        \u251c\u2500\u2500 visualizations/           # plotting functions\n        \u2514\u2500\u2500 __init__.py\n   \u251c\u2500\u2500 notebooks/                     # Interactive Jupyter notebooks\n        \u251c\u2500\u2500 tutorials/                # Notebooks with tutorial code\n   \u251c\u2500\u2500 results/                       # Location for result images/files\n   \u251c\u2500\u2500 tests/                         # Tests for source files\n      \u251c\u2500\u2500 algorithms/                 # Tests for files in algorithms\n      \u251c\u2500\u2500 navdata/                    # Tests for files in navdata\n      \u251c\u2500\u2500 parsers/                    # Tests for files in parsers\n      \u251c\u2500\u2500 utils/                      # Tests for files in utils\n      \u251c\u2500\u2500 visualizations/             # Tests for files in visualizations\n      \u2514\u2500\u2500 test_gnss_lib_py.py         # High level checks for repository\n   \u251c\u2500\u2500 CONTRIBUTORS.md                # List of contributors\n   \u251c\u2500\u2500 build_docs.sh                  # Bash script to build docs\n   \u251c\u2500\u2500 poetry.lock                    # Poetry specific Lock file\n   \u251c\u2500\u2500 pyproject.toml                 # List of package dependencies\n   \u2514\u2500\u2500 requirements.txt               # List of packages for pip install\n```\nIn the directory organization above:\n\n  * The `algorithms` directory contains localization algorithms that\n    work by passing in a `NavData` class. Currently, the following\n    algorithms are implemented in the `algorithms`:\n\n      * Weighted Least Squares\n      * Extended Kalman Filter\n      * Calculating pseudorange residuals\n      * Fault detection and exclusion\n  * The data parsers in the `parsers` directory allow for either loading\n    GNSS data into `gnss_lib_py`'s unifying `NavData` class or parsing\n    precise ephemerides data.\n    Currently, the following datasets and types are supported:\n\n      * [2021 Google Android Derived Dataset](https://www.kaggle.com/c/google-smartphone-decimeter-challenge)\n      * [2022 Google Android Derived Dataset](https://www.kaggle.com/competitions/smartphone-decimeter-2022)\n      * [TU Chemnitz smartLoc Dataset](https://www.tu-chemnitz.de/projekt/smartLoc/gnss_dataset.html.en#Datasets)\n      * [NMEA](https://www.sparkfun.com/datasheets/GPS/NMEA%20Reference%20Manual-Rev2.1-Dec07.pdf)\n      * [RINEX .o and .n](https://files.igs.org/pub/data/format/rinex305.pdf)\n      * [SP3 precise orbits](https://cddis.nasa.gov/Data_and_Derived_Products/GNSS/orbit_products.html)\n      * [CLK clock products](https://cddis.nasa.gov/Data_and_Derived_Products/GNSS/clock_products.html)\n\n  * The `utils` directory contains utilities used to handle\n    GNSS measurements, time conversions, coordinate transformations,\n    visualizations, calculating multi-GNSS satellite PVT information,\n    satellite simulation, file operations, etc.\n\nInstallation\n------------\n\n`gnss_lib_py` is available through `pip` installation with:\n\n```\npip install gnss-lib-py\n```\n\nFor directions on how to install an editable or developer installation of `gnss_lib_py` on Linux, MacOS, and Windows, please\nsee the [install instructions](https://gnss-lib-py.readthedocs.io/en/latest/install.html).\n\nTutorials\n---------\nWe have a range of tutorials on how to easily use this project. They can\nall be found in the [tutorials section](https://gnss-lib-py.readthedocs.io/en/latest/tutorials/tutorials.html).\n\nReference\n---------\nReferences on the package contents, explanation of the benefits of our\ncustom NavData class, and function-level documentation can all be\nfound in the [reference section](https://gnss-lib-py.readthedocs.io/en/latest/reference/reference.html).\n\nContributing\n------------\nIf you have a bug report or would like to contribute to our repository,\nplease follow the guide on the [contributing page](https://gnss-lib-py.readthedocs.io/en/latest/contributing/contributing.html).\n\nTroubleshooting\n---------------\nAnswers to common questions can be found in the [troubleshooting section](https://gnss-lib-py.readthedocs.io/en/latest/troubleshooting.html).\n\nAttribution\n-----------\nThis project is a product of the [Stanford NAV Lab](https://navlab.stanford.edu/)\nand currently maintained by Ashwin Kanhere (akanhere [at] stanford [dot] edu)\nand Derek Knowles (dcknowles [at] stanford [dot] edu). If using\nthis project in your own work please cite either of the following:\n\n```\n\n   @inproceedings{knowlesmodular2022,\n      title = {A Modular and Extendable GNSS Python Library},\n      author={Knowles, Derek and Kanhere, Ashwin V and Bhamidipati, Sriramya and Gao, Grace},\n      booktitle={Proceedings of the 35th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS+ 2022)},\n      institution = {Stanford University},\n      year = {2022 [Online]},\n      url = {https://github.com/Stanford-NavLab/gnss_lib_py},\n      doi = {10.33012/2022.18525}\n   }\n```\n\n```\n\n   @inproceedings{knowles_kanhere_baselines_2023,\n      title = {Localization and Fault Detection Baselines From an Open-Source Python GNSS Library},\n      author={Knowles, Derek and Kanhere, Ashwin V and Gao, Grace},\n      booktitle={Proceedings of the 36th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS+ 2023)},\n      institution = {Stanford University},\n      year = {2023 [Online]},\n      url = {https://github.com/Stanford-NavLab/gnss_lib_py},\n   }\n```\n\nAdditionally, we would like to thank [all contributors](https://github.com/Stanford-NavLab/gnss_lib_py/blob/main/CONTRIBUTORS.md) to this project.\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Modular Python tool for parsing, analyzing, and visualizing Global Navigation Satellite Systems (GNSS) data and state estimates",
    "version": "1.0.2",
    "project_urls": {
        "Documentation": "https://gnss-lib-py.readthedocs.io/en/latest/",
        "Homepage": "https://github.com/Stanford-NavLab/gnss_lib_py"
    },
    "split_keywords": [
        "gnss"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c84f5446a0fbeb28ba62f74bde957f769fcbec5fd1a14c481892528474e1f36e",
                "md5": "e551739a6f0bc64bc16f34f51ca3a219",
                "sha256": "7406ecb7aa82cd114bec261fe6ced64b78d7d4b6c301b7d5506f3846eabc7130"
            },
            "downloads": -1,
            "filename": "gnss_lib_py-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e551739a6f0bc64bc16f34f51ca3a219",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8,<3.12",
            "size": 116935,
            "upload_time": "2024-02-14T03:01:16",
            "upload_time_iso_8601": "2024-02-14T03:01:16.788520Z",
            "url": "https://files.pythonhosted.org/packages/c8/4f/5446a0fbeb28ba62f74bde957f769fcbec5fd1a14c481892528474e1f36e/gnss_lib_py-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "460d53ab51f800ea3efa4db31ee847ad0f9a036dbb98b7888653634553c8cad1",
                "md5": "28d5bcf45332bd8e16ee2061f8ce5c91",
                "sha256": "1a1ce72d2740b9841a518bd7b8f0d00db1989d862d04ee28d53de4c08166de3c"
            },
            "downloads": -1,
            "filename": "gnss_lib_py-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "28d5bcf45332bd8e16ee2061f8ce5c91",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8,<3.12",
            "size": 101891,
            "upload_time": "2024-02-14T03:01:18",
            "upload_time_iso_8601": "2024-02-14T03:01:18.962892Z",
            "url": "https://files.pythonhosted.org/packages/46/0d/53ab51f800ea3efa4db31ee847ad0f9a036dbb98b7888653634553c8cad1/gnss_lib_py-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-14 03:01:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Stanford-NavLab",
    "github_project": "gnss_lib_py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "gnss-lib-py"
}
        
Elapsed time: 0.54030s