Renewable Energy Hub Optimizer (REHO) is a decision support tool for sustainable urban energy system planning. REHO simultaneously addresses the optimal design and operation of capacities, catering to multi-objective considerations across economic, environmental, and efficiency criteria.
Key features:
- MILP Framework
- Multi-Objective Optimization
- Multi-Scale Capabilities
- Multi-Service Consideration
- Multi-Energy Integration
- Open-Source and Open-Data
For more information about the model foundations and features, please refer to the REHO documentation.
Authors
REHO is developed by EPFL (Switzerland), within the Industrial Process and Energy Systems Engineering (IPESE) group.
Dorsan Lepour dorsan.lepour@epfl.ch
Cédric Terrier cedric.terrier@epfl.ch
Joseph Loustau
Licence
Copyright (C) <2021-2026> <Ecole Polytechnique Fédérale de Lausanne (EPFL), Switzerland>
Licensed under the Apache License, (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Description and complete License: see LICENSE file.
Installation
REHO is available as a PyPI package and can be installed via pip with:
pip install --extra-index-url https://pypi.ampl.com REHO
Full code can be accessed from the REHO GitHub repository and cloned with:
git clone https://github.com/IPESE/REHO.git
Please refer to the "Getting started" section of the documentation for step-by-step guidelines.
A first run
from reho import REHO, QBuildingsReader, initialize_grids, initialize_units
reader = QBuildingsReader()
reader.establish_connection('Geneva')
qbuildings_data = reader.read_db({'transformers': 234}, nb_buildings=2)
cluster = {'Location': 'Geneva', 'Attributes': ['T', 'I', 'W'], 'Periods': 10, 'PeriodDuration': 24}
scenario = {'Objective': 'TOTEX', 'name': 'totex'}
grids = initialize_grids()
units = initialize_units(scenario, grids)
reho = REHO(qbuildings_data=qbuildings_data, units=units, grids=grids,
cluster=cluster, scenario=scenario, method={'building-scale': True})
reho.single_optimization()
reho.save_results(format=['xlsx', 'pickle'], filename='my_run')
The examples cover the other features: district-scale decomposition, Pareto fronts, district heating, electric mobility, renovation, seasonal storage and the multi-actor formulation.
Documentation
| Page | Content |
|---|---|
| Overview | What REHO is and what it can do |
| Releases | How to cite, license, and the works using REHO |
| Model | The mathematical formulation, at the building, district and actors scales |
| Data reference | Inputs, every reference data file, and outputs, every result DataFrame: columns, units, provenance |
| Package structure | Layout of the package, and the API reference of every module, class and function |
| Developer guide | Conventions, how to extend, test and document REHO, and how to contribute |
| Getting started | Installation, AMPL license, and a first optimization |
| Examples | One runnable script per feature |
Suggestions and contributions
All suggestions or implementation must be tracked with dedicated issues and reported in the project repository.
Refer to the "Contributing" section of the developer guide for further guidance.
Running the tests
pytest reho/test -m "not slow" # offline: no AMPL license, solver or database needed
REHO_RUN_EXAMPLES=1 pytest reho/test # full: runs every example script
Metadata
Release files for REHO 2.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| reho-2.1.0.tar.gz | 11.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| reho-2.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.2 MB
Release files / reho-2.1.0.tar.gz
| Download URL | reho-2.1.0.tar.gz |
|---|---|
| Size | 11.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8274bbe246a064c3cb0b56f3b7d30c428364b0537045e47e296814eb4f53b3d4
|
|
BLAKE2b-256 checksum How to use checksums |
5c040edb465d4263745baada17de4fd93dc5794938a9f7dc34a76650bd134faf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / reho-2.1.0-py3-none-any.whl
| Download URL | reho-2.1.0-py3-none-any.whl |
|---|---|
| Size | 3.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7e65cb1d18e5aecbcb526e75d6c3f29a78ee51bb7f62e2b8d28a9854b90c1c70
|
|
BLAKE2b-256 checksum How to use checksums |
2ed3afc3e596bed0955093ac0ab109678dac035cc5204ac21cdd567dd73dea6c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|