From 0f4e56627f5eae03667302cf0220a568a10e69bb Mon Sep 17 00:00:00 2001 From: Chris Leaman Date: Wed, 7 Jul 2021 16:06:53 +1000 Subject: [PATCH] Fix formatting --- py_wave_runup/datasets.py | 44 +++++++++++++++++++-------------------- py_wave_runup/models.py | 36 +++++++++++++++++++------------- 2 files changed, 43 insertions(+), 37 deletions(-) diff --git a/py_wave_runup/datasets.py b/py_wave_runup/datasets.py index 401ef76..cb08372 100644 --- a/py_wave_runup/datasets.py +++ b/py_wave_runup/datasets.py @@ -19,28 +19,28 @@ def load_power18(): """ - Loads wave runup data included with Power et al (2018) - - This function loads the supplementary data from: - - Power, H.E., Gharabaghi, B., Bonakdari, H., Robertson, B., Atkinson, A.L., - Baldock, T.E., 2018. Prediction of wave runup on beaches using - Gene-Expression Programming and empirical relationships. Coastal Engineering. - https://doi.org/10.1016/j.coastaleng.2018.10.006 - - Examples: - >>> from py_wave_runup import datasets - >>> df = datasets.load_power18() - >>> df.describe() - hs tp beta roughness r2 - count 1390.000000 1390.000000 1390.000000 1390.000000 1390.000000 - mean 1.893131 9.227035 0.120612 0.024779 2.318814 - std 1.309243 3.589004 0.062236 0.043617 1.776918 - min 0.018576 0.805805 0.009000 0.000003 0.027336 - 25% 0.895942 7.517556 0.088228 0.001000 1.103500 - 50% 1.848050 9.963089 0.108422 0.003750 1.923500 - 75% 2.391756 10.995500 0.129220 0.007500 3.406660 - max 7.174100 23.680333 0.286551 0.125000 12.669592 + Loads wave runup data included with Power et al (2018) + + This function loads the supplementary data from: + + Power, H.E., Gharabaghi, B., Bonakdari, H., Robertson, B., Atkinson, A.L., + Baldock, T.E., 2018. Prediction of wave runup on beaches using + Gene-Expression Programming and empirical relationships. Coastal Engineering. + https://doi.org/10.1016/j.coastaleng.2018.10.006 + + Examples: + >>> from py_wave_runup import datasets + >>> df = datasets.load_power18() + >>> df.describe() + hs tp beta roughness r2 + count 1390.000000 1390.000000 1390.000000 1390.000000 1390.000000 + mean 1.893131 9.227035 0.120612 0.024779 2.318814 + std 1.309243 3.589004 0.062236 0.043617 1.776918 + min 0.018576 0.805805 0.009000 0.000003 0.027336 + 25% 0.895942 7.517556 0.088228 0.001000 1.103500 + 50% 1.848050 9.963089 0.108422 0.003750 1.923500 + 75% 2.391756 10.995500 0.129220 0.007500 3.406660 + max 7.174100 23.680333 0.286551 0.125000 12.669592 """ diff --git a/py_wave_runup/models.py b/py_wave_runup/models.py index 4c2a556..16fdbe0 100644 --- a/py_wave_runup/models.py +++ b/py_wave_runup/models.py @@ -32,7 +32,7 @@ def __init__(self, Hs=None, Tp=None, beta=None, Lp=None, h=None, r=None): Must be defined if ``Lp`` is not defined. Lp (:obj:`float` or :obj:`list`): Peak wave length Must be definied if ``Tp`` is not defined. - h (:obj:`float` or :obj:`list`): Depth of wave measurement(s). If not + h (:obj:`float` or :obj:`list`): Depth of wave measurement(s). If not given deep-water conditions are assumed. r (:obj:`float` or :obj:`list`): Hydraulic roughness length. Can be approximated by :math:`r=2.5D_{50}`. @@ -61,14 +61,17 @@ def __init__(self, Hs=None, Tp=None, beta=None, Lp=None, h=None, r=None): if self.h: k = [] for T in self.Tp: - k.append(_newtRaph(T,self.h)) - self.Lp = (2*np.pi)/k + k.append(_newtRaph(T, self.h)) + self.Lp = (2 * np.pi) / k else: self.Lp = 9.81 * (self.Tp ** 2) / 2 / np.pi else: self.Lp = np.atleast_1d(Lp) if self.h: - self.Tp = np.sqrt( (2*np.pi*self.Lp)/(9.81*np.tanh((2*np.pi*self.h)/self.Lp)) ) + self.Tp = np.sqrt( + (2 * np.pi * self.Lp) + / (9.81 * np.tanh((2 * np.pi * self.h) / self.Lp)) + ) else: self.Tp = np.sqrt(2 * np.pi * self.Lp / 9.81) @@ -87,28 +90,31 @@ def _return_one_or_array(self, val): return val.item() else: return val - - def _newtRaph(self,T,h): + + def _newtRaph(self, T, h): # Function to determine k from dispersion relation given period (T) and depth (h) using # the Newton-Raphson method. if not np.isnan(T): - L_not = (9.81*(T**2))/(2*np.pi) - k1 = (2*np.pi)/L_not + L_not = (9.81 * (T ** 2)) / (2 * np.pi) + k1 = (2 * np.pi) / L_not def fk(k): - return (((2*np.pi)/T)**2)-(9.81*k*np.tanh(k*h)) + return (((2 * np.pi) / T) ** 2) - (9.81 * k * np.tanh(k * h)) + def f_prime_k(k): - return (-9.81*np.tanh(k*h))-(9.81*k*(1-(np.tanh(k*h)**2))) + return (-9.81 * np.tanh(k * h)) - ( + 9.81 * k * (1 - (np.tanh(k * h) ** 2)) + ) k2 = 100 i = 0 - while abs((k2-k1))/k1 > 0.01: - i+=1 - if i!=1: - k1=k2 - k2 = k1-(fk(k1)/f_prime_k(k1)) + while abs((k2 - k1)) / k1 > 0.01: + i += 1 + if i != 1: + k1 = k2 + k2 = k1 - (fk(k1) / f_prime_k(k1)) else: k2 = np.nan