Awesome
rivus
rivus is a mixed integer linear programming optimisation model for capacity planning for energy infrastructure networks. Its name, latin for stream or canal, stems from its origin as a companion model for urbs, an optimisation model for urban energy systems. This model shares the same structure as urbs, so please refer to its introduction/tutorial for now or dive directly into the code.
Features
- rivus is a mixed integer linear programming model for multi-commodity energy infrastructure networks systems with a focus on high spatial resolution.
- It finds the minimum cost energy infrastructure networks to satisfy a given energy distribution for possibly multiple commodities (e.g. electricity, heating, cooling, ...).
- Time is represented by a (small) set of weighted time steps that represent peak or typical loads
- Spatial data can be provided in form of shapefiles, while technical parameters can be edited in a spreadsheet.
- The model itself is written using Pyomo and includes reporting and plotting functionality.
Screenshots
Electricity network capacities | Heat network capacities | Gas network capacities |
---|---|---|
Installation
Windows
-
Anaconda (Python 3.6). Choose the 64-bit installer if possible.
-
Pyomo and GLPK
- Launch a new command prompt (Win+R, type "cmd", Enter)
- Type
conda install -c conda-forge pyomo glpk
, hit Enter.
-
Add shapefile support:
conda install -c conda-forge pyshp shapely basemap
-
Get geopandas and its dependencies:
conda install -c conda-forge pyproj fiona geopy geopandas
-
For interactive, 3-D plots with plotly:
conda install -c conda-forge plotly
-
For Postgres + PostGIS integration:
conda install -c conda-forge psycopg2 sqlalchemy
-
For graph-theoretical analysis:
conda install -c conda-forge networkx
Documentation / Tutorials
- Official documentation
- List of helpful IPython notebooks on handling geographic input data:
- See repository-wiki for archive of interesting conversations, tips, and troubleshooting.
Copyright
Copyright (C) 2015-2017 Johannes Dorfner
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/