Skip to main content
Empirical wave runup models implemented in Python for coastal engineers and scientists.
https://zenodo.org/badge/180274721.svg https://img.shields.io/pypi/v/py-wave-runup.svg Documentation Status https://codecov.io/gh/chrisleaman/py-wave-runup/branch/master/graph/badge.svg https://img.shields.io/badge/code%20style-black-000000.svg

Contents

Installation

Installation of py-wave-runup can be done with uv or pip:

# Using uv (recommended)
uv add py-wave-runup

# Using pip
pip install py-wave-runup

Usage

The following wave runup models are available for use:

  • models.Stockdon2006: The most commonly cited and widely used runup model.

  • models.Power2018: Based on the Gene-Expression Programming technique.

  • models.Holman1986: Incorporated wave setup using Duck, NC measurements.

  • models.Nielsen2009: Based on runup measurements from NSW, Australia.

  • models.Ruggiero2001: Based on runup measurements from dissipative Orgeon beaches.

  • models.Vousdoukas2012: Based on runup from European Atlantic coast

  • models.Senechal2011: Based on extreme storm condition at Truc Vert, France

  • models.Beuzen2019: Gaussian Process (GP) runup model

  • models.Passarella2018: Genetic Programming (infragravity and total) swash model

To get calculate runup, setup and swash, define your offshore conditions in your selected runup model then you can access each parameter:

from py_wave_runup import models

model_sto06 = models.Stockdon2006(Hs=4, Tp=12, beta=0.1)

model_sto06.R2     # 2.54
model_sto06.setup  # 0.96
model_sto06.sinc   # 2.06
model_sto06.sig    # 1.65

Documentation

Documentation is located at https://py-wave-runup.readthedocs.io.

Background

Wave runup refers to the final part of a wave’s journey as it travels from offshore onto the beach. It is observable by anyone who goes to the beach and watches the edge of the water “runup” and rundown the beach. It is comprised of two components:

  • setup: the height of the time averaged superelevation of the mean water level above the Still Water Level (SWL)

  • swash: the height of the time varying fluctuation of the instantaneous water level about the setup elevation

Setup, swash and other components of Total Water Level (TWL) rise are shown in this handy figure below.

https://raw.githubusercontent.com/chrisleaman/py-wave-runup/master/docs/_static/VitousekDoubling2017Fig1.jpg
Figure from Vitousek et al. (2017) [1]

Wave runup can contribute a significant portion of the increase in TWL in coastal storms causing erosion and inundation. For example, Stockdon et al. (2006) [2] collated data from numerous experiments, some of which showed wave runup 2% excedence heights in excess of 3 m during some storms.

Given the impact such a large increase in TWL can have on coastlines, there has been much research conducted to try improve our understanding of wave runup processes. Although there are many processes which can influence wave runup (such as nonlinear wave transformation, wave reflection, three-dimensional effects, porosity, roughness, permeability and groundwater) [3], many attempts have been made to derive empirical relatinoships based on easily measurable parameters. Typically, empirical wave runup models include:

  • Hs: significant wave height

  • Tp: peak wave length

  • beta: beach slope

This python package attempts to consolidate the work done by others in this field and collate the numerous empirical relationships for wave runup which have been published.

Contributing

As there are many different empirical wave models out there, contributions are most welcome. If you don’t feel confident about changing the code yourself, feel free to open a Github issue and let us know what could be added. Otherwise, follow the steps below to create a Pull Request:

  1. Fork it (https://github.com/chrisleaman/py-wave-runup/fork)

  2. Create the development environment:

    • Using uv (recommended): uv sync --dev

    • For pip: pip install -e ".[dev]"

  3. Create your feature branch (git checkout -b feature/fooBar)

  4. Install pre-commit hooks for automatic formatting (uv run pre-commit install)

  5. Add your code!

  6. Add and run tests (uv run pytest)

  7. Update and check documentation compiles (uv run sphinx-build -M html ".\docs" ".\docs\_build")

  8. Commit your changes (git commit -am 'Add some fooBar')

  9. Push to the branch (git push origin feature/fooBar)

  10. Create a new Pull Request

Publishing

To build and publish the package to PyPI:

# Build the package
uv build

# Check the package (optional)
uv run --active twine check dist/*

# Publish to Test PyPI first (recommended)
uv publish --publish-url https://test.pypi.org/legacy/

# Publish to PyPI
uv publish

Citation

If this package has been useful to you, please cite the following DOI: https://doi.org/10.5281/zenodo.2667464

License

Distributed under the GNU General Public License v3.

References

Metadata

Release files for py-wave-runup 0.1.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for py-wave-runup 0.1.12
File Size Uploaded
py_wave_runup-0.1.12.tar.gz 1.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for py-wave-runup 0.1.12
File Interpreter ABI Platform
py_wave_runup-0.1.12-py3-none-any.whl Python 3 none any Details

Total release size: 1.9 MB

Release files / py_wave_runup-0.1.12.tar.gz

Download URL py_wave_runup-0.1.12.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
49935b83ce5cceb68b8984ecae736c14db3e27cec626798028c7f099d9456faf
BLAKE2b-256 checksum
How to use checksums
173469a9cd2aacff56fd103c268aaff96e699363572f4b2193f417d2d0b5a06f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.20

Release files / py_wave_runup-0.1.12-py3-none-any.whl

Download URL py_wave_runup-0.1.12-py3-none-any.whl
Size 741.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
25f0197c38d6ac62f9f037089066978019cf1e93a6e6280e949f450746a44d21
BLAKE2b-256 checksum
How to use checksums
ed61e11b8b54278f7f8e104bc1d658286f3ee0eb87e7d4f9f4498ff342a051cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.20

Release history Release notifications | RSS feed

This release

0.1.12 This release

2 release files

0.1.10

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page