Metadata-Version: 2.4
Name: earth2studio
Version: 0.8.1
Summary: Open-source deep-learning framework for exploring, building and deploying AI weather/climate workflows.
Project-URL: Homepage, https://github.com/NVIDIA/earth2studio
Project-URL: Documentation, https://nvidia.github.io/earth2studio
Project-URL: Issues, https://github.com/NVIDIA/earth2studio/issues
Project-URL: Changelog, https://github.com/NVIDIA/earth2studio/blob/main/CHANGELOG.md
Author: NVIDIA PhysicsNeMo Team
License-Expression: Apache-2.0
License-File: LICENSE
Classifier: Environment :: GPU
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: cfgrib>=0.9.10.3
Requires-Dist: cftime
Requires-Dist: fsspec>=2024.2.0
Requires-Dist: gcsfs
Requires-Dist: h5netcdf>=1.0.0
Requires-Dist: h5py>=3.2.0
Requires-Dist: huggingface-hub>=0.27.0
Requires-Dist: loguru
Requires-Dist: nest-asyncio
Requires-Dist: netcdf4>=1.6.4
Requires-Dist: numcodecs<0.15.0
Requires-Dist: python-dotenv
Requires-Dist: s3fs>=2023.5.0
Requires-Dist: torch>=2.5.0
Requires-Dist: tqdm>=4.65.0
Requires-Dist: xarray[parallel]>=2023.1.0
Requires-Dist: zarr>=2.14.2
Provides-Extra: aifs
Requires-Dist: anemoi-inference[huggingface]==0.4.9; extra == 'aifs'
Requires-Dist: anemoi-models==0.3.1; extra == 'aifs'
Requires-Dist: earthkit-regrid==0.4.0; extra == 'aifs'
Requires-Dist: ecmwf-opendata>=0.3.3; extra == 'aifs'
Requires-Dist: flash-attn>=2.7.3; extra == 'aifs'
Provides-Extra: all
Requires-Dist: cbottle; (python_full_version >= '3.12') and extra == 'all'
Requires-Dist: cdsapi>=0.7.5; extra == 'all'
Requires-Dist: cucim-cu12>=25.4.0; extra == 'all'
Requires-Dist: dm-haiku>=0.0.14; extra == 'all'
Requires-Dist: earth2grid; extra == 'all'
Requires-Dist: eccodes>=2.38.0; extra == 'all'
Requires-Dist: ecmwf-opendata>=0.3.3; extra == 'all'
Requires-Dist: einops>=0.8.1; extra == 'all'
Requires-Dist: flax>=0.10.6; extra == 'all'
Requires-Dist: graphcast; extra == 'all'
Requires-Dist: hydra-core>=1.3.2; extra == 'all'
Requires-Dist: importlib-metadata; extra == 'all'
Requires-Dist: jax[cuda12]>=0.4.26; extra == 'all'
Requires-Dist: jsbeautifier>=1.15.4; extra == 'all'
Requires-Dist: makani[all]; extra == 'all'
Requires-Dist: microsoft-aurora; extra == 'all'
Requires-Dist: numba>=0.61.0; extra == 'all'
Requires-Dist: nvidia-physicsnemo>=1.0.1; extra == 'all'
Requires-Dist: nvtx>=0.2.11; extra == 'all'
Requires-Dist: omegaconf>=2.3.0; extra == 'all'
Requires-Dist: onnxruntime-gpu>=1.21.0; extra == 'all'
Requires-Dist: pynvml>=12.0.0; extra == 'all'
Requires-Dist: pyproj>=3.7.1; extra == 'all'
Requires-Dist: ruamel-yaml>=0.18.10; extra == 'all'
Requires-Dist: scikit-image>=0.25.2; extra == 'all'
Requires-Dist: scipy>=1.15.2; extra == 'all'
Requires-Dist: tensorly-torch>=0.5.0; extra == 'all'
Requires-Dist: tensorly>=0.9.0; extra == 'all'
Requires-Dist: torch-harmonics>=0.7.4; extra == 'all'
Provides-Extra: aurora
Requires-Dist: microsoft-aurora>=1.5.0; extra == 'aurora'
Provides-Extra: aurora-fork
Requires-Dist: microsoft-aurora; extra == 'aurora-fork'
Provides-Extra: cbottle
Requires-Dist: cbottle; (python_full_version >= '3.12') and extra == 'cbottle'
Provides-Extra: climatenet
Provides-Extra: corrdiff
Requires-Dist: einops>=0.8.1; extra == 'corrdiff'
Requires-Dist: nvidia-physicsnemo>=1.0.1; extra == 'corrdiff'
Requires-Dist: nvtx>=0.2.11; extra == 'corrdiff'
Requires-Dist: scipy>=1.15.2; extra == 'corrdiff'
Provides-Extra: cyclone
Requires-Dist: cucim-cu12>=25.4.0; extra == 'cyclone'
Requires-Dist: scikit-image>=0.25.2; extra == 'cyclone'
Provides-Extra: data
Requires-Dist: cdsapi>=0.7.5; extra == 'data'
Requires-Dist: eccodes>=2.38.0; extra == 'data'
Requires-Dist: ecmwf-opendata>=0.3.3; extra == 'data'
Requires-Dist: pyproj>=3.7.1; extra == 'data'
Requires-Dist: scipy>=1.15.2; extra == 'data'
Provides-Extra: derived
Provides-Extra: dlesym
Requires-Dist: earth2grid; extra == 'dlesym'
Requires-Dist: hydra-core>=1.3.2; extra == 'dlesym'
Requires-Dist: nvidia-physicsnemo>=1.0.1; extra == 'dlesym'
Requires-Dist: omegaconf>=2.3.0; extra == 'dlesym'
Provides-Extra: dlwp
Requires-Dist: importlib-metadata; extra == 'dlwp'
Requires-Dist: nvidia-physicsnemo>=1.0.1; extra == 'dlwp'
Provides-Extra: fcn
Requires-Dist: nvidia-physicsnemo>=1.0.1; extra == 'fcn'
Provides-Extra: fengwu
Requires-Dist: onnxruntime-gpu>=1.21.0; extra == 'fengwu'
Provides-Extra: fuxi
Requires-Dist: onnxruntime-gpu>=1.21.0; extra == 'fuxi'
Provides-Extra: graphcast
Requires-Dist: dm-haiku>=0.0.14; extra == 'graphcast'
Requires-Dist: flax>=0.10.6; extra == 'graphcast'
Requires-Dist: graphcast; extra == 'graphcast'
Requires-Dist: jax[cuda12]>=0.4.26; extra == 'graphcast'
Provides-Extra: interp-modafno
Requires-Dist: nvidia-physicsnemo>=1.0.1; extra == 'interp-modafno'
Provides-Extra: pangu
Requires-Dist: onnxruntime-gpu>=1.21.0; extra == 'pangu'
Provides-Extra: perturbation
Requires-Dist: torch-harmonics>=0.7.4; extra == 'perturbation'
Provides-Extra: precip-afno
Requires-Dist: nvidia-physicsnemo>=1.0.1; extra == 'precip-afno'
Provides-Extra: precip-afno-v2
Requires-Dist: nvidia-physicsnemo>=1.0.1; extra == 'precip-afno-v2'
Provides-Extra: sfno
Requires-Dist: jsbeautifier>=1.15.4; extra == 'sfno'
Requires-Dist: makani[all]; extra == 'sfno'
Requires-Dist: numba>=0.61.0; extra == 'sfno'
Requires-Dist: pynvml>=12.0.0; extra == 'sfno'
Requires-Dist: ruamel-yaml>=0.18.10; extra == 'sfno'
Requires-Dist: tensorly-torch>=0.5.0; extra == 'sfno'
Requires-Dist: tensorly>=0.9.0; extra == 'sfno'
Requires-Dist: torch-harmonics>=0.7.4; extra == 'sfno'
Provides-Extra: solarradiation-afno
Requires-Dist: nvidia-physicsnemo>=1.0.1; extra == 'solarradiation-afno'
Provides-Extra: statistics
Requires-Dist: nvidia-physicsnemo>=1.0.1; extra == 'statistics'
Provides-Extra: stormcast
Requires-Dist: einops>=0.8.1; extra == 'stormcast'
Requires-Dist: nvidia-physicsnemo>=1.0.1; extra == 'stormcast'
Requires-Dist: nvtx>=0.2.11; extra == 'stormcast'
Requires-Dist: omegaconf>=2.3.0; extra == 'stormcast'
Requires-Dist: pyproj>=3.7.1; extra == 'stormcast'
Requires-Dist: scipy>=1.15.2; extra == 'stormcast'
Provides-Extra: windgust-afno
Requires-Dist: nvidia-physicsnemo>=1.0.1; extra == 'windgust-afno'
Description-Content-Type: text/markdown

<!-- markdownlint-disable MD002 MD033 MD041 MD053 -->
<div align="center">

![Earth2Studio Banner](https://huggingface.co/datasets/NickGeneva/Earth2StudioAssets/raw/main/0.2.0/earth2studio_banner.png)

[![python version][e2studio_python_img]][e2studio_python_url]
[![license][e2studio_license_img]][e2studio_license_url]
[![coverage][e2studio_cov_img]][e2studio_cov_url]
[![mypy][e2studio_mypy_img]][e2studio_mypy_url]
[![format][e2studio_format_img]][e2studio_format_url]
[![ruff][e2studio_ruff_img]][e2studio_ruff_url]
[![uv][e2studio_uv_img]][e2studio_uv_url]

Earth2Studio is a Python-based package designed to get users up and running
with AI weather and climate models *fast*.
Our mission is to enable everyone to build, research and explore AI driven meteorology.

<!-- markdownlint-disable MD036 -->
**- Earth2Studio Documentation -**
<!-- markdownlint-enable MD036 -->

[Install][e2studio_install_url] | [User-Guide][e2studio_userguide_url] |
[Examples][e2studio_examples_url] | [API][e2studio_api_url]

![Earth2Studio Banner](https://huggingface.co/datasets/NickGeneva/Earth2StudioAssets/raw/main/0.2.0/earth2studio_feature_banner.png)

</div>

## Quick start

Install Earth2Studio:

```bash
pip install earth2studio[dlwp]
```

Run a deterministic weather prediction in just a few lines of code:

```python
from earth2studio.models.px import DLWP
from earth2studio.data import GFS
from earth2studio.io import NetCDF4Backend
from earth2studio.run import deterministic as run

model = DLWP.load_model(DLWP.load_default_package())
ds = GFS()
io = NetCDF4Backend("output.nc")

run(["2024-01-01"], 10, model, ds, io)
```

## Features

Earth2Studio provides access to pre-trained AI weather models and inference
features through an easy to use and extendable Python interface.
This package focuses on supplying users the tools to build their own
workflows, pipelines, APIs, packages, etc. via modular components including:

- Collection of pre-trained weather/climate prediction models
- Collection of pre-trained diagnostic weather models
- Variety of online and on-prem data sources for initialization, scoring, analysis, etc.
- IO utilities for exporting predicted data to user friendly formats
- Suite of perturbation methods for building ensemble predictions
- Sample workflows and examples for common tasks / use cases
- Seamless integration into other Nvidia packages including [PhysicsNeMo][physicsnemo_repo_url]

For a more complete list of feature set, be sure to view the [documentation][e2studio_docs_url].
Don't see what you need?
Great news, extension and customization are at the heart of our [design][e2studio_customization_url].

## Contributors

Check out the [Contributing](CONTRIBUTING.md) document for details about the technical
requirements and the userguide for higher level philosophy, structure, and design.

## License

Earth2Studio is provided under the Apache License 2.0, please see
[LICENSE file][e2studio_license_url] for full license text.

<!-- Badge links -->

[e2studio_python_img]: https://img.shields.io/badge/Python-3.10%20|%203.11%20|%203.12%20|%203.13-blue?style=flat-square&logo=python
[e2studio_license_img]: https://img.shields.io/badge/License-Apache%202.0-green?style=flat-square
[e2studio_format_img]: https://img.shields.io/badge/Code%20Style-Black-black?style=flat-square
[e2studio_mypy_img]: https://img.shields.io/badge/mypy-Checked-blue?style=flat-square&labelColor=grey
[e2studio_cov_img]: https://img.shields.io/codecov/c/github/nickgeneva/earth2studio?style=flat-square&logo=codecov
[e2studio_ruff_img]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json&style=flat-square
[e2studio_uv_img]: https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fastral-sh%2Fuv%2Fmain%2Fassets%2Fbadge%2Fv0.json&style=flat-square

[e2studio_python_url]: https://www.python.org/downloads/
[e2studio_license_url]: ./LICENSE
[e2studio_format_url]: https://github.com/psf/black
[e2studio_cov_url]: ./test/
[e2studio_mypy_url]: https://mypy-lang.org/
[e2studio_ruff_url]: https://github.com/astral-sh/ruff
[e2studio_uv_url]: https://github.com/astral-sh/uv

<!-- Doc links -->
[e2studio_docs_url]: https://nvidia.github.io/earth2studio/
[e2studio_install_url]: https://nvidia.github.io/earth2studio/userguide/about/install.html
[e2studio_userguide_url]: https://nvidia.github.io/earth2studio/userguide/
[e2studio_examples_url]: https://nvidia.github.io/earth2studio/examples/
[e2studio_api_url]: https://nvidia.github.io/earth2studio/modules/
[e2studio_customization_url]: https://nvidia.github.io/earth2studio/examples/extend/index.html

<!-- Misc links -->
[physicsnemo_repo_url]: https://github.com/NVIDIA/physicsnemo
