Exemplo n.º 1
0
 def local_wind(self, x_i=None, y_i=None, h_i=None, wd=None,
                ws=None, time=False, wd_bin_size=None, ws_bins=None):
     lw = UniformSite.local_wind(self, x_i=x_i, y_i=y_i, h_i=h_i, wd=wd, ws=ws,
                                 wd_bin_size=wd_bin_size, ws_bins=ws_bins)
     lw['TI'] = xr.DataArray(lw.TI_ilk + np.arange(len(x_i))[:, np.newaxis, np.newaxis] * .1,
                             [('wt', [0, 1, 2]), ('wd', np.atleast_1d(wd)), ('ws', np.atleast_1d(ws))])
     return lw
Exemplo n.º 2
0
def test_uniform_site_probability():
    """check that the uniform site recovers probability"""
    p_wd = np.array([0.1, 0.2, 0.1, 0.2, 0.1, 0.2, 0.1])
    site = UniformSite(p_wd, ti=1)
    lw = site.local_wind(0,
                         0,
                         0,
                         wd=np.linspace(0, 360, p_wd.size, endpoint=False),
                         ws=12)
    npt.assert_array_almost_equal(lw.P, p_wd)
Exemplo n.º 3
0
def test_NOJ_6_turbines_in_row():
    n_wt = 6
    x = [0] * n_wt
    y = - np.arange(n_wt) * 40 * 2

    wake_model = NOJ(NibeA0)
    site = UniformSite([1], .1)
    WD_ilk, WS_ilk, _, _ = site.local_wind(x_i=x, y_i=y, wd=[0], ws=[11])
    TI_ilk = np.zeros_like(WS_ilk)
    site = UniformSite([1], 0.1)
    dw_iil, cw_iil, dh_iil, dw_order_indices_l = site.wt2wt_distances(
        x_i=x, y_i=y, h_i=[50] * n_wt, wd_il=WD_ilk.mean(2))
    WS_eff_ilk = wake_model.calc_wake(WS_ilk, TI_ilk, dw_iil, cw_iil, dh_iil, dw_order_indices_l, [0] * n_wt)[0]

    np.testing.assert_array_almost_equal(
        WS_eff_ilk[1:, 0, 0], 11 - np.sqrt(np.cumsum(((11 * 2 / 3 * 20**2)**2) / (20 + 8 * np.arange(1, 6))**4)))