From 8220fdd197e6752da6df1c107788de0cb2992eea Mon Sep 17 00:00:00 2001 From: "Mads M. Pedersen" <mmpe@dtu.dk> Date: Tue, 14 Dec 2021 14:43:34 +0000 Subject: [PATCH] Add jit_streamline_distance.py --- docs/notebooks/Site.ipynb | 81 +++++++++-------- py_wake/site/_site.py | 4 +- py_wake/site/distance.py | 26 +++--- py_wake/site/jit_streamline_distance.py | 88 +++++++++++++++++++ py_wake/tests/test_sites/test_distances.py | 47 ++++++++-- py_wake/tests/test_sites/test_site.py | 2 +- .../tests/test_sites/test_wasp_grid_site.py | 4 +- py_wake/utils/model_utils.py | 2 +- py_wake/utils/streamline.py | 51 +++++++++++ .../wind_farm_models/engineering_models.py | 8 +- 10 files changed, 246 insertions(+), 67 deletions(-) create mode 100644 py_wake/site/jit_streamline_distance.py create mode 100644 py_wake/utils/streamline.py diff --git a/docs/notebooks/Site.ipynb b/docs/notebooks/Site.ipynb index 45d853918..7e59bba33 100644 --- a/docs/notebooks/Site.ipynb +++ b/docs/notebooks/Site.ipynb @@ -658,14 +658,14 @@ " ws_upper (ws) float64 10.3\n", " P (wd) float64 0.001111 0.001111 0.001111 ... 0.001111 0.001111\n", "Attributes:\n", - " wd_bin_size: 1</pre><div class='xr-wrap' hidden><div class='xr-header'><div class='xr-obj-type'>xarray.LocalWind</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-5e55f599-7f1a-476f-bf12-079560b7a1d7' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-5e55f599-7f1a-476f-bf12-079560b7a1d7' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>i</span>: 16</li><li><span class='xr-has-index'>wd</span>: 360</li><li><span class='xr-has-index'>ws</span>: 1</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-1f2fea7f-2864-4bda-85c4-95b1e385f6da' class='xr-section-summary-in' type='checkbox' checked><label for='section-1f2fea7f-2864-4bda-85c4-95b1e385f6da' class='xr-section-summary' >Coordinates: <span>(6)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>ws</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>9.8</div><input id='attrs-bc244c82-320f-415e-a37b-196593fe254e' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-bc244c82-320f-415e-a37b-196593fe254e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-11377c4e-7e24-4283-88db-1caa8a8a1702' class='xr-var-data-in' type='checkbox'><label for='data-11377c4e-7e24-4283-88db-1caa8a8a1702' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([9.8])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>wd</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 355 356 357 358 359</div><input id='attrs-cab23853-11c3-405e-917b-3441a65a62a4' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-cab23853-11c3-405e-917b-3441a65a62a4' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5f431d03-9e60-4a00-9205-ac7f69084ec9' class='xr-var-data-in' type='checkbox'><label for='data-5f431d03-9e60-4a00-9205-ac7f69084ec9' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind direction [deg]</dd></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, ..., 357, 358, 359])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>i</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 6 ... 10 11 12 13 14 15</div><input id='attrs-7e82987e-d11a-4b7d-b3d3-522cf40a26a4' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-7e82987e-d11a-4b7d-b3d3-522cf40a26a4' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-09228649-f762-4c72-acdd-564957f4759a' class='xr-var-data-in' type='checkbox'><label for='data-09228649-f762-4c72-acdd-564957f4759a' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>x</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.0 650.0 200.9 ... 401.7 1.052e+03</div><input id='attrs-c086a5e6-a03b-49e7-a2dc-f8a3f9a1bb58' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-c086a5e6-a03b-49e7-a2dc-f8a3f9a1bb58' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-ccf10bef-3c5c-47de-a1ed-9307c1f7e000' class='xr-var-data-in' type='checkbox'><label for='data-ccf10bef-3c5c-47de-a1ed-9307c1f7e000' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 0. , 650. , 200.861 , -525.861 , -525.861 ,\n", + " wd_bin_size: 1</pre><div class='xr-wrap' hidden><div class='xr-header'><div class='xr-obj-type'>xarray.LocalWind</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-c4b3d69c-73e3-4594-9205-66abc317e8f1' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-c4b3d69c-73e3-4594-9205-66abc317e8f1' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>i</span>: 16</li><li><span class='xr-has-index'>wd</span>: 360</li><li><span class='xr-has-index'>ws</span>: 1</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-deccb244-9235-432e-9d18-569e4732e248' class='xr-section-summary-in' type='checkbox' checked><label for='section-deccb244-9235-432e-9d18-569e4732e248' class='xr-section-summary' >Coordinates: <span>(6)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>ws</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>9.8</div><input id='attrs-e09bd5ef-d229-4b56-b791-83cfcf78930f' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-e09bd5ef-d229-4b56-b791-83cfcf78930f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8ff3e21d-c2ae-41ce-92dc-8912d3f7de8a' class='xr-var-data-in' type='checkbox'><label for='data-8ff3e21d-c2ae-41ce-92dc-8912d3f7de8a' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([9.8])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>wd</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 355 356 357 358 359</div><input id='attrs-8daf1358-67db-4d1d-966c-cc69a94a2149' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-8daf1358-67db-4d1d-966c-cc69a94a2149' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-4846d7ce-0706-4aa4-81df-1cac50cdf07d' class='xr-var-data-in' type='checkbox'><label for='data-4846d7ce-0706-4aa4-81df-1cac50cdf07d' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind direction [deg]</dd></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, ..., 357, 358, 359])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>i</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 6 ... 10 11 12 13 14 15</div><input id='attrs-3ddcb4c6-9a46-4969-bf08-a86f3561e9ad' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-3ddcb4c6-9a46-4969-bf08-a86f3561e9ad' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-9418273d-1f9e-4c9c-a0ef-3829a1578377' class='xr-var-data-in' type='checkbox'><label for='data-9418273d-1f9e-4c9c-a0ef-3829a1578377' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>x</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.0 650.0 200.9 ... 401.7 1.052e+03</div><input id='attrs-e1c988fc-35a6-40b9-98e4-a5d15bbdcad4' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-e1c988fc-35a6-40b9-98e4-a5d15bbdcad4' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-3ee05f70-76dd-4402-8279-bf52f5ab7f65' class='xr-var-data-in' type='checkbox'><label for='data-3ee05f70-76dd-4402-8279-bf52f5ab7f65' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 0. , 650. , 200.861 , -525.861 , -525.861 ,\n", " 200.861 , 1300. , 1051.7221, 401.7221, -401.7221,\n", " -1051.7221, -1300. , -1051.7221, -401.7221, 401.7221,\n", - " 1051.7221])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>y</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.0 0.0 618.2 ... -1.236e+03 -764.1</div><input id='attrs-74780bb7-071a-4a79-b31b-3adef0662720' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-74780bb7-071a-4a79-b31b-3adef0662720' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c999e2fa-7b31-4e59-8307-07702726c327' class='xr-var-data-in' type='checkbox'><label for='data-c999e2fa-7b31-4e59-8307-07702726c327' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 0. , 0. , 618.1867, 382.0604, -382.0604,\n", + " 1051.7221])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>y</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.0 0.0 618.2 ... -1.236e+03 -764.1</div><input id='attrs-edcde4e3-5604-486d-b099-a06fbfd3cd70' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-edcde4e3-5604-486d-b099-a06fbfd3cd70' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5aa885d9-c33a-4b47-8f56-f593b079a2b8' class='xr-var-data-in' type='checkbox'><label for='data-5aa885d9-c33a-4b47-8f56-f593b079a2b8' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 0. , 0. , 618.1867, 382.0604, -382.0604,\n", " -618.1867, 0. , 764.1208, 1236.3735, 1236.3735,\n", " 764.1208, 0. , -764.1208, -1236.3735, -1236.3735,\n", - " -764.1208])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>h</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>70.0 70.0 70.0 ... 70.0 70.0 70.0</div><input id='attrs-706510e2-caea-42d5-be10-dbee78a4b15c' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-706510e2-caea-42d5-be10-dbee78a4b15c' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-0b296c53-9530-4d0f-9c05-63850da7e495' class='xr-var-data-in' type='checkbox'><label for='data-0b296c53-9530-4d0f-9c05-63850da7e495' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70.,\n", - " 70., 70., 70.])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-29fae4a8-fe36-436d-8b6a-d233a6464a8a' class='xr-section-summary-in' type='checkbox' checked><label for='section-29fae4a8-fe36-436d-8b6a-d233a6464a8a' class='xr-section-summary' >Data variables: <span>(6)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>WS</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>9.8</div><input id='attrs-427e9458-5aff-42cc-9838-cc279c7456e9' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-427e9458-5aff-42cc-9838-cc279c7456e9' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-065da00f-4843-49cf-9f0c-2f0f36f59159' class='xr-var-data-in' type='checkbox'><label for='data-065da00f-4843-49cf-9f0c-2f0f36f59159' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind speed [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([9.8])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>WD</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 355 356 357 358 359</div><input id='attrs-69b13b7d-2692-49eb-ad3d-062b5ace1c7c' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-69b13b7d-2692-49eb-ad3d-062b5ace1c7c' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-d0c7a70a-1ac6-4b6d-8b3b-2bc862b862d1' class='xr-var-data-in' type='checkbox'><label for='data-d0c7a70a-1ac6-4b6d-8b3b-2bc862b862d1' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind direction [deg]</dd></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, ..., 357, 358, 359])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>TI</span></div><div class='xr-var-dims'>()</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.075</div><input id='attrs-17f28b3c-3879-4ee5-87f7-dc168418c9a4' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-17f28b3c-3879-4ee5-87f7-dc168418c9a4' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5ab69143-50b9-4210-bd14-a785880a3f22' class='xr-var-data-in' type='checkbox'><label for='data-5ab69143-50b9-4210-bd14-a785880a3f22' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream turbulence intensity</dd></dl></div><div class='xr-var-data'><pre>array(0.075)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ws_lower</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>9.3</div><input id='attrs-d93cb2d7-9ed6-48fb-b36e-efdb4b72ae1d' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d93cb2d7-9ed6-48fb-b36e-efdb4b72ae1d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-cbfc37f4-1249-4bfb-805d-a3a0672b2220' class='xr-var-data-in' type='checkbox'><label for='data-cbfc37f4-1249-4bfb-805d-a3a0672b2220' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Lower bound of wind speed bins [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([9.3])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ws_upper</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>10.3</div><input id='attrs-1d85be9a-a121-46a9-a3c9-a552f5438059' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-1d85be9a-a121-46a9-a3c9-a552f5438059' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-4c7b1050-1408-420b-98c9-666602072283' class='xr-var-data-in' type='checkbox'><label for='data-4c7b1050-1408-420b-98c9-666602072283' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Upper bound of wind speed bins [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([10.3])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>P</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.001111 0.001111 ... 0.001111</div><input id='attrs-d9a936e9-770e-4132-bf8c-9329a155c97d' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-d9a936e9-770e-4132-bf8c-9329a155c97d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-28af0025-5d94-4f81-95d9-75fe4f36f03b' class='xr-var-data-in' type='checkbox'><label for='data-28af0025-5d94-4f81-95d9-75fe4f36f03b' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([0.00111111, 0.00111111, 0.00111111, 0.00111111, 0.00111111,\n", + " -764.1208])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>h</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>70.0 70.0 70.0 ... 70.0 70.0 70.0</div><input id='attrs-42977fba-704b-4f32-bd58-c0676de02298' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-42977fba-704b-4f32-bd58-c0676de02298' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-fbdb257f-4e98-45fb-a493-40a7cdf5a8e8' class='xr-var-data-in' type='checkbox'><label for='data-fbdb257f-4e98-45fb-a493-40a7cdf5a8e8' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70.,\n", + " 70., 70., 70.])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-7241d5b9-e983-4fe0-bbd6-a8512b7d35da' class='xr-section-summary-in' type='checkbox' checked><label for='section-7241d5b9-e983-4fe0-bbd6-a8512b7d35da' class='xr-section-summary' >Data variables: <span>(6)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>WS</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>9.8</div><input id='attrs-f709eb39-0bcd-44e4-ae2d-403974cd6cb6' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-f709eb39-0bcd-44e4-ae2d-403974cd6cb6' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-3791cb97-4791-4234-b9ae-f362842c3c14' class='xr-var-data-in' type='checkbox'><label for='data-3791cb97-4791-4234-b9ae-f362842c3c14' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind speed [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([9.8])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>WD</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 355 356 357 358 359</div><input id='attrs-fec05b25-bb99-4009-a637-4d1dc7b01053' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-fec05b25-bb99-4009-a637-4d1dc7b01053' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-79699c93-ff3f-4da2-8fe5-0c6039dfa074' class='xr-var-data-in' type='checkbox'><label for='data-79699c93-ff3f-4da2-8fe5-0c6039dfa074' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind direction [deg]</dd></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, ..., 357, 358, 359])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>TI</span></div><div class='xr-var-dims'>()</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.075</div><input id='attrs-b43066fc-077f-48cd-af65-f03e30f85fe8' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-b43066fc-077f-48cd-af65-f03e30f85fe8' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-77411f8c-ad0f-4276-bbca-070e393ccac2' class='xr-var-data-in' type='checkbox'><label for='data-77411f8c-ad0f-4276-bbca-070e393ccac2' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream turbulence intensity</dd></dl></div><div class='xr-var-data'><pre>array(0.075)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ws_lower</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>9.3</div><input id='attrs-17744bfe-2988-4f6b-8380-750226547061' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-17744bfe-2988-4f6b-8380-750226547061' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-7645fc0b-3748-4a6d-8bd5-5e12102dc300' class='xr-var-data-in' type='checkbox'><label for='data-7645fc0b-3748-4a6d-8bd5-5e12102dc300' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Lower bound of wind speed bins [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([9.3])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ws_upper</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>10.3</div><input id='attrs-f63620f8-3837-44d7-b66b-60695bc8bbf9' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-f63620f8-3837-44d7-b66b-60695bc8bbf9' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-6d02c90c-0e1a-4c8e-bb2b-d60314541bb6' class='xr-var-data-in' type='checkbox'><label for='data-6d02c90c-0e1a-4c8e-bb2b-d60314541bb6' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Upper bound of wind speed bins [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([10.3])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>P</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.001111 0.001111 ... 0.001111</div><input id='attrs-f3c07666-d661-4c08-885c-2d53bd583cfa' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-f3c07666-d661-4c08-885c-2d53bd583cfa' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-6580cdcb-c1dc-4d61-8805-c050f00b0c52' class='xr-var-data-in' type='checkbox'><label for='data-6580cdcb-c1dc-4d61-8805-c050f00b0c52' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([0.00111111, 0.00111111, 0.00111111, 0.00111111, 0.00111111,\n", " 0.00111111, 0.00111111, 0.00111111, 0.00111111, 0.00111111,\n", " 0.00111111, 0.00111111, 0.00106667, 0.00106667, 0.00106667,\n", " 0.00106667, 0.00106667, 0.00106667, 0.00106667, 0.00106667,\n", @@ -705,7 +705,7 @@ " 0.00097778, 0.00097778, 0.00097778, 0.00097778, 0.00097778,\n", " 0.00097778, 0.00097778, 0.00097778, 0.00097778, 0.00111111,\n", " 0.00111111, 0.00111111, 0.00111111, 0.00111111, 0.00111111,\n", - " 0.00111111, 0.00111111, 0.00111111, 0.00111111, 0.00111111])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-4a722bd7-44a6-47f8-8a6a-d564cebd2c6c' class='xr-section-summary-in' type='checkbox' checked><label for='section-4a722bd7-44a6-47f8-8a6a-d564cebd2c6c' class='xr-section-summary' >Attributes: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>wd_bin_size :</span></dt><dd>1</dd></dl></div></li></ul></div></div>" + " 0.00111111, 0.00111111, 0.00111111, 0.00111111, 0.00111111])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-1dc55897-ba63-4547-971c-32507b0ecbaa' class='xr-section-summary-in' type='checkbox' checked><label for='section-1dc55897-ba63-4547-971c-32507b0ecbaa' class='xr-section-summary' >Attributes: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>wd_bin_size :</span></dt><dd>1</dd></dl></div></li></ul></div></div>" ], "text/plain": [ "<xarray.LocalWind>\n", @@ -1123,12 +1123,12 @@ " Sector_frequency (wd) float64 0.001199 0.001199 ... 0.001199 0.001199\n", " P (wd, ws) float64 6.147e-05 8.559e-05 ... 2.193e-08\n", "Attributes:\n", - " wd_bin_size: 1</pre><div class='xr-wrap' hidden><div class='xr-header'><div class='xr-obj-type'>xarray.LocalWind</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-89982781-2f99-4820-beb0-41ffe2baa27f' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-89982781-2f99-4820-beb0-41ffe2baa27f' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>i</span>: 80</li><li><span class='xr-has-index'>wd</span>: 360</li><li><span class='xr-has-index'>ws</span>: 23</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-5d59a091-d2f9-498d-be54-add12dae0449' class='xr-section-summary-in' type='checkbox' checked><label for='section-5d59a091-d2f9-498d-be54-add12dae0449' class='xr-section-summary' >Coordinates: <span>(6)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>ws</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>3 4 5 6 7 8 9 ... 20 21 22 23 24 25</div><input id='attrs-c23c18d3-eac5-4405-9abc-66eb7db619d2' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-c23c18d3-eac5-4405-9abc-66eb7db619d2' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-2b9b0e09-43f4-4fd6-9f55-b61159c89a1d' class='xr-var-data-in' type='checkbox'><label for='data-2b9b0e09-43f4-4fd6-9f55-b61159c89a1d' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,\n", - " 21, 22, 23, 24, 25])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>wd</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 355 356 357 358 359</div><input id='attrs-cce6cf63-0fab-4177-85be-5ac70d57c2dc' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-cce6cf63-0fab-4177-85be-5ac70d57c2dc' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a679e597-b358-4925-8c70-e37ca4fd7bb4' class='xr-var-data-in' type='checkbox'><label for='data-a679e597-b358-4925-8c70-e37ca4fd7bb4' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind direction [deg]</dd></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, ..., 357, 358, 359])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>i</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 6 ... 74 75 76 77 78 79</div><input id='attrs-02f1daab-62e1-4355-8f69-683bd83e403c' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-02f1daab-62e1-4355-8f69-683bd83e403c' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-66b88e59-2f8e-46fa-9d17-28fe5767c78d' class='xr-var-data-in' type='checkbox'><label for='data-66b88e59-2f8e-46fa-9d17-28fe5767c78d' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n", + " wd_bin_size: 1</pre><div class='xr-wrap' hidden><div class='xr-header'><div class='xr-obj-type'>xarray.LocalWind</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-eee96fa5-f123-40d3-a90c-6837eb7ccd99' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-eee96fa5-f123-40d3-a90c-6837eb7ccd99' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>i</span>: 80</li><li><span class='xr-has-index'>wd</span>: 360</li><li><span class='xr-has-index'>ws</span>: 23</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-0d612ca4-5919-4845-860b-89d2a0665c00' class='xr-section-summary-in' type='checkbox' checked><label for='section-0d612ca4-5919-4845-860b-89d2a0665c00' class='xr-section-summary' >Coordinates: <span>(6)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>ws</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>3 4 5 6 7 8 9 ... 20 21 22 23 24 25</div><input id='attrs-1680de81-77f3-4928-a01e-9c395e86d42f' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-1680de81-77f3-4928-a01e-9c395e86d42f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-5ef9a388-9db6-4cf3-8a61-80a73148b00f' class='xr-var-data-in' type='checkbox'><label for='data-5ef9a388-9db6-4cf3-8a61-80a73148b00f' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,\n", + " 21, 22, 23, 24, 25])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>wd</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 355 356 357 358 359</div><input id='attrs-467fc66e-783c-48bf-8845-27f29c3f9b28' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-467fc66e-783c-48bf-8845-27f29c3f9b28' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-9d71e38a-605e-4ead-a330-f1c80291dadc' class='xr-var-data-in' type='checkbox'><label for='data-9d71e38a-605e-4ead-a330-f1c80291dadc' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind direction [deg]</dd></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, ..., 357, 358, 359])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>i</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 6 ... 74 75 76 77 78 79</div><input id='attrs-172bc53d-1359-45e4-974f-02e306653480' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-172bc53d-1359-45e4-974f-02e306653480' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-039848d4-6344-46d1-8e6a-5be3d07654f6' class='xr-var-data-in' type='checkbox'><label for='data-039848d4-6344-46d1-8e6a-5be3d07654f6' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,\n", " 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,\n", " 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,\n", " 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,\n", - " 72, 73, 74, 75, 76, 77, 78, 79])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>x</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>4.24e+05 4.24e+05 ... 4.295e+05</div><input id='attrs-d9331417-72b1-4908-b747-f3c25719a793' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-d9331417-72b1-4908-b747-f3c25719a793' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-148d3dd5-760b-4adf-989a-6724bb76d634' class='xr-var-data-in' type='checkbox'><label for='data-148d3dd5-760b-4adf-989a-6724bb76d634' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([423974., 424042., 424111., 424179., 424247., 424315., 424384.,\n", + " 72, 73, 74, 75, 76, 77, 78, 79])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>x</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>4.24e+05 4.24e+05 ... 4.295e+05</div><input id='attrs-0dd0cd3e-d6c5-4bf3-8c91-284955693b9b' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-0dd0cd3e-d6c5-4bf3-8c91-284955693b9b' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-585dd9ef-afe9-472a-bb6a-e1b99bdd48bc' class='xr-var-data-in' type='checkbox'><label for='data-585dd9ef-afe9-472a-bb6a-e1b99bdd48bc' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([423974., 424042., 424111., 424179., 424247., 424315., 424384.,\n", " 424452., 424534., 424602., 424671., 424739., 424807., 424875.,\n", " 424944., 425012., 425094., 425162., 425231., 425299., 425367.,\n", " 425435., 425504., 425572., 425654., 425722., 425791., 425859.,\n", @@ -1139,7 +1139,7 @@ " 427894., 427962., 428031., 428099., 428167., 428235., 428304.,\n", " 428372., 428454., 428522., 428591., 428659., 428727., 428795.,\n", " 428864., 428932., 429014., 429082., 429151., 429219., 429287.,\n", - " 429355., 429424., 429492.])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>y</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>6.151e+06 6.151e+06 ... 6.148e+06</div><input id='attrs-ba258004-9cc1-4e06-9d3c-41a6647fa18f' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-ba258004-9cc1-4e06-9d3c-41a6647fa18f' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8fd86341-6283-4f16-a6da-eb5894f04d31' class='xr-var-data-in' type='checkbox'><label for='data-8fd86341-6283-4f16-a6da-eb5894f04d31' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([6151447., 6150891., 6150335., 6149779., 6149224., 6148668.,\n", + " 429355., 429424., 429492.])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>y</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>6.151e+06 6.151e+06 ... 6.148e+06</div><input id='attrs-71c41882-4f1c-4c2f-913f-57a0d234da29' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-71c41882-4f1c-4c2f-913f-57a0d234da29' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-968e5772-8635-4071-adf2-9a2d36eba554' class='xr-var-data-in' type='checkbox'><label for='data-968e5772-8635-4071-adf2-9a2d36eba554' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([6151447., 6150891., 6150335., 6149779., 6149224., 6148668.,\n", " 6148112., 6147556., 6151447., 6150891., 6150335., 6149779.,\n", " 6149224., 6148668., 6148112., 6147556., 6151447., 6150891.,\n", " 6150335., 6149779., 6149224., 6148668., 6148112., 6147556.,\n", @@ -1152,18 +1152,18 @@ " 6149224., 6148668., 6148112., 6147556., 6151447., 6150891.,\n", " 6150335., 6149779., 6149224., 6148668., 6148112., 6147556.,\n", " 6151447., 6150891., 6150335., 6149779., 6149224., 6148668.,\n", - " 6148112., 6147556.])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>h</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>70.0 70.0 70.0 ... 70.0 70.0 70.0</div><input id='attrs-2cd233b4-1c97-4238-962e-bfc5bac2b123' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-2cd233b4-1c97-4238-962e-bfc5bac2b123' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-333acb9c-0a96-4fe1-a70c-3ed3b4062ffc' class='xr-var-data-in' type='checkbox'><label for='data-333acb9c-0a96-4fe1-a70c-3ed3b4062ffc' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70.,\n", + " 6148112., 6147556.])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>h</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>70.0 70.0 70.0 ... 70.0 70.0 70.0</div><input id='attrs-0e889877-a458-4af7-99ba-495d18feef99' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-0e889877-a458-4af7-99ba-495d18feef99' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-7c1d5ae8-83c5-470c-a422-d445f08a41f3' class='xr-var-data-in' type='checkbox'><label for='data-7c1d5ae8-83c5-470c-a422-d445f08a41f3' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70.,\n", " 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70.,\n", " 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70.,\n", " 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70.,\n", " 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70.,\n", " 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70., 70.,\n", - " 70., 70.])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-cbc6bf11-b4d1-45a7-b54e-e14310d664e1' class='xr-section-summary-in' type='checkbox' checked><label for='section-cbc6bf11-b4d1-45a7-b54e-e14310d664e1' class='xr-section-summary' >Data variables: <span>(9)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>WS</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>3 4 5 6 7 8 9 ... 20 21 22 23 24 25</div><input id='attrs-cd630632-1994-4840-b3cb-c6ed1ed62962' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-cd630632-1994-4840-b3cb-c6ed1ed62962' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8bd6be4c-573c-4abc-99a7-88aa62a4e354' class='xr-var-data-in' type='checkbox'><label for='data-8bd6be4c-573c-4abc-99a7-88aa62a4e354' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind speed [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,\n", - " 21, 22, 23, 24, 25])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>WD</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 355 356 357 358 359</div><input id='attrs-6f332c8d-fa92-4ae8-9451-16d63cdb56be' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-6f332c8d-fa92-4ae8-9451-16d63cdb56be' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1578b64b-31fa-4e02-a47f-ef6a7368372e' class='xr-var-data-in' type='checkbox'><label for='data-1578b64b-31fa-4e02-a47f-ef6a7368372e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind direction [deg]</dd></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, ..., 357, 358, 359])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>TI</span></div><div class='xr-var-dims'>()</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.1</div><input id='attrs-7bb9b178-fa64-4361-a0e7-352a5222dcaa' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-7bb9b178-fa64-4361-a0e7-352a5222dcaa' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-4f5cc5f7-0d32-494e-b15c-71eae4ef20c3' class='xr-var-data-in' type='checkbox'><label for='data-4f5cc5f7-0d32-494e-b15c-71eae4ef20c3' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream turbulence intensity</dd></dl></div><div class='xr-var-data'><pre>array(0.1)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ws_lower</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>2.5 3.5 4.5 5.5 ... 22.5 23.5 24.5</div><input id='attrs-aefb51c0-c4fb-4d7e-a8ae-16ad6041753a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-aefb51c0-c4fb-4d7e-a8ae-16ad6041753a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-54e18d5b-b9e0-4609-8a0e-b3157ddea310' class='xr-var-data-in' type='checkbox'><label for='data-54e18d5b-b9e0-4609-8a0e-b3157ddea310' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Lower bound of wind speed bins [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5,\n", + " 70., 70.])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-8a8dbb0b-ae0a-47a5-8f30-19d770d01b9d' class='xr-section-summary-in' type='checkbox' checked><label for='section-8a8dbb0b-ae0a-47a5-8f30-19d770d01b9d' class='xr-section-summary' >Data variables: <span>(9)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>WS</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>3 4 5 6 7 8 9 ... 20 21 22 23 24 25</div><input id='attrs-5692b321-7620-476e-8fa4-05021dccc6dc' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-5692b321-7620-476e-8fa4-05021dccc6dc' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-dd4d87fc-055d-4827-af66-5e32c9d5e6fe' class='xr-var-data-in' type='checkbox'><label for='data-dd4d87fc-055d-4827-af66-5e32c9d5e6fe' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind speed [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,\n", + " 21, 22, 23, 24, 25])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>WD</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 355 356 357 358 359</div><input id='attrs-a7ed6604-2d8c-4a3c-a67c-1a051d5457df' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-a7ed6604-2d8c-4a3c-a67c-1a051d5457df' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-d69e6218-01f3-4fc4-bb07-2ac11baedb38' class='xr-var-data-in' type='checkbox'><label for='data-d69e6218-01f3-4fc4-bb07-2ac11baedb38' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind direction [deg]</dd></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, ..., 357, 358, 359])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>TI</span></div><div class='xr-var-dims'>()</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.1</div><input id='attrs-3d76bfed-07b4-4c5c-b937-1be099a407d5' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-3d76bfed-07b4-4c5c-b937-1be099a407d5' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e2db613d-4183-4509-a81e-495e560beb0c' class='xr-var-data-in' type='checkbox'><label for='data-e2db613d-4183-4509-a81e-495e560beb0c' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream turbulence intensity</dd></dl></div><div class='xr-var-data'><pre>array(0.1)</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ws_lower</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>2.5 3.5 4.5 5.5 ... 22.5 23.5 24.5</div><input id='attrs-2e2fb69d-91ac-496c-a504-c5d6651da47a' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-2e2fb69d-91ac-496c-a504-c5d6651da47a' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-26fd1492-f0cd-4063-ab94-30b977343b9d' class='xr-var-data-in' type='checkbox'><label for='data-26fd1492-f0cd-4063-ab94-30b977343b9d' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Lower bound of wind speed bins [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([ 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5,\n", " 13.5, 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5,\n", - " 24.5])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ws_upper</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>3.5 4.5 5.5 6.5 ... 23.5 24.5 25.5</div><input id='attrs-aae67c69-b8dd-419e-bd62-0e2361ae50ee' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-aae67c69-b8dd-419e-bd62-0e2361ae50ee' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-323a6abf-1370-4559-915f-f2ecf3b2a656' class='xr-var-data-in' type='checkbox'><label for='data-323a6abf-1370-4559-915f-f2ecf3b2a656' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Upper bound of wind speed bins [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([ 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5,\n", + " 24.5])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ws_upper</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>3.5 4.5 5.5 6.5 ... 23.5 24.5 25.5</div><input id='attrs-4e81b5e8-8812-4f1c-ada9-5900f9ce7243' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-4e81b5e8-8812-4f1c-ada9-5900f9ce7243' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-ac01a52f-1391-4801-982d-c92ea4861371' class='xr-var-data-in' type='checkbox'><label for='data-ac01a52f-1391-4801-982d-c92ea4861371' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Upper bound of wind speed bins [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([ 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5, 13.5,\n", " 14.5, 15.5, 16.5, 17.5, 18.5, 19.5, 20.5, 21.5, 22.5, 23.5, 24.5,\n", - " 25.5])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Weibull_A</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>9.177 9.177 9.177 ... 9.177 9.177</div><input id='attrs-39af5655-eea0-4337-9ec8-6d07264f51f0' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-39af5655-eea0-4337-9ec8-6d07264f51f0' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-a3d8e884-109f-41ac-9803-d1c966e15500' class='xr-var-data-in' type='checkbox'><label for='data-a3d8e884-109f-41ac-9803-d1c966e15500' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 9.176929, 9.176929, 9.176929, 9.176929, 9.176929, 9.176929,\n", + " 25.5])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Weibull_A</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>9.177 9.177 9.177 ... 9.177 9.177</div><input id='attrs-69b691cd-5afc-4543-a145-8b4b58b36f91' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-69b691cd-5afc-4543-a145-8b4b58b36f91' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e7c8ca73-4a47-433b-9592-f687cbee3d1e' class='xr-var-data-in' type='checkbox'><label for='data-e7c8ca73-4a47-433b-9592-f687cbee3d1e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 9.176929, 9.176929, 9.176929, 9.176929, 9.176929, 9.176929,\n", " 9.176929, 9.176929, 9.176929, 9.176929, 9.176929, 9.176929,\n", " 9.176929, 9.176929, 9.176929, 9.176929, 9.782334, 9.782334,\n", " 9.782334, 9.782334, 9.782334, 9.782334, 9.782334, 9.782334,\n", @@ -1203,7 +1203,7 @@ " 10.08803 , 10.08803 , 10.08803 , 10.08803 , 10.08803 , 10.08803 ,\n", " 10.08803 , 10.08803 , 10.08803 , 10.08803 , 9.176929, 9.176929,\n", " 9.176929, 9.176929, 9.176929, 9.176929, 9.176929, 9.176929,\n", - " 9.176929, 9.176929, 9.176929, 9.176929, 9.176929, 9.176929])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Weibull_k</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>2.393 2.393 2.393 ... 2.393 2.393</div><input id='attrs-f93dec11-fd7a-4c77-9814-d790fa640975' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-f93dec11-fd7a-4c77-9814-d790fa640975' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8773c562-ad5d-48cb-b398-fd1d0887001e' class='xr-var-data-in' type='checkbox'><label for='data-8773c562-ad5d-48cb-b398-fd1d0887001e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([2.392578, 2.392578, 2.392578, 2.392578, 2.392578, 2.392578,\n", + " 9.176929, 9.176929, 9.176929, 9.176929, 9.176929, 9.176929])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Weibull_k</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>2.393 2.393 2.393 ... 2.393 2.393</div><input id='attrs-6a81e740-8950-403f-bb4f-5bfb89be253d' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-6a81e740-8950-403f-bb4f-5bfb89be253d' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-f4a97686-68e2-4f13-a2ad-31d1187cb9ae' class='xr-var-data-in' type='checkbox'><label for='data-f4a97686-68e2-4f13-a2ad-31d1187cb9ae' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([2.392578, 2.392578, 2.392578, 2.392578, 2.392578, 2.392578,\n", " 2.392578, 2.392578, 2.392578, 2.392578, 2.392578, 2.392578,\n", " 2.392578, 2.392578, 2.392578, 2.392578, 2.447266, 2.447266,\n", " 2.447266, 2.447266, 2.447266, 2.447266, 2.447266, 2.447266,\n", @@ -1243,7 +1243,7 @@ " 2.326172, 2.326172, 2.326172, 2.326172, 2.326172, 2.326172,\n", " 2.326172, 2.326172, 2.326172, 2.326172, 2.392578, 2.392578,\n", " 2.392578, 2.392578, 2.392578, 2.392578, 2.392578, 2.392578,\n", - " 2.392578, 2.392578, 2.392578, 2.392578, 2.392578, 2.392578])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Sector_frequency</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.001199 0.001199 ... 0.001199</div><input id='attrs-5336d3b3-47fb-4903-acfa-6c611545e323' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-5336d3b3-47fb-4903-acfa-6c611545e323' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-f114e247-5845-4621-b6f8-75ce8cecb7d8' class='xr-var-data-in' type='checkbox'><label for='data-f114e247-5845-4621-b6f8-75ce8cecb7d8' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([0.00119905, 0.00119905, 0.00119905, 0.00119905, 0.00119905,\n", + " 2.392578, 2.392578, 2.392578, 2.392578, 2.392578, 2.392578])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Sector_frequency</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.001199 0.001199 ... 0.001199</div><input id='attrs-f5eccd9b-0e57-46ec-b568-e7b8b0b6b4f5' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-f5eccd9b-0e57-46ec-b568-e7b8b0b6b4f5' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-26021161-ccd3-4b48-86e7-f2aec422e19e' class='xr-var-data-in' type='checkbox'><label for='data-26021161-ccd3-4b48-86e7-f2aec422e19e' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([0.00119905, 0.00119905, 0.00119905, 0.00119905, 0.00119905,\n", " 0.00119905, 0.00119905, 0.00119905, 0.00119905, 0.00119905,\n", " 0.00119905, 0.00119905, 0.00119905, 0.00119905, 0.00119905,\n", " 0.00119905, 0.00131623, 0.00131623, 0.00131623, 0.00131623,\n", @@ -1283,7 +1283,7 @@ " 0.00172199, 0.00172199, 0.00172199, 0.00172199, 0.00172199,\n", " 0.00172199, 0.00119905, 0.00119905, 0.00119905, 0.00119905,\n", " 0.00119905, 0.00119905, 0.00119905, 0.00119905, 0.00119905,\n", - " 0.00119905, 0.00119905, 0.00119905, 0.00119905, 0.00119905])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>P</span></div><div class='xr-var-dims'>(wd, ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>6.147e-05 8.559e-05 ... 2.193e-08</div><input id='attrs-97f24f32-1435-44d3-bebb-684d7e54769c' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-97f24f32-1435-44d3-bebb-684d7e54769c' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-9af860d0-bacf-47e3-b19a-ebd7b01b3714' class='xr-var-data-in' type='checkbox'><label for='data-9af860d0-bacf-47e3-b19a-ebd7b01b3714' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[6.14682576e-05, 8.55902794e-05, 1.05949549e-04, ...,\n", + " 0.00119905, 0.00119905, 0.00119905, 0.00119905, 0.00119905])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>P</span></div><div class='xr-var-dims'>(wd, ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>6.147e-05 8.559e-05 ... 2.193e-08</div><input id='attrs-09faff8f-6a80-4e4c-84a5-3bf63e13da5e' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-09faff8f-6a80-4e4c-84a5-3bf63e13da5e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-340fb61d-1280-4320-829f-5aeb690d4ff4' class='xr-var-data-in' type='checkbox'><label for='data-340fb61d-1280-4320-829f-5aeb690d4ff4' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[6.14682576e-05, 8.55902794e-05, 1.05949549e-04, ...,\n", " 1.41427496e-07, 5.73800241e-08, 2.19294217e-08],\n", " [6.14682576e-05, 8.55902794e-05, 1.05949549e-04, ...,\n", " 1.41427496e-07, 5.73800241e-08, 2.19294217e-08],\n", @@ -1295,7 +1295,7 @@ " [6.14682576e-05, 8.55902794e-05, 1.05949549e-04, ...,\n", " 1.41427496e-07, 5.73800241e-08, 2.19294217e-08],\n", " [6.14682576e-05, 8.55902794e-05, 1.05949549e-04, ...,\n", - " 1.41427496e-07, 5.73800241e-08, 2.19294217e-08]])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-a13f0302-10f9-4dc4-a12f-86792d4d6e07' class='xr-section-summary-in' type='checkbox' checked><label for='section-a13f0302-10f9-4dc4-a12f-86792d4d6e07' class='xr-section-summary' >Attributes: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>wd_bin_size :</span></dt><dd>1</dd></dl></div></li></ul></div></div>" + " 1.41427496e-07, 5.73800241e-08, 2.19294217e-08]])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-279b936f-c182-4f61-89a6-24ed98a7e636' class='xr-section-summary-in' type='checkbox' checked><label for='section-279b936f-c182-4f61-89a6-24ed98a7e636' class='xr-section-summary' >Attributes: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>wd_bin_size :</span></dt><dd>1</dd></dl></div></li></ul></div></div>" ], "text/plain": [ "<xarray.LocalWind>\n", @@ -1716,10 +1716,10 @@ " P (i, wd, ws) float64 0.0003305 0.0002909 ... 5.015e-14\n", " TI (i, wd, ws) float64 0.2759 0.2326 0.2066 ... 0.1616 0.1605\n", "Attributes:\n", - " wd_bin_size: 1</pre><div class='xr-wrap' hidden><div class='xr-header'><div class='xr-obj-type'>xarray.LocalWind</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-9ea10d9b-00fc-47bb-81ef-9551a87c149d' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-9ea10d9b-00fc-47bb-81ef-9551a87c149d' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>i</span>: 8</li><li><span class='xr-has-index'>wd</span>: 360</li><li><span class='xr-has-index'>ws</span>: 23</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-2a5134b2-e015-4540-bac8-c40341a9c5a8' class='xr-section-summary-in' type='checkbox' checked><label for='section-2a5134b2-e015-4540-bac8-c40341a9c5a8' class='xr-section-summary' >Coordinates: <span>(6)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>i</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 6 7</div><input id='attrs-9ecaaa6c-f6de-4383-80f7-8c5ccfb085ed' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-9ecaaa6c-f6de-4383-80f7-8c5ccfb085ed' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-ec3e90f4-41d8-45f6-a97a-42033bafd9ba' class='xr-var-data-in' type='checkbox'><label for='data-ec3e90f4-41d8-45f6-a97a-42033bafd9ba' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([0, 1, 2, 3, 4, 5, 6, 7])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>wd</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 355 356 357 358 359</div><input id='attrs-010a540b-ddf3-4fe5-b3be-41287f171628' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-010a540b-ddf3-4fe5-b3be-41287f171628' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-140c94c3-143a-4592-ab22-2a35fc00e93f' class='xr-var-data-in' type='checkbox'><label for='data-140c94c3-143a-4592-ab22-2a35fc00e93f' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, ..., 357, 358, 359])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>ws</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>3 4 5 6 7 8 9 ... 20 21 22 23 24 25</div><input id='attrs-027a8608-f30f-41cc-93dc-cbd9d212fa52' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-027a8608-f30f-41cc-93dc-cbd9d212fa52' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1e2cb38e-3321-42e3-85f3-edb7fc8d51da' class='xr-var-data-in' type='checkbox'><label for='data-1e2cb38e-3321-42e3-85f3-edb7fc8d51da' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,\n", - " 21, 22, 23, 24, 25])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>x</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>2.637e+05 2.639e+05 ... 2.639e+05</div><input id='attrs-a509fb04-8402-47cc-b94a-a931b0733802' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-a509fb04-8402-47cc-b94a-a931b0733802' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-90b51f03-a91e-4484-8fe1-928bd1a3d6ff' class='xr-var-data-in' type='checkbox'><label for='data-90b51f03-a91e-4484-8fe1-928bd1a3d6ff' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([263655. , 263891.1, 264022.2, 264058.9, 264095.6, 264022.2,\n", - " 264022.2, 263936.5])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>y</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>6.507e+06 6.506e+06 ... 6.505e+06</div><input id='attrs-66a38042-1275-404a-995a-1a5a90e7ac56' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-66a38042-1275-404a-995a-1a5a90e7ac56' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-21e9740b-627c-486c-b97f-7dd1a085a423' class='xr-var-data-in' type='checkbox'><label for='data-21e9740b-627c-486c-b97f-7dd1a085a423' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([6506601., 6506394., 6506124., 6505891., 6505585., 6505365.,\n", - " 6505145., 6504802.])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>h</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>70.0 70.0 70.0 ... 70.0 70.0 70.0</div><input id='attrs-047326fe-df37-4e72-aeb2-0a2216777ca7' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-047326fe-df37-4e72-aeb2-0a2216777ca7' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-8270dae3-670d-41c2-887c-1cc92cadf9fa' class='xr-var-data-in' type='checkbox'><label for='data-8270dae3-670d-41c2-887c-1cc92cadf9fa' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([70., 70., 70., 70., 70., 70., 70., 70.])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-3b1aba06-d190-4c00-aa4d-6952ac89e547' class='xr-section-summary-in' type='checkbox' checked><label for='section-3b1aba06-d190-4c00-aa4d-6952ac89e547' class='xr-section-summary' >Data variables: <span>(9)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>WS</span></div><div class='xr-var-dims'>(i, wd, ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>3.785 5.046 6.308 ... 23.61 24.59</div><input id='attrs-463d3503-c07b-45bd-a8f5-ce5533974e33' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-463d3503-c07b-45bd-a8f5-ce5533974e33' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-f648d433-538e-4ea5-9f82-aa83239235a7' class='xr-var-data-in' type='checkbox'><label for='data-f648d433-538e-4ea5-9f82-aa83239235a7' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind speed [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([[[ 3.78471012, 5.04628015, 6.30785019, ..., 29.01611089,\n", + " wd_bin_size: 1</pre><div class='xr-wrap' hidden><div class='xr-header'><div class='xr-obj-type'>xarray.LocalWind</div></div><ul class='xr-sections'><li class='xr-section-item'><input id='section-51337bb6-3473-4158-8440-104189a7d7c6' class='xr-section-summary-in' type='checkbox' disabled ><label for='section-51337bb6-3473-4158-8440-104189a7d7c6' class='xr-section-summary' title='Expand/collapse section'>Dimensions:</label><div class='xr-section-inline-details'><ul class='xr-dim-list'><li><span class='xr-has-index'>i</span>: 8</li><li><span class='xr-has-index'>wd</span>: 360</li><li><span class='xr-has-index'>ws</span>: 23</li></ul></div><div class='xr-section-details'></div></li><li class='xr-section-item'><input id='section-296e726a-68ac-4e03-8d6f-84105c79ecb6' class='xr-section-summary-in' type='checkbox' checked><label for='section-296e726a-68ac-4e03-8d6f-84105c79ecb6' class='xr-section-summary' >Coordinates: <span>(6)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>i</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 6 7</div><input id='attrs-b915d284-023e-40dd-9680-df5a98d564a6' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-b915d284-023e-40dd-9680-df5a98d564a6' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-14ccb2f8-9753-47a1-9672-9df5bfbcb727' class='xr-var-data-in' type='checkbox'><label for='data-14ccb2f8-9753-47a1-9672-9df5bfbcb727' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([0, 1, 2, 3, 4, 5, 6, 7])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>wd</span></div><div class='xr-var-dims'>(wd)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>0 1 2 3 4 5 ... 355 356 357 358 359</div><input id='attrs-68104c61-1f6d-4ef8-a929-eae4a545b7dc' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-68104c61-1f6d-4ef8-a929-eae4a545b7dc' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-6f734359-d931-44e0-afd4-95697ff349a3' class='xr-var-data-in' type='checkbox'><label for='data-6f734359-d931-44e0-afd4-95697ff349a3' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 0, 1, 2, ..., 357, 358, 359])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span class='xr-has-index'>ws</span></div><div class='xr-var-dims'>(ws)</div><div class='xr-var-dtype'>int32</div><div class='xr-var-preview xr-preview'>3 4 5 6 7 8 9 ... 20 21 22 23 24 25</div><input id='attrs-4f32b6fe-0bc0-48f0-bec3-6b9bd5218635' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-4f32b6fe-0bc0-48f0-bec3-6b9bd5218635' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-3431a95c-276c-45e2-93a4-cd8e373e91b0' class='xr-var-data-in' type='checkbox'><label for='data-3431a95c-276c-45e2-93a4-cd8e373e91b0' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,\n", + " 21, 22, 23, 24, 25])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>x</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>2.637e+05 2.639e+05 ... 2.639e+05</div><input id='attrs-d49c72e9-c830-4c04-b8ae-5db554cdc9c4' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-d49c72e9-c830-4c04-b8ae-5db554cdc9c4' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-663f14e4-5bc3-4f9d-b02d-9121731755cc' class='xr-var-data-in' type='checkbox'><label for='data-663f14e4-5bc3-4f9d-b02d-9121731755cc' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([263655. , 263891.1, 264022.2, 264058.9, 264095.6, 264022.2,\n", + " 264022.2, 263936.5])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>y</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>6.507e+06 6.506e+06 ... 6.505e+06</div><input id='attrs-a2f60b60-e756-4eb5-966a-f1c529a10081' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-a2f60b60-e756-4eb5-966a-f1c529a10081' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-bea3dc1a-e46d-4e64-9d88-add999dea1ba' class='xr-var-data-in' type='checkbox'><label for='data-bea3dc1a-e46d-4e64-9d88-add999dea1ba' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([6506601., 6506394., 6506124., 6505891., 6505585., 6505365.,\n", + " 6505145., 6504802.])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>h</span></div><div class='xr-var-dims'>(i)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>70.0 70.0 70.0 ... 70.0 70.0 70.0</div><input id='attrs-2e613b0c-3ea0-46d3-b7f7-449db368628b' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-2e613b0c-3ea0-46d3-b7f7-449db368628b' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-1a755cb0-62b6-48b2-ba8f-313db090d0ca' class='xr-var-data-in' type='checkbox'><label for='data-1a755cb0-62b6-48b2-ba8f-313db090d0ca' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([70., 70., 70., 70., 70., 70., 70., 70.])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-ded94a61-f547-47b4-954c-42ed2b49befa' class='xr-section-summary-in' type='checkbox' checked><label for='section-ded94a61-f547-47b4-954c-42ed2b49befa' class='xr-section-summary' >Data variables: <span>(9)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><ul class='xr-var-list'><li class='xr-var-item'><div class='xr-var-name'><span>WS</span></div><div class='xr-var-dims'>(i, wd, ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>3.785 5.046 6.308 ... 23.61 24.59</div><input id='attrs-7b1bf6a7-4db3-4f5a-bfda-2ca8ccb76069' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-7b1bf6a7-4db3-4f5a-bfda-2ca8ccb76069' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-97bc7bd6-79ae-4931-9778-cbe66605ccab' class='xr-var-data-in' type='checkbox'><label for='data-97bc7bd6-79ae-4931-9778-cbe66605ccab' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind speed [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([[[ 3.78471012, 5.04628015, 6.30785019, ..., 29.01611089,\n", " 30.27768093, 31.53925096],\n", " [ 3.80282588, 5.07043451, 6.33804314, ..., 29.15499845,\n", " 30.42260708, 31.69021571],\n", @@ -1759,7 +1759,7 @@ " [ 2.96540028, 3.95386704, 4.9423338 , ..., 22.73473547,\n", " 23.72320223, 24.71166898],\n", " [ 2.95131777, 3.93509036, 4.91886294, ..., 22.62676954,\n", - " 23.61054213, 24.59431472]]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>WD</span></div><div class='xr-var-dims'>(i, wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>9.367 10.34 11.32 ... 356.5 357.8</div><input id='attrs-f6ffea23-ba3b-4256-a883-6debddf96425' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-f6ffea23-ba3b-4256-a883-6debddf96425' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-84d31324-0cb4-474f-9296-0ee38609dfa2' class='xr-var-data-in' type='checkbox'><label for='data-84d31324-0cb4-474f-9296-0ee38609dfa2' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind direction [deg]</dd></dl></div><div class='xr-var-data'><pre>array([[ 9.36728302, 10.343262 , 11.31924098, ..., 5.3915693 ,\n", + " 23.61054213, 24.59431472]]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>WD</span></div><div class='xr-var-dims'>(i, wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>9.367 10.34 11.32 ... 356.5 357.8</div><input id='attrs-49a48bfc-ea36-460b-9a1c-986ad00793c9' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-49a48bfc-ea36-460b-9a1c-986ad00793c9' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-d15f892d-5629-4c76-9c4b-d2b4004e6a90' class='xr-var-data-in' type='checkbox'><label for='data-d15f892d-5629-4c76-9c4b-d2b4004e6a90' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Local free-stream wind direction [deg]</dd></dl></div><div class='xr-var-data'><pre>array([[ 9.36728302, 10.343262 , 11.31924098, ..., 5.3915693 ,\n", " 6.71680721, 8.04204512],\n", " [ 7.20171146, 8.22287689, 9.24404232, ..., 3.29381638,\n", " 4.59644807, 5.89907977],\n", @@ -1771,7 +1771,7 @@ " [357.63580884, 359.1480049 , 0.66020095, ..., 353.56377178,\n", " 354.92111747, 356.27846316],\n", " [359.13743646, 0.57803584, 2.01863522, ..., 355.2039939 ,\n", - " 356.51514142, 357.82628894]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ws_lower</span></div><div class='xr-var-dims'>(i, wd, ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>3.154 4.415 5.677 ... 23.12 24.1</div><input id='attrs-d47394ab-057d-41b6-8cb0-479fc5608251' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-d47394ab-057d-41b6-8cb0-479fc5608251' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-9abc2658-8a59-4e27-8463-fb9bfb5e2189' class='xr-var-data-in' type='checkbox'><label for='data-9abc2658-8a59-4e27-8463-fb9bfb5e2189' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Lower bound of wind speed bins [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([[[ 3.1539251 , 4.41549514, 5.67706517, ..., 28.38532587,\n", + " 356.51514142, 357.82628894]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ws_lower</span></div><div class='xr-var-dims'>(i, wd, ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>3.154 4.415 5.677 ... 23.12 24.1</div><input id='attrs-c7f04988-1a5d-4368-a0ca-9643c1c55a24' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-c7f04988-1a5d-4368-a0ca-9643c1c55a24' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-0e9aa5c1-5c53-4d8f-9a43-db0dc11a3bba' class='xr-var-data-in' type='checkbox'><label for='data-0e9aa5c1-5c53-4d8f-9a43-db0dc11a3bba' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Lower bound of wind speed bins [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([[[ 3.1539251 , 4.41549514, 5.67706517, ..., 28.38532587,\n", " 29.64689591, 30.90846595],\n", " [ 3.16902157, 4.4366302 , 5.70423883, ..., 28.52119414,\n", " 29.78880276, 31.05641139],\n", @@ -1811,7 +1811,7 @@ " [ 2.4711669 , 3.45963366, 4.44810042, ..., 22.24050209,\n", " 23.22896885, 24.21743561],\n", " [ 2.45943147, 3.44320406, 4.42697665, ..., 22.13488325,\n", - " 23.11865584, 24.10242843]]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ws_upper</span></div><div class='xr-var-dims'>(i, wd, ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>4.415 5.677 6.939 ... 24.1 25.09</div><input id='attrs-60efd34b-1922-4803-abf0-b22cb16f2cb7' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-60efd34b-1922-4803-abf0-b22cb16f2cb7' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-845ab738-d73d-47d6-ba39-331a84f84a6c' class='xr-var-data-in' type='checkbox'><label for='data-845ab738-d73d-47d6-ba39-331a84f84a6c' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Upper bound of wind speed bins [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([[[ 4.41549514, 5.67706517, 6.93863521, ..., 29.64689591,\n", + " 23.11865584, 24.10242843]]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>ws_upper</span></div><div class='xr-var-dims'>(i, wd, ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>4.415 5.677 6.939 ... 24.1 25.09</div><input id='attrs-672bafe0-7b92-4973-9266-cf156db70768' class='xr-var-attrs-in' type='checkbox' ><label for='attrs-672bafe0-7b92-4973-9266-cf156db70768' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c855d0f8-2e02-4c70-b2ec-c361150d7934' class='xr-var-data-in' type='checkbox'><label for='data-c855d0f8-2e02-4c70-b2ec-c361150d7934' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'><dt><span>Description :</span></dt><dd>Upper bound of wind speed bins [m/s]</dd></dl></div><div class='xr-var-data'><pre>array([[[ 4.41549514, 5.67706517, 6.93863521, ..., 29.64689591,\n", " 30.90846595, 32.17003598],\n", " [ 4.4366302 , 5.70423883, 6.97184746, ..., 29.78880276,\n", " 31.05641139, 32.32402002],\n", @@ -1851,7 +1851,7 @@ " [ 3.45963366, 4.44810042, 5.43656718, ..., 23.22896885,\n", " 24.21743561, 25.20590236],\n", " [ 3.44320406, 4.42697665, 5.41074924, ..., 23.11865584,\n", - " 24.10242843, 25.08620102]]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Weibull_A</span></div><div class='xr-var-dims'>(i, wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>5.363 5.365 5.368 ... 4.341 4.3</div><input id='attrs-4c4f0299-d5c1-4fdd-aaf4-ee5e151fb9a0' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-4c4f0299-d5c1-4fdd-aaf4-ee5e151fb9a0' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-7fe45528-0cf5-488a-8284-c9959d982ad2' class='xr-var-data-in' type='checkbox'><label for='data-7fe45528-0cf5-488a-8284-c9959d982ad2' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[5.36329654, 5.36544634, 5.36759614, ..., 5.38177124, 5.375613 ,\n", + " 24.10242843, 25.08620102]]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Weibull_A</span></div><div class='xr-var-dims'>(i, wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>5.363 5.365 5.368 ... 4.341 4.3</div><input id='attrs-b0f358e1-99fe-4cb7-b39a-5824e62c0e90' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-b0f358e1-99fe-4cb7-b39a-5824e62c0e90' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-aecc875f-9d6c-4949-a364-183167e599bd' class='xr-var-data-in' type='checkbox'><label for='data-aecc875f-9d6c-4949-a364-183167e599bd' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[5.36329654, 5.36544634, 5.36759614, ..., 5.38177124, 5.375613 ,\n", " 5.36945477],\n", " [5.60655692, 5.60626915, 5.60598139, ..., 5.64506493, 5.63222893,\n", " 5.61939292],\n", @@ -1863,7 +1863,7 @@ " [4.23407851, 4.22974152, 4.22540453, ..., 4.33164657, 4.29912389,\n", " 4.2666012 ],\n", " [4.25995289, 4.25395059, 4.24794828, ..., 4.38158859, 4.34104336,\n", - " 4.30049813]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Weibull_k</span></div><div class='xr-var-dims'>(i, wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>1.807 1.815 1.822 ... 1.835 1.842</div><input id='attrs-472bb851-5d5a-4ec1-a79f-ba24745b2cde' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-472bb851-5d5a-4ec1-a79f-ba24745b2cde' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-e53b6d24-78c5-4960-99f9-f42171bd3771' class='xr-var-data-in' type='checkbox'><label for='data-e53b6d24-78c5-4960-99f9-f42171bd3771' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[1.80697266, 1.81456996, 1.82216725, ..., 1.79064808, 1.79608961,\n", + " 4.30049813]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Weibull_k</span></div><div class='xr-var-dims'>(i, wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>1.807 1.815 1.822 ... 1.835 1.842</div><input id='attrs-eee8ad7b-eddc-4a9e-be76-285ec5402e58' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-eee8ad7b-eddc-4a9e-be76-285ec5402e58' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-00099ab9-ba1a-44af-ba36-cf204e5fa6e9' class='xr-var-data-in' type='checkbox'><label for='data-00099ab9-ba1a-44af-ba36-cf204e5fa6e9' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[1.80697266, 1.81456996, 1.82216725, ..., 1.79064808, 1.79608961,\n", " 1.80153114],\n", " [1.82112591, 1.82866603, 1.83620615, ..., 1.803386 , 1.80929931,\n", " 1.81521261],\n", @@ -1875,7 +1875,7 @@ " [1.849609 , 1.85673157, 1.86385414, ..., 1.82759467, 1.83493278,\n", " 1.84227089],\n", " [1.849609 , 1.85645788, 1.86330676, ..., 1.82746597, 1.83484698,\n", - " 1.84222799]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Sector_frequency</span></div><div class='xr-var-dims'>(i, wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.001768 0.001752 ... 0.001479</div><input id='attrs-34fed13e-16cc-4a9b-aec3-73f089b25d67' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-34fed13e-16cc-4a9b-aec3-73f089b25d67' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-597f3171-ca5c-4392-beea-f1d37917d8ab' class='xr-var-data-in' type='checkbox'><label for='data-597f3171-ca5c-4392-beea-f1d37917d8ab' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[0.00176769, 0.00175165, 0.00173562, ..., 0.00180431, 0.0017921 ,\n", + " 1.84222799]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>Sector_frequency</span></div><div class='xr-var-dims'>(i, wd)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.001768 0.001752 ... 0.001479</div><input id='attrs-809281d4-2140-4784-8233-53023f81ed2e' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-809281d4-2140-4784-8233-53023f81ed2e' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c029bdf1-0d81-4b19-92e6-7f3400c79989' class='xr-var-data-in' type='checkbox'><label for='data-c029bdf1-0d81-4b19-92e6-7f3400c79989' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[0.00176769, 0.00175165, 0.00173562, ..., 0.00180431, 0.0017921 ,\n", " 0.0017799 ],\n", " [0.00173662, 0.00171897, 0.00170132, ..., 0.00178367, 0.00176799,\n", " 0.00175231],\n", @@ -1887,7 +1887,7 @@ " [0.00139508, 0.00137751, 0.00135993, ..., 0.00147543, 0.00144865,\n", " 0.00142186],\n", " [0.00144547, 0.00142813, 0.00141079, ..., 0.00154504, 0.00151185,\n", - " 0.00147866]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>P</span></div><div class='xr-var-dims'>(i, wd, ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.0003305 0.0002909 ... 5.015e-14</div><input id='attrs-ca5710d0-226f-4924-b883-c9a3e9a1591b' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-ca5710d0-226f-4924-b883-c9a3e9a1591b' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-cf496133-4225-4b45-87f9-13c65a4401a2' class='xr-var-data-in' type='checkbox'><label for='data-cf496133-4225-4b45-87f9-13c65a4401a2' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[[3.30521189e-04, 2.90945174e-04, 2.24051965e-04, ...,\n", + " 0.00147866]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>P</span></div><div class='xr-var-dims'>(i, wd, ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.0003305 0.0002909 ... 5.015e-14</div><input id='attrs-bec35fd7-7270-460f-904a-b4dd5507a836' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-bec35fd7-7270-460f-904a-b4dd5507a836' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-c2a2ad7f-9314-4bc5-be3a-c147116e5dae' class='xr-var-data-in' type='checkbox'><label for='data-c2a2ad7f-9314-4bc5-be3a-c147116e5dae' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[[3.30521189e-04, 2.90945174e-04, 2.24051965e-04, ...,\n", " 2.17151164e-12, 4.18358259e-13, 7.59823194e-14],\n", " [3.29678728e-04, 2.89724248e-04, 2.22255957e-04, ...,\n", " 1.42378793e-12, 2.62971871e-13, 4.56948366e-14],\n", @@ -1927,7 +1927,7 @@ " [2.77506454e-04, 2.50543880e-04, 1.97741116e-04, ...,\n", " 2.42517629e-12, 4.65286805e-13, 8.39650246e-14],\n", " [2.73260191e-04, 2.46314760e-04, 1.93680118e-04, ...,\n", - " 1.57862026e-12, 2.90422137e-13, 5.01516262e-14]]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>TI</span></div><div class='xr-var-dims'>(i, wd, ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.2759 0.2326 ... 0.1616 0.1605</div><input id='attrs-48a981a8-ae9a-458d-8848-3b237f6bedda' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-48a981a8-ae9a-458d-8848-3b237f6bedda' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-37c46e96-6040-4ef8-8efa-742285de0413' class='xr-var-data-in' type='checkbox'><label for='data-37c46e96-6040-4ef8-8efa-742285de0413' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[[0.27587318, 0.23255425, 0.20656289, ..., 0.12519864,\n", + " 1.57862026e-12, 2.90422137e-13, 5.01516262e-14]]])</pre></div></li><li class='xr-var-item'><div class='xr-var-name'><span>TI</span></div><div class='xr-var-dims'>(i, wd, ws)</div><div class='xr-var-dtype'>float64</div><div class='xr-var-preview xr-preview'>0.2759 0.2326 ... 0.1616 0.1605</div><input id='attrs-fc024a9d-5cfc-4081-b1b3-1eaad6ca9aee' class='xr-var-attrs-in' type='checkbox' disabled><label for='attrs-fc024a9d-5cfc-4081-b1b3-1eaad6ca9aee' title='Show/Hide attributes'><svg class='icon xr-icon-file-text2'><use xlink:href='#icon-file-text2'></use></svg></label><input id='data-ab3bae94-e7a4-4fca-98b0-3bdfbf5c5f62' class='xr-var-data-in' type='checkbox'><label for='data-ab3bae94-e7a4-4fca-98b0-3bdfbf5c5f62' title='Show/Hide data repr'><svg class='icon xr-icon-database'><use xlink:href='#icon-database'></use></svg></label><div class='xr-var-attrs'><dl class='xr-attrs'></dl></div><div class='xr-var-data'><pre>array([[[0.27587318, 0.23255425, 0.20656289, ..., 0.12519864,\n", " 0.12425693, 0.12339055],\n", " [0.27504327, 0.23185466, 0.20594149, ..., 0.12482201,\n", " 0.12388313, 0.12301936],\n", @@ -1967,7 +1967,7 @@ " [0.3569877 , 0.30093178, 0.26729823, ..., 0.16201059,\n", " 0.16079198, 0.15967086],\n", " [0.35888669, 0.30253258, 0.26872012, ..., 0.1628724 ,\n", - " 0.16164731, 0.16052023]]])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-6a3f2f3e-ac1a-4692-932a-f0d587e7b8dc' class='xr-section-summary-in' type='checkbox' checked><label for='section-6a3f2f3e-ac1a-4692-932a-f0d587e7b8dc' class='xr-section-summary' >Attributes: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>wd_bin_size :</span></dt><dd>1</dd></dl></div></li></ul></div></div>" + " 0.16164731, 0.16052023]]])</pre></div></li></ul></div></li><li class='xr-section-item'><input id='section-e183629e-3f2b-412d-af56-76776ab5fe2a' class='xr-section-summary-in' type='checkbox' checked><label for='section-e183629e-3f2b-412d-af56-76776ab5fe2a' class='xr-section-summary' >Attributes: <span>(1)</span></label><div class='xr-section-inline-details'></div><div class='xr-section-details'><dl class='xr-attrs'><dt><span>wd_bin_size :</span></dt><dd>1</dd></dl></div></li></ul></div></div>" ], "text/plain": [ "<xarray.LocalWind>\n", @@ -2135,7 +2135,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -2170,7 +2170,7 @@ " print (\"------- %s -------\"%name)\n", " wt_x, wt_y = site.initial_position[0]\n", " site.distance.setup(src_x_i=[wt_x, wt_x], src_y_i=[wt_y, wt_y-1000], src_h_i=[70,90]) # wt2 1000m to the south)\n", - " dw_ijl, cw_ijl, dh_ijl = site.distance(wd_il=[wd], src_idx=[0], dst_idx=[1])\n", + " dw_ijl, cw_ijl, dh_ijl = site.distance(WD_il=[wd], src_idx=[0], dst_idx=[1])\n", " \n", "\n", " print ('Wind direction: \\t\\t%d deg\\t\\t%d deg\\t\\t%d deg'%tuple(wd))\n", @@ -2197,7 +2197,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ @@ -2207,7 +2207,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -2229,7 +2229,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -2251,7 +2251,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -2270,6 +2270,13 @@ "source": [ "_ = site.plot_ws_distribution(wd=[0,90,180,270], include_wd_distribution=True)" ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { diff --git a/py_wake/site/_site.py b/py_wake/site/_site.py index 97e6ac635..b5ae2f870 100644 --- a/py_wake/site/_site.py +++ b/py_wake/site/_site.py @@ -190,8 +190,8 @@ class Site(ABC): Probability/weight """ - def wt2wt_distances(self, wd_il): - return self.distance(wd_il) + def wt2wt_distances(self, WD_il): + return self.distance(WD_il) @abstractmethod def elevation(self, x_i, y_i): diff --git a/py_wake/site/distance.py b/py_wake/site/distance.py index 7f131ee21..073ea6cfe 100644 --- a/py_wake/site/distance.py +++ b/py_wake/site/distance.py @@ -58,18 +58,18 @@ class StraightDistance(): self.src_eq_dst = False self.dst_x_j, self.dst_y_j, self.dst_h_j = dst_x_j, dst_y_j, dst_h_j - def __call__(self, wd_il, src_idx=slice(None), dst_idx=slice(None)): + def __call__(self, WD_il, wd_l=None, src_idx=slice(None), dst_idx=slice(None)): assert hasattr(self, 'dx_ij'), "method setup must be called first" - if len(np.shape(wd_il)) == 1: - cos_l, sin_l = self._cos_sin(wd_il) + if len(np.shape(WD_il)) == 1: + cos_l, sin_l = self._cos_sin(WD_il) dx_ij, dy_ij = self.dx_ii[src_idx, dst_idx], self.dy_ii[src_idx, dst_idx] dw_jl = (-cos_l[na] * dx_ij - sin_l[na] * dy_ij) hcw_jl = (sin_l[na] * dx_ij - cos_l[na] * dy_ij) return dw_jl, hcw_jl, self.dh_ii[src_idx, dst_idx] else: - # wd_il + # WD_il # mean over all source points - wd_l = mean_deg(wd_il, (0)) + wd_l = mean_deg(WD_il, (0)) wd_ijl = wd_l[na, na] cos_ijl, sin_ijl = self._cos_sin(wd_ijl) dx_ijl = self.dx_ij[src_idx][:, dst_idx][:, :, na] @@ -77,7 +77,7 @@ class StraightDistance(): dw_ijl = -cos_ijl * dx_ijl - sin_ijl * dy_ijl hcw_ijl = sin_ijl * dx_ijl - cos_ijl * dy_ijl - dh_ijl = np.broadcast_to(self.dh_ij[src_idx][:, dst_idx][:, :, na], dw_ijl.shape) + dh_ijl = np.broadcast_to(self.dh_ij[src_idx][:, dst_idx][:, :, na], dw_ijl.shape).copy() return dw_ijl, hcw_ijl, dh_ijl def dw_order_indices(self, wd_l): @@ -132,19 +132,19 @@ class TerrainFollowingDistance(StraightDistance): self.d_ij = d_ij self.theta_ij = np.arctan2(self.dst_y_j - self.src_y_i[:, na], self.dst_x_j - self.src_x_i[:, na]) - def __call__(self, wd_il, src_idx=slice(None), dst_idx=slice(None)): + def __call__(self, WD_il, wd_l=None, src_idx=slice(None), dst_idx=slice(None)): # instead of projecting the distances onto first x,y and then onto down wind direction # we offset the wind direction by the direction between source and destination - _, hcw_ijl, dh_ijl = StraightDistance.__call__(self, wd_il, src_idx, dst_idx) - if len(np.shape(wd_il)) == 1: + _, hcw_ijl, dh_ijl = StraightDistance.__call__(self, WD_il, src_idx=src_idx, dst_idx=dst_idx) + if len(np.shape(WD_il)) == 1: dir_ij = 90 - np.rad2deg(self.theta_ij[src_idx, dst_idx]) - wdir_offset_ij = np.asarray(wd_il)[na] - dir_ij + wdir_offset_ij = np.asarray(WD_il)[na] - dir_ij theta_ij = np.deg2rad(90 - wdir_offset_ij) sin_ij = np.sin(theta_ij) dw_ijl = - sin_ij * self.d_ij[src_idx, dst_idx] else: dir_ij = 90 - np.rad2deg(self.theta_ij[src_idx, ][:, dst_idx]) - wdir_offset_ijl = np.asarray(wd_il)[:, na] - dir_ij[:, :, na] + wdir_offset_ijl = np.asarray(WD_il)[:, na] - dir_ij[:, :, na] theta_ijl = np.deg2rad(90 - wdir_offset_ijl) sin_ijl = np.sin(theta_ijl) dw_ijl = - sin_ijl * self.d_ij[src_idx][:, dst_idx][:, :, na] @@ -160,12 +160,12 @@ class TerrainFollowingDistance2(): self.calc_all = calc_all self.terrain_step = terrain_step - def __call__(self, wd_il): + def __call__(self, WD_il): if not self.src_x_i.shape == self.dst_x_j.shape or not np.allclose(self.src_x_i, self.dst_x_j): raise NotImplementedError( 'Different source and destination postions are not yet implemented for the terrain following distance calculation') return self.cal_dist_terrain_following(self.site, self.src_x_i, self.src_y_i, self.src_h_i, - self.dst_x_j, self.dst_y_j, self.dst_h_j, wd_il, + self.dst_x_j, self.dst_y_j, self.dst_h_j, WD_il, self.terrain_step, self.calc_all) def setup(self, src_x_i, src_y_i, src_h_i, dst_xyh_j=None): diff --git a/py_wake/site/jit_streamline_distance.py b/py_wake/site/jit_streamline_distance.py new file mode 100644 index 000000000..fb09413d4 --- /dev/null +++ b/py_wake/site/jit_streamline_distance.py @@ -0,0 +1,88 @@ +from py_wake.site.distance import StraightDistance +import numpy as np +from numpy import newaxis as na +import matplotlib.pyplot as plt +from py_wake.examples.data.ParqueFicticio._parque_ficticio import ParqueFicticioSite +from py_wake.examples.data.hornsrev1 import V80 +from py_wake.deficit_models.noj import NOJ +from py_wake.flow_map import XYGrid +from py_wake.utils.streamline import VectorField3D + + +class JITStreamlineDistance(StraightDistance): + """Just-In-Time Streamline Distance + Calculates downwind crosswind and vertical distance along streamlines. + Streamlines calculated in each call + """ + + def __init__(self, vectorField, step_size=20): + """Parameters + ---------- + vectorField : VectorField3d + step_size : int for float + Size of linear streamline steps + """ + self.vectorField = vectorField + self.step_size = step_size + + def __call__(self, wd_l, WD_il, src_idx=slice(None), dst_idx=slice(None)): + start_points_m = np.array([self.src_x_i[src_idx], self.src_y_i[src_idx], self.src_h_i[src_idx]]).T + + if len(np.shape(WD_il)) == 1: + dw_jl, hcw_jl, dh_jl = StraightDistance.__call__(self, WD_il=wd_l, src_idx=src_idx, dst_idx=dst_idx) + dw_mj, hcw_mj, dh_mj = [np.moveaxis(v, 0, 1) for v in [dw_jl, hcw_jl, dh_jl]] + wd_m = wd_l + else: + # WD_il + dw_ijl, hcw_ijl, dh_ijl = StraightDistance.__call__(self, WD_il=wd_l[na], src_idx=src_idx, dst_idx=dst_idx) + I, J, L = dw_ijl.shape + dw_mj, hcw_mj, dh_mj = [np.moveaxis(v, 1, 2).reshape(I * L, J) for v in [dw_ijl, hcw_ijl, dh_ijl]] + wd_m = np.tile(wd_l, I) + start_points_m = np.repeat(start_points_m, L, 0) + + stream_lines = self.vectorField.stream_lines(wd_m, start_points=start_points_m, dw_stop=dw_mj.max(1), + step_size=self.step_size) + + dxyz = np.diff(np.concatenate([stream_lines[:, :1], stream_lines], 1), 1, -2) + length_is = np.cumsum(np.sqrt(np.sum(dxyz**2, -1)), -1) + dist_xyz = stream_lines - start_points_m[:, na] + t = np.deg2rad(270 - wd_m)[:, na] + dw_is = dist_xyz[:, :, 0] * np.cos(t) + dist_xyz[:, :, 1] * np.sin(t) + hcw_is = dist_xyz[:, :, 0] * np.sin(t) - dist_xyz[:, :, 1] * np.cos(t) + + for m, (dw_j, dw_s, hcw_s, dh_s, length_s) in enumerate( + zip(dw_mj, dw_is, hcw_is, dist_xyz[:, :, 2], length_is)): + dw = dw_j > 0 + hcw_mj[m, dw] += np.interp(dw_j[dw], dw_s, hcw_s) + dh_mj[m, dw] = np.interp(dw_j[dw], dw_s, dh_s) + dw_mj[m, dw] = np.interp(dw_j[dw], dw_s, length_s) + + if len(np.shape(WD_il)) == 1: + return [np.moveaxis(v, 0, 1) for v in [dw_mj, hcw_mj, dh_mj]] + else: + return [v.reshape((I, J, L)) for v in [dw_mj, hcw_mj, dh_mj]] + + +def main(): + if __name__ == '__main__': + site = ParqueFicticioSite() + wt = V80() + vf3d = VectorField3D.from_WaspGridSite(site) + site.distance = JITStreamlineDistance(vf3d) + + x, y = site.initial_position[:].T + wfm = NOJ(site, wt) + wd = 330 + sim_res = wfm(x, y, wd=[wd], ws=10) + fm = sim_res.flow_map(XYGrid(x=np.linspace(site.ds.x[0], site.ds.x[-1], 500), + y=np.linspace(site.ds.y[0], site.ds.y[-1], 500))) + stream_lines = vf3d.stream_lines(wd=np.full(x.shape, wd), start_points=np.array([x, y, np.full(x.shape, 70)]).T, + dw_stop=y - 6504700) + fm.plot_wake_map() + for sl in stream_lines: + plt.plot(sl[:, 0], sl[:, 1]) + + plt.show() + + +main() diff --git a/py_wake/tests/test_sites/test_distances.py b/py_wake/tests/test_sites/test_distances.py index 1c9e3a1dc..c297e2ca5 100644 --- a/py_wake/tests/test_sites/test_distances.py +++ b/py_wake/tests/test_sites/test_distances.py @@ -7,10 +7,12 @@ import pytest from py_wake.examples.data.iea37._iea37 import IEA37_WindTurbines from py_wake import NOJ from py_wake.examples.data.ParqueFicticio import ParqueFicticioSite -from py_wake.flow_map import HorizontalGrid +from py_wake.flow_map import HorizontalGrid, XYGrid import matplotlib.pyplot as plt from py_wake.tests.check_speed import timeit from py_wake.examples.data.hornsrev1 import Hornsrev1Site +from py_wake.utils.streamline import VectorField3D +from py_wake.site.jit_streamline_distance import JITStreamlineDistance class FlatSite(UniformSite): @@ -51,7 +53,7 @@ def test_flat_distances(distance): site = FlatSite(distance=distance) site.distance.setup(src_x_i=x, src_y_i=y, src_h_i=h) - dw_ijl, hcw_ijl, dh_ijl = site.distance(wd_il=np.array(wdirs)[na], src_idx=[0, 1, 2, 3], dst_idx=[4]) + dw_ijl, hcw_ijl, dh_ijl = site.distance(WD_il=np.array(wdirs)[na], src_idx=[0, 1, 2, 3], dst_idx=[4]) dw_indices_l = site.distance.dw_order_indices(np.array(wdirs)) if 0: @@ -85,7 +87,7 @@ def test_flat_distances_src_neq_dst(distance): site = FlatSite(distance=distance) site.distance.setup(src_x_i=x, src_y_i=y, src_h_i=h, dst_xyh_j=(x, y, [1, 2, 3])) - dw_ijl, hcw_ijl, dh_ijl = site.distance(wd_il=np.array(wdirs)[na]) + dw_ijl, hcw_ijl, dh_ijl = site.distance(WD_il=np.array(wdirs)[na]) dw_indices_l = distance.dw_order_indices(wdirs) if 0: distance.plot(wd_il=np.array(wdirs)[na]) @@ -124,7 +126,7 @@ def test_iea37_distances(): wd=site.default_wd, ws=site.default_ws) site.distance.setup(x, y, np.zeros_like(x)) - dw_iil, hcw_iil, _ = site.wt2wt_distances(wd_il=lw.WD_ilk.mean(2)) + dw_iil, hcw_iil, _ = site.wt2wt_distances(WD_il=lw.WD_ilk.mean(2)) # Wind direction. wdir = np.rad2deg(np.arctan2(hcw_iil, dw_iil)) npt.assert_allclose( @@ -150,7 +152,7 @@ def test_terrain_following_half_cylinder(): hc.distance.setup(src_x_i=src_x, src_y_i=src_y, src_h_i=src_x * 0, dst_xyh_j=(dst_x, dst_y, dst_x * 0)) - dw_ijl, hcw_ijl, _ = hc.distance(wd_il=np.array([0, 90])[na]) + dw_ijl, hcw_ijl, _ = hc.distance(WD_il=np.array([0, 90])[na]) if 0: plt.plot(x, hc.elevation(x_i=x, y_i=x * 0)) @@ -235,7 +237,7 @@ def test_distances_ri(): site.r_i = np.ones(len(x)) * 90 site.distance.setup(src_x_i=x, src_y_i=y, src_h_i=np.array([70]), dst_xyh_j=(x, y, np.array([70]))) - dw_ijl, cw_ijl, dh_ijl = site.distance(wd_il=np.array([[180]])) + dw_ijl, cw_ijl, dh_ijl = site.distance(WD_il=np.array([[180]])) npt.assert_almost_equal(dw_ijl[0, :, 0], np.array([0., -207., -477., -710., -1016., -1236., -1456., -1799.])) npt.assert_almost_equal(cw_ijl[:, 1, 0], np.array([-236.1, 0., 131.1, 167.8, 204.5, 131.1, 131.1, 45.4])) npt.assert_almost_equal(dh_ijl, np.zeros_like(dh_ijl)) @@ -249,7 +251,7 @@ def test_distance2_outside_map_WestEast(): y = h + 6505450 site.distance.setup(src_x_i=x, src_y_i=y, src_h_i=h, dst_xyh_j=(x, y, h * 0)) - dw = site.distance(wd_il=[270])[0] + dw = site.distance(WD_il=[270])[0] if 0: site.ds.Elevation.plot() @@ -268,7 +270,7 @@ def test_distance2_outside_map_NorthSouth(): x = h + 264200 site.distance.setup(src_x_i=x, src_y_i=y, src_h_i=h, dst_xyh_j=(x, y, h * 0)) - dw = site.distance(wd_il=[180])[0] + dw = site.distance(WD_il=[180])[0] if 0: site.ds.Elevation.plot() @@ -278,3 +280,32 @@ def test_distance2_outside_map_NorthSouth(): plt.show() # distance between points should be >500 m due to terrain, except last point which is outside map npt.assert_array_equal(np.round(np.diff(dw[0, :, 0])), [510, 505, 507, 500]) + + +def test_JITStreamlinesparquefictio(): + site = ParqueFicticioSite() + wt = IEA37_WindTurbines() + vf3d = VectorField3D.from_WaspGridSite(site) + site.distance = JITStreamlineDistance(vf3d) + + x, y = site.initial_position[:].T + wfm = NOJ(site, wt) + wd = np.array([330]) + sim_res = wfm(x, y, wd=wd, ws=10) + dw = site.distance(wd_l=wd, WD_il=np.repeat(wd[na], len(x), 0))[0][:, :, 0] + # streamline downwind distance (positive numbers, upper triangle) cannot be shorter than + # straight line distances in opposite direction (negative numbers, lower triangle) + assert (dw + dw.T).min() >= 0 + # average downwind distance increase around 5 m + npt.assert_almost_equal((dw + dw.T).mean(), 5, 0) + + fm = sim_res.flow_map(XYGrid(x=np.linspace(site.ds.x[0], site.ds.x[-1], 500), + y=np.linspace(site.ds.y[0], site.ds.y[-1], 500))) + stream_lines = vf3d.stream_lines(wd=np.full(x.shape, wd), start_points=np.array([x, y, np.full(x.shape, 70)]).T, + dw_stop=y - 6504700) + if 0: + fm.plot_wake_map() + for sl in stream_lines: + plt.plot(sl[:, 0], sl[:, 1]) + + plt.show() diff --git a/py_wake/tests/test_sites/test_site.py b/py_wake/tests/test_sites/test_site.py index 08208bef4..7365b1597 100644 --- a/py_wake/tests/test_sites/test_site.py +++ b/py_wake/tests/test_sites/test_site.py @@ -219,7 +219,7 @@ def test_iea37_distances(): wd=site.default_wd, ws=site.default_ws) site.distance.setup(x, y, np.zeros_like(x)) - dw_iil, hcw_iil, _ = site.wt2wt_distances(wd_il=lw.WD_ilk.mean(2)) + dw_iil, hcw_iil, _ = site.wt2wt_distances(WD_il=lw.WD_ilk.mean(2)) # Wind direction. wdir = np.rad2deg(np.arctan2(hcw_iil, dw_iil)) npt.assert_allclose( diff --git a/py_wake/tests/test_sites/test_wasp_grid_site.py b/py_wake/tests/test_sites/test_wasp_grid_site.py index 5c1b4554c..e755a2d2e 100644 --- a/py_wake/tests/test_sites/test_wasp_grid_site.py +++ b/py_wake/tests/test_sites/test_wasp_grid_site.py @@ -198,7 +198,7 @@ def test_distances(site, dw_ref): x, y = site.initial_position.T site.distance.setup(src_x_i=x, src_y_i=y, src_h_i=np.array([70]), dst_xyh_j=(x, y, np.array([70]))) - dw_ijl, cw_ijl, dh_ijl = site.distance(wd_il=np.array([[0]])) + dw_ijl, cw_ijl, dh_ijl = site.distance(WD_il=np.array([[0]])) npt.assert_almost_equal(dw_ijl[0, :, 0], dw_ref) cw_ref = [236.1, 0., -131.1, -167.8, -204.5, -131.1, -131.1, -45.4] @@ -211,7 +211,7 @@ def test_distances_different_points(site2): with pytest.raises(NotImplementedError): site.distance.setup(src_x_i=x, src_y_i=y, src_h_i=np.array([70]), dst_xyh_j=(x[1:], y[1:], np.array([70]))) - site.distance(wd_il=np.array([[0]])) + site.distance(WD_il=np.array([[0]])) # def test_distances_wd_shape(): diff --git a/py_wake/utils/model_utils.py b/py_wake/utils/model_utils.py index 702767f8b..76895c646 100644 --- a/py_wake/utils/model_utils.py +++ b/py_wake/utils/model_utils.py @@ -118,7 +118,7 @@ def get_model_input(wfm, x, y, ws=10, wd=270, yaw=[[[0]]], tilt=[[[0]]]): x, y = map(np.asarray, [x, y]) wfm.site.distance.setup(src_x_i=[0], src_y_i=[0], src_h_i=[0], dst_xyh_j=(x, y, x * 0)) - dw_ijl, hcw_ijl, dh_ijl = wfm.site.distance(wd_il=wd[na]) + dw_ijl, hcw_ijl, dh_ijl = wfm.site.distance(WD_il=wd[na]) sim_res = wfm([0], [0], ws=ws, wd=wd, yaw=yaw) args = {'dw_ijl': dw_ijl, 'hcw_ijl': hcw_ijl, 'dh_ijl': dh_ijl, diff --git a/py_wake/utils/streamline.py b/py_wake/utils/streamline.py new file mode 100644 index 000000000..aa0119d03 --- /dev/null +++ b/py_wake/utils/streamline.py @@ -0,0 +1,51 @@ +from py_wake.utils.grid_interpolator import GridInterpolator +import numpy as np +from numpy import newaxis as na +import xarray as xr + + +class VectorField3D(): + def __init__(self, da): + da = da[:, :-1] + self.da = da + self.interpolator = GridInterpolator( + [da.wd.values, da.x.values, da.y.values, da.h.values], da.values, method='linear') + vy = property(lambda self: self.da.sel(v_xyz=0)) + vx = property(lambda self: self.da.sel(v_xyz=1)) + vw = property(lambda self: self.da.sel(v_xyz=2)) + x = property(lambda self: self.da.x.values) + y = property(lambda self: self.da.y.values) + z = property(lambda self: self.da.y.values) + + def __call__(self, wd, x, y, h): + return self.interpolator(np.array([np.atleast_1d(v) for v in [wd, x, y, h]]).T, bounds='limit') + + @staticmethod + def from_WaspGridSite(site): + ds = site.ds + alpha = np.deg2rad(270 - (ds.wd + ds.Turning)) + beta = np.deg2rad(ds.flow_inc) + + da = xr.concat([np.cos(alpha), np.sin(alpha), np.tan(beta)], 'v_xyz') * ds.Speedup + da.assign_coords(v_xyz=[0, 1, 2]) + return VectorField3D(da.transpose('wd', 'x', 'y', 'h', 'v_xyz')) + + def stream_lines(self, wd, start_points, dw_stop, step_size=20): + stream_lines = [start_points] + m = np.arange(len(wd)) + co, si = np.cos(np.deg2rad(270 - wd)), np.sin(np.deg2rad(270 - wd)) + for _ in range(1000): + p = stream_lines[-1].copy() + v = self(wd[m], p[m, 0], p[m, 1], p[m, 2]) + v = v / (np.sqrt(np.sum(v**2, -1)) / step_size)[:, na] # normalize vector distance to step_size + p[m] += v + p[m, 2] = np.maximum(p[m, 2], 0) # avoid underground flow + stream_lines.append(p) + + # calculate downwind distance and update m (mask of streamlines to continue) + dist = (p[m, :2] - start_points[m, :2]) + dw = dist[:, 0] * co[m] + dist[:, 1] * si[m] + m = m[dw < dw_stop[m]] + if len(m) == 0: + break + return np.moveaxis(stream_lines, 0, 1).reshape((len(wd), -1, 3)) diff --git a/py_wake/wind_farm_models/engineering_models.py b/py_wake/wind_farm_models/engineering_models.py index ae2c095ba..20be91100 100644 --- a/py_wake/wind_farm_models/engineering_models.py +++ b/py_wake/wind_farm_models/engineering_models.py @@ -270,7 +270,8 @@ class EngineeringWindFarmModel(WindFarmModel): for l in tqdm(range(L), disable=L <= 1 or not self.verbose, desc='Calculate flow map', unit='wd'): - dw_ijl, hcw_ijl, dh_ijl = self.site.distance(wd_il=sim_res_data.WD.ilk((I, L, K))[:, l:l + 1, :].mean(2)) + dw_ijl, hcw_ijl, dh_ijl = self.site.distance( + wd_l=sim_res_data.wd[l:l + 1].values, WD_il=sim_res_data.WD.ilk((I, L, K))[:, l:l + 1, :].mean(2)) if self.wec != 1: hcw_ijl = hcw_ijl / self.wec @@ -544,7 +545,8 @@ class PropagateDownwind(EngineeringWindFarmModel): i_dw = dw_order_indices_dl[:, j + 1:] - dw_jl, hcw_jl, dh_jl = self.site.distance(wd, src_idx=i_wt_l, dst_idx=i_dw.T) + dw_jl, hcw_jl, dh_jl = self.site.distance( + wd_l=lw.wd.values, WD_il=wd, src_idx=i_wt_l, dst_idx=i_dw.T) if self.wec != 1: hcw_jl = hcw_jl / self.wec @@ -644,7 +646,7 @@ class All2AllIterative(EngineeringWindFarmModel): I, L, K, **kwargs): lw = localWind WS_eff_ilk_last = WS_eff_ilk.copy() - dw_iil, hcw_iil, dh_iil = self.site.distance(mean_deg(lw.WD_ilk, 2)) + dw_iil, hcw_iil, dh_iil = self.site.distance(wd_l=lw.wd.values, WD_il=mean_deg(lw.WD_ilk, 2)) ct_ilk = self.windTurbines.ct(lw.WS.ilk((I, L, K)), **kwargs) D_src_il = D_i[:, na] -- GitLab