foxes 1.2.2__py3-none-any.whl → 1.2.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of foxes might be problematic. Click here for more details.

Files changed (63) hide show
  1. examples/field_data_nc/run.py +11 -4
  2. examples/streamline_wakes/run.py +6 -3
  3. foxes/algorithms/downwind/downwind.py +1 -0
  4. foxes/config/__init__.py +1 -1
  5. foxes/config/config.py +80 -14
  6. foxes/constants.py +12 -1
  7. foxes/core/algorithm.py +13 -8
  8. foxes/core/engine.py +30 -0
  9. foxes/core/farm_controller.py +41 -24
  10. foxes/core/states.py +1 -1
  11. foxes/core/wind_farm.py +109 -0
  12. foxes/engines/dask.py +88 -4
  13. foxes/engines/default.py +45 -2
  14. foxes/engines/mpi.py +5 -16
  15. foxes/engines/multiprocess.py +1 -10
  16. foxes/engines/numpy.py +30 -0
  17. foxes/engines/pool.py +48 -0
  18. foxes/engines/ray.py +1 -1
  19. foxes/engines/single.py +30 -0
  20. foxes/input/farm_layout/from_csv.py +2 -2
  21. foxes/input/farm_layout/from_file.py +2 -2
  22. foxes/input/farm_layout/from_json.py +2 -2
  23. foxes/input/states/__init__.py +0 -1
  24. foxes/input/states/create/random_abl_states.py +2 -2
  25. foxes/input/states/field_data_nc.py +286 -141
  26. foxes/input/states/multi_height.py +3 -3
  27. foxes/input/states/states_table.py +3 -3
  28. foxes/input/yaml/dict.py +83 -46
  29. foxes/input/yaml/windio/__init__.py +2 -1
  30. foxes/input/yaml/windio/read_attributes.py +17 -34
  31. foxes/input/yaml/windio/read_farm.py +57 -3
  32. foxes/input/yaml/windio/read_outputs.py +116 -56
  33. foxes/input/yaml/windio/{get_states.py → read_site.py} +69 -0
  34. foxes/input/yaml/windio/windio.py +42 -119
  35. foxes/input/yaml/yaml.py +3 -3
  36. foxes/models/model_book.py +1 -0
  37. foxes/models/point_models/__init__.py +1 -0
  38. foxes/models/point_models/ustar2ti.py +84 -0
  39. foxes/models/turbine_models/lookup_table.py +2 -2
  40. foxes/models/turbine_models/sector_management.py +2 -2
  41. foxes/models/turbine_models/table_factors.py +2 -2
  42. foxes/models/turbine_types/CpCt_file.py +2 -2
  43. foxes/models/turbine_types/CpCt_from_two.py +3 -3
  44. foxes/models/turbine_types/PCt_file.py +2 -2
  45. foxes/models/turbine_types/PCt_from_two.py +3 -3
  46. foxes/models/turbine_types/TBL_file.py +2 -2
  47. foxes/models/turbine_types/wsrho2PCt_from_two.py +3 -3
  48. foxes/models/turbine_types/wsti2PCt_from_two.py +3 -3
  49. foxes/output/__init__.py +1 -0
  50. foxes/output/output.py +5 -3
  51. foxes/output/slice_data.py +1 -1
  52. foxes/output/slices_data.py +323 -0
  53. foxes/output/state_turbine_table.py +11 -0
  54. foxes/utils/load.py +12 -4
  55. foxes/utils/xarray_utils.py +14 -3
  56. foxes/variables.py +5 -0
  57. {foxes-1.2.2.dist-info → foxes-1.2.3.dist-info}/METADATA +6 -2
  58. {foxes-1.2.2.dist-info → foxes-1.2.3.dist-info}/RECORD +62 -61
  59. foxes/input/states/slice_data_nc.py +0 -687
  60. {foxes-1.2.2.dist-info → foxes-1.2.3.dist-info}/LICENSE +0 -0
  61. {foxes-1.2.2.dist-info → foxes-1.2.3.dist-info}/WHEEL +0 -0
  62. {foxes-1.2.2.dist-info → foxes-1.2.3.dist-info}/entry_points.txt +0 -0
  63. {foxes-1.2.2.dist-info → foxes-1.2.3.dist-info}/top_level.txt +0 -0
@@ -39,6 +39,8 @@ class StateTurbineTable(Output):
39
39
  variables,
40
40
  name_map={},
41
41
  to_file=None,
42
+ isel=None,
43
+ sel=None,
42
44
  **kwargs,
43
45
  ):
44
46
  """
@@ -52,6 +54,10 @@ class StateTurbineTable(Output):
52
54
  Map from foxes to output names
53
55
  to_file: str, optional
54
56
  Name of the output file, if writing is desired
57
+ isel: dict, optional
58
+ Parameters for xarray.Dataset.isel
59
+ sel: dict, optional
60
+ Parameters for xarray.Dataset.sel
55
61
  kwargs: dict, optional
56
62
  Additional parameters for write_nc
57
63
 
@@ -75,6 +81,11 @@ class StateTurbineTable(Output):
75
81
  },
76
82
  )
77
83
 
84
+ if isel is not None:
85
+ ds = ds.isel(**isel)
86
+ if sel is not None:
87
+ ds = ds.sel(**sel)
88
+
78
89
  if to_file is not None:
79
90
  fpath = self.get_fpath(to_file)
80
91
  write_nc(ds=ds, fpath=fpath, **kwargs)
foxes/utils/load.py CHANGED
@@ -3,7 +3,7 @@ import importlib.util
3
3
  import sys
4
4
 
5
5
 
6
- def import_module(name, package=None, hint=None):
6
+ def import_module(name, package=None, pip_hint=None, conda_hint=None):
7
7
  """
8
8
  Imports a module dynamically.
9
9
 
@@ -14,7 +14,9 @@ def import_module(name, package=None, hint=None):
14
14
  package: str, optional
15
15
  The explicit package name, deduced from name
16
16
  if not given
17
- hint: str, optional
17
+ pip_hint: str, optional
18
+ Installation advice, in case the import fails
19
+ conda_hint: str, optional
18
20
  Installation advice, in case the import fails
19
21
 
20
22
  Returns
@@ -29,8 +31,14 @@ def import_module(name, package=None, hint=None):
29
31
  return importlib.import_module(name, package)
30
32
  except ModuleNotFoundError:
31
33
  mdl = name if package is None else f"{package}.{name}"
32
- hint = hint if hint is not None else f"pip install {name}"
33
- raise ModuleNotFoundError(f"Module '{mdl}' not found, maybe try '{hint}'")
34
+ piph = pip_hint if pip_hint is not None else f"pip install {name}"
35
+ cndh = (
36
+ conda_hint
37
+ if conda_hint is not None
38
+ else f"conda install {name} -c conda-forge"
39
+ )
40
+ hts = " or ".join([f"'{h}'" for h in [piph, cndh] if len(h)])
41
+ raise ModuleNotFoundError(f"Module '{mdl}' not found, maybe try {hts}")
34
42
 
35
43
 
36
44
  def load_module(name, path):
@@ -1,10 +1,16 @@
1
- import netCDF4
2
1
  from pathlib import Path
3
2
 
4
3
  from foxes.variables import get_default_digits
5
4
 
6
5
 
7
- def write_nc(ds, fpath, round={}, complevel=9, verbosity=1, **kwargs):
6
+ def write_nc(
7
+ ds,
8
+ fpath,
9
+ round={},
10
+ complevel=9,
11
+ verbosity=1,
12
+ **kwargs,
13
+ ):
8
14
  """
9
15
  Writes a dataset to netCDF file
10
16
 
@@ -46,4 +52,9 @@ def write_nc(ds, fpath, round={}, complevel=9, verbosity=1, **kwargs):
46
52
 
47
53
  if verbosity > 0:
48
54
  print("Writing file", fpath)
49
- ds.to_netcdf(fpath, encoding=enc, **kwargs)
55
+
56
+ from foxes.config import config
57
+
58
+ kw = dict(encoding=enc, engine=config.nc_engine)
59
+ kw.update(kwargs)
60
+ ds.to_netcdf(fpath, **kw)
foxes/variables.py CHANGED
@@ -261,6 +261,11 @@ MOL = "MOL"
261
261
  :group: foxes.variables
262
262
  """
263
263
 
264
+ USTAR = "USTAR"
265
+ """ The friction velocity in m/s
266
+ :group: foxes.variables
267
+ """
268
+
264
269
  SHEAR = "shear"
265
270
  """ The shear exponent
266
271
  :group: foxes.variables
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: foxes
3
- Version: 1.2.2
3
+ Version: 1.2.3
4
4
  Summary: Farm Optimization and eXtended yield Evaluation Software
5
5
  Author: Jonas Schulte
6
6
  Maintainer: Jonas Schulte
@@ -53,18 +53,19 @@ Requires-Dist: numpy
53
53
  Requires-Dist: pandas
54
54
  Requires-Dist: xarray
55
55
  Requires-Dist: scipy
56
- Requires-Dist: netcdf4
57
56
  Requires-Dist: cycler
58
57
  Requires-Dist: tqdm
59
58
  Requires-Dist: pyyaml
60
59
  Provides-Extra: opt
61
60
  Requires-Dist: foxes-opt; extra == "opt"
62
61
  Provides-Extra: dask
62
+ Requires-Dist: h5netcdf; extra == "dask"
63
63
  Requires-Dist: dask; extra == "dask"
64
64
  Requires-Dist: distributed; extra == "dask"
65
65
  Requires-Dist: dask-jobqueue; extra == "dask"
66
66
  Requires-Dist: setuptools; extra == "dask"
67
67
  Provides-Extra: eng
68
+ Requires-Dist: h5netcdf; extra == "eng"
68
69
  Requires-Dist: multiprocess; extra == "eng"
69
70
  Requires-Dist: dask; extra == "eng"
70
71
  Requires-Dist: distributed; extra == "eng"
@@ -73,6 +74,7 @@ Requires-Dist: setuptools; extra == "eng"
73
74
  Requires-Dist: mpi4py; extra == "eng"
74
75
  Requires-Dist: ray; extra == "eng"
75
76
  Provides-Extra: eng0
77
+ Requires-Dist: h5netcdf; extra == "eng0"
76
78
  Requires-Dist: multiprocess; extra == "eng0"
77
79
  Requires-Dist: dask; extra == "eng0"
78
80
  Requires-Dist: distributed; extra == "eng0"
@@ -82,7 +84,9 @@ Requires-Dist: ray; extra == "eng0"
82
84
  Provides-Extra: test
83
85
  Requires-Dist: flake8; extra == "test"
84
86
  Requires-Dist: pytest; extra == "test"
87
+ Requires-Dist: h5netcdf; extra == "test"
85
88
  Provides-Extra: doc
89
+ Requires-Dist: setuptools; extra == "doc"
86
90
  Requires-Dist: sphinx; extra == "doc"
87
91
  Requires-Dist: sphinx-immaterial; extra == "doc"
88
92
  Requires-Dist: nbsphinx; extra == "doc"
@@ -3,7 +3,7 @@ examples/abl_states/run.py,sha256=U6_XnVmG_76z91vHS1rOH8YjPDpichqzP8v-sTPEmGs,45
3
3
  examples/compare_rotors_pwakes/run.py,sha256=EAODYtY4ZMJnmon4OSBmUBOle41OqUwaCPY3t-RZKEY,6643
4
4
  examples/compare_wakes/run.py,sha256=WFn74BBkPNOStdBvKR3mN3kv34M7u-SAmWTwtgqxUqA,7355
5
5
  examples/dyn_wakes/run.py,sha256=ApJgpdppzI35wOVGxDO5i1XeOw0HLOiyJt2aUWc5b0I,8698
6
- examples/field_data_nc/run.py,sha256=bGC2KAKy2vqPvHtus93wEuxEFd_TZl1VZgyVU3CQFQI,3484
6
+ examples/field_data_nc/run.py,sha256=EYx9B5axIPW2yfVet4QpMGyPMbMbPoTRvGrl249L_RM,3570
7
7
  examples/induction/run.py,sha256=eTxEdKJ_8MtYuxI0QNECqJ31x-zb9Zen5bUpwPtujPE,6334
8
8
  examples/multi_height/run.py,sha256=KsY5tN8z9QHitQQdxnTjHzPSPlYPn5pkcMskjd94D74,3288
9
9
  examples/power_mask/run.py,sha256=YK8RU0TLd7TgBJkPZQVrn8log-UQNZ7L3B3-yE8qu64,7584
@@ -13,7 +13,7 @@ examples/sector_management/run.py,sha256=WQvrHqtC7_u6JvZfbRsVSb3SPYDjCp-ZJpC-nZs
13
13
  examples/sequential/run.py,sha256=CnNGrHp9OzijuQ0GFRN5FWW-RR4h9UBHvu5S9U3j0ac,5974
14
14
  examples/single_state/run.py,sha256=MtqCJxkVZAOcAlu2BhJaq7AoOVAErgxbzHpmtmMs4As,6157
15
15
  examples/states_lookup_table/run.py,sha256=NE8Z_yOp7NWi8JHnxNoOUp6rF5Oq9dG5hWZA_7EXHuI,3916
16
- examples/streamline_wakes/run.py,sha256=MO-UPuQqG9P1pinTMZo9CSF8sYkcgJUrBy5HVtkKanI,4004
16
+ examples/streamline_wakes/run.py,sha256=kCJ5kzZl0tel4omYcQ8chmMVoNFzfSMcUruRCzJU6mQ,4016
17
17
  examples/tab_file/run.py,sha256=rMyNBIG30vreOUWD9NgUA0yBfJbmWofmsDpcs2m8v-s,4364
18
18
  examples/timelines/run.py,sha256=mYD7-bVstuxdO-7qCL2sRiItrBP5vK8vsNE0qppLfpg,7557
19
19
  examples/timeseries/run.py,sha256=aCuEjWpwGXTeS1s9frOtAnpAHRnQoe4tu4Q0BHoPDys,5393
@@ -21,11 +21,11 @@ examples/timeseries_slurm/run.py,sha256=j-tJlCVDMp1FiPnfNTPcJhwV_MCmsvwi_umNTaDE
21
21
  examples/wind_rose/run.py,sha256=shKCX4-HOZwVBDrgnOaI0ycMpWLOBvhSw7SU_x7CzWo,4247
22
22
  examples/yawed_wake/run.py,sha256=V_02HSuHQufzwhnVNGsJoQQpTgMlYtuZZVIDEaLU4U4,6166
23
23
  foxes/__init__.py,sha256=V0D5TDEqDNgZCcqm8kHaQdOksc2eUG-mql9YTL6HREs,1124
24
- foxes/constants.py,sha256=pgVQknBMsKYMGCDWlFsNK0er9CiJBGmm_WzoSt6Dtic,3201
25
- foxes/variables.py,sha256=bNebCA8eToDPA2Wh6AqkNkzor98nS1JVVMhd8gfakKc,5035
24
+ foxes/constants.py,sha256=HN5UrxQBt2vO1AmiiWThdK9rY_AtFsOQuwYUZb7JgXY,3387
25
+ foxes/variables.py,sha256=1xbGQx6ceUjAYeK0wZiS_D_MTFQ6mEJoY9VnlE2iVc4,5113
26
26
  foxes/algorithms/__init__.py,sha256=gCr5DK2wXhAAJf8eylkevN8yiwPdEC-pqY_LgjKzMv8,249
27
27
  foxes/algorithms/downwind/__init__.py,sha256=lyygq5GMc6NAPmH0b0mhGeccWyuC8JTOEMZl-UlmE5M,53
28
- foxes/algorithms/downwind/downwind.py,sha256=9OS_uJwUhvu_L0zjPq4-GRW0mUMqBq2kNa3L9LtZH4o,25243
28
+ foxes/algorithms/downwind/downwind.py,sha256=Du0NSVpwZvPgXacLBtDkBmD9bBwDYZfnnlrfe5e_vOM,25297
29
29
  foxes/algorithms/downwind/models/__init__.py,sha256=0ov8rjIQ02w3iB6yYCxaswPvHDlPM_8_di6xPh1TTkQ,300
30
30
  foxes/algorithms/downwind/models/farm_wakes_calc.py,sha256=IiO8_hhyT7aqPaMym2d__ZvwnjedoDgGj-x00muqOYg,5735
31
31
  foxes/algorithms/downwind/models/init_farm_data.py,sha256=KnDXy8NyStLXhQxeZsHMpds-lxisQu9BOBZeYtbJXLk,4108
@@ -44,15 +44,15 @@ foxes/algorithms/sequential/sequential.py,sha256=9S6eIIWKCD69Q5Ev8IA5h32L9RCQY_j
44
44
  foxes/algorithms/sequential/models/__init__.py,sha256=OneaRLxMPzVWLKL9cR3JIYHojfzVX_CQaPv-LP6mCZI,69
45
45
  foxes/algorithms/sequential/models/plugin.py,sha256=HhCeHM_YoJRMXuZKa8rXUJZDhWf5rNl28_UfDLSGWvA,1330
46
46
  foxes/algorithms/sequential/models/seq_state.py,sha256=J1PorBVV5xZFWobHvCrGDCD-q7Egz_Op1p4PDiacBy0,3654
47
- foxes/config/__init__.py,sha256=zXNgamapDTZJrrjkP5VMexyQP6Nwz7yGh4eVx-7HATA,62
48
- foxes/config/config.py,sha256=LIBem9YTKit2xDp5W_lwxqGF2jOucMWcQExTLCmE0N0,2645
47
+ foxes/config/__init__.py,sha256=k3irS7dNsXTzQpz9e6GOqoqGZkyMAW_BGxnV8JGcuRs,78
48
+ foxes/config/config.py,sha256=L3p4p6hhWu-PsBXszBrmVM8YIDl79zVJTit2zpfnvjY,4118
49
49
  foxes/core/__init__.py,sha256=3dOuKrFeSM6fCMxfLxTbzUsBPVTZiRp0sFhnibniBko,1021
50
- foxes/core/algorithm.py,sha256=wwI9KtncuW6gtS8UfCGbhZ88Ooj-WWZzsEu2_RIGXjA,27260
50
+ foxes/core/algorithm.py,sha256=ggdvtQT6kbmrgPUma-jCHqW7Q3ISvXHud1xl-t-kcls,27446
51
51
  foxes/core/axial_induction_model.py,sha256=sGbTHFMjEYKiVjElLP_SCRulKatcK0wsEXf30zty2Vc,1023
52
52
  foxes/core/data.py,sha256=21hSiLzrrAKKVXjFbIF7oska0bR5qPB2XmxYUraNeIg,21931
53
53
  foxes/core/data_calc_model.py,sha256=Hhl2ZapafsIvq5z_YWlGqB3kkF64txohU_MHlfHAvpk,1334
54
- foxes/core/engine.py,sha256=lDaqIQz0C3INH9sX9AArnqZEYCvGrRLZiQ-WQ7G5vfg,19655
55
- foxes/core/farm_controller.py,sha256=JMb2XttmeZLZLWOgh6WABHtVUZMfWvv9tGxxVJ6bgGU,13364
54
+ foxes/core/engine.py,sha256=I2CiIH9f__WWPPGeXgL8w8LAR2XUESEpQ0YQiIQ1zFI,20291
55
+ foxes/core/farm_controller.py,sha256=RZXvL24_Z-vVwikgWcTYYXREJTm72fhzGoNhFDEF56c,13832
56
56
  foxes/core/farm_data_model.py,sha256=uEhPjtyNZqZsVT_ySRg0MjpTWLZ6gg_Em-wmYmFDz8s,7383
57
57
  foxes/core/farm_model.py,sha256=ogFahCjC2dIBcjnCMmy0cTGulKTDA2ufFUzODf0-KnI,265
58
58
  foxes/core/ground_model.py,sha256=oRlgrTBAcYaIv8gf5BRccDBlz8GhmAMIlFiVnHt6sXQ,7311
@@ -60,7 +60,7 @@ foxes/core/model.py,sha256=UgoT99BaBBNXKlhUDY87uGJ5WrJ5cpFDIhHcDDzWMvw,19660
60
60
  foxes/core/partial_wakes_model.py,sha256=L_Wz0U1ps0suw6la-O9xwngYO9HxfGI9wjMGlpARVjA,5413
61
61
  foxes/core/point_data_model.py,sha256=90AEIVHkmGP80RhptyPpQDA7wvOnZfF-0VD2dv3L718,7569
62
62
  foxes/core/rotor_model.py,sha256=vGKFv_FSjSlxBJQUpbsHGK_q6h3Zd6ow8TzxjSFS_mQ,12772
63
- foxes/core/states.py,sha256=4oqd_j42M9u91tghnmE89zf-QR5J2tINuBhlLq_Jt_0,8308
63
+ foxes/core/states.py,sha256=BT1LRIOPNPAslLGzAr3ZeF-CKmt3Ij_F-vn750Wkxm4,8309
64
64
  foxes/core/turbine.py,sha256=P5qPKmV1qohZdAKW4lPiUerQkRDTxUOhsvBPQqy8mBo,3054
65
65
  foxes/core/turbine_model.py,sha256=I-t-2lNVDaifg_cHEurqan9Ko9kcI1k-VEkKS_nyX-o,1585
66
66
  foxes/core/turbine_type.py,sha256=DbzDmSfSow7RPCyRlQ_WrzWJ7fPnIN0BBGVzWhhG8FU,3174
@@ -68,7 +68,7 @@ foxes/core/vertical_profile.py,sha256=5fRmvTc-9afFDfaDLt2UY7xATK36o8Jq2hxATueuel
68
68
  foxes/core/wake_frame.py,sha256=h5yR2_dEVOvroAizhszexfYqDvU7E7TiFfETELMKkBs,9240
69
69
  foxes/core/wake_model.py,sha256=JYQ-J7Cz1D68eBfOlQamj_mlHyFeICHVgyOFlcNprbY,8170
70
70
  foxes/core/wake_superposition.py,sha256=4okhaQXDmcIOOrYiY2zzcxYy4lhw_IDQDBclXv4alrs,3324
71
- foxes/core/wind_farm.py,sha256=iYetYGFPaPz9Rh-2bLoeknOCiromXqlicZ4snRtSEIc,1755
71
+ foxes/core/wind_farm.py,sha256=3mKWw-qK7ybekton8swDuMo-cRDIfl_jNoUWiCt8seg,4891
72
72
  foxes/data/__init__.py,sha256=SJXiU6ynbvlhYyDg4mnwkBXyE5yWyI5QV_5HCfs1xf0,153
73
73
  foxes/data/parse.py,sha256=x71oWLyvVsMJ7XVL9VRQXZbflnTXqBaxyBdoMQdZExs,2947
74
74
  foxes/data/static_data.py,sha256=3_1ngRLCxBHxYAqD_kwz8_EcxlNa-RcB5Wjrx6swfwM,712
@@ -90,48 +90,47 @@ foxes/data/states/wind_rose_bremen.csv,sha256=ixSf8-_esjFsBtfT3Y92k67QrJPDx6dY3u
90
90
  foxes/data/states/wind_rotation.nc,sha256=-ZLfpxa_BJpRUABgJsK5I7c8ogAWTrYNE18un7FxhnU,10990
91
91
  foxes/data/states/winds100.tab,sha256=X2Cw0H_-HzYEcb7ezn3ntWlKQXIxrWLNONVsrkmsof8,3061
92
92
  foxes/engines/__init__.py,sha256=3lBlGmFw97bBM5aFhhVZSHTqlq0Ps7F7PS6twEnpSwU,408
93
- foxes/engines/dask.py,sha256=nk4O-PDMPhSdT6lzFHsrHCvYMuE2orwhfIduWOfMI9M,29824
94
- foxes/engines/default.py,sha256=W5vzdX53THwwSDty8FceGtPKMYdUJxpr3TexGkq0uNs,1869
93
+ foxes/engines/dask.py,sha256=lFTc_uFHrL3xqOeM5uDIoZ1qwTbcVJ18172pd22YYcw,31865
94
+ foxes/engines/default.py,sha256=UJGUq-F6eUejb91RtXLT_OBx9bh6upN2sTNFG3wCgIM,2799
95
95
  foxes/engines/futures.py,sha256=_VQXNLb0AxTtTouy96LhBnwPldHiG0xldHjpChKyNxs,1503
96
- foxes/engines/mpi.py,sha256=lIIfdA-NVqOaDO9iwDhHP4LjEekyff7TSsMcmkbVcy4,821
97
- foxes/engines/multiprocess.py,sha256=trx9p6sin7lS9wj0TwSL473B7vALXeWc_8-UELHb9x8,1522
98
- foxes/engines/numpy.py,sha256=c0SmcGLecB9XAZOlak-COpwpn4mgMoyr29CztmquU28,5185
99
- foxes/engines/pool.py,sha256=IePdCy28O3GFY9yhKG51BlxXM5V-6XbmEKcq4hJt4ew,7373
100
- foxes/engines/ray.py,sha256=J6GDwiXTfnRrr2DylZlW0BC0S07tvlTJG1lb426BI_8,1646
101
- foxes/engines/single.py,sha256=ewM6WlIy95nDfT2PLRH9tZA9zaNYZsTlV4ycqeLU3HY,4024
96
+ foxes/engines/mpi.py,sha256=XR9xFX6Spw8OKQ7x4qYOSeUlxcFWkwndNRiQ3IomkdM,650
97
+ foxes/engines/multiprocess.py,sha256=X4S-AnhnYuONpfZ3pKWi4VH9mm68ZMNm43ELPoeb-Ek,1328
98
+ foxes/engines/numpy.py,sha256=MwFRuibmCuL6G9pTd2Na2rSop4roT1M9Hcg-FyqsA9M,5853
99
+ foxes/engines/pool.py,sha256=Zye2gBs8NnBXy-Oz0lgvJCltX94yrEALNKMgh4CYtl0,8631
100
+ foxes/engines/ray.py,sha256=Otlc1ZfoTiNE6sq9rq1y212tVbaVDfxryqAl4T0AM_A,1622
101
+ foxes/engines/single.py,sha256=kd_qrfFRq9LFFnAfdKPcjIJ52ogxf_x05yAxbcsjSdQ,4692
102
102
  foxes/input/__init__.py,sha256=ArodV0WhxC_5fjxaxTgXnIS85fIaCE7JenUzxzkuFcE,124
103
103
  foxes/input/farm_layout/__init__.py,sha256=rEY4-10kZCNxXM43iJTDguGvbPndXaRSLpbKnaoSqrU,314
104
- foxes/input/farm_layout/from_csv.py,sha256=f_RSa73LaNoyCJo1wVwb8EDoxmlvznUJnX9V1xyLUNI,3427
104
+ foxes/input/farm_layout/from_csv.py,sha256=19XLlzpqCzJFWDn1iTLzFAXcKiDgbr7kK-tgv-OSV90,3439
105
105
  foxes/input/farm_layout/from_df.py,sha256=F5CKXHyL2rcrpCQqqqOr2HHX-BJ5VU1JQymzywmkBtc,574
106
- foxes/input/farm_layout/from_file.py,sha256=mXyhiC0_ogI6mY9jjzBfgQAP1K4ikIjNz5Uv6_p-igg,1631
107
- foxes/input/farm_layout/from_json.py,sha256=JNIuQsJB-BPcLR7U5p_Tpllhe_EI4vVKlhtbgCzjTYk,1699
106
+ foxes/input/farm_layout/from_file.py,sha256=PBUOq0Gb-Tq_6aS1HmSJBTNpDAT2UUGlgX1BDJ2CqAs,1643
107
+ foxes/input/farm_layout/from_json.py,sha256=0tib1J7h-x_wgI79pWhT-Vu90UcfZvUKj5rERfecTmE,1711
108
108
  foxes/input/farm_layout/from_random.py,sha256=6ZYKbdV6x11MbQRAHs5nVYBAG-1K295xsMXtfCfAfts,1126
109
109
  foxes/input/farm_layout/grid.py,sha256=CsVIYfCPyznEhDLO_tsTxBPJ591x8l-axDg4M5yArg0,1492
110
110
  foxes/input/farm_layout/ring.py,sha256=ghfLkVVQciWDJJNqGs4jZVnM0XCII9ae3hAh9Wb4938,1455
111
111
  foxes/input/farm_layout/row.py,sha256=Bx9woFNkXbFXJg51GX2p2PbVgdxV3Ckxr-3TkB04PS4,1198
112
- foxes/input/states/__init__.py,sha256=zLABJvqiQ6ZUVNYfWe1uuyQDJN83_AOS3se5NCilWRM,565
113
- foxes/input/states/field_data_nc.py,sha256=AzwbZAu1ZknZDDXukvH4kgavuj1_7lXPb4mfS37e6WA,23282
114
- foxes/input/states/multi_height.py,sha256=U7ZOEmrciVbrEdIXSywpcMbUGSxIpsbTDa-jEsB5wTo,23792
112
+ foxes/input/states/__init__.py,sha256=Xkjr0Tn3jKEBcIk3GA1dRVzTDIX9Xco-Y23X-LUV-GA,526
113
+ foxes/input/states/field_data_nc.py,sha256=LSSW6Q4Ica3gl9CuBuRm7wqKtYZpvOLGzTVqv8ylFm4,29429
114
+ foxes/input/states/multi_height.py,sha256=ECKARj0tJ-Bzih8wiii_sy34HjfTAP4QCvLo4Fh7Ruk,23810
115
115
  foxes/input/states/one_point_flow.py,sha256=TuMYGSHz3nOwN3gdWxbQNRHzKmtVtV4AbnHTJ6dVceA,17787
116
116
  foxes/input/states/scan.py,sha256=43CnJl-iRUbRrJCtu-u6Na5DDY19_184myD6ScMfcFA,6101
117
117
  foxes/input/states/single.py,sha256=jwcZ2quljXS9cDyYbf3wgvbYUe6umqNfyfvRdylYbC0,6137
118
- foxes/input/states/slice_data_nc.py,sha256=ojgT0PuHMEFe5t6AltfR8lj0Si4H4ZIQ7HjlLPhHfuM,21807
119
- foxes/input/states/states_table.py,sha256=-y0vYGQ_OVNQUPMgU99da2FVBDEUvNUMzHN0HHkEbFA,20447
118
+ foxes/input/states/states_table.py,sha256=HrsX2DVID1SbopBaevfq1HqkDtpH2mtfqslxYNDpNC8,20465
120
119
  foxes/input/states/create/__init__.py,sha256=Ocqzmr9SOefeAvGX5DgawsPXfNdGzWOZ2ssvtqEmtAo,134
121
- foxes/input/states/create/random_abl_states.py,sha256=7KD1q8pF0IQcv-AYq6tqw7jEd3D3Q3xSqOoF5WxMReU,3411
120
+ foxes/input/states/create/random_abl_states.py,sha256=LFCA19TCInXmB2FbKDaOkqCDsN0eOUIp34yzR2NQjtQ,3425
122
121
  foxes/input/states/create/random_timeseries.py,sha256=gJpaQ4nEXxOjI4hp3xjNcVbCsmZUm-brXUxoqDb63WE,1266
123
122
  foxes/input/yaml/__init__.py,sha256=1EIaXSaykZ3VnhXN_SgqnWkRLVkXsL_608_-f19Xk14,167
124
- foxes/input/yaml/dict.py,sha256=yHkw_x81ZKQ7BlCaTchoTDDAeakfr_zNdtXZgLGZ-B8,13607
125
- foxes/input/yaml/yaml.py,sha256=wVn6v-4g_Cz-MuNBJhVku9UXCIJrwd9fviLbvsokUcA,2704
126
- foxes/input/yaml/windio/__init__.py,sha256=h5zp7VDWYq7K4GVX91CkoEABhpYSTisFWiw-0YAq3eU,196
127
- foxes/input/yaml/windio/get_states.py,sha256=cl4ZMurwbUyZflaoC1TPdBc5VjS7s7zp4_FYp80hkX0,6081
128
- foxes/input/yaml/windio/read_attributes.py,sha256=ZcMaHTsD8IoF6AmIQ5imnQEnJ9oSuA_-kiOGklPIieQ,12830
129
- foxes/input/yaml/windio/read_farm.py,sha256=jdB25WwhFDSCtJnShG7a-OBSEtgRCh7wWiM024zyBP4,5961
123
+ foxes/input/yaml/dict.py,sha256=nqbT0zOsSd0ue44CWWfxTLCEFoxZOntE8Y6-EqsAfUA,14986
124
+ foxes/input/yaml/yaml.py,sha256=s6d-nPMdzNFis_sfnN3LPSn_Cco7hWseSeqKHJrvGjs,2715
125
+ foxes/input/yaml/windio/__init__.py,sha256=taJhnFN4nUwdF0DFir4y9EPovQzBd8F5h2cZLxgGFxU,240
126
+ foxes/input/yaml/windio/read_attributes.py,sha256=P_7E_nULJbbVOPuXuze8dv1KGIPYNwsuW1cLTAE14e8,12462
127
+ foxes/input/yaml/windio/read_farm.py,sha256=Vu0Phaa0B76B39l60-2AdcZ1qxAAb7lGF-9aVe-Fg7A,7567
130
128
  foxes/input/yaml/windio/read_fields.py,sha256=2lbQ1OBTkaFyWUPIabIydx7yM4JB4lLQzBRv5D9Ee6g,4676
131
- foxes/input/yaml/windio/read_outputs.py,sha256=m_QPkfw80RfKSe4ujTQohsJeONAJdHel8ZQoCOgqZL4,4948
132
- foxes/input/yaml/windio/windio.py,sha256=ksc0hDGfsGyKeEqBjaMos0HAobGypHKWftZiSgDemBw,8006
129
+ foxes/input/yaml/windio/read_outputs.py,sha256=OGMO60ISXRJJihiRDrJr98xpSF10KwryUMHB4rUeCyE,7341
130
+ foxes/input/yaml/windio/read_site.py,sha256=bfRzIYg5o3TVMtOBkLsBh2WopDBeBftTeY51N9HAqso,8195
131
+ foxes/input/yaml/windio/windio.py,sha256=S1t_wIUIgfHwrighA-mq5iXCV_ug8wrbK2ntOyxFK4g,5275
133
132
  foxes/models/__init__.py,sha256=8eOGCieghW7ILjpkxMHzp4GN2zFF3xlKPl7Df7sMxoU,434
134
- foxes/models/model_book.py,sha256=NOht0AfOggeKX0ybdpJOu0FMbwD9kSQCM6yh1oOM9Nc,24965
133
+ foxes/models/model_book.py,sha256=EpTOXHVxnK9GjtLauU3UBP9hv9rPFwyTPqMsVtBAK5M,25032
135
134
  foxes/models/axial_induction/__init__.py,sha256=CdYOzu45DWu7xrzpRpFIQ6CGZIMABjjy_lqAszjj9lg,78
136
135
  foxes/models/axial_induction/betz.py,sha256=rAaq7pnu-FmfYh61BU5Af1h4_bG2AAimP4Qah1aZo88,894
137
136
  foxes/models/axial_induction/madsen.py,sha256=_-ycfh8SnIpCKWm1uwx5VH7f49FQvR0y1Nbb_U8xWyU,1403
@@ -149,9 +148,10 @@ foxes/models/partial_wakes/grid.py,sha256=SOymgn0MGvUFSAWd9YKDCzXYtizsuiNV-yP0oq
149
148
  foxes/models/partial_wakes/rotor_points.py,sha256=qXBP-0TAjSONF80W-9Sh9RGmEOmakc0FaqZTaeucVI0,2785
150
149
  foxes/models/partial_wakes/segregated.py,sha256=FTBihivU4ejbK-J90CcnOghv9-z8zQbzNDg_5NgalJA,4462
151
150
  foxes/models/partial_wakes/top_hat.py,sha256=TPk9GoyoYDbxxZbcFufNDyNu-Yhnzn4GUwS7X3WelbQ,5557
152
- foxes/models/point_models/__init__.py,sha256=kb6pBrrPGWWKcnlAqOdBLMT7l-Y7yFAitrUr4eFiWcM,131
151
+ foxes/models/point_models/__init__.py,sha256=36A6VfXTkeNZYsv_JiPtF7Q8ZRcYbdA6Ed7F64DTF08,162
153
152
  foxes/models/point_models/set_uniform_data.py,sha256=dK6f-Nk_qvWqUPt3jnMkkIftGs9YmF_hpklFl5dJMAo,4529
154
153
  foxes/models/point_models/tke2ti.py,sha256=0mrhpGy0xP_zCqp26_ts81WAHdCqyz_fC6A9BgXIrrI,1407
154
+ foxes/models/point_models/ustar2ti.py,sha256=kghpLGyfOTdbjVWY9DMhXJ5XbrE-Qvq2BNJJWF8Nkxk,1995
155
155
  foxes/models/point_models/wake_deltas.py,sha256=nwpallRan2tfSPU9acESHiSg30_gpShsDd-nU65FAIA,2035
156
156
  foxes/models/rotor_models/__init__.py,sha256=peLe_ykp4e_ls_iGDa-1z7-jCTtjurE3ig2R9tJy7Bg,114
157
157
  foxes/models/rotor_models/centre.py,sha256=oHaHM8RDV_lZc-BXNCYab_5_YeXbflkPEL6ET8CzKvM,5646
@@ -160,25 +160,25 @@ foxes/models/rotor_models/levels.py,sha256=qmjjX7It1nwQ8lej8UIZ5FhQvMsODaf7oi8dG
160
160
  foxes/models/turbine_models/__init__.py,sha256=eCS66-AS3ivW9qm-yPPfO_0_eHQox5Sp7bQantVPwg0,428
161
161
  foxes/models/turbine_models/calculator.py,sha256=R5EwXvRCWg8zwrRGDmmX-SnCi6XraBmeQzgbHKkcRv8,2776
162
162
  foxes/models/turbine_models/kTI_model.py,sha256=q_B4zR5j-z8Fe0Ux9cbczB-kgLn5rZDZelZV4PMXLtU,3577
163
- foxes/models/turbine_models/lookup_table.py,sha256=_17-4TO3cwY4H2bo78jV3XfB1APmAGRyohS3FRvhIpk,7340
163
+ foxes/models/turbine_models/lookup_table.py,sha256=jT_LASopYXn2Tf8jxPd8nLoQyeudFaYwrqInYQiNDyg,7352
164
164
  foxes/models/turbine_models/power_mask.py,sha256=gZzcRTiidLxYpY3KKV6KnKKwgOEQtpM9yCfRVRMP8Ds,5953
165
165
  foxes/models/turbine_models/rotor_centre_calc.py,sha256=I-0zH6RSkN9iLH3WQGpOLMouh3IxJrPh4HXwXA-M8Fs,3542
166
- foxes/models/turbine_models/sector_management.py,sha256=Ap_2o3Nyj_nheXuLgY1pNI5jZSnFc1CtAWtExYE2ock,7178
166
+ foxes/models/turbine_models/sector_management.py,sha256=D4Ir3YzOo3K7MSwaGwHNf9LrTQ_AMPTvtA8IB6gvcxw,7190
167
167
  foxes/models/turbine_models/set_farm_vars.py,sha256=Nzg7AXi-GMvcnKDmVVABhlmIbsIKCQhS2ntfaFdVgzU,8614
168
- foxes/models/turbine_models/table_factors.py,sha256=bvZvqrBCqjR9VIbo5z2K2DUNOhM5ShWOrVTj_IMtsRg,4748
168
+ foxes/models/turbine_models/table_factors.py,sha256=8_A_lWTh1ebyDy2DHveuX_Mr9zbOR75MFdnUQRsVQl4,4760
169
169
  foxes/models/turbine_models/thrust2ct.py,sha256=mr26P7PoPD7QIgKCxylL1aMsr3g-ulNmP08T5g52MGw,2289
170
170
  foxes/models/turbine_models/yaw2yawm.py,sha256=iqrnaROFcn8_k2iHPeltq5yVFP-zV6w6gaCaPxRurhc,1572
171
171
  foxes/models/turbine_models/yawm2yaw.py,sha256=I9sBNfu0p0ASrq5n-yWR9oA3yMJlu_6_x_NF8Sh50Ts,1563
172
- foxes/models/turbine_types/CpCt_file.py,sha256=_NiJ9uvIQ4SY-l-aAAHYBJmKEfX4-waptCFEQhcaIAM,2138
173
- foxes/models/turbine_types/CpCt_from_two.py,sha256=vIqoUjMLHHJCyfrBOE6qjy7CeSX2ouhLliobS3ePyZE,2825
174
- foxes/models/turbine_types/PCt_file.py,sha256=qcpsaTn3eUDaiiSn1Wtx5Y7UY9z8ax6kfjxWpJWeCQ8,10827
175
- foxes/models/turbine_types/PCt_from_two.py,sha256=M5orWAb3nuYJoo64HoQfzROiW4vnYcWkmHAZUUyAUKQ,12648
176
- foxes/models/turbine_types/TBL_file.py,sha256=dWOuuwT9tdUKlnDK_B38v5zJMpsd1xRKZ7sgnmpmTv8,1706
172
+ foxes/models/turbine_types/CpCt_file.py,sha256=IvwuEfZFBipQqXAhKExL6ys29WcEtvHVUz_h91l9tSw,2150
173
+ foxes/models/turbine_types/CpCt_from_two.py,sha256=yXlMydWvoBCddnVNGXgYJ6wJFnut9FwGr3W-IjsQEWE,2843
174
+ foxes/models/turbine_types/PCt_file.py,sha256=Yuw1BW0PZwY9QL6US4BkGsg9yc_jUkVDv8_nYIWq3gE,10839
175
+ foxes/models/turbine_types/PCt_from_two.py,sha256=fht7SVy9jb3cwpixpgVfR38Rd2Uiq1Q56p1rhHDVQ60,12666
176
+ foxes/models/turbine_types/TBL_file.py,sha256=oaEGkG6xn9diPJKhZu8rGhw5oHyhUc2j9-Sw07slUAQ,1718
177
177
  foxes/models/turbine_types/__init__.py,sha256=quo_ttR_CugcU84QQ0AWHm8rEe53COV7GjQA-C7HXYM,362
178
178
  foxes/models/turbine_types/lookup.py,sha256=3qUCaNkl1MytEl3uaORhEJeTFdG8pCFhHmvUeOCGCFQ,9251
179
179
  foxes/models/turbine_types/null_type.py,sha256=svHqmx8TJ0Nvo_s22gtaMejxAxPwGeMD6DbDFR5kgKs,2415
180
- foxes/models/turbine_types/wsrho2PCt_from_two.py,sha256=UPPvQ3DI5EbKyZ6R1Wj-2b-w34oKZk2cvk6mR9sKHb0,11989
181
- foxes/models/turbine_types/wsti2PCt_from_two.py,sha256=3lVq8zAVDga0VN3VoqtqHq46OJVTXOBxyY-yX2djQ6o,13133
180
+ foxes/models/turbine_types/wsrho2PCt_from_two.py,sha256=q1GzThs4fLFogpOkEB1eDIi45mJ57uzQK2KmGLyctXI,12007
181
+ foxes/models/turbine_types/wsti2PCt_from_two.py,sha256=vgiO1F_V7OHfpLbZKsCr0tC-gkj0HpffI9cKu6uswKI,13151
182
182
  foxes/models/vertical_profiles/__init__.py,sha256=hWUjIIuDqCEFypcS6CtiQpHiKpfRyEJjVc1GjG91Mso,352
183
183
  foxes/models/vertical_profiles/abl_log_neutral_ws.py,sha256=kX-VUkiyOnZmRVnl9xmb9M134XuyZ1rnYKAn2KFw2B4,1849
184
184
  foxes/models/vertical_profiles/abl_log_stable_ws.py,sha256=E0uZ753fyhkEecVefztatZUGic2BvaQsd6l_zruTdZU,1937
@@ -224,21 +224,22 @@ foxes/models/wake_superpositions/ws_max.py,sha256=XzNbqa8bmkMwMkasnUml6x3j0-k4C5
224
224
  foxes/models/wake_superpositions/ws_pow.py,sha256=t2nAUjTK6hPstyGPNeJH9dqgbhOmQ91TXQPJDs1aDTw,9630
225
225
  foxes/models/wake_superpositions/ws_product.py,sha256=PGyz7CwMRR4T6R6IELugcdk0e3DCQYWejsgzgva820c,4635
226
226
  foxes/models/wake_superpositions/ws_quadratic.py,sha256=3pWDd-HSVD4_OKQ5YQaUX1RY1KZZu46Q1Xhvf9xp7Jc,9225
227
- foxes/output/__init__.py,sha256=qsHSwE_6ok0ucKZU0XhbvQ9uhBjDP12OkLBN8h5shEs,784
227
+ foxes/output/__init__.py,sha256=HZFka-9Y5hTOgeuCBxvv0vSvB-zGvkzEKxCqsbdYCgk,820
228
228
  foxes/output/animation.py,sha256=zljekg6k2DjqVaBw0OamB4i3eopi6g2j0a12B9hx7VQ,2637
229
229
  foxes/output/calc_points.py,sha256=paFBNUCbg0Vw-VKsvoXygQcq-T3y10IvcVmSUoHb5Do,4567
230
230
  foxes/output/farm_layout.py,sha256=tTE1Ioozh4wU0eMqIpdUd6VLtM_xmXRM_l4iX6-jiIU,11595
231
231
  foxes/output/farm_results_eval.py,sha256=STGLAFqM06bO7SXcEo0APcmBWhLVo6VzENgqt4Q_JY4,18692
232
232
  foxes/output/grids.py,sha256=tjQjF3Q_OyI7iOUsbED_P625yDSvHGoIKbS4T_ZB8uI,22504
233
- foxes/output/output.py,sha256=1hrhKGbC8ODe4RRAl4G1BAMNY5aFWMfublUZJ6VQlNM,3249
233
+ foxes/output/output.py,sha256=654XWA2WPwqOzlYbKdHMEjQSSCWrjmtTFN6FNsyZ43E,3297
234
234
  foxes/output/plt.py,sha256=6_4Zniv6iqVctNCbxFn2gMYE0aC0FqwNaaBJgIROlHI,356
235
235
  foxes/output/results_writer.py,sha256=zUlj7szylvudYmwLciD6TcStmv7gBcp4bE1xQQ5JL_s,5789
236
236
  foxes/output/rose_plot.py,sha256=WIkK3vY6yyu7rG8Myr8fiI6gPnXGLFh0AGnqsF99LHs,17712
237
237
  foxes/output/rotor_point_plots.py,sha256=KW4t_2lCSc90BzvJDT9xBOAe6JXWSc75UDu4tlK3Se0,3276
238
238
  foxes/output/round.py,sha256=s8YcXciCtaMY14SnG3ebYccyjQ2IEln256SwN9oJnPI,351
239
- foxes/output/slice_data.py,sha256=ubLrNxY3FKheYqMsygYbo3LeixVhrq5_sLzfaV6cYN0,33798
239
+ foxes/output/slice_data.py,sha256=oP55t2TYHaBie5Rn-7iRRpa29nfnjaZGmYdn_RCmFxg,33793
240
+ foxes/output/slices_data.py,sha256=FqulnXnZ5aI2fOns4ffBYSw5j42IEGq-lLCNJxWG5HA,8671
240
241
  foxes/output/state_turbine_map.py,sha256=XhrqRyfSz-hE8gwN5vzC_J-RejCr9dix-D6206Oionw,2724
241
- foxes/output/state_turbine_table.py,sha256=15p4HstxzhhHKJFVqnYRY1Vrz2FKxkaQh-Dce0QOCEk,1919
242
+ foxes/output/state_turbine_table.py,sha256=ldG0LcC126YsXQZtJY9OSWxW3ETbHdBehjtU21caTDw,2228
242
243
  foxes/output/turbine_type_curves.py,sha256=bvb9lFNTY_R9s0D5qlEIeyFy0olObqeXAmFOaPpHSvw,5699
243
244
  foxes/output/flow_plots_2d/__init__.py,sha256=Stbwt5sP86fRA0ii3jnX2q0h5zgNLKmwFfpru5jof30,65
244
245
  foxes/output/flow_plots_2d/flow_plots.py,sha256=gRGAtB4JAGZ_NkT3osHDaLOg4bYGhhY3u05gu9yA9z0,29931
@@ -254,7 +255,7 @@ foxes/utils/dict.py,sha256=_WFIDraFsr86Qz_Uh8qxf3Ij5h6VBdV4BHNEQnmL3W8,4020
254
255
  foxes/utils/exec_python.py,sha256=Ah20PjCpNDdVzgi79j2Oeh2b-JjyjpQ_EmsUxnI9pLc,1715
255
256
  foxes/utils/factory.py,sha256=rxNQFQrOPtkIZCbEbg4zxJKzv7fVBJ3DKl4nEA5G9Z4,19466
256
257
  foxes/utils/geopandas_utils.py,sha256=uf5l1LVsWa4cr_uFUgwzxFUBMkisfPRQJOFqCn1TM38,7918
257
- foxes/utils/load.py,sha256=H3i_l3dO6KECYziQoPXDCtePuYemhD57yivIdsGjg5I,1291
258
+ foxes/utils/load.py,sha256=x7EE_frepjFEb_bUeYYSKFPnBcXQVzSuLmlYyZTsWN0,1619
258
259
  foxes/utils/pandas_helpers.py,sha256=Zk_PFTyKkJyeIc52K-KJ5Ab6Hv0PJw820vwPgnQmiko,4732
259
260
  foxes/utils/pandas_utils.py,sha256=5r3RHjaGu-Vi7DGMBdCDxVeu9nZk46wtPlHRL4l_R_c,4630
260
261
  foxes/utils/random_xy.py,sha256=i0AZ04BLL6TxC3Lg1ZfwI_o4zJbHR6hm-BNd0Sydu_c,1376
@@ -263,7 +264,7 @@ foxes/utils/subclasses.py,sha256=wCfhuialpBOQOPMwNbaplkVmf60vR9AIkY_o3tdkgXI,173
263
264
  foxes/utils/tab_files.py,sha256=H50IpLaqffJn9A51orCGc4fOhCOzoNUYDUKek4OAayU,1811
264
265
  foxes/utils/two_circles.py,sha256=xkj-SA_x-VXY7KtmSU4lcV4gFdplyhU3sBAC9vTdkF4,2810
265
266
  foxes/utils/wind_dir.py,sha256=6W0njWDvnIdOOjwqcMr64MW9ApjdtFA75blVUxirPMo,2823
266
- foxes/utils/xarray_utils.py,sha256=zAapAWYzKEBiM4h1oABNd4MvVcz-aO1gkymmhG7_uBg,1570
267
+ foxes/utils/xarray_utils.py,sha256=6VLTAitXTK6W5zlBTadWwN05qmq_TlEDpUCx227JxtY,1677
267
268
  foxes/utils/abl/__init__.py,sha256=ijn-ubLLlqqH6tTAXFRmBAxJZmVBlTEmtx1cdCCtG4I,135
268
269
  foxes/utils/abl/neutral.py,sha256=E4DEhvXvw74BPrYr1MjQjeIaoz6ZOTWVlqScKflm-0M,1358
269
270
  foxes/utils/abl/sheared.py,sha256=nS6gxa5cR7B7XcZbEk3rwOvbF6m4cinXAIhhn9gGBBs,446
@@ -301,9 +302,9 @@ tests/1_verification/flappy_0_6_2/row_Bastankhah_Crespo/flappy/run.py,sha256=nwI
301
302
  tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/test_row_Bastankhah_linear_centre.py,sha256=a7CQS-_Mnz3NynaTv1OY1CZ10iAqa7E3YxmkbDtoshw,2590
302
303
  tests/1_verification/flappy_0_6_2/row_Bastankhah_linear_centre/flappy/run.py,sha256=s6FbEdpiIdHYmdD8S85_NhLH-S3EOinXvw8RHmR2QOU,2122
303
304
  tests/3_examples/test_examples.py,sha256=rS2Dz04ktbS6v3TRDr96AkWGypr5u49jihqbEmGFmRU,694
304
- foxes-1.2.2.dist-info/LICENSE,sha256=bBCH6mYTPzSepk2s2UUZ3II_ZYXrn1bnSqB85-aZHxU,1071
305
- foxes-1.2.2.dist-info/METADATA,sha256=7dg2z1b6a9XZFlQCJRKBJ4sSfOkDAP4GJSGR8RLp7MA,8629
306
- foxes-1.2.2.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
307
- foxes-1.2.2.dist-info/entry_points.txt,sha256=KuS44FRH5NnMw201A8Btr76eNRKr2UOoKHjejAsqKwE,123
308
- foxes-1.2.2.dist-info/top_level.txt,sha256=G7oHApEz5nc-iP__XsPcvjYe_NyXGmKMUMPHi3C3x6I,26
309
- foxes-1.2.2.dist-info/RECORD,,
305
+ foxes-1.2.3.dist-info/LICENSE,sha256=bBCH6mYTPzSepk2s2UUZ3II_ZYXrn1bnSqB85-aZHxU,1071
306
+ foxes-1.2.3.dist-info/METADATA,sha256=3GhrNj9vLhSr7s_EZ75rAKRYoBZ9pu5_nH8UoIw6u4w,8811
307
+ foxes-1.2.3.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
308
+ foxes-1.2.3.dist-info/entry_points.txt,sha256=KuS44FRH5NnMw201A8Btr76eNRKr2UOoKHjejAsqKwE,123
309
+ foxes-1.2.3.dist-info/top_level.txt,sha256=G7oHApEz5nc-iP__XsPcvjYe_NyXGmKMUMPHi3C3x6I,26
310
+ foxes-1.2.3.dist-info/RECORD,,