Wave runup models¶
This module implements different published wave runup empirical models. Each class implements a different published model which can be used to estimate wave runup, typically based on Hs, Tp, and beta.
Implements the runup model from Stockdon et al (2006) 

Implements the runup model from Power et al (2018) 

Implements the runup model from Holman (1986) 

Implements the runup model from Nielsen (2009) 

Implements the runup model from Ruggiero et al (2001) 

Implements the runup model from Vousdoukas et al (2012) 

Implements the runup model from Senechal et al (2011) 

Implements the GP runup model from Beuzen et al (2019). 

Implements the Infragravity Swash model from Passarella et al (2018) 

class
models.
Stockdon2006
(Hs=None, Tp=None, beta=None, Lp=None, r=None)¶ Implements the runup model from Stockdon et al (2006)
Stockdon, H. F., Holman, R. A., Howd, P. A., & Sallenger, A. H. (2006). Empirical parameterization of setup, swash, and runup. Coastal Engineering, 53(7), 573–588. https://doi.org/10.1016/j.coastaleng.2005.12.005
Examples
Calculate 2% exceedence runup level, including setup component and swash component given Hs=4m, Tp=11s, beta=0.1.
>>> from py_wave_runup.models import Stockdon2006 >>> sto06 = Stockdon2006(Hs=4, Tp=11, beta=0.1) >>> sto06.R2 2.5420364539745717 >>> sto06.setup 0.9621334076403345 >>> sto06.swash 2.6402827466167222
 Parameters
Hs (
float
orlist
) – Significant wave height. In order to account for energy dissipation in the nearshore, transform the wave to the nearshore, then reverseshoal to deep water.beta (
float
orlist
) – Beach slope. Typically defined as the slope between the region of \(\pm2\sigma\) where \(\sigma\) is the standard deviation of the continuous water level record.Tp (
float
orlist
) – Peak wave period. Must be defined ifLp
is not defined.Lp (
float
orlist
) – Peak wave length Must be definied ifTp
is not defined.r (
float
orlist
) – Hydraulic roughness length. Can be approximated by \(r=2.5D_{50}\).

doi
= '10.1016/j.coastaleng.2005.12.005'¶

property
R2
¶ Returns: The 2% exceedence runup level. For dissipative beaches (i.e. \(\zeta < 0.3\)) Eqn (18) from the paper is used:
\[R_{2} = 0.043(H_{s}L_{p})^{0.5}\]For intermediate and reflective beaches (i.e. \(\zeta > 0.3\)), the function returns the result from Eqn (19):
\[R_{2} = 1.1 \left( 0.35 \beta (H_{s}L_{p})^{0.5} + \frac{H_{s}L_{p}( 0.563 \beta^{2} +0.004)^{0.5}}{2} \right)\]

property
setup
¶ Returns: The setup level using Eqn (10):
\[\bar{\eta} = 0.35 \beta (H_{s}L_{p})^{0.5}\]

property
sinc
¶ Returns: Incident component of swash using Eqn (11):
\[S_{inc} = 0.75 \beta (H_{s}L_{p})^{0.5}\]

property
sig
¶ Returns: Infragravity component of swash using Eqn (12):
\[S_{ig} = 0.06 (H_{s}L_{p})^{0.5}\]

property
swash
¶ Returns: Total amount of swash using Eqn (7):
\[S = \sqrt{S_{inc}^{2}+S_{ig}^{2}}\]

class
models.
Power2018
(Hs=None, Tp=None, beta=None, Lp=None, r=None)¶ Implements the runup model from Power et al (2018)
Power, H.E., Gharabaghi, B., Bonakdari, H., Robertson, B., Atkinson, A.L., Baldock, T.E., 2018. Prediction of wave runup on beaches using GeneExpression Programming and empirical relationships. Coastal Engineering. https://doi.org/10.1016/j.coastaleng.2018.10.006
Examples
Calculate 2% exceedence runup level given Hs=4m, Tp=11s, beta=0.1.
>>> from py_wave_runup.models import Power2018 >>> pow18 = Power2018(Hs=1, Tp=8, beta=0.07, r=0.00075) >>> pow18.R2 1.121845349302836
 Parameters
Hs (
float
orlist
) – Significant wave height. In order to account for energy dissipation in the nearshore, transform the wave to the nearshore, then reverseshoal to deep water.beta (
float
orlist
) – Beach slope. Typically defined as the slope between the region of \(\pm2\sigma\) where \(\sigma\) is the standard deviation of the continuous water level record.Tp (
float
orlist
) – Peak wave period. Must be defined ifLp
is not defined.Lp (
float
orlist
) – Peak wave length Must be definied ifTp
is not defined.r (
float
orlist
) – Hydraulic roughness length. Can be approximated by \(r=2.5D_{50}\).

doi
= '10.1016/j.coastaleng.2018.10.006'¶

property
R2
¶ Returns: The 2% exceedence runup level, based on following dimensionless parameters:
\[\begin{split}x_{1} &= \frac{H_{s}}{L_{p}} \\ x_{2} &= \beta \\ x_{3} &= \frac{r}{H_{s}}\end{split}\]The final equation is given by the form:
\[\begin{split}R_{2} &= H_{s} \times ( \\ &(x_{2} + (((x_{3} \times 3) / e^{5}) \times ((3 \times x_{3}) \times x_{3}))) \\ &+ ((((x_{1} + x_{3})  2)  (x_{3}  x_{2})) + ((x_{2}  x_{1})  x_{3})) \\ &+ (((x_{3}^{x_{1}})  (x_{3}^{\frac{1}{3}}))  ((e^{x_{2}})^{(x_{1} \times 3)})) \\ &+ \sqrt{(((x_{3} + x_{1})  x_{2})  (x_{2} + \log_{10}x_{3}))} \\ &+ ((((x_{2}^{2}) / (x_{1}^{\frac{1}{3}}))^{(x_{1}^{\frac{1}{3}})})  \sqrt{x_{3}}) \\ &+ ( (x_{2} + ((x_{3} / x_{1})^{\frac{1}{3}})) + (\log(2)  (1 / (1 + e^{(x_{2} + x_{3})}))) ) \\ &+ ((\sqrt{x_{3}}  (((3^{2}) + 3) \times (x_{2}^{2})))^{2}) \\ &+ ((((x_{3} \times 5)^{2})^{2}) + (((x_{3} + x_{3}) \times x_{1}) / (x_{2}^{2}))) \\ &+ \log{(\sqrt{((x_{2}^{2}) + (x_{3}^{\frac{1}{3}}))} + ((x_{2} + 3)^{\frac{1}{3}}))} \\ &+ ( (((x_{1} / x_{3}) \times (5^{2})) \times (x_{3}^{2}))  \log_{10}{(1 / (1 + \exp^{(x_{2} + x_{3})}))} ) \\ &+ (x_{1}^{x_{3}}) \\ &+ \exp^{((((x_{3} / x_{1})^{\exp^{4}}) + ((\exp^{x_{3}})^{3}))^{2})} \\ &+ \exp^{(\log{(x_{2}  x_{3})}  \log{\exp^{((1 + x_{1})^{2})}})} \\ &+ ((\sqrt{4} \times (((x_{3} / x_{2})  x_{2})  (0  x_{1})))^{2}) \\ &+ (2 \times ((((5 \times x_{3}) + x_{1}) \times (2  x_{3}))  2)) \\ &+ ((\sqrt{4} \times (((x_{3} / x_{2})  x_{2})  (0  x_{1})))^{2}) \\ &+ ((((5 + x_{1})  x_{2}) \times (x_{2}  x_{3})) \times ((x_{1}  x_{2})  (4^{5}))) \\ &+ (\exp^{((x_{2} + (5  x_{1}))^{2})} + ((x_{2} + 5) \times (x_{3}^{2}))) \\ &+ \sqrt{ 1 / ( 1 + \exp^{ ( (\exp^{x_{1}}  \exp^{((x_{3} + x_{3})^{2})}) + ((x_{1}^{x_{3}})  (x_{3} \times 4)) ) } ) } \\ &+ ( ( \exp^{ ( ( ( ( \exp^{ ( ( (\sqrt{x_{3}} \times 4) + (1 / (1 + \exp^{(x_{2} + 2)})) )^{2} ) } )^{2} ) + x_{1} )^{2} ) } )^{3} ) \\ )\end{split}\]

class
models.
Holman1986
(Hs=None, Tp=None, beta=None, Lp=None, r=None)¶ Implements the runup model from Holman (1986)
Holman, R.A., 1986. Extreme value statistics for wave runup on a natural beach. Coastal Engineering 9, 527–544. https://doi.org/10.1016/03783839( 86)900025
Examples
Calculate 2% exceedence runup level, including setup component given Hs=4m, Tp=11s, beta=0.1.
>>> from py_wave_runup.models import Holman1986 >>> hol86 = Holman1986(Hs=4, Tp=11, beta=0.1) >>> hol86.R2 3.089266633290902 >>> hol86.setup 0.8
 Parameters
Hs (
float
orlist
) – Significant wave height. In order to account for energy dissipation in the nearshore, transform the wave to the nearshore, then reverseshoal to deep water.beta (
float
orlist
) – Beach slope. Typically defined as the slope between the region of \(\pm2\sigma\) where \(\sigma\) is the standard deviation of the continuous water level record.Tp (
float
orlist
) – Peak wave period. Must be defined ifLp
is not defined.Lp (
float
orlist
) – Peak wave length Must be definied ifTp
is not defined.r (
float
orlist
) – Hydraulic roughness length. Can be approximated by \(r=2.5D_{50}\).

doi
= '10.1016/03783839(86)900025'¶

property
R2
¶ Returns: The 2% exceedence runup level, given by
\[R_{2} = 0.83 \tan{\beta} \sqrt{H_{s}+L_{p}} + 0.2 H_{s}\]

property
setup
¶ Returns: The setup level using:
\[\bar{\eta} = 0.2 H_{s}\]

class
models.
Nielsen2009
(Hs=None, Tp=None, beta=None, Lp=None, r=None)¶ Implements the runup model from Nielsen (2009)
Nielsen, Coastal and Estuarine Processes, Singapore, World Scientiﬁc, 2009.
Examples
Calculate 2% exceedence runup level given Hs=4m, Tp=11s, beta=0.1.
>>> from py_wave_runup.models import Nielsen2009 >>> niel09 = Nielsen2009(Hs=4, Tp=11, beta=0.1) >>> niel09.R2 3.276685253433243
 Parameters
Hs (
float
orlist
) – Significant wave height. In order to account for energy dissipation in the nearshore, transform the wave to the nearshore, then reverseshoal to deep water.beta (
float
orlist
) – Beach slope. Typically defined as the slope between the region of \(\pm2\sigma\) where \(\sigma\) is the standard deviation of the continuous water level record.Tp (
float
orlist
) – Peak wave period. Must be defined ifLp
is not defined.Lp (
float
orlist
) – Peak wave length Must be definied ifTp
is not defined.r (
float
orlist
) – Hydraulic roughness length. Can be approximated by \(r=2.5D_{50}\).

property
R2
¶ Returns: The 2% exceedence runup level, given by
\[R_{2} = 1.98L_{R} + Z_{100}\]This relationship was first suggested by Nielsen and Hanslow (1991). The definitions for \(L_{R}\) were then updated by Nielsen (2009), where \(L_{R} = 0.6 \tan{\beta} \sqrt{H_{rms}L_{s}}\) for \(\tan{\beta} \geq 0.1\) and \(L_{R} = 0.06\sqrt{H_{rms}L_{s}}\) for \(\tan{\beta}<0.1\). Note that \(Z_{100}\) is the highest vertical level passed by all swash events in a time period and is usually taken as the tide varying water level.

class
models.
Ruggiero2001
(Hs=None, Tp=None, beta=None, Lp=None, r=None)¶ Implements the runup model from Ruggiero et al (2001)
Ruggiero, P., Komar, P.D., McDougal, W.G., Marra, J.J., Beach, R.A., 2001. Wave Runup, Extreme Water Levels and the Erosion of Properties Backing Beaches. Journal of Coastal Research 17, 407–419.
Examples
Calculates 2% exceedence runup level given Hs=4m, Tp=11s, beta=0.1.
>>> from py_wave_runup.models import Ruggiero2001 >>> rug01 = Ruggiero2001(Hs=4, Tp=11, beta=0.1) >>> rug01.R2 2.3470968711209452
 Parameters
Hs (
float
orlist
) – Significant wave height. In order to account for energy dissipation in the nearshore, transform the wave to the nearshore, then reverseshoal to deep water.beta (
float
orlist
) – Beach slope. Typically defined as the slope between the region of \(\pm2\sigma\) where \(\sigma\) is the standard deviation of the continuous water level record.Tp (
float
orlist
) – Peak wave period. Must be defined ifLp
is not defined.Lp (
float
orlist
) – Peak wave length Must be definied ifTp
is not defined.r (
float
orlist
) – Hydraulic roughness length. Can be approximated by \(r=2.5D_{50}\).

property
R2
¶ Returns: The 2% exceedence runup level, given by:
\[R_{2} = 0.27 \sqrt{\beta H_{s} L_{p}}\]

class
models.
Vousdoukas2012
(Hs=None, Tp=None, beta=None, Lp=None, r=None)¶ Implements the runup model from Vousdoukas et al (2012)
Vousdoukas, M.I., Wziatek, D., Almeida, L.P., 2012. Coastal vulnerability assessment based on video wave runup observations at a mesotidal, steepsloped beach. Ocean Dynamics 62, 123–137. https://doi.org/10.1007/s102360110480x
Examples
Calculates 2% exceedence runup level given Hs=4m, Tp=11s, beta=0.1.
>>> from py_wave_runup.models import Vousdoukas2012 >>> vou12 = Vousdoukas2012(Hs=4, Tp=11, beta=0.1) >>> vou12.R2 2.1397213136650377
 Parameters
Hs (
float
orlist
) – Significant wave height. In order to account for energy dissipation in the nearshore, transform the wave to the nearshore, then reverseshoal to deep water.beta (
float
orlist
) – Beach slope. Typically defined as the slope between the region of \(\pm2\sigma\) where \(\sigma\) is the standard deviation of the continuous water level record.Tp (
float
orlist
) – Peak wave period. Must be defined ifLp
is not defined.Lp (
float
orlist
) – Peak wave length Must be definied ifTp
is not defined.r (
float
orlist
) – Hydraulic roughness length. Can be approximated by \(r=2.5D_{50}\).

property
R2
¶ Returns: The 2% exceedence runup level, given by:

class
models.
Atkinson2017
(Hs=None, Tp=None, beta=None, Lp=None, r=None)¶ Implements the runup model from Atkinson et al (2017)
Atkinson, A.L., Power, H.E., Moura, T., Hammond, T., Callaghan, D.P., Baldock, T.E., 2017. Assessment of runup predictions by empirical models on nontruncated beaches on the southeast Australian coast. Coastal Engineering 119, 15–31. https://doi.org/10.1016/j.coastaleng.2016.10.001
Examples
Calculate 2% exceedence runup level given Hs=4m, Tp=11s, beta=0.1
>>> from py_wave_runup.models import Atkinson2017 >>> atk17 = Atkinson2017(Hs=4, Tp=11, beta=0.1) >>> atk17.R2 3.177500364611603
 Parameters
Hs (
float
orlist
) – Significant wave height. In order to account for energy dissipation in the nearshore, transform the wave to the nearshore, then reverseshoal to deep water.beta (
float
orlist
) – Beach slope. Typically defined as the slope between the region of \(\pm2\sigma\) where \(\sigma\) is the standard deviation of the continuous water level record.Tp (
float
orlist
) – Peak wave period. Must be defined ifLp
is not defined.Lp (
float
orlist
) – Peak wave length Must be definied ifTp
is not defined.r (
float
orlist
) – Hydraulic roughness length. Can be approximated by \(r=2.5D_{50}\).

property
R2
¶ Returns: The 2% exceedence runup level, given by:

class
models.
Senechal2011
(Hs=None, Tp=None, beta=None, Lp=None, r=None)¶ Implements the runup model from Senechal et al (2011)
Senechal, N., Coco, G., Bryan, K.R., Holman, R.A., 2011. Wave runup during extreme storm conditions. Journal of Geophysical Research 116. https://doi.org/10.1029/2010JC006819
 Examples:
Calculate 2% exceedence runup level given Hs=4m, Tp=11s, beta=0.1
>>> from py_wave_runup.models import Senechal2011 >>> sen11 = Senechal2011(Hs=4, Tp=11, beta=0.1) >>> sen11.R2 1.9723707064298488
 Parameters
Hs (
float
orlist
) – Significant wave height. In order to account for energy dissipation in the nearshore, transform the wave to the nearshore, then reverseshoal to deep water.beta (
float
orlist
) – Beach slope. Typically defined as the slope between the region of \(\pm2\sigma\) where \(\sigma\) is the standard deviation of the continuous water level record.Tp (
float
orlist
) – Peak wave period. Must be defined ifLp
is not defined.Lp (
float
orlist
) – Peak wave length Must be definied ifTp
is not defined.r (
float
orlist
) – Hydraulic roughness length. Can be approximated by \(r=2.5D_{50}\).

property
R2
¶ Returns: The 2% exceedence runup level, given by:
\[R_{2} = 2.14 \times \tanh{0.4 H_{s}}\]

property
sig
¶ Returns: Infragravity component of swash:

class
models.
Beuzen2019
(Hs=None, Tp=None, beta=None, Lp=None, r=None)¶ Implements the GP runup model from Beuzen et al (2019).
Beuzen, T., Goldstein, E. B., & Splinter, K. D., 2019. Ensemble models from machine learning: an example of wave runup and coastal dune erosion. https://doi.org/10.5194/nhess1922952019
 Examples:
Calculate 2% exceedence runup level given Hs=4m, Tp=11s, beta=0.1
>>> from py_wave_runup.models import Beuzen2019 >>> beu19 = Beuzen2019(Hs=4, Tp=11, beta=0.1) >>> beu19.R2 2.181613070940485
 Parameters
Hs (
float
orlist
) – Significant wave height. In order to account for energy dissipation in the nearshore, transform the wave to the nearshore, then reverseshoal to deep water.beta (
float
orlist
) – Beach slope. Typically defined as the slope between the region of \(\pm2\sigma\) where \(\sigma\) is the standard deviation of the continuous water level record.Tp (
float
orlist
) – Peak wave period. Must be defined ifLp
is not defined.Lp (
float
orlist
) – Peak wave length Must be definied ifTp
is not defined.r (
float
orlist
) – Hydraulic roughness length. Can be approximated by \(r=2.5D_{50}\).

property
R2
¶ Returns: The 2% exceedence runup level from a pretrained Gaussian process model

class
models.
Passarella2018
(Hs=None, Tp=None, beta=None, Lp=None, r=None)¶ Implements the Infragravity Swash model from Passarella et al (2018)
Passarella, M., E. B. Goldstein, S. De Muro, G. Coco, 2018. The use of genetic programming to develop a predictor of swash excursion on sandy beaches. Nat. Hazards Earth Syst. Sci., 18, 599611, https://doi.org/10.5194/nhess185992018
Examples
Calculate IG swash given Hs=4m, Tp=11s, beta=0.1
>>> from py_wave_runup.models import Passarella2018 >>> pas18 = Passarella2018(Hs=4, Tp=11, beta=0.1) >>> pas18.sig 1.5687930560916425
 Parameters
Hs (
float
orlist
) – Significant wave height. In order to account for energy dissipation in the nearshore, transform the wave to the nearshore, then reverseshoal to deep water.beta (
float
orlist
) – Beach slope. Typically defined as the slope between the region of \(\pm2\sigma\) where \(\sigma\) is the standard deviation of the continuous water level record.Tp (
float
orlist
) – Peak wave period. Must be defined ifLp
is not defined.Lp (
float
orlist
) – Peak wave length Must be definied ifTp
is not defined.r (
float
orlist
) – Hydraulic roughness length. Can be approximated by \(r=2.5D_{50}\).

property
sig
¶ Returns: Infragravity component of swash using Eqn (14):
\[S_{ig} = \frac{\beta}{0.028+\beta} + \frac{1}{2412.255 \beta  5.521 \beta L_{p}} + \frac{H_{s} 0.711}{0.465 + 173.470 (\frac{H_{s}}{L_{p}})}\]

property
swash
¶ Returns: Total amount of swash using Eqn (12):
\[S = 146.737\beta^{2} + \frac{T_{p}H_{s}^{3}}{5.800+10.595H_{ s}^{3}}  4397.838\beta^4\]