Skip to content

Commit

Permalink
Remove support for Python 3.9, add Python 3.13 (#40)
Browse files Browse the repository at this point in the history
* Remove support for py39, add py313

* Actually remove 3.9 from Actions

* Try upgrading pyproj

* Update uv lock

* Upgrade pyogrio

* Update scipy

* Exclude python3.13 combo

* Add benchmark notebook link

* Update generated PDF

---------

Co-authored-by: robbibt <[email protected]>
  • Loading branch information
robbibt and robbibt authored Jan 17, 2025
1 parent bb56b91 commit d7a385a
Show file tree
Hide file tree
Showing 5 changed files with 1,128 additions and 1,328 deletions.
5 changes: 4 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,11 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12"] # , "3.13" # waiting on pyproj
python-version: ["3.10", "3.11", "3.12", "3.13"]
resolution: ["highest", "lowest-direct"]
exclude: # Temporarily excluded due to 3.13 only supported by Numpy >=2.0
- python-version: "3.13"
resolution: "lowest-direct"
fail-fast: false
max-parallel: 10
defaults:
Expand Down
2 changes: 1 addition & 1 deletion paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ The [`eo_tides.model`](https://geoscienceaustralia.github.io/eo-tides/api/#eo_ti

To support integration with satellite EO data, the `model_tides` function from `eo_tides.model` wraps `pyTMD` functionality to return predicted tides in a standardised `pandas.DataFrame` format containing information about the tide model, location and time period of each modelled tide. This allows large analyses to be broken into smaller discrete chunks that can be processed in parallel before being combined as a final step. Parallelisation in `eo-tides` is automatically optimised based on the number of available workers and the number of requested tide models and tide modelling locations. This built-in parallelisation can significantly improve tide modelling performance, especially when run on a large multi-core machine (\autoref{tab:benchmark}).

Table: A benchmark comparison of tide modelling performance with parallelisation on vs. off. This comparison was performed on an 8-core and 32-core Linux machine, for a typical large-scale analysis involving a month of hourly tides modelled at 10,000 modelling locations using three tide models (FES2022, TPXO10, GOT5.6). \label{tab:benchmark}
Table: A [benchmark comparison](https://github.com/GeoscienceAustralia/eo-tides/blob/main/paper/benchmarking.ipynb) of tide modelling performance with parallelisation on vs. off. This comparison was performed on an 8-core and 32-core Linux machine, for a typical large-scale analysis involving a month of hourly tides modelled at 10,000 modelling locations using three tide models (FES2022, TPXO10, GOT5.6). \label{tab:benchmark}

| Cores | Parallelisation | No parallelisation | Speedup |
| ----- | ----------------- | ------------------ | ------- |
Expand Down
Binary file modified paper/paper.pdf
Binary file not shown.
8 changes: 4 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ classifiers = [
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
requires-python = ">=3.9,<4.0"
requires-python = ">=3.10,<4.0"
dependencies = [
"colorama>=0.4.3",
"geopandas>=0.10.0",
Expand All @@ -43,11 +43,11 @@ dependencies = [
"odc-geo>=0.4.7",
"pandas>=2.2.0",
"psutil>=5.8.0",
"pyogrio>=0.7.0",
"pyproj>=3.6.1",
"pyogrio>=0.10.0",
"pyproj>=3.7.0",
"pyTMD==2.2.0",
"scikit-learn>=1.4.0",
"scipy>=1.11.2",
"scipy>=1.14.1",
"shapely>=2.0.6",
"tqdm>=4.55.0",
"xarray>=2022.3.0",
Expand Down
Loading

0 comments on commit d7a385a

Please sign in to comment.