ACCESS-MOPPy Documentation
ACCESS-MOPPy (Model Output Post-Processor)
ACCESS-MOPPy is a CMORisation tool designed to post-process ACCESS model output. This version represents a significant rewrite of the original MOPPy, focusing on usability and flexibility. It introduces a user-friendly Python API that can be integrated into Jupyter notebooks and other workflows.
ACCESS-MOPPy allows for targeted CMORisation of individual variables and is specifically designed to support the ACCESS-ESM1.6 configuration prepared for CMIP7 FastTrack. Ocean variable support remains limited in this alpha release.
Key Features - Improved usability and extensibility - Python API for integration into notebooks and scripts - Enhanced variable mapping display with rich Jupyter notebook interface - Flexible CMORisation of specific variables - Tailored for ACCESS-ESM1.6 and CMIP7 FastTrack - Cross-platform compatibility (not limited to NCI Gadi) - Dask-enabled for scalable processing - Batch processing system for HPC environments - Real-time monitoring with web dashboard and a terminal dashboard (`moppy-tui`)
Current Limitations - Alpha version: intended for evaluation only, not recommended for data publication - Ocean variable support is limited
> ⚠️ Variable Mapping Under Review > > The mapping of ACCESS variables to CMIP6 and CMIP7 equivalents is under review. Some derived variables may not be available or may require further verification. Please submit an issue if you notice any major problems or missing variables.
Background
ACCESS-MOPPy is a complete rewrite of the original APP4 and MOPPeR frameworks. Unlike previous versions, it does not depend on CMOR; instead, it leverages modern Python libraries such as xarray and dask for efficient processing of NetCDF files. This approach streamlines the workflow, improves flexibility, and enhances integration with contemporary data science tools.
While retaining the core concepts of “custom” and “cmip” modes, ACCESS-MOPPy unifies these workflows within a single configuration file, focusing on usability and extensibility for current and future CMIP projects.
Installation
ACCESS-MOPPy requires Python >= 3.11 and the following packages:
numpy
pandas
xarray
netCDF4
cftime
dask
pyyaml
tqdm
requests
Install dependencies and the package with:
pip install numpy pandas xarray netCDF4 cftime dask pyyaml tqdm requests
pip install .
For development and testing:
pip install pytest pytest-cov ruff
Testing
To run tests:
pytest
Legacy model utilities
ACCESS-MOPPy officially targets ACCESS-ESM1.6 and later models. For users
who need to work with older output (ACCESS-ESM1.5, ACCESS-CM2), the
access_moppy.legacy_utilities sub-package provides helper scripts that
are not part of the main CMORisation pipeline.
moppy-calc-ab-coeffts — Hybrid-height b coefficient calculator
The UM (Unified Model) atmosphere uses a hybrid-height vertical coordinate
whose orography-following b coefficients must be computed from the raw η
(eta) values in the vertlevs namelist file via a quadratic formula:
b(k) = (1 − η(k) / η_etadot)²
ACCESS-ESM1.5 and ACCESS-CM2 CMIP6 output incorrectly stored the raw η
values directly as sigma_theta, omitting this transformation.
ACCESS-ESM1.6 output already contains the correctly transformed values, so
no correction is needed for officially-supported data.
The utility can be invoked from the command line:
# install the optional f90nml dependency first
pip install "access_moppy[atmos-tools]"
moppy-calc-ab-coeffts /path/to/vertlevs_G3
Or in Python:
from access_moppy.legacy_utilities.calc_hybrid_height_coeffs import calc_ab
a_theta, b_theta, a_rho, b_rho = calc_ab("/path/to/vertlevs_G3")
Typical vertlevs file locations:
ESM1.5 / ESM1.6:
/g/data/vk83/configurations/inputs/access-esm1p5/share/atmosphere/grids/resolution_independent/2020.05.19/vertlevs_G3CM2 / CM2.1:
~access/umdir/vn10.6/ctldata/vert/vertlevs_L85_50t_35s_85km
See also: Martin Dix’s original script, and the discussion in issue #164.
License
ACCESS-MOPPy is licensed under the Apache-2.0 License.
Contact
Author: Romain Beucher Email: romain.beucher@anu.edu.au