Skip to content

Commit aed0a74

Browse files
authored
Merge pull request #167 from Stanford-NavLab/v1.0.3
In line with user requests, we are now updating our GNSS library to support Python 3.12! The library is still compatible with Python 3.9, 3.10, and 3.11 across Linux, MacOS, Windows, and Google Colab (Python 3.10). But, if you wish to continue using Python 3.8, we recommend that you stay with v1.0.2. Please see the upcoming v1.0.3 release for more information.
2 parents f778d6e + 87428c4 commit aed0a74

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+3800
-1966
lines changed

.github/workflows/build.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,18 @@ jobs:
2020
runs-on: ${{ matrix.os }}
2121
strategy:
2222
matrix:
23-
python-version: ["3.8", "3.11"]
23+
python-version: ["3.9","3.10","3.11","3.12"]
2424
os: [ubuntu-latest, macos-latest, windows-latest]
2525
fail-fast : false
2626
defaults:
2727
run:
2828
shell: bash
2929

3030
steps:
31-
- uses: actions/checkout@v3
31+
- uses: actions/checkout@v4
3232
- name: Set up Python ${{ matrix.python-version }}
3333
id: setup-python
34-
uses: actions/setup-python@v4
34+
uses: actions/setup-python@v5
3535
with:
3636
python-version: ${{ matrix.python-version }}
3737
- name: Install Poetry
@@ -43,7 +43,7 @@ jobs:
4343
# Load cached environment, if it exists
4444
- name: Load cached poetry environment
4545
id: cached-poetry-dependencies
46-
uses: actions/cache@v3
46+
uses: actions/cache@v4
4747
with:
4848
path: .venv
4949
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}
@@ -68,7 +68,7 @@ jobs:
6868
source $VENV
6969
poetry run pytest --cov=gnss_lib_py/algorithms --cov=gnss_lib_py/navdata --cov=gnss_lib_py/parsers --cov=gnss_lib_py/utils --cov=gnss_lib_py/visualizations --cov-report=xml
7070
- name: Upload coverage report to code-cov
71-
uses: codecov/codecov-action@v3
71+
uses: codecov/codecov-action@v4
7272
with:
7373
fail_ci_if_error: true
7474
token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos
@@ -79,13 +79,13 @@ jobs:
7979
runs-on: ubuntu-latest
8080
name: Check if index.rst and README.md weren't changed together
8181
steps:
82-
- uses: actions/checkout@v3
82+
- uses: actions/checkout@v4
8383
with:
8484
fetch-depth: 0
8585

8686
- name: Get changed files since last remote commit
8787
id: changed-files
88-
uses: tj-actions/changed-files@v34
88+
uses: tj-actions/changed-files@v44
8989

9090
- name: Check if index.rst changed when README.md file changes
9191
if: contains(steps.changed-files.outputs.modified_files, 'README.md') && !contains(steps.changed-files.outputs.modified_files, 'docs/source/index.rst')

.github/workflows/pip-install.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ jobs:
1414
runs-on: ${{ matrix.os }}
1515
strategy:
1616
matrix:
17-
python-version: ["3.8"]
17+
python-version: ["3.9"]
1818
os: [ubuntu-latest]
1919

2020
steps:
21-
- uses: actions/checkout@v3
21+
- uses: actions/checkout@v4
2222
- name: Set up Python ${{ matrix.python-version }}
23-
uses: actions/setup-python@v4
23+
uses: actions/setup-python@v5
2424
with:
2525
python-version: ${{ matrix.python-version }}
2626
- name: Install using pip

.github/workflows/pylint.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ jobs:
1313
runs-on: ubuntu-latest
1414
strategy:
1515
matrix:
16-
python-version: ["3.8"]
16+
python-version: ["3.9"]
1717
steps:
18-
- uses: actions/checkout@v3
18+
- uses: actions/checkout@v4
1919
- name: Set up Python ${{ matrix.python-version }}
2020
id: setup-python
21-
uses: actions/setup-python@v4
21+
uses: actions/setup-python@v5
2222
with:
2323
python-version: ${{ matrix.python-version }}
2424
- name: Install Poetry
@@ -29,7 +29,7 @@ jobs:
2929
installer-parallel: true # default option selected currently
3030
- name: Load cached poetry environment
3131
id: cached-poetry-dependencies
32-
uses: actions/cache@v3
32+
uses: actions/cache@v4
3333
with:
3434
path: .venv
3535
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}

.github/workflows/pypi-release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ jobs:
1515
runs-on: ubuntu-latest
1616

1717
steps:
18-
- uses: actions/checkout@v3
18+
- uses: actions/checkout@v4
1919
- name: Set up Python 3.10
20-
uses: actions/setup-python@v4
20+
uses: actions/setup-python@v5
2121
with:
2222
python-version: "3.10"
2323

.gitignore

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,6 @@ target/
151151
profile_default/
152152
ipython_config.py
153153

154-
# pyenv
155-
# .python-version
156-
157154
# pipenv
158155
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
159156
# However, in case of collaboration, if having platform-specific dependencies or dependencies

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.8.9
1+
3.9.19

.readthedocs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ version: 2
99
build:
1010
os: ubuntu-20.04
1111
tools:
12-
python: "3.8"
12+
python: "3.9"
1313

1414
# Build documentation in the docs/ directory with Sphinx
1515
sphinx:

README.md

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,31 @@ gnss_lib_py
99
`gnss_lib_py` is a modular Python tool for parsing, analyzing, and
1010
visualizing Global Navigation Satellite Systems (GNSS) data and state
1111
estimates.
12-
It also provides an intuitive and modular framework allowing users to
12+
It also provides an intuitive and modular framework which allows users to
1313
quickly prototype, implement, and visualize GNSS algorithms.
1414
`gnss_lib_py` is modular in the sense that multiple types of
15-
algorithms can be easily exchanged for each other and extendable in
16-
facilitating user-specific extensions of existing implementations.
15+
algorithms or datasets can be easily exchanged for each other.
16+
It is extendable in facilitating user-specific extensions of existing
17+
implementations.
1718

18-
<img src="https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/docs/source/img/skyplot.png" alt="satellite skyplot" width="600"/>
19+
<img src="https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/docs/source/img/glp_architecture.svg" alt="Architecture of gnss-lib-py library" width="800"/>
1920

2021
`gnss_lib_py` contains parsers for common file types used for
2122
storing GNSS measurements, benchmark algorithms for processing
2223
measurements into state estimates and visualization tools for measurements
2324
and state estimates.
2425
The modularity of `gnss_lib_py` is made possibly by the unifying
25-
`NavData` class, which contains methods to add, remove and modify
26-
numeric and string data consistently.
27-
We provide standard row names for `NavData` elements on the
26+
`NavData` class, with accompanying standard nomenclature, which can be
27+
found in the
2828
[reference page](https://gnss-lib-py.readthedocs.io/en/latest/reference/reference.html).
29-
These names ensure cross compatibility between different datasets and
30-
algorithms.
29+
The standard nomenclature ensures cross compatibility between different
30+
datasets and algorithms.
31+
32+
`NavData` combines the readability of `pandas.DataFrame` with `numpy.ndarray`
33+
allowing for easy and fast access of numbers or strings.
34+
We also provide functionality to add, remove and modify numeric and
35+
string data consistently along with commonly needed supporting
36+
functionality.
3137

3238
Documentation
3339
-------------
@@ -51,7 +57,7 @@ Code Organization
5157
├── parsers/ # Data parsers
5258
├── utils/ # GNSS and common utilities
5359
├── visualizations/ # plotting functions
54-
└── __init__.py
60+
└── __init__.py # Initialize gnss_lib_py
5561
├── notebooks/ # Interactive Jupyter notebooks
5662
├── tutorials/ # Notebooks with tutorial code
5763
├── results/ # Location for result images/files
@@ -61,7 +67,7 @@ Code Organization
6167
├── parsers/ # Tests for files in parsers
6268
├── utils/ # Tests for files in utils
6369
├── visualizations/ # Tests for files in visualizations
64-
└── test_gnss_lib_py.py # High level checks for repository
70+
└── conftest.py # Common methods for tests
6571
├── CONTRIBUTORS.md # List of contributors
6672
├── build_docs.sh # Bash script to build docs
6773
├── poetry.lock # Poetry specific Lock file
@@ -70,14 +76,19 @@ Code Organization
7076
```
7177
In the directory organization above:
7278

73-
* The `algorithms` directory contains localization algorithms that
79+
* The `algorithms` directory contains algorithms that
7480
work by passing in a `NavData` class. Currently, the following
7581
algorithms are implemented in the `algorithms`:
7682

7783
* Weighted Least Squares
7884
* Extended Kalman Filter
7985
* Calculating pseudorange residuals
8086
* Fault detection and exclusion
87+
88+
* The `navdata` directory defines the `NavData` class, its methods, and
89+
functions that operate on `NavData` instances, like `sort`, `concat`,
90+
and others.
91+
8192
* The data parsers in the `parsers` directory allow for either loading
8293
GNSS data into `gnss_lib_py`'s unifying `NavData` class or parsing
8394
precise ephemerides data.
@@ -96,6 +107,10 @@ In the directory organization above:
96107
visualizations, calculating multi-GNSS satellite PVT information,
97108
satellite simulation, file operations, etc.
98109

110+
* The `visualizations` directory contains methods for plotting quantities
111+
in `NavData`. It includes methods to plot metrics, positions on maps,
112+
and skyplots of satellites visible from the receiver position.
113+
99114
Installation
100115
------------
101116

build_docs.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/bin/bash
22
# export requirements.txt for buildings docs
3+
poetry config warnings.export false
34
poetry export -f requirements.txt --output ./docs/source/requirements.txt --with dev --without-hashes
45
# export requirements.txt for Conda environment setup
56
poetry export -f requirements.txt --output ./requirements.txt --without-hashes

docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
# -- Project information -----------------------------------------------------
3838

3939
project = 'gnss_lib_py'
40-
copyright = '2022, Stanford NAV Lab'
40+
copyright = '2024, Stanford NAV Lab'
4141
author = 'Ashwin Kanhere, Derek Knowles'
4242

4343

0 commit comments

Comments
 (0)