icenet 0.2.9
Library for operational IceNet forecasting
Requires Python: <3.12,>=3.9

# 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

---