Skip to content
Snippets Groups Projects
Forked from Nils Brüggemann / pyicon
192 commits behind, 89 commits ahead of the upstream repository.

User guide for pyicon

Pyicon is a python post-processing and visualization toolbox for ICON with a focus on ocean data. The three main features of pyicon are:

  • a number of functions to facilitate the every-day script-based plotting of ICON data
  • an interactive (ncview-like) plotting GUI for Jupyter notebook
  • a monitoring suite for ICON ocean simulations which combines dedicated diagnostic plots of an ICON simulation on a website

Pyicon is developed within the DFG-project TRR181 - Energy Transfers in Atmosphere and Ocean.

The pyicon documentation can be found here: documentation

Pyicon is hosted at: (https://gitlab.dkrz.de/m300602/pyicon/)

Quick start for pyicon

You can install pyicon via pip:

pip install pyicon-diagnostics

However, if you want to use the most recent development version, it is advisable to download pyicon with git:

git clone git@gitlab.dkrz.de:m300602/pyicon.git

Install pyicon by:

cd pyicon
pip install -e ./

If you notice that some requirements were not met by the installation, you can also use conda to install the requirements:

conda env create -f ci/requirements_latest.yml

or on DKRZ's super computer Levante use

module load python3/2023.01-gcc-11.2.0
pip install healpy

To update pyicon, you only need to enter the pyicon directory update the git repository via

git pull

Quick start for pyicon @DWD (Confluence, only intern)

https://ninjoservices.dwd.de/wiki/display/KUQ/pyICON+for+ICON+with+NWP+physics

Installing locally

You can also install pyicon locally via pip. However, due to dependencies of cartopy it is advised to install cartopy first via conda.

conda install xarray cartopy dask -c conda-forge

Once, cartopy is installed in your environment:

pip install git+https://gitlab.dkrz.de/m300602/pyicon.git

Developing

When adding new functions, make sure to document them with a docstring. This should detail what the function does, the arguments and what type of objects it returns. Examples are encouraged. We use so-called "numpy" style docstrings which are then automatically rendered into the sphinx documentation. A guide to numpy style docstrings is available here and they even produce some nice examples.