370.062 Open Source Energy System Modeling
This course is in all assigned curricula part of the STEOP.
This course is in at least 1 assigned curriculum part of the STEOP.

2020S, VU, 2.0h, 3.0EC


  • Semester hours: 2.0
  • Credits: 3.0
  • Type: VU Lecture and Exercise

Learning outcomes

After successful completion of the course, students are able to understand the benefits of open source software/data, how to use open source tools and licenses, and are able to work with the IAMC (integrated-assessment community) data format to develop energy system models.

Lecture slides and recordings of several lectures are available at https://data.ene.iiasa.ac.at/teaching/ under an open-source license.

Subject of course

Lecture 1

We will discuss the principles of open-source and collaborative scientific programming for energy modelling. Concepts include version control using GitHub, the principles of code review, unit tests and continuous integration.

Lecture 2

Integrated assessment models are a key tool for developing narratives and quantifying pathways to understand system transitions and impacts of policy measures. We will discuss different model types which can be used in this area, and we will review the role of numerical modelling of human and earth systems for policy-makers in the context of the IPCC reports and other global outlooks.

Lecture 3

We will use the pyam package, a Python package for visualizing and analyzing integrated assessment scenarios, for understanding climate change mitigation pathways used in the IPCC Special Report on Global Warming of 1.5°C (SR15).

Lecture 4

We will turn to developing a national-scale energy system model using the open-source MESSAGEix Integrated Assessment Modeling Framework. After working through an example, students will implement a stylized model for another country and analyze different climate change mitigation policies.

Lecture 5

We will discuss how to extend the stylized national energy system model developed in lecture 4 into an integrated assessment model by including land use and agriculture, water use, and other aspects of sustainable development.

Teaching methods

  • Using Jupyter notebooks and the pyam package for scenario analysis
  • Using the open-source MESSAGEix energy modelling framework

Mode of examination

Written and oral

Additional information

Attention: An introduction for several lectures at EEG takes place on 2nd March 2020 (10 am) at EI2!

Start of this lecture (blocked): Tuesday, 17.03.2020, 14:00-17:00

Lecture Hall: Dekanatszimmer CFZ217, GH 25, Stg. 7, intermediate floor between 2nd and 3rd floor

Schedule of Lectures:

  • CANCELLED - Tuesday, March 17, 2020, 14:00-17:00

  • CANCELLED - Tuesday, March 24, 2020, 14:00-17:00

  • CANCELLED - Tuesday, March 31, 2020, 14:00-17:00

  • Tuesday, April 21, 2020, 14:00-17:00

  • Tuesday, May 5, 2020, 14:00-17:00

  • Tuesday, May 12, 2020,  14:00-17:00 (previously extra slot as backup)

  • Tuesday, May 19, 2020,  14:00-17:00 (previously exam)

  • Tuesday, May 26, 2020,  14:00-17:00 (new date for lecture)

Exam: Tuesday, June 9, 2020, 14:00-17:00 (written & oral,  exam possible also upon individual appointment)



Course dates

Mon10:00 - 11:0002.03.2020EI 2 Pichelmayer HS - ETIT Vorbesprechung
Tue14:00 - 17:0021.04.2020 - 26.05.2020 Dekanatszimmer CFZ217Lecture 1-5
Tue14:00 - 17:0009.06.2020 Dekanatszimmer CFZ217Exam
Open Source Energy System Modeling - Single appointments
Mon02.03.202010:00 - 11:00EI 2 Pichelmayer HS - ETIT Vorbesprechung
Tue21.04.202014:00 - 17:00 Dekanatszimmer CFZ217Lecture 1-5
Tue28.04.202014:00 - 17:00 Dekanatszimmer CFZ217Lecture 1-5
Tue05.05.202014:00 - 17:00 Dekanatszimmer CFZ217Lecture 1-5
Tue12.05.202014:00 - 17:00 Dekanatszimmer CFZ217Lecture 1-5
Tue19.05.202014:00 - 17:00 Dekanatszimmer CFZ217Lecture 1-5
Tue26.05.202014:00 - 17:00 Dekanatszimmer CFZ217Lecture 1-5
Tue09.06.202014:00 - 17:00 Dekanatszimmer CFZ217Exam

Examination modalities


  • Submitted assignments (50%)
  • Written and oral exam (30%)
  • Active participation in class (20%)


DayTimeDateRoomMode of examinationApplication timeApplication modeExam
Tue14:00 - 17:0011.06.2024EI 3A Hörsaal written&oral17.05.2024 00:00 - 10.06.2024 23:59TISSPrüfung

Course registration

Begin End Deregistration end
24.02.2020 00:00 09.06.2020 23:00


Study CodeObligationSemesterPrecon.Info
710 FW Elective Courses - Electrical Engineering Elective


Software resources

anaconda (Python and Jupyter installation framework) - www.anaconda.com

pyam documentation - software.ene.iiasa.ac.at/pyam

MESSAGEix framework - MESSAGEix.ene.ac.at

Resources for the IPCC Special Report on Global Warming of 1.5°C (SR15)

Full report - www.ipcc.ch/report/sr15/ (see Chapter 2 in particular)

Scenario Explorer - data.ene.iiasa.ac.at/iamc-1.5c-explorer

Assessment notebooks

Scientific literature

MESSAGEix framework documentation

Daniel Huppmann, Matthew Gidden, Oliver Fricko, Peter Kolp, Clara Orthofer, Michael Pimmer, Adriano Vinca, Alessio Mastrucci, Keywan Riahi, and Volker Krey. The MESSAGEix Integrated Assessment Model and the ix modeling platform. 2018, submitted. Electronic pre-print available at pure.iiasa.ac.at/15157/.

Previous knowledge

Students are expected to have a good understanding of the energy system and the policy questions concerning climate change mitigation and the transition to renewable energy sources. PhD students with an interest in numerical modelling and analytical methods are encouraged to join.

The frameworks used during the lectures and assignments are based on Jupyter Notebooks and Python. In-depth knowledge of Python is not required, but prior experience with at least one scientific programming language (Python, Julia, R, Matlab, Java, C, etc.) is expected.

Students that have not previously worked with Python should install the latest release from www.anaconda.com (Python 3.7 or higher) before the first lecture. Basic understanding of Python and learning to work with pandas DataFrames is highly recommended, see https://pandas.pydata.org/pandas-docs/stable/10min.html.

Running the MESSAGEix framework requires a working installation of GAMS (www.gams.com), but knowledge of GAMS as a mathematical programming language is not required. The MESSAGEix tutorials can be run via Jupyter/Python notebooks without a GAMS license file as preparation prior to the lectures, but developing larger models (e.g., extending the time horizon, adding technologies, disaggregating the demand sector) requires a valid GAMS license. Note that the license which can be purchased via TU Wien does not include the powerful solvers CPLEX and GUROBI. A course license valid for several weeks will be provided prior to the third lecture.