diff --git a/py_wake/site/_site.py b/py_wake/site/_site.py
index 6bf1fc3246a621144e1c67cb74f3ad59d3276a7c..d6b5ce84a6afe096163f13601c1ba3ac98492613 100644
--- a/py_wake/site/_site.py
+++ b/py_wake/site/_site.py
@@ -146,7 +146,7 @@ class Site(ABC):
             ws = np.atleast_1d(ws)
         return wd, ws
 
-    def local_wind(self, x, y, h=None, wd=None, ws=None, time=False, wd_bin_size=None, ws_bins=None, **_):
+    def local_wind(self, x=None, y=None, h=None, wd=None, ws=None, time=False, wd_bin_size=None, ws_bins=None, **_):
         """Local free flow wind conditions
 
         Parameters
diff --git a/py_wake/site/xrsite.py b/py_wake/site/xrsite.py
index b472880cea2412ba8d9d542563d598e0f055f197..9da2111d157d58b688419ba5b38b4e332dbe7ec9 100644
--- a/py_wake/site/xrsite.py
+++ b/py_wake/site/xrsite.py
@@ -414,7 +414,7 @@ class GlobalWindAtlasSite(XRSite):
     NOTE: This approach is only valid for sites with homogeneous roughness at the site and far around
     """
 
-    def __init__(self, lat, long, height, roughness, ti=None, **kwargs):  # pragma: no cover
+    def __init__(self, lat, long, roughness, height=None, ti=None, **kwargs):  # pragma: no cover
         """
         Parameters
         ----------
@@ -430,7 +430,10 @@ class GlobalWindAtlasSite(XRSite):
         self.gwc_ds = self._read_gwc(lat, long)
         if ti is not None:
             self.gwc_ds['TI'] = ti
-        XRSite.__init__(self, ds=self.gwc_ds.interp(height=height, roughness=roughness), **kwargs)
+        ds = self.gwc_ds.interp(roughness=roughness).rename(height='h')
+        if height is not None:
+            ds = ds.interp(z=height)
+        XRSite.__init__(self, ds=ds, **kwargs)
 
     def _read_gwc(self, lat, long):  # pragma: no cover
 
diff --git a/py_wake/tests/test_sites/test_xrsite.py b/py_wake/tests/test_sites/test_xrsite.py
index 4bd35886e2e25908fcf2ff05002af19e2d26d86f..5445acbc5f7b260b596d7d2be4588dd0e25357a3 100644
--- a/py_wake/tests/test_sites/test_xrsite.py
+++ b/py_wake/tests/test_sites/test_xrsite.py
@@ -276,27 +276,25 @@ def test_GlobalWindAtlasSite():
     lat, long = 55.52972, 7.906111  # hornsrev
 
     try:
-        site = GlobalWindAtlasSite(lat, long, height=70, roughness=0.001, ti=0.075)
+        site = GlobalWindAtlasSite(lat, long, roughness=0.001, ti=0.075)
     except (HTTPError, URLError):
         pytest.xfail('HTTPError in GlobalWindAtlasSite')
-    ref_mean = weibull.mean(ref.ds.Weibull_A, ref.ds.Weibull_k)
-    gwa_mean = weibull.mean(site.ds.Weibull_A, site.ds.Weibull_k)
+
+    def mean(lw):
+        return (lw['P_ilk'] / lw['P_ilk'].sum((0, 2))[na, :, na] * lw['WS_ilk']).sum((0, 2))
 
     if 0:
         plt.figure()
-        plt.plot(ref.ds.wd, ref_mean, label='HornsrevSite')
-        plt.plot(site.ds.wd, gwa_mean, label='HornsrevSite')
-        for r in [0, 1.5]:
-            for h in [10, 200]:
-                A, k = [site.gwc_ds[v].sel(roughness=r, height=h) for v in ['Weibull_A', 'Weibull_k']]
-                plt.plot(site.gwc_ds.wd, weibull.mean(A, k), label=f'{h}, {r}')
+        plt.plot(site.default_wd, mean(ref.local_wind()), label='HornsrevSite')
+        plt.plot(site.default_wd, mean(site.local_wind(h=70)), label='GWA Hornsrev h=70')
+        plt.plot(site.default_wd, mean(site.local_wind(h=100)), label='GWA Hornsrev h=100')
         plt.legend()
 
         plt.show()
 
-    npt.assert_allclose(gwa_mean, ref_mean, atol=1.4)
+    npt.assert_allclose(mean(site.local_wind(h=70)), mean(ref.local_wind()), atol=1.5)
     for var, atol in [('Sector_frequency', 0.03), ('Weibull_A', 1.6), ('Weibull_k', 0.4)]:
-        npt.assert_allclose(site.ds[var], ref.ds[var], atol=atol)
+        npt.assert_allclose(site.ds.interp(h=70)[var], ref.ds[var], atol=atol)
 
 
 def test_wrong_height():