From b08286aded6583a9280f815ada442b323b8509c2 Mon Sep 17 00:00:00 2001 From: "Mads M. Pedersen" <mmpe@dtu.dk> Date: Fri, 28 Jul 2017 08:50:44 +0200 Subject: [PATCH] fit ae2var in mann_parameters.py --- wetb/wind/turbulence/mann_parameters.py | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/wetb/wind/turbulence/mann_parameters.py b/wetb/wind/turbulence/mann_parameters.py index f4e5f29b..cf33153e 100644 --- a/wetb/wind/turbulence/mann_parameters.py +++ b/wetb/wind/turbulence/mann_parameters.py @@ -197,6 +197,35 @@ def residual(ae, L, G, k1, uu, vv=None, ww=None, uw=None, log10_bin_size=.2): return np.sqrt(((bk1 * sp_meas - bk1 * sp_fit) ** 2).mean()) + +def fit_ae2var(variance, L, G): + """Fit alpha-epsilon to match variance of time series + + Parameters + ---------- + variance : array-like + variance of u vind component + L : int or float + Length scale of Mann model + G : int or float + Gamma of Mann model + + Returns + ------- + ae : float + Alpha epsilon^(2/3) of Mann model that makes the energy of the model equal to the varians of u + """ + + k1 = np.logspace(1,10,1000)/100000000 + def get_var(uu): + return np.trapz(2 * uu[:], k1[:]) + + v1 = get_var(get_mann_model_spectra(0.1, L, G, k1)[0]) + v2 = get_var(get_mann_model_spectra(0.2, L, G, k1)[0]) + ae = (variance - v1) / (v2 - v1) * .1 + .1 + return ae + + def fit_ae(sf, u, L, G, min_bin_count=None, plt=False): """Fit alpha-epsilon to match variance of time series -- GitLab