4th April 2025 - How to use ESMValTool for observation/intermodal comparisons

Session 4: How to use ESMValTool for observation/intermodal comparisons

:disguised_face: Presenters: Felicity Chun (@Flick.Chun)
:alarm_clock: When: 11am 4th Apr. 2025 (Friday)
:house: Where: Zoom

:teacher: Description: This session will show the use of ESMValTool to compare data from observations and models. There will be a brief overview of the ESMValCore and ESMValTool packages, finding data for ESMValTool and then we will run through some example notebooks. I will also show a ‘traditional’ run of an ESMValTool recipe and outputs. In this post, we plan to add:

  • Session materials
  • Meeting notes

:laptop: Prerequisites

  1. To use ESMValTool on Gadi you need to be a member of xp65 .
  2. Also any projects for data, these datasets would already be CMORised - join ct11 , fs38 , oi10
  3. Start up a Jupyter session on ARE with:
    • module directories: /g/data/xp65/public/modules
    • modules: esmvaltool-workflow

Note: Notebooks shown will be shared (in this thread) if you are unable to run at the same time as the session. Short presentation deck with links will also be shared soon.

Presentation (session overview):
cosima-ESMValTool-oberservation-intermodel.pdf (489.0 KB)

Jupyter Notebook examples can be found here:

In this repo there are some other ESMValTool examples from previous sessions. Feel free to clone for your own copy.

2 Likes

Session Notes

Presenter: @Flick.Chun

  • Topic - How to use ESMValTool for observational/intermodal comparisons.

  • Introduction

    • ACCESS-NRI contributes to source code.
    • Consists of two parts - ESMValCore and ESMValTool
    • ESMValCore - finds data and preprocessors
    • ESMValTool - includes recipes between data, preprocessors and diagnostics.
    • ESMValToolWorkflow - to pull in CMIP data collections.
    • Schematic of ESMValCore in the slides.
  • Get Started

    • For using the core in Jupyter notebook, start the session in an ARE.
    • On VSCode or terminal - To run an existing recipe - run esmvaltool run --config_file <CONFIG_FILE> recipe.yml
    • Can run on ARE as well.
    • Ran the recipe in the session, it would pull in the datasets, and produce outputs.
  • Observations

    • Organises observational data into tiers.
    • Tier 3 may have some restrictions that we need to look in acknowledgements.
    • Commands used to run are in the slides.
    • In the observations.ipynb notebook, there is importing of modules, followed by model search.
    • In model search, it searches in the wildcard format on ensembles. You can pull ensemble statistics, and do a separate set of analysis on them.
  • Configurations

    • If haven’t used a configuration before, get your own.
    • If you format your own datasets, you can also add the path to the specific object.
    • kj13 - staging area.
    • For controlling the chunking of data - ESMVal tool is built on iris package which works with dask. If someone would like to control the chunking of data, there is a configuration set that we can create for dask. Currently, ESMValTool is doing a search only.
    • In the search, ESMValCore has standard projects, but we can define other ones as well.
    • We can define our own facets as well.
    • You have to have some idea of the data before performing search.
    • ESMValCore has a load function.
    • ESMValCore has preprocessor as well which you can import at the top of the module.
    • Where the curation of observational datasets are managed and curated? At ACCESS-NRI, couple of team members are looking at it.
  • ENSO-lifecycle (within provided ARE session)

    • Got two modelled datasets, out of which one is observational one.
    • Step 1: add ancillary files to the dataset.
    • Step 2: Map SST bias.
    • Step 3: Define pre-process for ENSO lifecycle.
    • Step 4: Extend on pre-process dataset.
    • Step 5: Configure the matplotlib library.
  • Add a table for the datasets in the ESMValTool-workflow GitHub repository.

  • This tool only takes cmorised data as the input. There is another part, people have been writing live cmorisers for model data, and we have started working on some access variables.

  • Examples - MultiModelExample.ipynb, example_easyipcc.ipynb, example_seaicearea.ipynb.

  • From the recipe run, you get an index.html page signalling the run is complete.

  • ESMValTool is an open source tool on GitHub.

  • Team members at ACCESS-NRI have joined the development team of ESMValTool.

Important Links

  1. Repo location with notebook for today - CMIP7-Hackathon/exercises/trainingCOSIMA_4Apr at main · ACCESS-NRI/CMIP7-Hackathon · GitHub
  2. Carpenteries tutorial: CMIP7 Evaluation Hackathon
  3. ACCESS-Hive Docs - ESMValTool - ACCESS-Hive Docs
  4. ACCESS-Hive Forum - https://forum.access-hive.org.au
  5. ESMValTool Docs - docs.esmvaltool.org
  6. Session Feedback Poll - https://app.sli.do/event/23bhrT9H5pDQdXrqYC7zZd/live/polls