Skip to main content

The eXtended nonlinear Recharge Oscillator (XRO) model for ENSO and pantropical climate variability.

Project description

DOI

Description

The XRO is an eXtended nonlinear Recharge Oscillator model for El Niño-Southern Oscillation (ENSO) and other modes of variability in the global oceans. It builds on the legacies of the Hasselmann stochastic climate model capturing upper ocean memory in SST variability, and the recharge oscillator model for the oscillatory core dynamics of ENSO. It constitutes a parsimonious representation of the climate system in a reduced variable and parameter space that still captures the essential dynamics of interconnected global climate variability.

This is updated version of XRO, with the model equations can be written as:

$$ \frac{d}{dt} \begin{pmatrix} X_{\text{ENSO}} \ X_M \end{pmatrix} = L \begin{pmatrix} X_{\text{ENSO}} \ X_M \end{pmatrix} + \begin{pmatrix} N_{\text{ENSO}} \ N_M \end{pmatrix} + \sigma_{\xi} G \xi, \quad (1) $$

$$ \frac{d\xi}{dt} = -r_{\xi} \xi + w(t), \quad (2) $$

where

$$ X_{\text{ENSO}} = [T_{\text{ENSO}}, h ] $$

and

$$ X_M = [T_{\text{NPMM}}, T_{\text{SPMM}}, T_{\text{IOB}}, T_{\text{IOD}}, T_{\text{SIOD}}, T_{\text{TNA}}, T_{\text{ATL3}}, T_{\text{SASD}}] $$

are state vectors of ENSO and other climate modes, respectively. This model allows for two-way interactions between ENSO and the other modes. $L$, $N$, $G(X)$ describe linear, nonlinear, multiplicative noise dynamics. For the detailed formulation of XRO model, please refer to our paper Zhao et al. (2024)[1] in Nature (v0.1).

This repository hosts the python package for XRO model. We have designed XRO to be user-friendly, aiming to be a valuable tool not only for research but also for operational forecasting and as an educational resource in the classroom. We hope that XRO proves to be both a practical and accessible tool that enhances your research and teaching experiences.

If you encounter problems in running XRO or have questions, please feel free to contact Sen Zhao (zhaos@hawaii.edu).


Installation

You can install XRO in two ways:

From PyPI

pip install XRO

From GitHub (latest development version)

pip install git+https://github.com/senclimate/XRO.git

XRO functionalities

XRO model is implemented in python with dependencies on only numpy and xarray. Key functionalities include:

  • XRO.fit_matrix is a precedure to train nonlinear XRO parameters from the observational and climate model outputs
  • XRO.simulate is a precedure to perform stochastic simulations with the trained parameters
  • XRO.reforecastis a precedue to perform reforecasting or forecasting using the trained parameters and initial condictions

Quick Start

XRO_Cookbook.ipynb is a Jupyter Notebook showing how to use XRO and reproduce the analysis of Zhao et al. 2024[1]. To successfully run the example, these open-source python modules may be necessary: numpy, xarray, climpred, matplotlib, and datetime.


Applications

  • The repository Recharge Oscillator (RO) Practical for the ENSO Winter School 2025. The practical covers theoretical and computational aspects of the RO framework, its applications in ENSO simulations, and forecasting. When other climate modes are not considered, the XRO simplifies to the RO, making it well-suited for use in this practical context.

Acknowledgement

Kindly requested to cite our paper Zhao et al. (2024) [1] and code [2] if use the XRO model in your published works.

References

[1] Zhao, S., Jin, F.-F., Stuecker, M.F., Thompson, P.R., Kug, J.-S., McPhaden, M.J., Cane, M.A., Wittenberg, A.T., Cai, W., (2024). Explainable El Niño predictability from climate mode interactions. Nature. https://doi.org/10.1038/s41586-024-07534-6

[2] Zhao, S. (2024). Extended nonlinear Recharge Oscillator (XRO) model for "Explainable El Niño predictability from climate mode interactions". Zenodo. https://doi.org/10.5281/zenodo.10681114

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

xro-1.0.1.tar.gz (30.6 kB view details)

Uploaded Source

Built Distribution

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

xro-1.0.1-py3-none-any.whl (30.0 kB view details)

Uploaded Python 3

File details

Details for the file xro-1.0.1.tar.gz.

File metadata

  • Download URL: xro-1.0.1.tar.gz
  • Upload date:
  • Size: 30.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for xro-1.0.1.tar.gz
Algorithm Hash digest
SHA256 033a15b8a367a09d402a13a3d91653ce654f9963a463ce4a18571a59033a21e1
MD5 080a1bcd209425698026c7799ae0ea30
BLAKE2b-256 57ebaa75d74ef43d6787b8e8ae3d7873c607ff86f3c96e278f40ffd130fe0fc8

See more details on using hashes here.

File details

Details for the file xro-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: xro-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 30.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for xro-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1043ed96c85879dc89f823980e9e1b8369a7f0a600ac9b28e2a35d4217d60329
MD5 1d730f14f0b83bb316de0dce9a37e302
BLAKE2b-256 b30aa79cde9dc4767be5edc8c4f2bf0586b41a7e531f770ad93c82a805ad0dd9

See more details on using hashes here.

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