Dispa-SET

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

https://github.com/energy-modelling-toolkit/Dispa-SET

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.4%) to scientific vocabulary

Keywords

dispatch power python

Keywords from Contributors

interactive projection energy-system genomics observability autograding hacking shellcodes archival network-simulation
Last synced: 6 months ago · JSON representation

Repository

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

Basic Info
  • Host: GitHub
  • Owner: energy-modelling-toolkit
  • License: eupl-1.2
  • Language: Python
  • Default Branch: master
  • Size: 210 MB
Statistics
  • Stars: 87
  • Watchers: 10
  • Forks: 41
  • Open Issues: 18
  • Releases: 5
Topics
dispatch power python
Created over 8 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct

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:

bash 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: bash 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: bash 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. bash pip install gdxcc, gamsxcc, optcc

To check that everything runs fine, you can build and run a test case by typing: bash 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

  • Name: Energy Modelling Toolkit
  • Login: energy-modelling-toolkit
  • Kind: organization

A fully open inter-institutional energy modelling group. It serves as an umbrella organization that hosts open datasets and models.

GitHub Events

Total
  • Issues event: 3
  • Watch event: 5
  • Issue comment event: 1
  • Member event: 1
  • Push event: 156
  • Pull request event: 2
  • Fork event: 2
  • Create event: 2
Last Year
  • Issues event: 3
  • Watch event: 5
  • Issue comment event: 1
  • Member event: 1
  • Push event: 156
  • Pull request event: 2
  • Fork event: 2
  • Create event: 2

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 897
  • Total Committers: 21
  • Avg Commits per committer: 42.714
  • Development Distribution Score (DDS): 0.635
Past Year
  • Commits: 134
  • Committers: 4
  • Avg Commits per committer: 33.5
  • Development Distribution Score (DDS): 0.44
Top Committers
Name Email Commits
Sylvain Quoilin s****n@u****e 327
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 54
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
Matteo De Felice m****e@g****m 3
Miguel m****a@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 (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • 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 requests: 19
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • MPavicevic (32)
  • matteodefelice (16)
  • squoilin (12)
  • kavvkon (8)
  • AbdullahAlawad (7)
  • ger08061959 (2)
  • Mangips (1)
  • corralien (1)
  • andres324 (1)
  • felipefeijoo (1)
  • evajoskin (1)
Pull Request Authors
  • kavvkon (6)
  • corralien (4)
  • matteodefelice (3)
  • MPavicevic (3)
  • dependabot[bot] (2)
  • matzech (2)
  • AbdullahAlawad (1)
  • squoilin (1)
  • Rayerdyne (1)
Top Labels
Issue Labels
enhancement (13) postprocessing (6) bug (5) model (4) docs (2) data (2) question (1) preprocessing (1)
Pull Request Labels
dependencies (2)

Packages

  • Total packages: 2
  • Total downloads: unknown
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 2
proxy.golang.org: github.com/energy-modelling-toolkit/Dispa-SET
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/energy-modelling-toolkit/dispa-set
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago

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 *
.github/workflows/testing.yaml actions
  • actions/checkout v4 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • conda-incubator/setup-miniconda v2 composite
environment.yml conda
  • cartopy >=0.20
  • click >=3.3
  • matplotlib >=1.5.1
  • netcdf4
  • networkx
  • numpy >=1.10
  • pandas >=0.19
  • pip >=9.0.1
  • pytest
  • python >=3.8
  • pyyaml >=5.1
  • scipy >=0.15
  • xarray >=0.11
  • xlrd 1.2.0.*