https://github.com/access-nri/access-mopper

ACCESS-MOPPeR

https://github.com/access-nri/access-mopper

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.0%) to scientific vocabulary

Keywords

med-team model-evaluation
Last synced: 5 months ago · JSON representation

Repository

ACCESS-MOPPeR

Basic Info
  • Host: GitHub
  • Owner: ACCESS-NRI
  • License: apache-2.0
  • Language: Python
  • Default Branch: v2
  • Homepage:
  • Size: 187 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 64
  • Releases: 28
Topics
med-team model-evaluation
Created 11 months ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Zenodo

README.md

ACCESS Model Output Post-Processor (ACCESS-MOPPeR) v2

Documentation Status PyPI version Conda Version

ACCESS-MOPPeR is a CMORisation tool designed to post-process ACCESS model output and produce CMIP-compliant datasets. This version represents a significant rewrite focusing on usability, flexibility, and integration with modern Python workflows.

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-MOPPeR requires Python >= 3.11. Install with:

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

Quick Start

Interactive Usage (Python API)

```python import glob from accessmopper import ACCESSESM_CMORiser

Select input files

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

Create CMORiser instance

cmoriser = ACCESSESMCMORiser( inputpaths=files, compoundname="Amon.pr", # table.variable format experimentid="historical", sourceid="ACCESS-ESM1-5", variantlabel="r1i1p1f1", gridlabel="gn", activityid="CMIP", outputpath="/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):

```yaml variables: - Amon.pr - Omon.tos - Amon.ts

experimentid: piControl sourceid: ACCESS-ESM1-5 variantlabel: r1i1p1f1 gridlabel: gn

inputfolder: "/g/data/project/model/output" outputfolder: "/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 cpuspernode: 16 mem: 32GB walltime: "02:00:00" scheduleroptions: "#PBS -P yourproject" storage: "gdata/project+scratch/project"

workerinit: | module load conda conda activate yourenvironment ```

  1. Submit batch job:

bash mopper-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_mopper/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-MOPPeR is licensed under the Apache-2.0 License.


Background: ACCESS-MOPPeR v2 is a complete rewrite using modern Python libraries (xarray, dask) instead of CMOR, providing improved flexibility and integration with contemporary data science workflows.

Owner

  • Name: ACCESS-NRI
  • Login: ACCESS-NRI
  • Kind: organization
  • Email: access.nri@anu.edu.au

Australian Earth System Simulator - National Research Infrastructure

GitHub Events

Total
  • Create event: 47
  • Issues event: 44
  • Release event: 23
  • Delete event: 15
  • Member event: 3
  • Issue comment event: 19
  • Push event: 141
  • Public event: 1
  • Pull request review comment event: 10
  • Pull request review event: 8
  • Pull request event: 36
Last Year
  • Create event: 47
  • Issues event: 44
  • Release event: 23
  • Delete event: 15
  • Member event: 3
  • Issue comment event: 19
  • Push event: 141
  • Public event: 1
  • Pull request review comment event: 10
  • Pull request review event: 8
  • Pull request event: 36

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 44
  • Total pull requests: 25
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 7 days
  • Total issue authors: 5
  • Total pull request authors: 5
  • Average comments per issue: 0.09
  • Average comments per pull request: 0.32
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 9
Past Year
  • Issues: 44
  • Pull requests: 25
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 7 days
  • Issue authors: 5
  • Pull request authors: 5
  • Average comments per issue: 0.09
  • Average comments per pull request: 0.32
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 9
Top Authors
Issue Authors
  • rbeucher (40)
  • flicj191 (1)
  • bschroeter (1)
  • rhaegar325 (1)
  • briochemc (1)
Pull Request Authors
  • rbeucher (9)
  • dependabot[bot] (9)
  • rhaegar325 (5)
  • flicj191 (1)
  • dougiesquire (1)
Top Labels
Issue Labels
v1-legacy (40) maintenance-only (40) migrated (40) enhancement (21) bug (10) help wanted (1) documentation (1) question (1)
Pull Request Labels
dependencies (9) github_actions (9)

Dependencies

.github/workflows/cd.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • conda-incubator/setup-miniconda v2 composite
  • pypa/gh-action-pypi-publish release/v1 composite
  • uibcdf/action-build-and-upload-conda-packages v1.2.0 composite
pyproject.toml pypi
  • cftime *
  • cmor *
  • dask *
  • numpy *
  • pandas *
  • pyyaml *
  • xarray *
setup.py pypi
.github/workflows/ci.yml actions
  • actions/checkout v4.2.2 composite
  • actions/setup-python v5 composite
  • codecov/codecov-action v5 composite
  • conda-incubator/setup-miniconda v3 composite
  • pre-commit/action v3.0.1 composite
.conda/environment.yml pypi