windkit.io.windio.compose_wind_farm#

windkit.io.windio.compose_wind_farm(wind_turbines, wtgs, name='wind_farm')[source]#

Compose windIO wind_farm data from windkit objects.

Warning

windIO support is experimental. API may change in future versions.

Creates a wind_farm-level windIO dictionary by combining turbine layouts with full WTG definitions. The result can be written directly with write_wind_farm() for use as an !include target, or embedded in a plant structure.

This is a convenience wrapper around wind_turbines_to_windio(wind_turbines, wtgs, level="wind_farm").

Parameters:
  • wind_turbines (xarray.Dataset) – Wind turbines dataset with turbine positions and wtg_key assignments.

  • wtgs (dict) – Dictionary mapping wtg_key strings to WTG datasets. All wtg_key values in wind_turbines must exist as keys in this dictionary.

  • name (str) – Name for the wind farm (default: “wind_farm”).

Returns:

windIO wind_farm dictionary with layouts and turbine_types, ready to be written with write_wind_farm().

Return type:

dict

Raises:

ValueError – If wtg_key values in wind_turbines are missing from wtgs dict.

Examples

>>> import windkit as wk
>>> from windkit.io.windio.translate import compose_wind_farm
>>> from windkit.io.windio import write_wind_farm
>>>
>>> turbines = wk.read_wind_turbines("layout.csv", crs="EPSG:32632")
>>> wtg = wk.read_wtg("turbine.wtg")
>>>
>>> wind_farm = compose_wind_farm(
...     wind_turbines=turbines,
...     wtgs={"IEA_10MW": wtg},
... )
>>> write_wind_farm(wind_farm, "wind_farm.yaml")