Metadata-Version: 2.2
Name: icenet
Version: 0.2.9
Summary: Library for operational IceNet forecasting
Home-page: https://github.com/icenet-ai
Author: British Antarctic Survey / Alan Turing Institute
Author-email: jambyr@bas.ac.uk
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.9, <3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: azure-storage-blob
Requires-Dist: cartopy
Requires-Dist: cdsapi
Requires-Dist: cfgrib
Requires-Dist: copernicusmarine
Requires-Dist: dask
Requires-Dist: distributed
Requires-Dist: eccodes<2.39.0,>=2.37.0
Requires-Dist: ecmwf-api-client
Requires-Dist: h5py>2.10
Requires-Dist: ibicus
Requires-Dist: imageio-ffmpeg
Requires-Dist: matplotlib
Requires-Dist: motuclient
Requires-Dist: netcdf4<1.6.1
Requires-Dist: pandas
Requires-Dist: plotly
Requires-Dist: pip
Requires-Dist: pydap
Requires-Dist: rioxarray
Requires-Dist: scitools-iris
Requires-Dist: seaborn
Requires-Dist: setuptools
Requires-Dist: tensorboard
Requires-Dist: tensorflow<2.16
Requires-Dist: tensorflow-probability
Requires-Dist: wheel
Requires-Dist: xarray[io]
Provides-Extra: dev
Requires-Dist: black; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: importlib_metadata; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Requires-Dist: pylint; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: tox; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: watchdog; extra == "dev"
Requires-Dist: yapf; extra == "dev"
Provides-Extra: docs
Requires-Dist: jinja2>=3.1.3; extra == "docs"
Requires-Dist: linkify-it-py; extra == "docs"
Requires-Dist: myst-nb; extra == "docs"
Requires-Dist: myst_parser; extra == "docs"
Requires-Dist: pylint; extra == "docs"
Requires-Dist: Sphinx; extra == "docs"
Requires-Dist: sphinx-book-theme; extra == "docs"
Requires-Dist: sphinx_design; extra == "docs"
Requires-Dist: sphinx-multiversion; extra == "docs"
Requires-Dist: sphinxcontrib-kroki; extra == "docs"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# icenet

![GitHub issues](https://img.shields.io/github/issues/icenet-ai/icenet?style=plastic)
![GitHub closed issues](https://img.shields.io/github/issues-closed/icenet-ai/icenet?style=plastic)
![GitHub](https://img.shields.io/github/license/icenet-ai/icenet)
![GitHub forks](https://img.shields.io/github/forks/icenet-ai/icenet?style=social)
![GitHub forks](https://img.shields.io/github/stars/icenet-ai/icenet?style=social)

This is the core python library for the IceNet sea-ice forecasting system. 

This `README` will be worked on more, but there's plenty of information around 
in the [`icenet-ai`][3] organisations repositories, which demonstrate usage of 
this library.

## Table of contents

* [Overview](#overview)
* [Installation](#installation)
* [Implementation](#implementation)
* [Pipeline](#pipeline)
* [Contributing to IceNet](#contributing-to-icenet)
* [Deployment](#deployment-to-pypi)
* [Credits](#credits)
* [License](#license)

## Installation

We're still working on clear dependency management using pip, Tensorflow is best through pip but obviously you need NVIDIA dependencies for GPU based training. If you're having trouble with system dependencies some advice about environment setup is given by the examples [under the pipeline repository][1].

Please note that icenet has an optional dependency on eccodes which requires a system library and a python wrapper. The system library can be installed via conda.

By default, Tensorflow will be built for CPU only when icenet is installed via pip. So, optionally, Tensorflow can be installed with CUDA support (recommended).

```bash
conda install -c conda-forge eccodes

pip install icenet

# To install newer versions of tensorflow (tensorflow>=2.14) with CUDA deps directly via pip:
pip install "tensorflow[and-cuda]<2.16"
```

Please consult the [tensorflow docs](https://www.tensorflow.org/install/pip) for up-to-date info.

### Development installation

Please refer to [the contribution guidelines for more information.](CONTRIBUTING.rst)

## Implementation

When installed, the library will provide a series of CLI commands. Please use 
the `--help` switch for more initial information, or the documentation. 

### Documentation

The `docs/` directory has a `Makefile` that builds sphinx docs easily enough, 
once the requirements in that directory are installed. 

## Usage Pipeline / Examples

Please refer to [the icenet-pipeline repository][1] or [the icenet-notebook
repository][2] for examples of how to use this library.

## Contributing to IceNet

Please refer to [the contribution guidelines for more information.](CONTRIBUTING.rst)

## Deployment to PyPi

To deploy a new release to PyPI, set up your credentials in `~/.pypirc` with your personal access token.

* Increment the version in `icenet/__init__.py` and commit change to the branch.
* `git tag vX.Y.Z`
* `git push upstream --tags`

To test deployment by deploying to test PyPI, run:
* `make dist` to build sdist and wheel files.
* `twine check dist/*` to check that the files are valid and can be uploaded to PyPI.
* `twine upload --repository testpypi dist/*` to deploy to test PyPI.

If all looks good, run:

* `make release` to deploy to PyPI.

## Credits

[![](https://contrib.rocks/image?repo=icenet-ai/icenet)](https://github.com/icenet-ai/icenet/graphs/contributors)

## License

This is licensed using the [MIT License](LICENSE)

[1]: https://github.com/icenet-ai/icenet-pipeline
[2]: https://github.com/icenet-ai/icenet-notebooks
[3]: https://github.com/icenet-ai

---
