Skip to content

WindIO support in FLORIS#1175

Closed
lejeunemax wants to merge 4 commits intoNatLabRockies:developfrom
lejeunemax:windIO
Closed

WindIO support in FLORIS#1175
lejeunemax wants to merge 4 commits intoNatLabRockies:developfrom
lejeunemax:windIO

Conversation

@lejeunemax
Copy link
Copy Markdown

WindIO support in FLORIS

This PR introduces support for WindIO in FLORIS.
It enables running FLORIS wake simulations directly from WindIO-compliant input files, while keeping WindIO as an optional dependency.

Summary of changes

The fmodel now includes three new methods:

  • from_windio
    Reads a WindIO YAML farm file and runs a wake model simulation based on its contents.

  • set_wind_data_from_windio
    Updates the wind farm geometry and turbine data based on a specified WindIO wind farm file.

  • set_farm_from_windio
    Updates wind data based on a specified WindIO wind resource file.
    Currently supported wind resource formats include:

    • Time series
    • Wind rose
    • Weibull distribution

WindIO parsing and field tracking

WindIO input files are read using the modified dictionary class
read_windio/utils/TrackedDict.

This class tracks which WindIO fields are accessed during parsing and emits a warning when keys from the WindIO input are not used. This mechanism helps:

  • Identify which WindIO fields are currently mapped to FLORIS
  • Highlight which inputs are ignored or not yet supported

Dependency management

WindIO is imported at runtime and therefore remains an optional dependency of FLORIS.
Users who do not rely on WindIO workflows are not affected.

Impacted areas of the software

Most changes are contained within the read_windio directory and are therefore largely orthogonal to other ongoing or future developments.

To comply with the WindIO output standard, a new keep_inertial_frame option was added to the initialization of FlowFieldPlanarGrid.
This option allows the FLORIS flow field to be computed on a fixed inertial grid, rather than in a frame aligned with the main wind direction, which is required for compatibility with WindIO outputs.

Optional TODOs

  • Review and update documentation as needed
  • Add tests for WindIO-based workflows
  • Check for unmapped or unsupported features (e.g. blockage_model, axial_induction_model, rotor_averaging)
  • Enforce consistent FLORIS-style logging across the new code

@misi9170
Copy link
Copy Markdown
Collaborator

misi9170 commented Feb 23, 2026

Hi @lejeunemax ,

Thanks for the pull request! To get started with it, I have pulled down your fork, made the necessary formatting changes, and resolved some conflicts with the develop branch. Then I went to push up those changes, and my permissions were denied.

At first, I thought this was just because the permissions on the PR weren't allowing maintainers to commit, but I see that permissions are indeed enabled.

Digging a bit further, I think the issue here may be that your fork of FLORIS is forked from rafmudaf/FLORIS, rather than NatLabRockies/FLORIS, which has broken the permission chain (see also here). To allow me to make commits, I think there are a couple of options:

  • Create a new fork on your repo that forks from NatLabRockies/FLORIS (you can either replace the existing for, or keep it and name this fork something other than "floris"); push the windIO branch to that fork; and then close this PR and reopen it from the repo that forks directly from NatLabRockies/FLORIS
  • Grant me general permissions to your fork so that I can commit to the windIO branch regardless of the PR and fork status

Of these, I think the first is a better and more stable option, but it requires a bit of reconfiguring on your end. If you'd rather go for the second, you can always remove permissions from your fork once this PR is merged (but, presumably, the same thing will happen if you open another PR to NatLabRockies/FLORIS in future)

Sorry for the headache!

@lejeunemax
Copy link
Copy Markdown
Author

Moving this discussion to #1191

@lejeunemax lejeunemax closed this Mar 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants