Inputs¶
Every foxes case needs at least the following two inputs from the user in order to be able to run: Wind farm layouts and Ambient inflow states.
Additionally, the applied models might need additional data, for example the power and thrust curves of the selected turbine types. See the Models Section for additional information on how to provide such inputs.
Wind farm layouts¶
The first step is to create an empty wind farm object:
farm = foxes.WindFarm()
In foxes runs, only one wind farm object is present. However, several physical wind farms can be added to the object, such that multiple wind farms are being represented. Turbine types and turbine models can vary for each wind turbine, such that this is no limitation of usage but merely a foxes code design choice.
Wind turbines are to the wind farm, usually by calling one of the functions of the sub package foxes.input.farm_layout. Typical choices are:
add_from_csv: Reads a csv file, in which each row describes one turbine (also accepts a pandas DataFrame instead of the file),
add_from_file: Similarly, additionally also accepting json inputs,
add_grid: Adds a regular grid of turbines with identical properties,
add_row: Adds a row of turbines with identical properties.
add_random: Adds turbines at random positions with identical properties.
A typical example might look like this, see Examples for more examples:
foxes.input.farm_layout.add_from_file( farm, "farm_layout.csv", col_x="x", col_y="y", col_H="H", turbine_models=["NREL5MW"], )
It is also possible to manually add a single turbine to the wind farm. For doing so, plug an object of the Turbine class into the add_turbine function of the WindFarm class.
Any of the above functions for adding turbines requires a parameter turbine_models, which expects a list of strings that represent the names of the Turbine models as appearing in the ModelBook object.
Ambient inflow states¶
The atmospheric inflow data are reffered to as ambient states or simply as states in foxes terminology. They are understood as a list of conditions, which are used for computing all required background data at any arbitrary evaluation point.
Either those states come with associated statistical weights (for example in the case of a wind rose), or they do not specify it, in which case they are interpreted as equal weight conditions (for example in the case of timeseries data).
The full list of currently implemented ambient states can be found in the foxes.input.states sub package. Typical choices are:
Timeseries: Spatially homogeneous timeseries data, see Timeseries data,
MultiHeightTimeseries, MultiHeightNCTimeseries: Height dependent timeseries data, see Multi-height wind data,
FieldDataNC: Full field data, (time, x, y, z) dependent. See Heterogeneous flow,
SliceDataNC: Height independent field data (time, x, y),
StatesTable: Spatially homogeneous data with weights, see Wind rose data,
OnePointFlowTimeseries: Horizontally homogeneous data translated into inhomogeneous flow, see Dynamic Wakes 1.