Skip to main content

Farm Optimization and eXtended yield Evaluation Software

Project description

Welcome to foxes

FOXES Logo

Overview

The software foxes is a modular wind farm simulation and wake modelling toolbox which is based on engineering wake models. It has many applications, for example

  • Wind farm optimization, e.g. layout optimization or wake steering,
  • Wind farm post-construction analysis,
  • Wake model studies, comparison and validation,
  • Wind farm simulations invoking complex model chains.

The calculation is fully vectorized and its fast performance is owed to dask. Also the parallelization on local or remote clusters is enabled via dask. The wind farm optimization capabilities invoke the iwopy package which as well supports vectorization.

foxes is build upon many years of experience with wake model code development at IWES, starting with the C++ based in-house code flapFOAM (2011-2019) and the Python based direct predecessor flappy (2019-2022).

Documentation: https://fraunhoferiwes.github.io/foxes.docs/index.html

Source code: https://github.com/FraunhoferIWES/foxes

PyPi reference: https://pypi.org/project/foxes/

Requirements

The supported Python versions are:

  • Python 3.7
  • Python 3.8
  • Python 3.9
  • Python 3.10

Installation

Virtual Python environment

We recommend working in a Python virtual environment and install foxes there. Such an environment can be created by

python -m venv /path/to/my_venv

and afterwards be activated by

source /path/to/my_venv/bin/activate

Note that in the above commands /path/to/my_venv is a placeholder that should be replaced by a path to a (non-existing) folder of your choice, for example ~/venv/foxes.

All subsequent installation commands via pip can then be executed directly within the active environment without changes. After your work with foxes is done you can leave the environment by the command deactivate.

Standard users

As a standard user, you can install the latest release via pip by

pip install foxes

If you are also interested in running wind farm optimizations, please install

pip install foxes[opt]

Both commands install versions that correspond to the main branch at github. Alternatively, you can decide to install the latest pre-release developments (non-stable) by

pip install git+https://github.com/FraunhoferIWES/foxes@dev#egg=foxes

Developers

The first step as a developer is to clone the foxes repository by

git clone https://github.com/FraunhoferIWES/foxes.git

Enter the root directory by cd foxes. Then you can either install from this directory via

pip install -e .

or if you are also interested in running wind farm optimizations, then

pip install -e .[opt]

Alternatively, add the foxes directory to your PYTHONPATH, e.g. by running

export PYTHONPATH=`pwd`:$PYTHONPATH

from the root foxes directory, and then

pip install -r requirements.txt

For running optimizations, please install in addition

pip install iwopy pymoo

Usage

For detailed examples of how to run foxes, check the examples and notebooks folders in this repository. A minimal running example is the following, based on provided static csv data files:

import foxes

states = foxes.input.states.Timeseries("timeseries_3000.csv.gz", ["WS", "WD","TI","RHO"])

mbook = foxes.ModelBook("NREL-5MW-D126-H90.csv")

farm = foxes.WindFarm()
foxes.input.farm_layout.add_from_file(farm,"test_farm_67.csv",turbine_models=["Pct"])

algo = foxes.algorithms.Downwind(mbook, farm, states, ["Jensen_linear_k007"])
farm_results = algo.calc_farm()

print(farm_results)

Contributing

  1. Fork foxes on github.
  2. Create a branch (git checkout -b new_branch)
  3. Commit your changes (git commit -am "your awesome message")
  4. Push to the branch (git push origin new_branch)
  5. Create a pull request

Acknowledgements

The development of foxes and its predecessors flapFOAM and flappy (internal - non public) has been supported through multiple publicly funded research projects. We acknowledge in particular the funding by the Federal Ministry of Economic Affairs and Climate Action (BMWK) through the projects Smart Wind Farms (grant no. 0325851B), GW-Wakes (0325397B) and X-Wakes (03EE3008A) as well as the funding by the Federal Ministry of Education and Research (BMBF) in the framework of the project H2Digital (03SF0635).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

foxes-0.2.5.tar.gz (775.0 kB view details)

Uploaded Source

Built Distribution

foxes-0.2.5-py3-none-any.whl (853.2 kB view details)

Uploaded Python 3

File details

Details for the file foxes-0.2.5.tar.gz.

File metadata

  • Download URL: foxes-0.2.5.tar.gz
  • Upload date:
  • Size: 775.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for foxes-0.2.5.tar.gz
Algorithm Hash digest
SHA256 dbe93589c5ae69eee0e6aac82e426ca77ad6c7b0f61bf49522a8940943b0e9a0
MD5 504e1e6864235d24ae9485443a502162
BLAKE2b-256 d9b538b56a1f6770e9d51c7041037241f5fa4551cf094840ae4fa52fe23387ea

See more details on using hashes here.

File details

Details for the file foxes-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: foxes-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 853.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for foxes-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f8e9423e1f7cfc9a20b6aad35903a55e9389d8e491304e791889bdff0342873b
MD5 b3e2d36b182f54e47b2daef494a17a46
BLAKE2b-256 bcc7b396df9a1c04daed9f35bb4d9367ec0ebf0acedc37f92355445f8a331060

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page