diff --git a/py_wake/site/_site.py b/py_wake/site/_site.py index 2e06b137d1815abac3ec2e7d9ec40234300a07f7..e8b094f7d77fec43e515ae5bfb10835fe4071777 100644 --- a/py_wake/site/_site.py +++ b/py_wake/site/_site.py @@ -80,7 +80,7 @@ class LocalWind(dict): def set_data_array(self, data_array, name, description): if data_array is not None: - self[name] = data_array + self[name] = np.atleast_3d(data_array) self.descriptions[name] = description def add_ilk(self, name, value): @@ -91,7 +91,7 @@ class LocalWind(dict): for da, name, desc in [(ws, 'WS_ilk', 'Local free-stream wind speed [m/s]'), (wd, 'WD_ilk', 'Local free-stream wind direction [deg]'), (ti, 'TI_ilk', 'Local free-stream turbulence intensity')]: - self.set_data_array(np.atleast_3d(da), name, desc) + self.set_data_array(da, name, desc) # upper and lower bounds of wind speed bins WS_ilk = [self.ws[na, na], self.WS_ilk][use_WS] diff --git a/py_wake/tests/test_sites/test_xrsite.py b/py_wake/tests/test_sites/test_xrsite.py index 79755c0da4a2e3519780c6636b7cce777c7ae54f..313e73258181a6705f680f5d6622826cb45fd172 100644 --- a/py_wake/tests/test_sites/test_xrsite.py +++ b/py_wake/tests/test_sites/test_xrsite.py @@ -216,6 +216,9 @@ def test_complex_grid_local_wind(complex_grid_site): [0.0105829, 0.01576518, 0.02066746], [0.01079997, 0.01656828, 0.02257487]]) + wfm = BastankhahGaussian(site, V80()) + wfm([5], [3]) + def test_complex_grid_local_wind_time(complex_grid_site): site = complex_grid_site diff --git a/py_wake/wind_farm_models/engineering_models.py b/py_wake/wind_farm_models/engineering_models.py index 01dc9735ef49ffbfa9a71e4789cf90d0db44096b..11851351d5aeb74d1a7a8e6cd33124f7401a4b2b 100644 --- a/py_wake/wind_farm_models/engineering_models.py +++ b/py_wake/wind_farm_models/engineering_models.py @@ -226,13 +226,14 @@ class EngineeringWindFarmModel(WindFarmModel): kwargs.update({'WD_ilk': lw.WD_ilk, 'WS_ilk': lw.WS_ilk, - 'TI_ilk': lw.TI_ilk, 'WS_eff_ilk': WS_eff_ilk, - 'TI_eff_ilk': lw.TI_ilk + 0., # autograd-friendly copy 'D_i': D_i, 'I': I, 'L': L, 'K': K, **{k + '_ilk': self.site.interp(self.site.ds[k], lw) for k in ri + oi if k in self.site.ds}, }) + if hasattr(lw, 'TI_ilk'): + kwargs['TI_ilk'] = lw.TI_ilk + kwargs['TI_eff_ilk'] = lw.TI_ilk + 0. # autograd-friendly copy self._check_input(kwargs)