Input parameters for DIETER
This documentation page aims at providing insights on up to date calibration data used in the DIETER power system model. DIETER is a model developed at the DIW Berlin (German Institute of Economic Research). It aims at investigating power sector developments that would enable to secure a fully electrified energy system relying on renewable energy sources. For more information, please visit the DIW website or refer to the DIETER section of this documentation webpage.
Important
This project is under active development.
General framework
Power system models heavily rely on input data that are used to calibrate them. In particular, costs, potentials and availabilities of renewable sources are of cardinal importance. As technologies evolve and mature, these parameters tend to change. Hence, the necessity to keep the calibration up-to-date. When it comes to renewable technologies such as wind, solar and hydro power as well as biomass, technologies have very quickly evolved over the last decade. This rapid change makes it all the more necessary to update power system models with accurate and recent data. On the other hand, it represents also a challenge as the effect of a high-paced innovation combined with a rapid market diffusion make it difficult to get stable estimations for these parameters.
DIETER
The Dispatch and Investment Evaluation Tool with Endogenous Renewables (DIETER) has initially been developed to study the role of electricity storage and other flexibility options in greenfield scenarios with high shares of variable renewable energy sources. The model minimizes overall system costs in a long-run equilibrium setting, determining least-cost capacity expansion and use of various generation and flexibility technologies. DIETER can capture multiple system benefits of electricity storage related to capacity, energy arbitrage and reserve provision.
DIETER is an open source model which may be freely used and modified by anyone. The code is licensed under the MIT License. Input data is licensed under the Creative Commons Attribution-ShareAlike 4.0 International Public License.
The documentation of the model is available here. For more information on the different available versions of the model, please visit the DIW website.
DIETERpy
DIETERpy is a Python-based tool that enables an easy pre- and post-processing of the model data, sophisticated scenario analysis, and visualization of results. The optimization routine of DIETERpy is based on the General Algebraic Modeling System (GAMS) of DIETER, which is now maintained separately as a GAMS-only version called DIETERgms.
To learn more about this project, please consult the DIETERpy project description, navigate through the corresponding documentation or visit the GitLab public repository.
The figure below shows the workflow between Python and GAMS.

© Carlos Gaete-Morales
Input data structure of DIETER
Different types of data are needed and fed into the model exogeneously. In the current implementation, we first distinguish between static data and time series.
Static data refer to techno-economic parameters that are considered fixed over time. This means they are taken as granted by the model over the whole optimization period of 8760 hours. Among static data, we made a distinction between data that are needed in the core model, that is to say that are used for the baseline scenario to run, and data that comes along additional features that one can chose to complexify the representation of a given feature in the model.
Time series refer to data parameters that can vary over time during the year. It means that parameters have to be specified for each and every hour of the year.
This distinction between static data and time series structure the whole input data of DIETER. For clarity purposes, we further distinguish between data that are used in the core model and data that are used for additional modules of the model that can be activated or deactivated separately. Hence, we find static data and time series data detailed module by module. Nevertheless, in the concrete implementation of the model, a slightly different organization is used, namely one file for static data (core and modules) and one file for time series (core and modules). We use different spreadsheets inside a given file in order to distinguish between the core model and the different modules.
Core model data
Spatial data: defines the spatial structure of the model i.e. the geographical scope (how many nodes are represented in the model) and the connections between nodes. In particular, it defines the existing geographic connection between border-sharing countries e.g. Germany is connected to France, Denmark, Belgium, the Netherlands, Czech Republic, Poland, Austria and Switzerland. Each connection between two nodes is called a “link” and is given a name e.g. “l1” for the connection between Germany and France for instance. For each link, some characteristics are given: maximum installable capacities, distance, overnight costs, fixed costs, recovery period, lifetime, interest rate and fixed NTC.
Technology data: overall, there are 11 technologies considered. Each technology is classified as conventional (conv) or renewable (res) as well as dispatchable (dis) or non-dispatchable (nondis). These technologies and the corresponding classification are detailed in the table below. Apart from this classification, there are numerous parameters (18 in total) defined for each generation technology. They are exhaustively documented in the core model section of this documentation page.
Technology |
Code |
Type |
Dispatchable |
---|---|---|---|
Oil |
oil |
conv |
dis |
Hard coal |
hc |
conv |
dis |
Lignite |
lig |
conv |
dis |
Open cycle gas turbine |
OCGT |
conv |
dis |
Combined cycle gas turbine |
CCGT |
conv |
dis |
Nuclear |
nuc |
conv |
dis |
Other conventional |
other |
conv |
dis |
Solar PV |
pv |
res |
nondis |
Wind offshore |
wind_on |
res |
nondis |
Wind onshore |
wind_off |
res |
nondis |
Biomass |
bio |
res |
dis |
Run-of-river |
ror |
res |
nondis |
Additional modules
The core model can be extended to feature a more detailed representation of particular aspects such as the introduction of storages and reservoirs, demand-side management (DSM), electric vehicles, prosumage, heat and hydrogen. The data structure as well as sources of different modules are detailed in the section
Static data
Static data refer to techno-economic parameters that are considered fixed over time. This means they are taken as granted by the model over the whole optimization period of 8760 hours. In this section, we describe the static data that are needed in the core model that is to say that are used for the baseline scenario to run. More precisely, we distinguish between spatial data and technology data and further split technology data into two categories: costs data and potentials data.
- The spatial data considered are:
Incidence matrix
Link between countries
Maximum Net Transfer Capacity (NTC)
Distance between geographic centers
Transmission losses
Overnight investment costs (for transmission lines)
Annual fixed costs (for transmission lines)
Variable operation and maintenance (OM) cost (for transmission lines)
Recovery period (for transmission lines)
Technical lifetime (for transmission lines)
Interest rate (for transmission lines)
Historical NTCs
- The costs data considered are:
Annuel fixed cost per MW
Operation and maintenance (OM) cost per MWh
Overnight investment costs per MW
Interest rate for calculating investment annuities
Load change costs for changing generation upward
Load change costs for changing generation downward
Fuel costs
CO2 price
Curtailment costs
- The potentials data considered are:
Thermal efficiency
Carbon content of fossil fuels
Time-constant availability
Technical lifetime
Maximum possible investment
Maximum yearly energy
Flexibility of changing load level
Fixed exogenous capacities for model application
Spatial data in DIETER
Variable |
Unit |
Code |
Source |
---|---|---|---|
Incidence matrix |
Own assumptions |
||
Link between countries |
link |
Own assumptions |
|
Maximum NTC |
MW |
max_installable |
Own assumptions |
Distance between geographic centers |
km |
distance |
Flexmex |
Transmission losses |
%/100km |
loss_transmission |
Flexmex |
Overnight investment costs for transmission lines |
EUR/(MW*km) |
overnight_costs |
Flexmex |
Annual fixed costs (for transmission lines) |
EUR/(MW*km)/a |
fixed_costs |
Flexmex |
Variable OM cost (for transmission lines) |
EUR/MWh |
variable_om |
Flexmex |
Recovery period |
a |
recovery_period |
Flexmex |
Technical lifetime (for transmission lines) |
a |
lifetime |
Flexmex |
Interest rate (for transmission lines) |
% |
interest_rate |
Flexmex |
Historical NTCs |
MW |
fixed_capacities_ntc |
Flexmex |
Incidence matrix
The incidence matrix allows to define the geographic scope of the model and the links between the various countries that are taken into account. Usually, it shows in rows as well as in columns every country considered in the model. When two countries are connected by a transmission line, the corresponding entry in the matrix is filled with 1. Otherwise, it is filled with 0. Since transmission lines are polarized, the convention is to read as the destination country the one that is displayed in the column whereas the row country is considered as the starting point of the line.
In DIETER, the incidence matrix is defined a bit differently. It takes as column the countries that are considered in the model and as rows existing connections between countries. For instance, we know that Austria (AT) is connected with Switzerland (CH), Czech Republic (CZ) and Italy (IT). Hence, in rows we display AT_CH, AT_CZ and AT_IT. There should be as many rows in the matrix as connections between countries. For each row, we then fill with 1 the column entry that corresponds to the first country and with -1 the column entry that corresponds to the second country of the link. One important rule is that the sum over the row, for each row, should amount to 0.
The current incidence matrix design is shown in the table below.
DE |
AT |
BE |
CH |
CZ |
DK |
FR |
IT |
LU |
NL |
PL |
|
---|---|---|---|---|---|---|---|---|---|---|---|
AT_CH |
1 |
-1 |
|||||||||
AT_CZ |
1 |
-1 |
|||||||||
AT_IT |
1 |
-1 |
|||||||||
BE_FR |
1 |
-1 |
|||||||||
BE_LU |
1 |
-1 |
|||||||||
BE_NL |
1 |
-1 |
|||||||||
CH_FR |
1 |
-1 |
|||||||||
CH_IT |
1 |
-1 |
|||||||||
CZ_PL |
1 |
-1 |
|||||||||
DE_AT |
1 |
-1 |
|||||||||
DE_BE |
1 |
-1 |
|||||||||
DE_CH |
1 |
-1 |
|||||||||
DE_CZ |
1 |
-1 |
|||||||||
DE_DK |
1 |
-1 |
|||||||||
DE_FR |
1 |
-1 |
|||||||||
DE_LU |
1 |
-1 |
|||||||||
DE_NL |
1 |
-1 |
|||||||||
DE_PL |
1 |
-1 |
|||||||||
DK_NL |
1 |
-1 |
|||||||||
FR_IT |
1 |
-1 |
|||||||||
FR_LU |
1 |
-1 |
Costs
Type of cost |
Unit |
Code |
Source |
---|---|---|---|
Annuel fixed cost per MW |
EUR/MW |
fixed_costs |
Schroeder et al. (2013) |
Operation and maintenance (OM) cost per MWh |
EUR/MWh |
variable_om |
Schroeder et al. (2013) |
Overnight investment costs per MW |
EUR/MW |
oc |
Schroeder et al. (2013) |
Interest rate for calculating investment annuities |
% |
interest_rate |
Own assumptions |
Load change costs for changing generation upward |
EUR/MW |
load change cost up |
Own assumptions |
Load change costs for changing generation downward |
EUR/MW |
load change cost down |
Own assumptions |
Fuel costs |
EUR/MWh_th |
fuel costs |
dena(2012) DLR et al. (2012) and own assumptions |
CO2 price |
EUR/t |
CO2_price |
Own assumptions |
Curtailment costs |
EUR/MWh |
curtailment_costs |
Own assumptions |
Potentials
Type of potential |
Unit |
Code |
Source |
---|---|---|---|
Thermal efficiency |
% |
eta_con |
Schroeder et al. (2013) |
Carbon content of fossil fuels |
t/MWh_th |
carbon_content |
Kunz et al. (2017) |
Time-constant availability |
% |
availability |
Own assumptions |
Technical lifetime |
a |
lifetime |
Schroeder et al. (2013) |
Maximum possible investment |
MW |
max_installable |
Own assumptions |
Maximum yearly energy |
MWh/a |
max_energy |
Own assumptions |
Flexibility of changing load level |
% of installed capacity/min |
load change flexibility |
VDE (2012a) |
Fixed endogenous capacities for model application |
MW |
fixed_capacities |
Own assumptions |
Time series
Team
The team of DIETER core developers is a group of Post-Docs and Ph.D. students at DIW Berlin lead by Dr. Wolf-Peter Schill. We are part of the Energy, Environment and Transportation department (in German Energie, Umwelt, Verkehr (EVU)) and form, within this department, the Transformation of the Energy Economy (TEE) working group. You can follow the main activities of our group on Twitter.
Current developers
Wolf-Peter Schill

Wolf is Deputy Head of the Department Energy, Transportation, Environment at DIW Berlin and leads the group Transformation of the Energy Economy. He is interested in various aspects of the renewable energy transformation. Together with Alexander Zerrahn, he is one of the fathers of the DIETER model. He made substantial contributions to the initial model development, different types of model extensions, and various applications.
DIETER Expertise:
+ A bit of everything
E-Mail: wschill@diw.de
Work: Google Scholar
Carlos Gaete-Morales

Carlos is a research associate at DIW Berlin, holds a PhD from The University of Manchester and an Industrial Engineering degree. His research focuses on the sustainability assessment of energy systems and finding sustainable pathways for future energy economy by implementing optimization models, life cycle assessment (LCA), and machine learning techniques. He is interested in outreach his work by developing open-source tools using Python and is the father of the Python wrapper for DIETER, that is DIETERpy.
DIETER Expertise:
+ Model analyses of settings with high renewables
+ e-Mobility, see also emobpy
+ Energy storage
E-Mail: cgaete@diw.de
Work: Google Scholar
Alexander Roth

Alex is a research associate and PhD candidate at DIW Berlin. He works currently on a multi-country version of DIETERpy and the interaction effects of electricity storages.
DIETER Expertise:
+ Multi-country applications
+ Electricity storage
E-Mail: aroth@diw.de
Work Google Scholar
Martin Kittel

Martin is a research associate and PhD candidate at DIW Berlin. He mainly develops and maintains our stylized DIETERpy model, and renewable energy constraints in DIETERpy. In his current work, Martin investigates the impact of renewable energy constraints on power sector and energy system models.
Expertise:
+ Renewable energy constraints
+ Power-to-power storage
+ Cluster analysis
E-Mail: mkittel@diw.de
Work: Google Scholar
Dana Kirchem
Adeline Guéret
Contact

External resources
Open-source modelling of power systems
Different communities, such as OpenMod, already exist to curate the most up-to-date parameters for power system models. The aim of our documentation webpage is not to compete with already existing communities and platforms providing open access to up-to-date data. The aim is rather to pursue efforts to open the black box of modelling as much as possible. In our case, it means providing open access to and keep track of sources that were used for the development of DIETER.
Glossary
Conventional technology
Dispatachable technology
Net Transfer Capacity (NTC)
Renewable technology