A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

Dispa-SET

Allows to model a power system at any level of detail e.g. micro-grid, region, country, continent.
https://github.com/energy-modelling-toolkit/Dispa-SET

Category: Energy Systems
Sub Category: Energy System Modeling Frameworks

Keywords

dispatch power python

Keywords from Contributors

energy-system transforms measur archiving conversion observation animals optimize projection generic

Last synced: about 21 hours ago
JSON representation

Repository metadata

The Dispa-SET unit-commitment and optimal dispatch model, developed at the JRC

README.md

dispaset logo

Documentation License Documentation Build Status

Description

The Dispa-SET model is a unit commitment and dispatch model developed within the “Joint Research Centre” and focused on the balancing and flexibility problems focusing on the European context. It is written in GAMS with advanced input/output data handling and visualization routines in Python.

Three different formulations are available offering a trade-off between accuracy and computational complexity ( Linear Programming (LP), Mixed-Integer Linear Programming (MILP)). This allows
to model a power system at any level of detail e.g. micro-grid, region, country, continent. A Pan-European scenario is included with the model as of version 2.3.

Features

The model is expressed as an optimization problem.
Continuous variables include the individual unit dispatched power, the shedded load and the curtailed power generation. The binary variables are the commitment status of each unit. The main model features can be summarized as follows:

  • Minimum and maximum power for each unit
  • Power plant ramping limits
  • Reserves up and down
  • Minimum up/down times
  • Load Shedding
  • Curtailment
  • Pumped-hydro storage
  • Non-dispatchable units (e.g. wind turbines, run-of-river, etc.)
  • Start-up, ramping and no-load costs
  • Multi-nodes with capacity constraints on the lines (congestion)
  • Constraints on the targets for renewables and/or CO2 emissions
  • Yearly schedules for the outages (forced and planned) of each units
  • CHP power plants and thermal storage

The demand is assumed to be inelastic to the price signal. The MILP objective function is therefore the total generation cost over the optimization period.

Quick start

If you want to download the latest version from github for use or development purposes, make sure that you have git and the anaconda distribution installed and type the following:

git clone https://github.com/energy-modelling-toolkit/Dispa-SET.git
cd Dispa-SET
conda env create  # Automatically creates environment based on environment.yml
conda activate dispaset # Activate the environment
pip install -e . # Install editable local version

The above commands create a dedicated environment so that your anaconda configuration remains clean from the required dependencies installed.

At this point, it is necessary to make sure that the GAMS API is properly installed in the newly created environment:

  • Make sure to define an evironment variable GAMSDIR pointing to the gams installation folder (e.g. C:\GAMS\win62\47.7.0)
  • For GAMS version 45 and higher, the api can be installed directly from pip, replacing the x values below with the installed version of gams:
pip install gamsapi==4x.x.x
  • For older version of gams, the API can be compiled from the apifile/Python directory in the gams installation folder. The the path to the library must then be added to the PYTHONPATH environment variable. For example, in linux:
cd /path/to/gams/apifiles/Python/api_310
python gamssetup.py install
export PYTHONPATH=/path/to/gams/apifiles/Python/gams:/path/to/gams/apifiles/Python/api_310
  • For very old versions of GAMS (e.g. 24.x, 25.x), it is possible to install the old low-level api from pip. Note that if this does not work, the api must be de-installed and compiled from the gams apifile folder.
pip install gdxcc, gamsxcc, optcc

To check that everything runs fine, you can build and run a test case by typing:

dispaset -c ConfigFiles/ConfigTest.xlsx build simulate

Documentation

The documentation and the stable releases are available on the main Dispa-SET website: http://www.dispaset.eu

Get involved

This project is an open-source project. Interested users are therefore invited to test, comment or contribute to the tool. Submitting issues is the best way to get in touch with the development team, which will address your comment, question, or development request in the best possible way. We are also looking for contributors to the main code, willing to contibute to its capabilities, computational-efficiency, formulation, etc. Finally, we are willing to collaborate with national agencies, reseach centers, or academic institutions on the use on the model for different data sets relative to EU countries.

License

Dispa-SET is a free software licensed under the “European Union Public Licence" EUPL v1.2. It
can be redistributed and/or modified under the terms of this license.

Main developers

This software has been developed initially within the Directorate C Energy, Transport and Climate, which is one of the 7 scientific directorates of the Joint Research Centre (JRC) of the European Commission. Directorate C is based both in Petten, the Netherlands, and Ispra, Italy.
Currently the main developers are the following:

  • Sylvain Quoilin (KU Leuven, Belgium)
  • Konstantinos Kavvadias (Joint Research Centre, European Commission)
  • Matija Pavičević (KU Leuven, Belgium)
  • Matthias Zech (Deutsches Zentrum für Luft-und Raumfahrt, DLR)
  • Matteo De Felice (Joint Research Centre, European Commission)

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 4 days ago

Total Commits: 892
Total Committers: 21
Avg Commits per committer: 42.476
Development Distribution Score (DDS): 0.636

Commits in past year: 129
Committers in past year: 4
Avg Commits per committer in past year: 32.25
Development Distribution Score (DDS) in past year: 0.419

Name Email Commits
Sylvain Quoilin s****n@u****e 325
Matija Pavicevic 3****c 210
Konstantinos Kavvadias k****n@g****m 94
Umair Tareen M****n@u****e 75
evajoskin e****n@h****m 55
navia n****o@g****m 51
Tom Franssens t****s@h****m 35
ALIZON HUALLPARA a****a@h****m 19
ChiaraMagni21 c****4@g****m 4
mpavicevic m****c@f****r 4
Damien Corral 4****n 3
Miguel m****a@g****m 3
Matteo De Felice m****e@g****m 3
IGomand 1****d 2
dependabot[bot] 4****] 2
jboukas j****s@g****m 2
Matzee m****h@g****m 1
Matthias Zech m****h@M****l 1
IsalineGomand g****e@g****m 1
Damien d****l@m****r 1
Sylvain t****t@t****m 1

Committer domains:


Issue and Pull Request metadata

Last synced: 2 days ago

Total issues: 81
Total pull requests: 23
Average time to close issues: 8 months
Average time to close pull requests: 2 months
Total issue authors: 11
Total pull request authors: 9
Average comments per issue: 1.94
Average comments per pull request: 1.65
Merged pull request: 19
Bot issues: 0
Bot pull requests: 2

Past year issues: 0
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 0
Past year average comments per issue: 0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/energy-modelling-toolkit/Dispa-SET

Top Issue Authors

  • MPavicevic (32)
  • matteodefelice (16)
  • squoilin (11)
  • kavvkon (8)
  • AbdullahAlawad (7)
  • ger08061959 (2)
  • Mangips (1)
  • corralien (1)
  • andres324 (1)
  • felipefeijoo (1)
  • evajoskin (1)

Top Pull Request Authors

  • kavvkon (6)
  • corralien (4)
  • matteodefelice (3)
  • MPavicevic (3)
  • dependabot[bot] (2)
  • matzech (2)
  • squoilin (1)
  • Rayerdyne (1)
  • AbdullahAlawad (1)

Top Issue Labels

  • enhancement (13)
  • postprocessing (6)
  • bug (5)
  • model (4)
  • docs (2)
  • data (2)
  • question (1)
  • preprocessing (1)

Top Pull Request Labels

  • dependencies (2)

Dependencies

Docs/requirements.txt pypi
  • Sphinx >=4.2.0
  • click >=8.0.3
  • docutils >=0.17.1
  • future >=0.15
  • matplotlib >=3.4.3
  • netcdf4 *
  • networkx *
  • numpy >=1.21.0
  • pandas >=1.3.4
  • pytest *
  • pyyaml >=5.1
  • scipy >=0.15
  • xarray >=0.11
  • xlrd ==1.2.0
setup.py pypi
  • click *
  • future *
  • gamsxcc *
  • gdxcc *
  • matplotlib *
  • networkx *
  • numpy *
  • optcc *
  • pandas *
  • setuptools_scm *
  • xlrd *
environment.yml pypi
  • codecov *
  • pytest-cov *
  • setuptools_scm *

Score: 7.688913336864795