A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

floris

A controls-oriented engineering wake modeling framework for evaluating the impact of wind farm controls on AEP and wind farm design.
https://github.com/NREL/floris

Category: Renewable Energy
Sub Category: Wind Energy

Keywords from Contributors

wind wind-turbines wind-energy control ecp exascale-computing measur floris scada archiving

Last synced: about 13 hours ago
JSON representation

Repository metadata

A controls-oriented engineering wake model.

README.md

FLORIS Wake Modeling and Wind Farm Controls Software

FLORIS is a controls-focused wind farm simulation software incorporating
steady-state engineering wake models into a performance-focused Python
framework. It has been in active development at NREL since 2013 and the latest
release is FLORIS v.4.4.1.
Online documentation is available at https://nrel.github.io/floris.

The software is in active development and engagement with the development team
is highly encouraged. If you are interested in using FLORIS to conduct studies
of a wind farm or extending FLORIS to include your own wake model, please join
the conversation in GitHub Discussions!

Installation

If upgrading from a previous version, it is recommended to install FLORIS v4 into a new virtual environment.
If you intend to use pyOptSparse with FLORIS,
it is recommended to install that package first before installing FLORIS.

FLORIS can be installed by downloading the source code or via the PyPI
package manager with pip.

The simplest method is with pip by using this command:

pip install floris

Developers and anyone who intends to inspect the source code
can install FLORIS by downloading the git repository
from GitHub with git and use pip to locally install it.
It is highly recommended to use a Python virtual environment manager
such as conda
in order to maintain a clean and sandboxed environment. The following
commands in a terminal or shell will download and install FLORIS.

    # Download the source code from the `main` branch
    git clone -b main https://github.com/NREL/floris.git

    # If using conda, be sure to activate your environment prior to installing
    # conda activate <env name>

    # If using pyOptSpare, install it first
    conda install -c conda-forge pyoptsparse

    # Install FLORIS
    pip install -e floris

With both methods, the installation can be verified by opening a Python interpreter
and importing FLORIS:

>>> import floris
>>> help(floris)

Help on package floris:

NAME
    floris - # Copyright 2024 NREL

PACKAGE CONTENTS
    convert_floris_input_v3_to_v4
    convert_turbine_v3_to_v4
    core (package)
    cut_plane
    floris_model
    flow_visualization
    layout_visualization
    logging_manager
    optimization (package)
    parallel_floris_model
    turbine_library (package)
    type_dec
    uncertain_floris_model
    utilities
    version
    wind_data

VERSION
    4.4.1

FILE
    ~/floris/floris/__init__.py

It is important to regularly check for new updates and releases as new
features, improvements, and bug fixes will be issued on an ongoing basis.

Quick Start

FLORIS is a Python package run on the command line typically by providing
an input file with an initial configuration. It can be installed with
pip install floris (see installation).
The typical entry point is
FlorisModel
which accepts the path to the input file as an argument. From there,
changes can be made to the initial configuration through the
FlorisModel.set
routine, and the simulation is executed with
FlorisModel.run.

from floris import FlorisModel
fmodel = FlorisModel("path/to/input.yaml")
fmodel.set(
    wind_directions=[i for i in range(10)],
    wind_speeds=[8.0]*10,
    turbulence_intensities=[0.06]*10
)
fmodel.run()

Finally, results can be analyzed via post-processing functions available within
FlorisModel
such as

and in two visualization packages: layoutviz and flowviz.
A collection of examples describing the creation of simulations as well as
analysis and post processing are included in the
repository. Examples are also listed
in the online documentation.

Engaging on GitHub

FLORIS leverages the following GitHub features to coordinate support and development efforts:

  • Discussions: Collaborate to develop ideas for new use cases, features, and software designs, and get support for usage questions
  • Issues: Report potential bugs and well-developed feature requests
  • Projects: Include current and future work on a timeline and assign a person to "own" it

Generally, the first entry point for the community will be within one of the
categories in Discussions.
Ideas is a great spot to develop the
details for a feature request. Q&A
is where to get usage support.
Show and tell is a free-form
space to show off the things you are doing with FLORIS.

License

BSD 3-Clause License

Copyright (c) 2024, Alliance for Sustainable Energy LLC, All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted
provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions
    and the following disclaimer.

  • Redistributions in binary form must reproduce the above copyright notice, this list of
    conditions and the following disclaimer in the documentation and/or other materials provided
    with the distribution.

  • Neither the name of the copyright holder nor the names of its contributors may be used to
    endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 6 days ago

Total Commits: 1,938
Total Committers: 44
Avg Commits per committer: 44.045
Development Distribution Score (DDS): 0.503

Commits in past year: 102
Committers in past year: 10
Avg Commits per committer in past year: 10.2
Development Distribution Score (DDS) in past year: 0.441

Name Email Commits
Rafael M Mudafort r****f@g****m 964
Paul p****g@n****v 327
bayc c****y@g****m 178
misi9170 3****0 84
Bay c****y@n****v 69
Rob Hammond 1****2 68
Eric Simley e****y@n****v 38
Annoni j****i@n****v 32
Annoni j****i@.****v 26
nhamilto n****n@g****m 23
Bart Doekemeijer b****r@n****v 21
Pete Bachant p****t@g****m 19
Nicholas Hamilton n****n@n****v 19
Hammond, Robert R****d@n****v 16
Bart Doekemeijer b****r@s****m 10
kflemin k****g@n****v 6
Eliot Quon e****n@n****v 4
PJ Stanley s****j@y****m 3
Bensason d****o@n****v 2
jrannoni j****i@n****v 2
Pablo Benito Cia p****o@c****m 2
Gopal Yalla g****a@s****v 2
pjireland p****d@w****m 2
Tony Martinez t****e@g****m 1
afarrell2 5****2 1
dependabot[bot] 4****] 1
jfrederik-nrel 1****l 1
pduff-code 5****e 1
rctredgold 6****d 1
scottryn s****n@g****m 1
and 14 more...

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 267
Total pull requests: 554
Average time to close issues: 5 months
Average time to close pull requests: 28 days
Total issue authors: 72
Total pull request authors: 46
Average comments per issue: 2.26
Average comments per pull request: 2.06
Merged pull request: 451
Bot issues: 0
Bot pull requests: 1

Past year issues: 46
Past year pull requests: 107
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 16 days
Past year issue authors: 14
Past year pull request authors: 11
Past year average comments per issue: 2.52
Past year average comments per pull request: 2.07
Past year merged pull request: 79
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/NREL/floris

Top Issue Authors

  • paulf81 (52)
  • rafmudaf (35)
  • Bartdoekemeijer (24)
  • misi9170 (23)
  • bayc (15)
  • pjireland (10)
  • achenry (7)
  • MYMahfouz (4)
  • zerweck (4)
  • Josue9740 (4)
  • DeeDive (3)
  • jfrederik-nrel (3)
  • fpxno1 (3)
  • ElieKadoche (3)
  • fabiodominguezs (3)

Top Pull Request Authors

  • paulf81 (179)
  • misi9170 (92)
  • rafmudaf (90)
  • bayc (56)
  • Bartdoekemeijer (34)
  • RHammond2 (20)
  • ejsimley (10)
  • nhamilto (8)
  • gogannes (5)
  • pjireland (4)
  • ewquon (4)
  • petebachant (3)
  • pjstanle (3)
  • ElieKadoche (3)
  • vallbog (3)

Top Issue Labels

  • bug (82)
  • enhancement (77)
  • v3 (46)
  • floris.simulation (18)
  • documentation (17)
  • v4 (15)
  • floris.tools (14)
  • v2.x (7)
  • help wanted (5)
  • floating-turbine (5)
  • ideas-list (5)
  • back-log (4)
  • in-progress (4)
  • examples (4)
  • good first issue (3)
  • new-feature (3)
  • floris.optimization (2)
  • v3.3 (1)
  • question (1)
  • feature (1)
  • backlog (1)

Top Pull Request Labels

  • enhancement (162)
  • bug (99)
  • v3 (71)
  • v4 (48)
  • documentation (29)
  • floris.tools (25)
  • floris.simulation (16)
  • new-feature (11)
  • examples (6)
  • floris.optimization (5)
  • on-hold (5)
  • floating-turbine (4)
  • v3.3 (3)
  • v2.x (3)
  • in-progress (3)

Package metadata

pypi.org: floris

A controls-oriented engineering wake model.

  • Homepage: https://github.com/NREL/floris
  • Documentation: https://nrel.github.io/floris/
  • Licenses: BSD 3-Clause License Copyright (c) 2024, Alliance for Sustainable Energy LLC, All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • Latest release: 4.4.1 (published 20 days ago)
  • Last Synced: 2025-04-25T12:33:03.245Z (1 day ago)
  • Versions: 53
  • Dependent Packages: 3
  • Dependent Repositories: 11
  • Downloads: 10,758 Last month
  • Rankings:
    • Forks count: 4.211%
    • Dependent repos count: 4.44%
    • Average: 5.579%
    • Stargazers count: 5.687%
    • Downloads: 6.247%
    • Dependent packages count: 7.31%
  • Maintainers (4)
proxy.golang.org: github.com/nrel/floris

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/nrel/floris#section-documentation
  • Licenses:
  • Latest release: v4.4.1+incompatible (published 20 days ago)
  • Last Synced: 2025-04-25T12:33:03.452Z (1 day ago)
  • Versions: 38
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 6.999%
    • Average: 8.173%
    • Dependent repos count: 9.346%
proxy.golang.org: github.com/NREL/floris

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/NREL/floris#section-documentation
  • Licenses:
  • Latest release: v4.4.1+incompatible (published 20 days ago)
  • Last Synced: 2025-04-25T12:33:03.523Z (1 day ago)
  • Versions: 38
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 6.999%
    • Average: 8.173%
    • Dependent repos count: 9.346%
conda-forge.org: floris

  • Homepage: https://github.com/NREL/FLORIS
  • Licenses: BSD-3-Clause
  • Latest release: 3.1.1 (published almost 3 years ago)
  • Last Synced: 2025-04-25T12:33:10.185Z (1 day ago)
  • Versions: 14
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Forks count: 16.062%
    • Stargazers count: 29.339%
    • Average: 32.65%
    • Dependent repos count: 34.025%
    • Dependent packages count: 51.175%

Dependencies

requirements.txt pypi
  • attrs *
  • coloredlogs *
  • matplotlib *
  • numexpr *
  • numpy *
  • pandas *
  • pytest *
  • pyyaml *
  • scipy *
  • shapely *

Score: 18.85616373337517