{"id":342650,"name":"XRO","description":"An eXtended nonlinear Recharge Oscillator model for El Niño-Southern Oscillation (ENSO) and other modes of variability in the global ocean.","url":"https://github.com/senclimate/xro","last_synced_at":"2026-04-27T20:00:17.396Z","repository":{"id":242789277,"uuid":"760222505","full_name":"senclimate/XRO","owner":"senclimate","description":"XRO: Extended nonlinear Recharge Oscillator model","archived":false,"fork":false,"pushed_at":"2025-09-11T04:21:34.000Z","size":10153,"stargazers_count":32,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-19T16:02:56.707Z","etag":null,"topics":["climate-model","climate-modes-interactions","enso","seasonal-forecast","xro"],"latest_commit_sha":null,"homepage":"https://doi.org/10.1038/s41586-024-07534-6","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/senclimate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-20T02:27:48.000Z","updated_at":"2026-03-24T04:22:53.000Z","dependencies_parsed_at":"2026-01-27T01:00:34.241Z","dependency_job_id":null,"html_url":"https://github.com/senclimate/XRO","commit_stats":null,"previous_names":["senclimate/xro"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/senclimate/XRO","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/senclimate","download_url":"https://codeload.github.com/senclimate/XRO/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32273223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"senclimate","name":"Sen Zhao","uuid":"24798748","kind":"user","description":"Climate Scientist, Programmer","email":"","website":"senzhao.netlify.app","location":"Honolulu","twitter":null,"company":"University of Hawaii at Manoa","icon_url":"https://avatars.githubusercontent.com/u/24798748?u=c785999b9a356a0cdd1c4b1c1444899488c9bab2\u0026v=4","repositories_count":1,"last_synced_at":"2023-05-28T21:24:00.878Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/senclimate","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-05-28T21:24:00.880Z","updated_at":"2023-05-28T21:24:00.880Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/senclimate","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/senclimate/repositories"},"packages":[{"id":12091989,"name":"xro","ecosystem":"pypi","description":"The eXtended nonlinear Recharge Oscillator (XRO) model for ENSO and pantropical climate variability.","homepage":"https://github.com/senclimate/XRO","licenses":"CC-BY-4.0","normalized_licenses":["CC-BY-4.0"],"repository_url":"https://github.com/senclimate/XRO","keywords_array":[],"namespace":null,"versions_count":2,"first_release_published_at":"2025-09-10T21:04:19.000Z","latest_release_published_at":"2025-09-11T04:18:48.000Z","latest_release_number":"1.0.1","last_synced_at":"2026-04-23T18:00:55.673Z","created_at":"2025-09-10T21:17:20.019Z","updated_at":"2026-04-23T18:00:55.673Z","registry_url":"https://pypi.org/project/xro/","install_command":"pip install xro --index-url https://pypi.org/simple","documentation_url":"https://senzhao.netlify.app/software/xro/","metadata":{"funding":null,"documentation":"https://senzhao.netlify.app/software/xro/","classifiers":[],"normalized_name":"xro","project_status":null},"repo_metadata":{"id":242789277,"uuid":"760222505","full_name":"senclimate/XRO","owner":"senclimate","description":"XRO: Extended nonlinear Recharge Oscillator model","archived":false,"fork":false,"pushed_at":"2025-09-11T04:21:34.000Z","size":10153,"stargazers_count":32,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-04-03T13:37:24.754Z","etag":null,"topics":["climate-model","climate-modes-interactions","enso","seasonal-forecast","xro"],"latest_commit_sha":null,"homepage":"https://doi.org/10.1038/s41586-024-07534-6","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/senclimate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-02-20T02:27:48.000Z","updated_at":"2026-03-24T04:22:53.000Z","dependencies_parsed_at":"2026-01-27T01:00:34.241Z","dependency_job_id":null,"html_url":"https://github.com/senclimate/XRO","commit_stats":null,"previous_names":["senclimate/xro"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/senclimate/XRO","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/senclimate","download_url":"https://codeload.github.com/senclimate/XRO/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31430011,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-05T08:13:15.228Z","status":"ssl_error","status_checked_at":"2026-04-05T08:13:11.839Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"senclimate","name":"Sen Zhao","uuid":"24798748","kind":"user","description":"Climate Scientist, Programmer","email":"","website":"senzhao.netlify.app","location":"Honolulu","twitter":null,"company":"University of Hawaii at Manoa","icon_url":"https://avatars.githubusercontent.com/u/24798748?u=c785999b9a356a0cdd1c4b1c1444899488c9bab2\u0026v=4","repositories_count":1,"last_synced_at":"2023-05-28T21:24:00.878Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/senclimate","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-05-28T21:24:00.880Z","updated_at":"2023-05-28T21:24:00.880Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/senclimate","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/senclimate/repositories"},"tags":[]},"repo_metadata_updated_at":"2026-04-15T14:02:28.648Z","dependent_packages_count":0,"downloads":36,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":48.22397991142565,"dependent_packages_count":8.555913931228503,"stargazers_count":14.473165512192374,"forks_count":20.144811051803615,"docker_downloads_count":null,"average":22.849467601662536},"purl":"pkg:pypi/xro","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/xro","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/pypi/xro","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/xro/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":null,"issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO/issues","maintainers":[],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/xro/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/xro/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/xro/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/xro/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/xro/codemeta","maintainers":[{"uuid":"senclimate","login":"senclimate","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://pypi.org/user/senclimate/","role":"Owner","created_at":"2025-09-13T05:16:02.158Z","updated_at":"2025-09-13T05:16:02.158Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/senclimate/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":849606,"maintainers_count":363022,"namespaces_count":0,"keywords_count":271316,"github":"pypi","metadata":{"funded_packages_count":53172},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2026-04-09T05:08:03.587Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}}],"commits":{"id":11139334,"full_name":"senclimate/XRO","default_branch":"master","total_commits":11,"total_committers":2,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":5.5,"dds":0.18181818181818177,"past_year_total_commits":2,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":2.0,"past_year_dds":0.0,"last_synced_at":"2026-04-25T19:01:04.084Z","last_synced_commit":"3031b16e728c5aaf389627cb5a8d6199912919d4","created_at":"2025-09-13T04:12:41.879Z","updated_at":"2026-04-25T19:00:49.592Z","committers":[{"name":"Sen Zhao","email":"zhaos2016@gmail.com","login":"senclimate","count":9},{"name":"Sen Zhao","email":"zhaos@Sens-iMac.local","login":null,"count":2}],"past_year_committers":[{"name":"Sen Zhao","email":"zhaos@Sens-iMac.local","login":null,"count":2}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-27T00:00:06.983Z","repositories_count":6220332,"commits_count":899852732,"contributors_count":34879955,"owners_count":1146374,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"senclimate/XRO","html_url":"https://github.com/senclimate/XRO","last_synced_at":null,"status":null,"issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"created_at":"2025-12-30T00:47:23.138Z","updated_at":"2025-12-30T00:47:23.138Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/senclimate%2FXRO/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{},"pull_request_author_associations_count":{},"issue_authors":{},"pull_request_authors":{},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-21T00:00:07.919Z","repositories_count":14348488,"issues_count":34432624,"pull_requests_count":112758648,"authors_count":11241876,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":{"total":{"WatchEvent":10,"PushEvent":8,"GollumEvent":2,"CreateEvent":1},"last_year":{"WatchEvent":6,"PushEvent":2,"GollumEvent":2}},"keywords":["climate-model","climate-modes-interactions","enso","seasonal-forecast","xro"],"dependencies":[{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2026-01-27T01:00:34.096Z","updated_at":"2026-01-27T01:00:34.096Z","repository_link":"https://github.com/senclimate/XRO/blob/main/pyproject.toml","dependencies":[{"id":25804801318,"package_name":"numpy","ecosystem":"pypi","requirements":"\u003e=1.20","direct":true,"kind":"runtime","optional":false},{"id":25804801319,"package_name":"xarray","ecosystem":"pypi","requirements":"\u003e=2023.1.0","direct":true,"kind":"runtime","optional":false},{"id":25804801320,"package_name":"matplotlib","ecosystem":"pypi","requirements":"\u003e=3.5","direct":true,"kind":"runtime","optional":false}]}],"score":7.769800996003896,"created_at":"2026-01-25T00:12:44.555Z","updated_at":"2026-04-28T00:22:20.021Z","avatar_url":"https://github.com/senclimate.png","language":"Jupyter Notebook","category":"Climate Change","sub_category":"Earth and Climate Modeling","monthly_downloads":36,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"[![](XRO_logo.png)](https://github.com/senclimate/XRO)\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10681114.svg)](https://doi.org/10.5281/zenodo.10681114)\n======\n\n## Description\n\nThe **XRO** is an e**X**tended nonlinear **R**echarge **O**scillator 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. \n\nThis is updated version of XRO, with the model equations can be written as:\n\n$$\n\\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)\n$$\n\n\n$$\n\\frac{d\\xi}{dt} = -r_{\\xi} \\xi + w(t), \\quad (2)\n$$\n\n\nwhere \n\n\n$$\nX_{\\text{ENSO}} = [T_{\\text{ENSO}}, h ]\n$$\n\n\nand \n\n\n$$\nX_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}}]\n$$\n\n\nare 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]](#1) in Nature ([v0.1](https://github.com/senclimate/XRO/tree/v0.1)). \n\nThis repository hosts the [python package](https://github.com/senclimate/XRO) 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. \n\nIf you encounter problems in running `XRO` or have questions, please feel free to contact Sen Zhao (zhaos@hawaii.edu).\n\n---\n\n## Installation\nYou can install XRO in two ways:\n\n#### From PyPI\n\n```pip install XRO```\n\n#### From GitHub (latest development version)\n\n```pip install git+https://github.com/senclimate/XRO.git```\n\n## XRO functionalities\n\n[`XRO`](https://github.com/senclimate/XRO) model is implemented in `python` with dependencies on only [`numpy`](https://numpy.org/) and [`xarray`](https://docs.xarray.dev/en/stable/). Key functionalities include:\n\n- `XRO.fit_matrix` is a precedure to train nonlinear XRO parameters from the observational and climate model outputs\n- `XRO.simulate` is a precedure to perform stochastic simulations with the trained parameters\n- `XRO.reforecast`is a precedue to perform reforecasting or forecasting using the trained parameters and initial condictions\n\n\n## Quick Start \n\n`XRO_Cookbook.ipynb` is a Jupyter Notebook showing how to use `XRO` and reproduce the analysis of Zhao et al. 2024[[1]](#1). To successfully run the example, these open-source python modules may be necessary: [`numpy`](https://numpy.org/), [`xarray`](https://docs.xarray.dev/en/stable/), [`climpred`](https://climpred.readthedocs.io/en/stable/), [`matplotlib`](https://matplotlib.org/), and [`datetime`](https://docs.python.org/3/library/datetime.html). \n\n---\n\n## Applications\n\n- The repository [**Recharge Oscillator (RO) Practical**](https://github.com/senclimate/RO_practical) for the [ENSO Winter School 2025](https://sites.google.com/hawaii.edu/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.\n\n---\n## Acknowledgement\n\nKindly requested to cite our paper Zhao et al. (2024) [[1]](#1) and code [[2]](#2) if use the XRO model in your published works.\n\n## References\n\u003ca id=\"1\"\u003e[1]\u003c/a\u003e \nZhao, 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 \n\n\u003ca id=\"2\"\u003e[2]\u003c/a\u003e \nZhao, 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\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.5281/zenodo.10681114","https://doi.org/10.1038/s41586-024-07534-6"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/342650","html_url":"https://ost.ecosyste.ms/projects/342650"}