pyISSM: Release Information

What is this?

A topic that will be used to announce release information and updates for pyISSM.

What is pyISSM?

pyISSM is a Python API for the open source Ice-sheet and Sea-level System Model (ISSM). pyISSM provides a suite of tools focused on creating, parameterising, executing, visualising, and analysing ISSM models optimised for use on NCI infrastructure via the supported ACCESS-ISSM releases.

How is this topic used?

This topic will be the place where release information and updates to pyISSM will be announced, with details of what those updates entail.

What should I do to be notified of any updates?

You can watch this topic, and be notified by email of every update.

Where do I ask questions about releases?

Replies to this topic are disabled.

If you have specific questions about this release follow the guidelines for requesting help from ACCESS-NRI.

If you have questions about pyissm please create a topic in the relevant channel within Cryosphere > pyISSM community space. If you require assistance follow the guidelines for requesting help from ACCESS-NRI.

pyISSM release

:rocket: Release: pyISSM v0.2.1

What can you expect to be able to do with this?

A user should be able to

  • install pyISSM into their own Python environment from PyPI, conda or GitHub, or use it on NCI Gadi through the conda/analysis3 environment.
  • create, parameterise, execute, visualise and analyse Ice-sheet and Sea-level System Model (ISSM) models from Python, rather than MATLAB.
  • work through the provided tutorial notebooks, which build and run a square ice shelf and a Pine Island Glacier configuration.

About pyISSM

pyISSM is a Python API for the open source Ice-sheet and Sea-level System Model (ISSM), maintained by ACCESS-NRI. It provides a suite of tools focused on creating, parameterising, executing, visualising and analysing ISSM models, allowing users to set up, run and analyse ice sheet simulations using Python.

pyISSM is developed around a central Model() class, and comprises five major sub-packages:

  • pyissm.model - the core Model() class, all model sub-classes, and the operations used to build and parameterise a model (bc, execute, io, mesh, param).
  • pyissm.tools - universal tools for interacting with ISSM Model() objects.
  • pyissm.data - tools for interacting with external datasets, including interpolation routines.
  • pyissm.plot - visualisation utilities, including plotting of model meshes, boundary conditions, fields and results.
  • pyissm.analysis - post-processing tools, including derived fields and metrics.

An additional pyissm.inversion sub-package provides tools for performing inversions, including sensitivity analyses, on the Model() object.

:loudspeaker: THIS IS A BETA RELEASE :loudspeaker:

This is a beta release of pyISSM while rolling out features currently found in the MATLAB interface and getting feedback from the community.

More information on release stages are available on the Hive Docs:

Release stages - ACCESS-Hive Docs

Feedback

We welcome feedback from all interested users. This is a chance to improve this proposed new release.

Please make suggestions or report problems via relevant channels within Cryosphere > pyISSM community space on this forum, or by submitting an issue on GitHub.

ACCESS-NRI is interested in all feedback, positive or negative, but in particular we would like to know:

  • Are the instructions clear and easy to follow? Is there anything unclear, missing or incorrect?
  • Are there ISSM workflows you rely on that pyISSM does not yet support?

How to use

Install from PyPI:

pip install pyissm

or with conda, from the accessnri channel:

conda install accessnri::pyissm

An environment.yml file is provided in the repository to create a conda environment with all the necessary dependencies. For NCI Gadi users, pyISSM is also supported through the pre-installed conda/analysis3 environment maintained within the xp65 project. If using conda/analysis3 we currently recommend using kernels older than 25.10.

To verify the installation:

import pyissm
print(pyissm.__version__)

To execute models, pyISSM requires an ISSM installation with the Python wrappers enabled. On Gadi, this is provided by the ACCESS-NRI ACCESS-ISSM deployment, which is built with +wrappers and +py-tools. More information about the latest releases of ACCESS-ISSM can be found here.

Features

:white_check_mark: A central Model() class as a high-level container for all components of an ISSM model, with sub-classes defining model components and parameterisations (mesh, geometry, and so on).
:white_check_mark: Mesh construction, boundary condition setting, parameterisation, and model marshalling and execution from Python.
:white_check_mark: Model read/write (pyissm.model.io) for moving models in and out of Python workflows.
:white_check_mark: Inversion and sensitivity analysis tools.
:white_check_mark: Plotting of meshes, boundary conditions, fields and results.
:white_check_mark: Data handling and interpolation routines for external datasets, complementing the Cryosphere Community Datapool and ccdtools.
:white_check_mark: Available from PyPI and conda, with documentation, a full API reference and hands-on tutorial notebooks.
:white_check_mark: Requires Python 3.9 or later. Apache-2.0 licensed. Built on xarray, numpy, scipy, netCDF4, pandas, matplotlib, attrs, PyYAML and geopandas.

Limitations

:stop_sign: pyISSM is in currently in active development. The API may change between releases.
:stop_sign: pyISSM does not include ISSM itself. A working ISSM installation with Python wrappers is required to execute models.
:stop_sign: Not all ISSM functionality available through the MATLAB interface is exposed in pyISSM in this release.

Future developments

:construction: Learning Modules - more in-depth material on the different components of pyISSM.
:construction: Continued expansion of the API, tutorials and documentation to reach ‘parity’ with MATLAB interface.
:construction: Closer integration with ccdtools and the Cryosphere Community Datapool for model initialisation.
:construction: Support for the ACCESS-AIS3 whole-Antarctic configuration.

Credits (Latest developments only)

:star: Development of pyISSM (@lawrenceabird @justinh2002 @mtetley)

:star: Documentation and tutorials (@lawrenceabird @justinh2002 @mtetley)

:star: Build, packaging and release infrastructure (@lawrenceabird @justinh2002 @mtetley)

:star: Feedback and testing from the Cryospheric Sciences Working Group

Support

Replies to this topic are disabled.

If you have specific questions about this release please add a topic on this forum and tag with help (more information about support for ACCESS-NRI’s released software).

Resources