Writing windIO Files#

Basic Writing#

from windkit.io.windio import write_plant, write_turbine, wwc_to_windio, wtg_to_windio

write_plant(wwc_to_windio(wwc), "output.yaml")       # Wind climate
write_turbine(wtg_to_windio(wtg), "my_turbine.yaml") # Turbine definition

Modular File Output#

Use modular=True to split data across multiple files with !include references:

write_plant(plant_data, "output_dir/", modular=True)

This creates:

output_dir/
├── plant.yaml           # Main file with !include references
├── site.yaml
├── energy_resource.yaml
└── wind_resource.yaml

Export Levels#

Export specific portions of the windIO hierarchy:

Climate data levels: plant (default), site, energy_resource, wind_resource

Turbine data levels: plant (default), wind_farm, layout

from windkit.io.windio import wwc_to_windio, wind_turbines_to_windio

# Export only wind_resource portion
wind_resource = wwc_to_windio(wwc, level="wind_resource")

# Export only layout coordinates
layout = wind_turbines_to_windio(turbines, level="layout")

Composing Complete Plants#

Combine wind climate, turbine positions, and WTG definitions:

from windkit.io.windio import write_plant, compose_plant

plant_data = compose_plant(
    name="My Wind Farm",
    wwc=wwc,                    # Or bwc, or tswc (only one allowed)
    wind_turbines=turbines,
    wtgs={"IEA-15MW": wtg},
)
write_plant(plant_data, "complete_plant.yaml")

API Reference#