Source code for foxes.input.farm_layout.from_random
import numpy as np
from foxes.utils import random_xy_square
from foxes.core import Turbine
[docs]
def add_random(
farm,
n_turbines,
min_dist,
centre=[0, 0],
seed=None,
verbosity=1,
**turbine_parameters,
):
"""
Add turbines that lie randomly within a square
Parameters
----------
farm: foxes.WindFarm
The wind farm
n_turbines: int
The number of turbines
min_dist: float
The minimal distance between turbines
centre: array-like
The (x, y) coordinates of the mean
seed: int, optional
The random seed
verbosity: int
The verbosity level, 0 = silent
turbine_parameters: dict, optional
Additional parameters are forwarded to the WindFarm.add_turbine().
:group: input.farm_layout
"""
xy = random_xy_square(n_turbines, min_dist, seed=seed, verbosity=verbosity)
xy += np.array(centre)[None, :]
for i in range(len(xy)):
farm.add_turbine(
Turbine(
xy=xy[i],
**turbine_parameters,
),
verbosity=verbosity,
)