worstsurge

WorstSurge python packages: runs the experiments for "Finding the potential height of tropical cyclone storm surges in a changing climate using Bayesian optimization"

https://github.com/sdat2/worstsurge

Science Score: 49.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
    Found 10 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.2%) to scientific vocabulary

Keywords

adcirc bayesopt cmip6 extreme-value-analysis extreme-value-theory storm-surge-modelling tropical-cyclone
Last synced: 6 months ago · JSON representation

Repository

WorstSurge python packages: runs the experiments for "Finding the potential height of tropical cyclone storm surges in a changing climate using Bayesian optimization"

Basic Info
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 4
Topics
adcirc bayesopt cmip6 extreme-value-analysis extreme-value-theory storm-surge-modelling tropical-cyclone
Created over 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Citation

README.md

WorstSurge: Finding the potential height of tropical cyclone storm surges in a changing climate using Bayesian optimization

License: MITCode StylePython packageDocumentation StatusCode DOIEarthArXiv Preprint

EarthArxiv preprint now available https://doi.org/10.31223/X57T5R!

We want to answer the question of what the potential height of a storm surge could be now and in a changing climate. To do this we first calculate the potential intensity and size from CMIP6 (tcpips & w22), and then use a Bayesian optimization loop (adbo) to drive an storm surge model ADCIRC with idealised tropical cyclones (adforce). We then show that knowing the upper bound can be useful in the context of an evt fit (worst).

All (or almost all) of the key experisments are carried out as slurm jobs, so go to slurm/ to see these. data/ contains some of the key data, and img/ most of the key figures. docs/ contains the source for the readthedocs documentation https://worstsurge.readthedocs.io/en/latest/MAIN_README.html.

tcpips

Tropical Cyclone Potential Intensity (PI) and precursors for Potential Size (PS) calculations. Includes pangeo script to download and process data from CMIP6 for calculations. Currently regrids using cdo or xESMf. Uses the tcpypi pypi package to calculate potential intensity.

w22

Used to calculate tropical cyclone potential size as in Wang et al. (2022). Uses Chavas et al. 2015 profile calculation in matlab (using octave instead). Now we have a new python implementation that should work better.

```bash

to calculate the example potential size

python -m w22.ps

to calculate the tests against W22

python -m w22.test ```

adforce

ADCIRC forcing and processing. Some generic mesh processing. Assumes gradient wind reduction factor V_reduc=0.8 for 10m wind. Runs using hydra for config management.

bash python -m adforce.wrap

Needs an executatable directory for ADCIRC that includes a padcirc and adcprep executable stored in adforce/config/files/.

A repo with our compilation settings for ADCIRC, and small edits, is available at https://github.com/sdat2/adcirc-v55.02.

adbo

Bayesian optimization using adforce to force ADCIRC with a trieste Bayesian optimization loop. Runs using argparse for config management, and then calls adbo which uses hydra.

bash python -m adbo.exp_1d --test True --exp_name test

worst

Statistical worst-case GEV fit using tensorflow. Varies whether to assume an upper bound ahead of time. Uses hydra for the config management.

Getting started

Developer install:

Use conda to install a python virtual environment:

bash conda env create -n tcpips -f env.yml conda activate tcpips

Alternatively use micromamba (faster):

bash micromamba create -n tcpips -f env.yml micromamba activate tcpips

Install repository in editable version:

bash pip install -e .

Citations

If you use this code, please cite the following paper:

bibtex @article{potential_height_paper_2025, title={Finding the potential height of tropical cyclone storm surges in a changing climate using Bayesian optimization}, author={Thomas, Simon D. A. and Jones, Dani C. and Mayo, Talea and Taylor, John R. and Moss, Henry B. and Munday, David R. and Haigh, Ivan D. and Gopinathan, Devaraj}, journal={EarthArXiv (Submitted to Environmental Data Science)}, year={2025}, doi={10.31223/X57T5R} }

And cite the code as:

bibtex @software{worstsurge_code, author = {Thomas, Simon D. A.}, doi = {10.5281/zenodo.15073504}, month = {Mar}, title = {{WorstSurge - Finding the potential height of tropical cyclone storm surges in a changing climate using Bayesian Optimization}}, url = {https://github.com/sdat2/worstsurge}, version = {v0.0.4}, year = {2025} }

We also currently use the matlab code from Chavas, Lin, and Emanuel (2015), which should be cited as:

bibtex @software{cle_2015_code, title = {Code for tropical cyclone wind profile model of Chavas et al (2015, JAS)}, month = {Jun}, url = {https://purr.purdue.edu/publications/4066/1}, year = {2022}, doi = {10.4231/CZ4P-D448}, author = {Daniel Robert Chavas} }

Owner

  • Name: Simon D.A. Thomas
  • Login: sdat2
  • Kind: user
  • Location: Cambridge, UK
  • Company: University of Cambridge @ai4er-cdt / British Antarctic Survey @antarctica

PhD candidate at Cambridge @ai4er-cdt. Interested in oceans, tropical cyclones, EVT & ML. https://orcid.org/0000-0001-7911-1659

GitHub Events

Total
  • Release event: 3
  • Watch event: 1
  • Delete event: 1
  • Push event: 250
  • Public event: 1
  • Pull request event: 1
  • Create event: 4
Last Year
  • Release event: 3
  • Watch event: 1
  • Delete event: 1
  • Push event: 250
  • Public event: 1
  • Pull request event: 1
  • Create event: 4

Dependencies

.github/workflows/python-package.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
docs/requirements.txt pypi
  • mathjax *
  • nbsphinx >0.8.7
  • nbsphinx_link *
  • pandoc *
  • recommonmark *
  • sphinx *
  • sphinx-markdown-tables *
  • sphinx_autodoc_typehints *
  • sphinx_rtd_theme *
setup.py pypi