Source code for foxes.core.wind_farm

[docs] class WindFarm: """ The wind farm. Attributes ---------- name: str The wind farm name turbines: list of foxes.core.Turbine The wind turbines boundary: foxes.utils.geom2d.AreaGeometry, optional The wind farm boundary :group: core """
[docs] def __init__(self, name="wind_farm", boundary=None): """ Constructor. Parameters ---------- name: str The wind farm name """ self.name = name self.turbines = [] self.boundary = boundary
[docs] def add_turbine(self, turbine, verbosity=1): """ Add a wind turbine to the list. Parameters ---------- turbine: foxes.core.Turbine The wind turbine verbosity: int The output verbosity, 0 = silent """ if turbine.index is None: turbine.index = len(self.turbines) if turbine.name is None: turbine.name = f"T{turbine.index}" self.turbines.append(turbine) if verbosity > 0: print( f"Turbine {turbine.index}, {turbine.name}: xy=({turbine.xy[0]:.2f}, {turbine.xy[1]:.2f}), {', '.join(turbine.models)}" )
@property def n_turbines(self): """ The number of turbines in the wind farm Returns ------- n_turbines: int The total number of turbines """ return len(self.turbines) @property def turbine_names(self): """ The list of names of all turbines Returns ------- names: list of str The names of all turbines """ return [t.name for t in self.turbines]