Welcome to WAVEKit, a comprehensive toolkit in Python for analyzing the economic viability of offshore wind energy projects. This repository provides tools and scripts to calculate the Levelized Cost of Energy (LCOE) and perform economic analysis, allowing you to make informed decisions regarding wind energy investments.
WAVEKit was developed as part of the HIPERWIND project to provide a modular framework for assessing the levelized cost of energy (LCOE) for offshore wind farms. The goal was to offer users enough granularity to analyze the impact of optimizing specific tasks, such as tower design or maintenance scheduling, on the overall LCOE. To achieve this, the tool was designed as a Python library consisting of various submodules responsible for calculating key techno-economic metrics (e.g., annual energy production, capital expenditure, maintenance costs). Each submodule contains several models with varying levels of complexity, allowing users to customize the tool to suit their specific needs. Applications range from fast-turnaround assessments for project feasibility to more detailed models with higher fidelity and uncertainty quantification. The current version of WAVEKit provides an integrated approach to computing LCOE while giving users control over which models are used in the analysis. Each submodule can also be used independently to explore specific aspects in greater detail. Additionally, the modular framework makes it easy to develop and implement new models, which can then be combined to calculate additional metrics. This adaptability makes WAVEKit a versatile tool for various techno-economic analyses of wind projects. Future releases aim to expand the tool's capabilities and introduce analysis methods that go beyond LCOE quantification.
WAVEKit provides the user with a versatile framework allowing to:
- Calculate the Levelized Cost of Energy (LCOE) for offshore wind farms.
- Estimate capital expenditures (CAPEX) and operational expenditures (OPEX).
- Conduct sensitivity analyses and scenario modeling.
- Visualize economic metrics and results.
WAVEKit is organized around several core component (submodules):
- CAPEX model: Contains methods to compute the capital expenditure (CAPEX) as a function of the characteristic of the wind turbines.
- Component cost-model: Contains a large variety of models to compute the cost of the wind farm components (turbine, balance of plant) to be used in the CAPEX calculation.
- Financial model: Contains tools to the project’s economics.
- OPEX model: Contains methods to estimate the operation and maintenance costs of the project.
- Wind farm model: Handles the calculation of the annual energy production (AEP) of the wind farm.
- Turbine model: A sub-component of the wind farm model. It is responsible for estimate the turbine power production from the wind speed. It also contains the main characteristics of the turbine design, that are used in the CAPEX model to estimate the costs.
- Site condition model: Another sub-component of the wind farm model representing the wind resource for the wind farm. It provides with statistical or timeseries of wind conditions used for the AEP calculation.
- Wind Asset Economics Model: A generic family of model to compute techno economics analysis the wind farm project. It leverages input from the other submodules to compute the relevant metrics such as LCOE.
Each submodule contains several models that can be used interchangeably, allowing for customization of the analysis. Additionally, a standard API is defined for each module, specifying how it should be called by other classes, the required inputs, and the expected output format. This structure makes it easy to develop and integrate new models into the tool.
An overview of WAVEKit architecture is given on Figure 1.
This subsection details the step-by-step process to install WAVEKit.
-
Clone this repository to your local machine.
git clone <repository URL>
-
Navigate to the WAVEKit folder and create a new python environement using
venv
.cd ./WAVEKit py -m venv .venv .\.venv\Scripts\activate
-
Install the required python packages.
pip install -r requirements.txt
-
Also, Install the WAVEKit package (for standard user).
- For standard user
pip install .
- For developers
pip install -e .
- For standard user
-
Run the tests.
py pytest ./tests
All tests should pass, contact support if otherwise.
The doc folder of this repository contains the documentation about this library. The directory is organized as follows:
- The doc/examples sub-folder contains notebook presenting a step-by-step process on how to set up and run WAVEKit's. model.
- The doc/models sub-folder contains notebook introducing the main library model described in in the tool architecture section. Each model is presented by a specific notebook detailing its main features, as well the different model variations available to the user.
Additionally, the user can refer to the templates provided as examples embebded in the WAVEKit library for more details on how to use yaml files to set user-defined models.
For inquiries or feedback, please reach out to cjacquet@epri.com.
This project has received funding from the European Union’s Horizon 2020 Research and Innovation Programme under Grant Agreement No. 101006689
Copyright © 2024 EPRI, Inc. 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 EPRI nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
The EPRI materials, embodiments, or other use Software Program and supporting materials may be ordered from:
EPRI, Inc. 1300 W. W.T. Harris Blvd. Charlotte, NC 28262 USA Phone: 1-800-313-3774 Email: askepri@epri.com
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 EPRI 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.