Skip to main content

ACCESS Model Output Post-Processor, maps raw model output to CMIP-style defined variables and produce post-processed output using CMOR3

Project description

MOPPy Logo

ACCESS-MOPPy (Model Output Post-Processor)

Documentation Status PyPI version Conda Version

ACCESS-MOPPy is a CMORisation tool designed to post-process ACCESS model output and produce CMIP-compliant datasets.

Key Features

  • Python API for integration into notebooks and scripts
  • Batch processing system for HPC environments with PBS
  • Real-time monitoring with web-based dashboard
  • Flexible CMORisation of individual variables
  • Dask-enabled for scalable parallel processing
  • Cross-platform compatibility (not limited to NCI Gadi)
  • CMIP6 and CMIP7 FastTrack support

Installation

ACCESS-MOPPy requires Python >= 3.11. Install with:

pip install numpy pandas xarray netCDF4 cftime dask pyyaml tqdm requests streamlit
pip install .

Quick Start

Interactive Usage (Python API)

import glob
from access_moppy import ACCESS_ESM_CMORiser

# Select input files
files = glob.glob("/path/to/model/output/*mon.nc")

# Create CMORiser instance
cmoriser = ACCESS_ESM_CMORiser(
    input_paths=files,
    compound_name="Amon.pr",  # table.variable format
    experiment_id="historical",
    source_id="ACCESS-ESM1-5",
    variant_label="r1i1p1f1",
    grid_label="gn",
    activity_id="CMIP",
    output_path="/path/to/output"
)

# Run CMORisation
cmoriser.run()
cmoriser.write()

Batch Processing (HPC/PBS)

For large-scale processing on HPC systems:

  1. Create a configuration file (batch_config.yml):
variables:
  - Amon.pr
  - Omon.tos
  - Amon.ts

experiment_id: piControl
source_id: ACCESS-ESM1-5
variant_label: r1i1p1f1
grid_label: gn

input_folder: "/g/data/project/model/output"
output_folder: "/scratch/project/cmor_output"

file_patterns:
  Amon.pr: "output[0-4][0-9][0-9]/atmosphere/netCDF/*mon.nc"
  Omon.tos: "output[0-4][0-9][0-9]/ocean/*temp*.nc"
  Amon.ts: "output[0-4][0-9][0-9]/atmosphere/netCDF/*mon.nc"

# PBS configuration
queue: normal
cpus_per_node: 16
mem: 32GB
walltime: "02:00:00"
scheduler_options: "#PBS -P your_project"
storage: "gdata/project+scratch/project"

worker_init: |
  module load conda
  conda activate your_environment
  1. Submit batch job:
moppy-cmorise batch_config.yml
  1. Monitor progress at http://localhost:8501

Batch Processing Features

The batch processing system provides:

  • Parallel execution: Each variable processed as a separate PBS job
  • Real-time monitoring: Web dashboard showing job status and progress
  • Automatic tracking: SQLite database maintains job history and status
  • Error handling: Failed jobs can be easily identified and resubmitted
  • Resource optimization: Configurable CPU, memory, and storage requirements
  • Environment management: Automatic setup of conda/module environments

Monitoring Tools

  • Streamlit Dashboard: Real-time web interface at http://localhost:8501
  • Command line: Use standard PBS commands (qstat, qdel)
  • Database: SQLite tracking at {output_folder}/cmor_tasks.db
  • Log files: Individual stdout/stderr for each job

File Organization

work_directory/
├── batch_config.yml          # Your configuration
├── cmor_job_scripts/          # Generated PBS scripts and logs
│   ├── cmor_Amon_pr.sh       # PBS script
│   ├── cmor_Amon_pr.py       # Python processing script
│   ├── cmor_Amon_pr.out      # Job output
│   └── cmor_Amon_pr.err      # Job errors
└── output_folder/
    ├── cmor_tasks.db         # Progress tracking
    └── [CMORised files]      # Final output

Documentation

  • Getting Started: docs/source/getting_started.rst
  • Example Configuration: src/access_moppy/examples/batch_config.yml
  • API Reference: [Coming soon]

Current Limitations

  • Alpha version: Intended for evaluation only
  • Ocean variables: Limited support in current release
  • Variable mapping: Under review for CMIP6/CMIP7 compliance

Support

  • Issues: Submit via GitHub Issues
  • Questions: Contact ACCESS-NRI support
  • Contributions: Welcome via Pull Requests

License

ACCESS-MOPPy is licensed under the Apache-2.0 License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

access_moppy-1.0.2a0.tar.gz (327.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

access_moppy-1.0.2a0-py3-none-any.whl (362.4 kB view details)

Uploaded Python 3

File details

Details for the file access_moppy-1.0.2a0.tar.gz.

File metadata

  • Download URL: access_moppy-1.0.2a0.tar.gz
  • Upload date:
  • Size: 327.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for access_moppy-1.0.2a0.tar.gz
Algorithm Hash digest
SHA256 7bd2482b99f2b7bc4b60fae9faa36c4d31cc228bd8cb9a60efb8d45e56be5f39
MD5 8f8a4a217144ead3949c990e22c47ba5
BLAKE2b-256 c41ef2ea6cd508f52b49251e0d144099f53d9e383115adfa699964a9aa3e8bc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for access_moppy-1.0.2a0.tar.gz:

Publisher: cd.yml on ACCESS-NRI/ACCESS-MOPPy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file access_moppy-1.0.2a0-py3-none-any.whl.

File metadata

  • Download URL: access_moppy-1.0.2a0-py3-none-any.whl
  • Upload date:
  • Size: 362.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for access_moppy-1.0.2a0-py3-none-any.whl
Algorithm Hash digest
SHA256 2678e03a23558287d286337d9d29e9bbd603b4f2965f5b38bdd0af5de509c391
MD5 f0b99ff6384a2187bb7c80121d6750d6
BLAKE2b-256 6531f61e91802f826ea25f2ee000696b24c55e38a1803a2f39e9ce4edd3026ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for access_moppy-1.0.2a0-py3-none-any.whl:

Publisher: cd.yml on ACCESS-NRI/ACCESS-MOPPy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page