| Version | Zenodo Release | Docstring Style | Coverage |
|---|---|---|---|
RESKit aids with the broad-scale simulation of renewable energy systems, primarily for the purpose of input generation to Energy System Design Models. Simulation tools currently exist for onshore and offshore wind turbines, as well as for solar photovoltaic (PV) systems and concentrated solar power (CSP), in addition to general weather-data manipulation tools. Simulations are performed in the context of singular units, however high computational performance is nevertheless maintained. As a result, this tool allows for the simulation of millions of individual turbines and PV/CSP systems in a matter of minutes depending on the hardware.
- High performance unit-level wind turbine, PV module and CSP simulations
- Can generate synthetic wind turbine power curves
- Access to all PV modules in the most recent databases from Sandia and the California Energy Commission (CEC)
- Configurable to make use of different climate model datasets
- Allows correction to real national capacity factor averages
- Flexible & modular function designs
1 a) If you do not have an existing conda/mamba environment:
conda env create -c conda-forge reskit -n <ENVIRONMENT-NAME>
1 b) If you have an existing environment, install RESKit into it:
conda install -c conda-forge reskit -n <YOUR-ENVIRONMENT-NAME>
2 ) Activate the environment:
conda activate <YOUR-ENVIRONMENT-NAME>
3 a) Get the RESKit source code (including examples):
git clone https://github.com/FZJ-IEK3-VSA/reskit.git
cd reskit
3 b) If you do not have Git and just want to check the examples, download and extract the source code with this link:
https://github.com/FZJ-IEK3-VSA/RESKit/archive/refs/heads/master.zip
Please follow these steps for an editable installation:
1 ) Clone and checkout dev:
git clone https://github.com/FZJ-IEK3-VSA/reskit.git
cd reskit
git checkout dev
2 a) RESkit should be installable to a new environment with:
conda env create --file requirements-dev.yml
2 b) (Alternative) Or into an existing environment with:
conda env update --file requirements-dev.yml -n <ENVIRONMENT-NAME>
3 ) Install an editable version of reskit (when in the reskit folder) via
pip install -e .
RESKit workflows are driven by gridded weather data. RESKit ships a single
high-level helper, rk.download_and_process, that downloads exactly the variables a
given workflow needs from the relevant data provider, preprocesses them (e.g. wind
speed from u/v components, solar unit and time-shift corrections), and optionally
tiles them into the <zoom>/<x>/<y>/<year>/ directory structure expected by the
weather sources.
ERA5 reanalysis from the Copernicus Climate Data Store (CDS) is currently the supported source; additional weather data sources are planned.
import reskit as rk
result = rk.download_and_process(
workflow="wind_era5_PenaSanchezDunkelWinklerEtAl2025",
start_date="2000-01-01",
end_date="2000-12-31",
boundary_box={"north": 55, "south": 47, "west": 6, "east": 15}, # Germany
output_dir="/path/to/your/weather_data",
tiling=True,
)
print(result["era5_path"])To prepare data for several workflows in a single call, pass a list of workflow names
as workflow; the union of their variable requirements is downloaded and processed at
once, e.g. workflow=["openfield_pv_era5", "CSP_PTR_ERA5"]. A CDS account with a
configured ~/.cdsapirc API key is required for ERA5
(see https://cds.climate.copernicus.eu/how-to-api).
Note that some workflows also rely on data whose automated download is not yet
implemented — solar/CSP workflows on Global Solar Atlas rasters and wind workflows
on Global Wind Atlas rasters. download_and_process prints a notice for these and
you must supply the rasters manually.
End-to-end examples live in examples/1_load_input_data/:
For full manual control over the raw ERA5/CDS download (variables, area, and timeframe), see the lower-level example notebook 1_1_1_how_to_download_era5_data.ipynb.
If you decide to use RESkit anywhere in a published work related to wind energy, please kindly cite us using the following publications.
When using the ETHOS.RESKit.Wind workflow please cite:
@article{PenaSanchezDunkelWinklerEtAl2026,
title = {Towards High Resolution, Validated and Open Global Wind Power Assessments},
author = {{Pe{\~n}a-S{\'a}nchez}, E. U. and Dunkel, P. and Winkler, C. and Heinrichs, H. and Prinz, F. and Weinand, J. M. and Maier, R. and Dickler, S. and Chen, S. and Gruber, K. and Kl{\"u}tz, T. and Lin{\ss}en, J. and Stolten, D.},
year = 2026,
month = jan,
journal = {Nature Communications},
volume = {17},
number = {1},
pages = {539},
issn = {2041-1723},
doi = {10.1038/s41467-026-68337-z},
url = {http://dx.doi.org/10.1038/s41467-026-68337-z},
}When using anything else:
@article{RybergWind2019,
author = {Ryberg, David Severin and Caglayan, Dilara Gulcin and Schmitt, Sabrina and Lin{\ss}en, Jochen and Stolten, Detlef and Robinius, Martin},
doi = {10.1016/j.energy.2019.06.052},
issn = {03605442},
journal = {Energy},
month = {sep},
pages = {1222--1238},
title = {{The future of European onshore wind energy potential: Detailed distribution and simulation of advanced turbine designs}},
url = {https://linkinghub.elsevier.com/retrieve/pii/S0360544219311818},
volume = {182},
year = {2019}
}
The source code in this repository is licensed under: MIT License Copyright (c) 2019-2025 FZJ-ICE-2
The data files cf_correction_factors_PSDW2025.tif and ws_correction_factors_PSDW2025.yaml are licensed under CC-BY-4.0
You should have received a copy of the MIT License along with this program.
If not, see https://opensource.org/licenses/MIT
Every contributions are welcome:
- If you want to report a bug, please open an Issue. We will then take care of the issue as soon as possible.
- If you want to contribute with additional features or code improvements, open a Pull request.
We are the Institute of Climate and Energy Systems – Jülich Systems Analysis (ICE-2) at the Forschungszentrum Jülich. Our work focuses on independent, interdisciplinary research in energy, bioeconomy, infrastructure, and sustainability. We support a just, greenhouse gas–neutral transformation through open models and policy-relevant science.
Please respect our code of conduct.
This work was initially supported by the Helmholtz Association under the Joint Initiative "Energy System 2050 A Contribution of the Research Field Energy".