From 84dc6900a96bd5d134e420001f57dcefd6cf3a75 Mon Sep 17 00:00:00 2001
From: mmpe <mmpe@dtu.dk>
Date: Tue, 18 Jul 2023 08:26:26 +0200
Subject: [PATCH] Fix issue (error message) when TI is not set in Site

---
 py_wake/site/_site.py                          | 4 ++--
 py_wake/tests/test_sites/test_xrsite.py        | 3 +++
 py_wake/wind_farm_models/engineering_models.py | 5 +++--
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/py_wake/site/_site.py b/py_wake/site/_site.py
index 2e06b137d..e8b094f7d 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 79755c0da..313e73258 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 01dc9735e..11851351d 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)
 
-- 
GitLab