WOMBAT
Windfarm Operations & Maintenance cost-Benefit Analysis Tool.
https://github.com/nlrwindsystems/wombat
Category: Renewable Energy
Sub Category: Wind Energy
Keywords
operations-maintenance python3 simpy simulation wind-energy
Keywords from Contributors
wind
Last synced: 4 minutes ago
JSON representation
Repository metadata
Windfarm Operations & Maintenance cost-Benefit Analysis Tool
- Host: GitHub
- URL: https://github.com/nlrwindsystems/wombat
- Owner: NLRWindSystems
- License: apache-2.0
- Created: 2021-04-19T18:17:42.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2026-01-08T20:32:15.000Z (about 1 month ago)
- Last Synced: 2026-01-30T19:55:08.655Z (10 days ago)
- Topics: operations-maintenance, python3, simpy, simulation, wind-energy
- Language: Python
- Homepage: https://nlrwindsystems.github.io/WOMBAT/
- Size: 613 MB
- Stars: 26
- Watchers: 9
- Forks: 20
- Open Issues: 13
- Releases: 39
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: docs/contributing.md
- License: LICENSE
- Citation: citation.bib
- Notice: NOTICE
README.md
WOMBAT: Windfarm Operations & Maintenance cost-Benefit Analysis Tool
This library provides a tool to simulate the operation and maintenance phase (O&M) of
distributed, land-based, and offshore windfarms using a discrete event simultaion
framework.
WOMBAT is written around the SimPy discrete
event simulation framework. Additionally, this is supported using a flexible
object-oriented code base, which enables the modeling of arbitrarily large (or small)
windfarms with as many or as few failure and maintenance tasks that can be encoded.
Please note that this is still under development, so you may find some functionality
to be incomplete at the current moment, but rest assured the functionality is expanding.
With that said, it would be greatly appreciated for issues or PRs to be submitted for
any improvements at all, from fixing typos (guaranteed to be a few) to features to
testing.
If you use this library please cite our NREL Technical Report:
@techreport{hammond2022wombat,
title = {Windfarm Operations and Maintenance cost-Benefit Analysis Tool (WOMBAT)},
author = {Hammond, Rob and Cooperman, Aubryn},
abstractNote = {This report provides technical documentation and background on the newly-developed Wind Operations and Maintenance cost-Benefit Analysis Tool (WOMBAT) software. WOMBAT is an open-source model that can be used to obtain cost estimates for operations and maintenance of land-based or offshore wind power plants. The software was designed to be flexible and modular to allow for implementation of new strategies and technological innovations for wind plant maintenance. WOMBAT uses a process-based simulation approach to model day-to-day operations, repairs, and weather conditions. High-level outputs from WOMBAT, including time-based availability and annual operating costs, are found to agree with published results from other models.},
doi = {10.2172/1894867},
url = {https://www.osti.gov/biblio/1894867},
place = {United States},
year = {2022},
month = {10},
institution = {National Renewable Energy Lab. (NREL)},
}
Part of the WETO Stack
WOMBAT is primarily developed with the support of the U.S. Department of Energy and is part of the WETO Software Stack. For more information and other integrated modeling software, see:
WOMBAT in Action
There a few Jupyter notebooks to get users up and running with WOMBAT in the examples/
folder, but here are a few highlights:
Note
In v0.6 the results will diverge significantly under certain modeling conditions from
past versions due to substantial model upgrades on the backend and new/updated
features to better specify how repairs are managed.
- Dinwoodie, et al. replication for
wombatcan be found in the
examples folder <https://github.com/WISDEM/WOMBAT/blob/main/examples/dinwoodie_validation.ipynb>_. - IEA Task 26
validation exercise <https://github.com/WISDEM/WOMBAT/blob/main/examples/iea_26_validation.ipynb>_. - Presentations:
slides <https://github.com/WISDEM/WOMBAT/blob/main/presentation_material/>_.
Setup
Requirements
- Python 3.11+
Environment Setup
Download the latest version of Miniconda
for the appropriate OS. Follow the remaining
steps
for the appropriate OS version.
Using conda, create a new virtual environment:
conda create -n <environment_name> python=3.11
conda activate <environment_name>
conda install -c anaconda pip
# activate the environment
conda activate <environment_name>
# to deactivate
conda deactivate
Installation
Once in your desired environment, WOMBAT can be installed from PyPI via pip install
or from source.
Pip
This option is best for those working with the latest release, or including WOMBAT as
a tool in a workflow without the desire to modify the source code.
pip install wombat
From Source
This option is ideal for users that wish to work with the examples, modify the source
code, and/or contribute back to the project.
Install it directly into an activated virtual environment:
git clone https://github.com/WISDEM/WOMBAT.git
cd WOMBAT
pip install .
Usage
After installation, the package can imported:
python
import wombat
wombat.__version__
For further usage, please see the documentation site at https://wisdem.github.io/WOMBAT.
Requirements for Contributing to WOMBAT
Code Contributions
Code contributors should note that there is both an additional dependency suite for
running the tests and enabling the pre-commit workflow to automatically standardize the
core code formatting principles. In short, the following steps should be taken, but be
sure to read the
contributor's guide
git clone https://github.com/WISDEM/WOMBAT.git
cd wombat
# Install the additional dependencies for running the tests and automatic code formatting
pip install -e '.[dev]'
# Enable the pre-commit workflow for automatic code formatting
pre-commit install
# ... contributions and commits ...
# Run the tests and ensure they all pass
pytest tests
Basic pre-commit issues that users might encounter and their remedies:
- For any failed run, changes may have been either automatically applied or require
further edits from the contributor. In either case, after changes have been made,
contributors will have to rerungit add <the changed files>and
git commit -m <the commit message>to restart the pre-commit workflow with the
applied changes. Once all checks pass, the commit is safe to be pushed. isort,black, or simple file checks failed, but made changes- rerun the
addandcommitprocesses as needed until the changes satisfy the checks
- rerun the
rufffailed:- Address the errors and rerun the
addandcommitprocesses
- Address the errors and rerun the
mypyhas type errors that seem incorrect- Double check the typing is in fact as correct as it seems it should be and rerun the
addandcommitprocesses - If
mypysimply seems confused with seemingly correct types, the following statement
can be added above themypyerror:
assert isinstance(<variable of concern>, <the type you think mypy should be registering>) - If that's still not working, but you are definitely sure the types are correct,
simply add a# type ignorecomment at the end of the line. Sometimesmypystruggles
with complex scenarios, or especially with certainattrsconventions.
- Double check the typing is in fact as correct as it seems it should be and rerun the
Documentation Contributions
git clone https://github.com/WISDEM/WOMBAT.git
cd WOMBAT
pip install -e '.[docs]'
Build the site
Note
You may want to change the "execute_notebooks" parameter in thedocs/_config.yaml
file to "off" unless you're updating the coded examples, or they will run every time
there is an update to the base files.
jupyter-book build docs
View the results: docs/_build/html/index.html
Code and Documentation Contributions
git clone https://github.com/WISDEM/WOMBAT.git
cd wombat
pip install -e '.[all]'
Dependencies
Standard dependencies:
- attrs>=24.1
- numpy>=1.21
- scipy>=1.8
- pandas>=2
- polars>=1.33.1
- pyarrow>=10
- jupyterlab>=3
- simpy>=4.0.1
- pyyaml>=6
- geopy>=2.3
- networkx>=2.7
- matplotlib>=3.3
- types-attrs>=19
- types-typed-ast>=1.5
- types-PyYAML>=6
- types-python-dateutil>=2.8
- python-dateutil
- "polars-lts-cpu; sys_platform == 'darwin'",
Optional "dev" dependencies:
- pre-commit>=2.20
- isort>=5.10
- pytest>=7
- pytest-cov>=4
- mypy
- ruff>=0.2
- pyupgrade
Optional "docs" dependencies:
- jupyter-book>1,<2
- myst-nb>=0.16
- myst-parser>=0.17
- linkify-it-py>=2
- sphinx-autodoc-typehints
- sphinxcontrib-autoyaml
- sphinxcontrib-bibtex>=2.4
- sphinxcontrib-spelling>=7
Citation (citation.bib)
@techreport{hammond2022wombat,
title = {Windfarm Operations and Maintenance cost-Benefit Analysis Tool (WOMBAT)},
author = {Hammond, Rob and Cooperman, Aubryn},
abstractNote = {This report provides technical documentation and background on the newly-developed Wind Operations and Maintenance cost-Benefit Analysis Tool (WOMBAT) software. WOMBAT is an open-source model that can be used to obtain cost estimates for operations and maintenance of land-based or offshore wind power plants. The software was designed to be flexible and modular to allow for implementation of new strategies and technological innovations for wind plant maintenance. WOMBAT uses a process-based simulation approach to model day-to-day operations, repairs, and weather conditions. High-level outputs from WOMBAT, including time-based availability and annual operating costs, are found to agree with published results from other models.},
doi = {10.2172/1894867},
url = {https://www.osti.gov/biblio/1894867},
place = {United States},
year = {2022},
month = {10},
institution = {National Renewable Energy Lab. (NREL)},
}
Owner metadata
- Name: NLRWindSystems
- Login: NLRWindSystems
- Email: systems.engineering@nrel.gov
- Kind: organization
- Description: The home of wind energy systems models developed, released, and maintained by the National Laboratory of the Rockies, formerly named NREL
- Website: https://www.nrel.gov/wind/systems-engineering.html
- Location: United States of America
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/5444272?v=4
- Repositories: 40
- Last ynced at: 2026-01-15T00:49:55.882Z
- Profile URL: https://github.com/NLRWindSystems
GitHub Events
Total
Last Year
Committers metadata
Last synced: 1 day ago
Total Commits: 298
Total Committers: 9
Avg Commits per committer: 33.111
Development Distribution Score (DDS): 0.191
Commits in past year: 65
Committers in past year: 5
Avg Commits per committer in past year: 13.0
Development Distribution Score (DDS) in past year: 0.077
| Name | Commits | |
|---|---|---|
| Rob Hammond | 1****2 | 241 |
| Hammond, Robert | R****d@n****v | 38 |
| Rob | r****d@n****v | 8 |
| pre-commit-ci[bot] | 6****] | 3 |
| Garrett Barter | g****r@n****v | 3 |
| dmulash | 1****h | 2 |
| Jared Thomas | j****8 | 1 |
| David Österberg | d****t@g****m | 1 |
| Daniel Mulas Hernando | 1****s | 1 |
Committer domains:
- nrel.gov: 3
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4 composite
- codecov/codecov-action v1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- peaceiris/actions-gh-pages v3.6.1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- pypa/gh-action-pypi-publish release/v1 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- pypa/gh-action-pypi-publish release/v1 composite
Score: 5.860786223465865