pyearthtools

PyEarthTools: Machine learning for Earth system science

https://github.com/access-community-hub/pyearthtools

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 7 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.2%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

PyEarthTools: Machine learning for Earth system science

Basic Info
Statistics
  • Stars: 21
  • Watchers: 7
  • Forks: 13
  • Open Issues: 55
  • Releases: 2
Created about 1 year ago · Last pushed 6 months ago
Metadata Files
Readme License Code of conduct Citation Roadmap Zenodo Notice

README.md

PyEarthTools: Machine learning for Earth system science

DOI

  • An approachable way for researchers to get started with ML research for Earth system science
  • Provides a software framework for research and experimentation
  • Also suitable for students and newcomers
  • Still under early-stage development - things are likely to change a lot. If you notice an issue, please feel free to raise it on GitHub

|
A weather prediction from a model trained with PyEarthTools.|
A data processing flow composed for working with climate data.| |:-:|:-:|

Source Code: github.com/ACCESS-Community-Hub/PyEarthTools
Documentation: pyearthtools.readthedocs.io
Tutorial Gallery: available here
New Users Guide: available here

Installation

Here is the quickest way to install the complete framework and get started:

We strongly recommend using either a Conda or Python virtual environment.

Run the following commands to install PyEarthTools in a Conda environment: shell git clone git@github.com:ACCESS-Community-Hub/PyEarthTools.git conda create -y -p ./venv python graphviz conda activate ./venv pip install -r requirements.txt cd notebooks jupyter lab

Alternatively, run the following commands to install PyEarthTools in a Python virtual environment: shell git clone git@github.com:ACCESS-Community-Hub/PyEarthTools.git python3 -m venv ./venv source venv/bin/activate pip install -r requirements.txt cd notebooks jupyter lab

!TIP Install Graphviz (not installable via pip) to display pipelines.

PyEarthTools comprises multiple sub-packages which may be installed and used separately. See the installation guide for more details.

Overview of PyEarthTools

PyEarthTools is a Python framework containing modules for: - loading and fetching data; - pre-processing, normalising and standardising data into a normal form suitable for machine learning; - defining machine learning (ML) models; - training ML models and managing experiments; - performing inference with ML models; - and evaluating ML models.

Overview of the Packages within PyEarthTools

PyEarthTools comprises multiple sub-packages which can be used individually or together.

| Sub-Package | Purpose | |--------------------------------|---------------------- | | Data | Loading and indexing Earth system data into xarray | | Utils | Code for common functionality across the sub-packages | | Pipeline | Process and normalise Earth system data ready for machine learning | | Training | Training processes for machine learning models | | Tutorial | Contains helper code for data sets used in tutorials | | Bundled Models | Maintained versions of specific, bundled models which can be easily trained and run | | Zoo | Contains code for managing registered models (such as the bundled models) | | Evaluation | (Coming soon) Contains code for producing standard evaluations (such as benchmarks and scorecards) |

Acknowleging or Citing PyEarthTools

If you use PyEarthTools for your work, we would appreciate you citing our software as below:

Cook, H., Leeuwenburg, T., Rio, M., Miller, J., Mason, G., Ramanathan, N., Pill, J., Haddad, S., & de Burgh-Day, C. (2025). PyEarthTools: Machine learning for Earth system science (0.1.1). Zenodo. https://doi.org/10.5281/zenodo.15760769

BibTeX: @software{cook_2025_15760769, author = {Cook, Harrison and Leeuwenburg, Tennessee and Rio, Maxime and Miller, Joel and Mason, Gemma and Ramanathan, Nikeeth and Pill, John and Haddad, Stephen and de Burgh-Day, Catherine}, title = {{PyEarthTools: Machine learning for Earth system science}}, month = jun, year = 2025, publisher = {Zenodo}, version = {0.1.1}, doi = {10.5281/zenodo.15760769}, url = {https://doi.org/10.5281/zenodo.15760769} }

Owner

  • Name: ACCESS Community Hub
  • Login: ACCESS-Community-Hub
  • Kind: organization
  • Email: access.nri@anu.edu.au
  • Location: Australia

Australian Earth System Simulator Community

Citation (CITATION.cff)

cff-version: "1.2.0"
message: "If you use PyEarthTools, please cite it as below."
authors:
- family-names: Cook
  given-names: Harrison
  orcid: "https://orcid.org/0009-0009-3207-4876"
- family-names: Leeuwenburg
  given-names: Tennessee
  orcid: "https://orcid.org/0009-0008-2024-1967"
- family-names: Rio
  given-names: Maxime
  orcid: "https://orcid.org/0000-0003-2553-0721"
- family-names: Miller
  given-names: Joel
  orcid: "https://orcid.org/0000-0002-3148-4496"
- family-names: Mason
  given-names: Gemma
  orcid: "https://orcid.org/0000-0002-6569-1178"
- family-names: Ramanathan
  given-names: Nikeeth
  orcid: "https://orcid.org/0009-0002-7406-7438"
- family-names: Pill
  given-names: John
  orcid: "https://orcid.org/0009-0001-6250-3987"
- family-names: Haddad
  given-names: Stephen
  orcid: "https://orcid.org/0000-0003-3430-2456"
- family-names: de Burgh-Day
  given-names: Catherine
  orcid: "https://orcid.org/0000-0002-1975-0042"
title: "PyEarthTools: Machine learning for Earth system science"
version: 0.1.1
doi: 10.5281/zenodo.15760769
url: https://doi.org/10.5281/zenodo.15760769
date-released: 2025-06-28
publisher:
  name: "Zenodo"

GitHub Events

Total
  • Create event: 14
  • Commit comment event: 1
  • Release event: 1
  • Delete event: 12
  • Member event: 2
  • Pull request event: 137
  • Fork event: 12
  • Issues event: 103
  • Watch event: 16
  • Issue comment event: 210
  • Push event: 405
  • Public event: 1
  • Pull request review event: 68
  • Pull request review comment event: 62
Last Year
  • Create event: 14
  • Commit comment event: 1
  • Release event: 1
  • Delete event: 12
  • Member event: 2
  • Pull request event: 137
  • Fork event: 12
  • Issues event: 103
  • Watch event: 16
  • Issue comment event: 210
  • Push event: 405
  • Public event: 1
  • Pull request review event: 68
  • Pull request review comment event: 62

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 65
  • Total pull requests: 70
  • Average time to close issues: 13 days
  • Average time to close pull requests: 6 days
  • Total issue authors: 8
  • Total pull request authors: 12
  • Average comments per issue: 0.57
  • Average comments per pull request: 1.51
  • Merged pull requests: 52
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 65
  • Pull requests: 70
  • Average time to close issues: 13 days
  • Average time to close pull requests: 6 days
  • Issue authors: 8
  • Pull request authors: 12
  • Average comments per issue: 0.57
  • Average comments per pull request: 1.51
  • Merged pull requests: 52
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tennlee (37)
  • nikeethr (8)
  • millerjoel (6)
  • jennan (5)
  • edoyango (4)
  • JMP-MO (3)
  • stevehadd (1)
  • HCookie (1)
Pull Request Authors
  • tennlee (22)
  • jennan (15)
  • millerjoel (9)
  • JMP-MO (9)
  • gemmaellen (5)
  • sana-ccrc (4)
  • nikeethr (1)
  • HCookie (1)
  • CatdBD (1)
  • metofficeben (1)
  • rmholmes (1)
  • stevehadd (1)
Top Labels
Issue Labels
CI/CD (4) good first issue (3) Software Task (3) enhancement (2) bug (2) advanced (2) testing (2) Intermediate (2) question (1) help wanted (1) Tutorial Needed (1) documentation (1)
Pull Request Labels
enhancement (3) Intermediate (1)

Packages

  • Total packages: 6
  • Total downloads:
    • pypi 13 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 7
  • Total maintainers: 1
pypi.org: pyearthtools-data

Data loading, abstraction and manipulation tools

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 8.6%
Forks count: 11.1%
Stargazers count: 14.7%
Average: 20.7%
Dependent repos count: 48.4%
Maintainers (1)
Last synced: 6 months ago
pypi.org: pyearthtools-zoo

PyEarthTools Models Registry

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 8.6%
Forks count: 11.1%
Stargazers count: 14.7%
Average: 20.7%
Dependent repos count: 48.4%
Maintainers (1)
Last synced: 6 months ago
pypi.org: pyearthtools-pipeline

Data Pipelines with pyearthtools

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 8.6%
Forks count: 11.1%
Stargazers count: 14.7%
Average: 20.7%
Dependent repos count: 48.4%
Maintainers (1)
Last synced: 6 months ago
pypi.org: pyearthtools-training

Machine Learning Training with pyearthtools

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 8.6%
Forks count: 11.1%
Stargazers count: 14.7%
Average: 20.7%
Dependent repos count: 48.4%
Maintainers (1)
Last synced: 6 months ago
pypi.org: pyearthtools-utils

Utilities for pyearthtools

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 8.6%
Forks count: 11.1%
Stargazers count: 14.7%
Average: 20.7%
Dependent repos count: 48.4%
Maintainers (1)
Last synced: 6 months ago
pypi.org: pyearthtools

PyEarthTools: Machine learning for Earth system science.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 13 Last month
Rankings
Dependent packages count: 10.0%
Average: 33.3%
Dependent repos count: 56.5%
Maintainers (1)
Last synced: 6 months ago

Dependencies

packages/data/pyproject.toml pypi
  • click *
  • filelock *
  • geopandas *
  • pyearthtools-utils >=0.1.0
  • pyyaml *
  • shapely *
  • tqdm *
  • urllib3 *
  • xarray [complete]
packages/pipeline/pyproject.toml pypi
  • einops *
  • graphviz *
  • pandas *
  • pyearthtools-data >=0.1.0
  • pyearthtools-utils >=0.1.0
  • xarray *
packages/training/pyproject.toml pypi
  • einops *
  • pyearthtools-pipeline *
  • pyearthtools-utils >=0.1.0
  • scikit-learn *
  • scipy *
packages/tutorial/pyproject.toml pypi
  • dask ==2024.9.1
  • ipykernel *
  • ipywidgets *
  • jupyterlab *
  • pyearthtools.data *
  • pyearthtools.pipeline *
  • pyearthtools.training *
  • rich *
  • scores *
packages/utils/pyproject.toml pypi
  • IPython *
  • numpy *
  • pillow *
  • pyyaml *
  • scikit-learn *
  • tqdm *
  • xarray *
pyproject.toml pypi
requirements-docs.txt pypi
.github/workflows/python-app.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • coverallsapp/github-action v2.3.0 composite
.github/workflows/run-pre-commit.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/interrogate.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v4 composite
packages/bundled_models/fourcastnext/pyproject.toml pypi
  • hydra-core *
  • pyearthtools.data >=0.1.0
  • pyearthtools.pipeline >=0.1.0
  • pyearthtools.training [lightning]>=0.1.0
  • pyearthtools.zoo >=0.1.0
  • timm *
  • torch_optimizer *
packages/nci_site_archive/pyproject.toml pypi
  • pyearthtools-data >=0.1.0
packages/zoo/pyproject.toml pypi
  • click *
  • entrypoints *
  • multiurl *
  • pyearthtools-data >=0.1.0
  • pyearthtools-pipeline >=0.1.0
  • pyearthtools-training >=0.1.0
  • pyearthtools-utils >=0.1.0
  • tqdm *
requirements.txt pypi
packages/met_office_site_archive/pyproject.toml pypi
  • pyearthtools-data >=0.1.0