mtetley
(Mike Tetley, ACCESS-NRI Ice Sheet Modelling Team Lead)
1
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.
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.
THIS IS A BETA RELEASE
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:
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 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
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). Mesh construction, boundary condition setting, parameterisation, and model marshalling and execution from Python. Model read/write (pyissm.model.io) for moving models in and out of Python workflows. Inversion and sensitivity analysis tools. Plotting of meshes, boundary conditions, fields and results. Data handling and interpolation routines for external datasets, complementing the Cryosphere Community Datapool and ccdtools. Available from PyPI and conda, with documentation, a full API reference and hands-on tutorial notebooks. Requires Python 3.9 or later. Apache-2.0 licensed. Built on xarray, numpy, scipy, netCDF4, pandas, matplotlib, attrs, PyYAML and geopandas.
Limitations
pyISSM is in currently in active development. The API may change between releases. pyISSM does not include ISSM itself. A working ISSM installation with Python wrappers is required to execute models. Not all ISSM functionality available through the MATLAB interface is exposed in pyISSM in this release.
Future developments
Learning Modules - more in-depth material on the different components of pyISSM. Continued expansion of the API, tutorials and documentation to reach ‘parity’ with MATLAB interface. Closer integration with ccdtools and the Cryosphere Community Datapool for model initialisation. Support for the ACCESS-AIS3 whole-Antarctic configuration.
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).