{"id":149,"name":"REVUB","description":"The main objective is to model how flexible operation of hydropower plants can help renewable electricity mixes with variable solar and wind power to provide reliable electricity supply and load-following services.","url":"https://github.com/VUB-HYDR/REVUB","last_synced_at":"2026-07-29T20:00:25.747Z","repository":{"id":140036246,"uuid":"210378591","full_name":"VUB-HYDR/REVUB","owner":"VUB-HYDR","description":"Renewable Electricity Variability, Upscaling and Balancing","archived":false,"fork":false,"pushed_at":"2026-07-20T21:58:41.000Z","size":66992,"stargazers_count":26,"open_issues_count":0,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-07-23T17:04:25.507Z","etag":null,"topics":["balancing","electricity","flexibility","hydro","renewable","solar","standalone-software","wind"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VUB-HYDR.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-09-23T14:38:22.000Z","updated_at":"2026-07-20T21:58:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"139e1e99-fe96-4c01-9fdf-3eed13ffa345","html_url":"https://github.com/VUB-HYDR/REVUB","commit_stats":{"total_commits":170,"total_committers":1,"mean_commits":170.0,"dds":0.0,"last_synced_commit":"2cb20f3b57af5a07846875d14610aef6e8a94e30"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/VUB-HYDR/REVUB","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VUB-HYDR%2FREVUB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VUB-HYDR%2FREVUB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VUB-HYDR%2FREVUB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VUB-HYDR%2FREVUB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VUB-HYDR","download_url":"https://codeload.github.com/VUB-HYDR/REVUB/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VUB-HYDR%2FREVUB/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36047717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-29T02:00:04.910Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"VUB-HYDR","name":"HYDR","uuid":"35221117","kind":"organization","description":"Department of Hydrology and Hydraulic Engineering at VUB","email":null,"website":"http://www.hydr.vub.ac.be/","location":"Brussels, Belgium","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/35221117?v=4","repositories_count":4,"last_synced_at":"2023-03-11T18:45:33.659Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/VUB-HYDR","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-02-15T04:55:06.033Z","updated_at":"2023-03-11T18:45:33.669Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VUB-HYDR","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VUB-HYDR/repositories"},"packages":[],"commits":{"id":1253975,"full_name":"VUB-HYDR/REVUB","default_branch":"master","total_commits":213,"total_committers":1,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":213.0,"dds":0.0,"past_year_total_commits":29,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":29.0,"past_year_dds":0.0,"last_synced_at":"2026-07-28T13:26:51.987Z","last_synced_commit":"6046d4e190d85b89febfe206c27b1a3e46d69dd5","created_at":"2023-03-27T10:49:16.978Z","updated_at":"2026-07-28T13:26:51.931Z","committers":[{"name":"sebastiansterl","email":"sebastian.sterl@vub.be","login":"sebastiansterl","count":213}],"past_year_committers":[{"name":"F-IR-HYDRPC127\\adm_sesterl","email":"sebastian.sterl@vub.be","login":"sebastiansterl","count":29}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/VUB-HYDR%2FREVUB/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-07-29T00:00:22.701Z","repositories_count":6453562,"commits_count":890694270,"contributors_count":37292786,"owners_count":1253890,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"VUB-HYDR/REVUB","html_url":"https://github.com/VUB-HYDR/REVUB","last_synced_at":"2026-05-06T03:03:54.590Z","status":"error","issues_count":0,"pull_requests_count":0,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":0,"pull_requests_closed_count":0,"pull_request_authors_count":0,"issue_authors_count":0,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":0,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-09T10:38:27.830Z","updated_at":"2026-05-06T03:03:54.590Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/VUB-HYDR%2FREVUB","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/VUB-HYDR%2FREVUB/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{},"pull_request_author_associations_count":{},"issue_authors":{},"pull_request_authors":{},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-07-28T00:00:20.584Z","repositories_count":14843883,"issues_count":31203215,"pull_requests_count":102599849,"authors_count":11371286,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":{"total":{"WatchEvent":1,"PushEvent":22},"last_year":{"PushEvent":10}},"keywords":["balancing","electricity","flexibility","hydro","renewable","solar","standalone-software","wind"],"dependencies":[],"score":3.258096538021482,"created_at":"2023-09-11T11:54:33.917Z","updated_at":"2026-07-29T20:00:25.752Z","avatar_url":"https://github.com/VUB-HYDR.png","language":"Python","category":"Energy Systems","sub_category":"Renewable Energy Integration","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"\n# REVUB (Renewable Electricity Variability, Upscaling and Balancing) \n\n# \u003cimg src=\"./graphs/header_logo.png\" align=\"right\" /\u003e\n\nAuthors: Sebastian Sterl\n\n\nContact author: sebastian.sterl@vub.be\n\n# 1. Introduction\n---\nThe main objective of REVUB is to model how the operation and dispatch of hydropower plants can be hybridised with variable solar and wind power (VRE) plants, allowing the combination of hydro with VRE to operate \"as a single unit\" to provide reliable electricity supply and load-following services. \n\nThe model can be used, for instance, in due diligence processes for power plant financing.\n\nThis model has been used for several peer-reviewed publications related to regional power system interconnection, solar/wind integration, and drought resilience.\n\nA detailed description of all involved principles and equations can be found in the dedicated [Manual](https://github.com/VUB-HYDR/REVUB/blob/master/3_Manual/REVUB_manual.pdf).\n\nThe REVUB code simulates dedicated hydropower plant operation to provide an effective capacity credit to VRE under technical, hydrological, and environmental constraints, and allows to derive:\n\n* Suitable mixes of hydro, solar and wind power to maximise load-following under user-defined constraints;\n* Operating rules for hydropower reservoirs to enable this load-following across wet- and dry-year conditions;\n* Hourly to decadally resolved hydro, solar and wind power generation and dispatch.\n\n# 2. Installation\n---\nThe most recent version of the REVUB model was written for Python 3.13.\n\nThe [envs](https://github.com/VUB-HYDR/REVUB/tree/master/envs) folder contains a .yaml configuration file to install the needed packages to run the latest REVUB release.\n\nA [training dataset](https://github.com/VUB-HYDR/REVUB/tree/master/4_Training), allowing the user to set up a REVUB simulation from scratch, learn how to set up input data, and become acquainted with simulation control, is available in English (EN) and Spanish (ES).\n\n# 3. Tool's structure\n---\n\n### Scripts\nThe code is divided into [four scripts](https://github.com/VUB-HYDR/REVUB/tree/master/1_REVUB_code): one for initialisation (A), one containing the core code (B), and two for plotting (C). For a detailed explanation of the purpose of each file and the equations solved by the core code, the user is referred to the Manual. The files are always run in sequence A-B-C.\n\n* **A_REVUB_initialise**\n\nThis script initialises the data needed for a simulation to run.\n\nThe script is controlled by a \"control file\" in Excel (*control_file.xlsx*) where the user controls overall modelling parameters, and reads in several Excel files with tabulated time series and other data (*data_xxx.xlsx*). \n\nIn the training dataset, the user learns how to work with these files.\n\nAn [auxiliary script](https://github.com/VUB-HYDR/REVUB/tree/master/2_Auxiliary_script) is available to convert common non-hourly data formats into (pseudo)-hourly time series required for the *data_xxx.xlsx* files.\n\n* **B_REVUB_main_code**\n\nThis script runs the actual REVUB model simulation and optimisation.\n\nIn the training dataset, the user learns how to run this code after having successfully initialised a simulation.\n \n* **C_REVUB_plotting_individual**\n\nThis script produces figure and table outputs for the individually simulated plants, chosen by the user from the control file.\n\nThe figures include various time series and statistical charts on - among other things - reservoir dynamics (drawdown and refilling) without and with hydro-VRE hybridisation, electricity generation of the hydro-VRE complex from hourly to seasonal and multianual scales, and the corresponding hydropower plant operation (rule curves, turbine activity, mode of operation).\n\nIn the training dataset, the user learns how to produce meaningful figures using this script after having successfully run a simulation.\n\n\n* **C_REVUB_plotting_multiple**\n\nThis script produces figure and table outputs of the overall power mix of a given region/country/grid. \n\nFor a user-defined ensemble of the simulated plants, which the user can set in the control file, the script aggregates overall hydro-solar-wind power generation from this ensemble at hourly, seasonal and multiannual time scales, and compares it to a user-set overall hourly power demand curve (representing overall demand in the country/region/grid). \n\nThe difference between hydro-VRE and this overall demand is assumed to be covered by other flexible power sources (e.g. thermal power sources or imports). Thus, this script can be used to provide insights on the overall power mix of a country/region/grid upon implementing hydro-VRE complementary operation.\n\nThe script also provides statistics on ramping needs of hydropower plants and other flexible sources under the investigated scenarios.\n\n## Versions\nVersion 1.2.0 - July 2026\n\nVersion 1.1.1 - January 2026\n\nVersion 1.1.0 - May 2025\n\nVersion 1.0.4 - April 2024\n\nVersion 1.0.3 - November 2023\n\nVersion 1.0.2 - October 2023\n\nVersion 1.0.1 - September 2023\n\nVersion 1.0.0 - August 2023\n\nVersion 0.1.0 - January 2020\n\n## License\nSee also the [LICENSE](./LICENSE.md) file.\n\n## Acknowledgements\nThe following funding sources are gratefully acknowledged:\n* 2025-26: Flemish Inter-University Development Cooperation ([VLIR-UOS](https://www.vliruos.be/)), Global Minds XREI Staff Mobility project \"Ecuador's electricity crisis 2023-24: Drought impacts on hydropower and mitigation through variable renewables\". \n* 2023-24: [The World Bank](https://www.worldbank.org/ext/en/home) (WB), Infrastructure Energy \u0026 Extractives Global Knowledge Unit (IEEGK), PO Number 8831242.\n* 2022: [International Rivers](https://www.internationalrivers.org/), consulting contract \"Alternatives to new hydropower to meet energy needs in the Republic of Guinea\".\n* 2018-21: Project CIREG, part of [ERA4CS](https://jpi-climate.eu/programme/era4cs/), an ERA-NET Co-fund action initiated by JPI Climate, funded by BMBF (DE), FORMAS (SE), BELSPO (BE) and IFD (DK) with co-funding from the EU's Horizon2020 Framework Program, Grant 690462.\n\n## References\nThe REVUB model has so far been used in, and/or inspired the methods of, the following publications/documents:\n* S. Sterl, L.E. Pineda, T. Mast, Y. Rodríguez, P. Muñoz, and W. Thiery. \u003cins\u003e_[Variable renewables fortify Ecuador's power system against recurrences of drought-driven energy crises](https://doi.org/10.1038/s44221-026-00617-w)_\u003c/ins\u003e. Nature Water __4__, 571–585 (2026).\n* H. Hoff, M. Ogeya, D. de Condappa, R.J. Brecha, M.A.D. Larsen, K. Halsnæs, S. Salack, S. Sanfo, S. Sterl, and S. Liersch. \u003cins\u003e_[Stakeholder-guided, model-based scenarios for a climate- and water-smart electricity transition in Ghana and Burkina Faso](https://doi.org/10.1016/j.esr.2023.101149)_\u003c/ins\u003e. Energy Strategy Reviews __49__ (2023).\n* P. Donk, S. Sterl, W. Thiery, and P. Willems. \u003cins\u003e_[A policy framework for power system planning towards optimized integration of renewables under potential climate change – The Small Island Developing States perspective](https://doi.org/10.1016/j.enpol.2023.113526)_\u003c/ins\u003e. Energy Policy __177__ (2023).\n* S. Sterl and W. Thiery. \u003cins\u003e_[La faisabilité du solaire PV pour remplacer la centrale hydroélectrique de Koukoutamba en Guinée: Étude quantitative](http://dx.doi.org/10.13140/RG.2.2.26548.83848)_\u003c/ins\u003e. Vrije Universiteit Brussel, Brussels, Belgium (2022).\n* S. Sterl, A. Devillers, C.J. Chawanda, A. van Griensven, W. Thiery, and D. Russo. \u003cins\u003e_[A spatiotemporal atlas of hydropower in Africa for energy modelling purposes](https://doi.org/10.12688/openreseurope.13392.3)_\u003c/ins\u003e. Open Research Europe __1__, 29 (2021).\n* S. Sterl, D. Fadly, S. Liersch, H. Koch, and W. Thiery. \u003cins\u003e_[Linking solar and wind power in eastern Africa with operation of the Grand Ethiopian Renaissance Dam](https://doi.org/10.1038/s41560-021-00799-5)_\u003c/ins\u003e. Nature Energy __6__, 407–418 (2021).\n* P. Donk, S. Sterl, W. Thiery, and P. Willems. \u003cins\u003e_[REVUB-Light: A parsimonious model to assess power system balancing and flexibility for optimal intermittent renewable energy integration—A study of Suriname](https://doi.org/10.1016/j.renene.2021.03.117)_\u003c/ins\u003e. Renewable Energy __173__, 57–75 (2021).\n* S. Sterl, P. Donk, P. Willems, and W. Thiery. \u003cins\u003e_[Turbines of the Caribbean: Decarbonising Suriname’s electricity mix through hydro-supported integration of wind power](https://doi.org/10.1016/j.rser.2020.110352)_\u003c/ins\u003e. Renewable and Sustainable Energy Reviews __134__ (2020) 110352.\n* S. Sterl, I. Vanderkelen, C.J. Chawanda, D. Russo, R.J. Brecha, A. van Griensven, N.P.M. van Lipzig, and W. Thiery. \u003cins\u003e_[Smart renewable electricity portfolios in West Africa](https://doi.org/10.1038/s41893-020-0539-0)_\u003c/ins\u003e. Nature Sustainability __3__, 710–719 (2020).","funding_links":[],"readme_doi_urls":["https://doi.org/10.1038/s44221-026-00617-w)_","https://doi.org/10.1016/j.esr.2023.101149)_","https://doi.org/10.1016/j.enpol.2023.113526)_","http://dx.doi.org/10.13140/RG.2.2.26548.83848)_","https://doi.org/10.12688/openreseurope.13392.3)_","https://doi.org/10.1038/s41560-021-00799-5)_","https://doi.org/10.1016/j.renene.2021.03.117)_","https://doi.org/10.1016/j.rser.2020.110352)_","https://doi.org/10.1038/s41893-020-0539-0)_"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/149","html_url":"https://ost.ecosyste.ms/projects/149"}