Source code for foxes.core.turbine
import numpy as np
[docs]
class Turbine:
"""
An individual wind turbine.
The turbine is merely a defined by basic data
entries and a choice of turbine models.
Attributes
----------
xy: array_like
The turbine ground position, shape: (2,)
models: list of str
The turbine model names, as they appear
in the model book
index: int, optional
The index in the wind farm
name: str, optional
The turbine name/label
mstates_sel: list of numpy.ndarray, optional
For each turbine model, the state selection
boolean array with shape (n_states,)
D: float, optional
The rotor diameter. Overwrites turbine type
settings if given
H: float, optional
The hub height. Overwrites turbine type
settings if given
:group: core
"""
[docs]
def __init__(
self,
xy,
turbine_models=[],
index=None,
name=None,
models_state_sel=None,
D=None,
H=None,
):
"""
Constructor.
Parameters
----------
xy: array_like
The turbine ground position, shape: (2,)
turbine_models: list of str
The turbine model names, as they appear
in the model book
index: int, optional
The index in the wind farm
name: str, optional
The turbine name/label
models_state_sel: list of numpy.ndarray, optional
For each turbine model, the state selection
boolean array with shape (n_states,)
D: float, optional
The rotor diameter. Overwrites turbine type
settings if given
H: float, optional
The hub height. Overwrites turbine type
settings if given
"""
self.index = index
self.name = name
self.xy = np.array(xy)
self.models = turbine_models
self.D = D
self.H = H
self.mstates_sel = models_state_sel
if self.mstates_sel is None:
self.mstates_sel = [None] * len(self.models)
[docs]
def add_model(self, model, states_sel=None):
"""
Add a turbine model to the list.
Parameters
----------
model: foxes.core.TurbineModel
The model
states_sel: numpy.ndarray of bool, optional
The states selection for the model, shape: (n_states,)
"""
self.models.append(model)
self.mstates_sel.append(states_sel)
[docs]
def insert_model(self, index, model, states_sel=None):
"""
Insert a turbine model into the list of models.
Parameters
----------
index: int
The position in the model list
model: foxes.core.TurbineModel
The model
states_sel: numpy.ndarray of bool, optional
The states selection for the model, shape: (n_states,)
"""
self.models.insert(index, model)
self.mstates_sel.insert(index, states_sel)