The ix modeling platform for integrated and cross-cutting scenario analysis
Clone or download
Failed to load latest commit information.
.circleci add a hook to also build docs on ci (#44) Jun 4, 2018
doc add a hook to also build docs on ci (#44) Jun 4, 2018
ixmp updating db migration for hsql and macro support by extending varchar… Sep 10, 2018
retixmp retixmp (reticulate) + 2 rixmp installations tips (#34) May 30, 2018
rixmp migrate `rixmp` package from `ixmp_dev` (#19) Feb 22, 2018
tests clean-up of API for TimeSeries and Scenario constructors (#76) Jul 31, 2018
tutorial clean-up of API for TimeSeries and Scenario constructors (#76) Jul 31, 2018
.gitignore localconfig (#42) Jun 1, 2018
.stickler.yml add stickler yml (#57) Jun 26, 2018
.travis.yml update travis to test both py2 and 3 (#83) Aug 26, 2018
CONTRIBUTING.rst update docs for MESSAGEix release (#25) Mar 12, 2018
CONTRIBUTOR_LICENSE.rst update the CLA to include GitHub licenses and suggested changes by la… Mar 12, 2018
Dockerfile update pdwrite to support multiple dfs for excel (#64) Jul 5, 2018
LICENSE Initial commit Nov 23, 2017
NOTICE.rst update docs for MESSAGEix release (#25) Mar 12, 2018 added release notes and pr template (#56) Jun 26, 2018 switch to conda-install, cleaner readme (#43) Jun 4, 2018 adding warning for calling class ixmp.Scenario with `scheme=='MESSAGE… Aug 1, 2018
appveyor.yml update pdwrite to support multiple dfs for excel (#64) Jul 5, 2018
install.bat migrate `rixmp` package from `ixmp_dev` (#19) Feb 22, 2018
requirements.txt switch to conda-install, cleaner readme (#43) Jun 4, 2018 importing ixmp in setup breaks conda Jun 5, 2018

The ix modeling platform (ixmp)


The ix modeling platform (ixmp) is a data warehouse for high-powered scenario analysis, with interfaces to Python and R for efficient scientific workflows and effective data pre- and post-processing, and a structured database backend for version-controlled data management.

This repository contains the core and application programming interfaces (API) for the ix modeling platform (ixmp), as well as a number of tutorials and examples for a generic model instance based on Dantzig's transport problem.


Copyright 2017-18 IIASA Energy Program

The platform package is licensed under the Apache License, Version 2.0 (the "License"); you may not use the files in this repository except in compliance with the License. You may obtain a copy of the License at

Please refer to the NOTICE for details and the user guidelines.

Documentation and tutorial

A documentation the ix modeling platform and the MESSAGEix framework is automatically created from the documentation of the Python and R API packages. The online documentation is synchronyzed with the contents of the master branch of the repositories and

There are a number of tutorials to get started with ixmp. You may want to try the tutorial/transport...

Follow the instructions in doc/README for building the ixmp documentation including the scientific programming API manuals on your local machine.

Scientific reference

Please cite the following manuscript when using the MESSAGEix framework and/or the ix modeling platform for scientific publications or technical reports:

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

Install from Conda (New Users)

  1. Install Python via Anaconda. We recommend the latest version, e.g., Python 3.6+.

  2. Install GAMS. Importantly:

    • Check the box labeled Use advanced installation mode
    • Check the box labeled Add GAMS directory to PATH environment variable on the Advanced Options page.
  3. Open a command prompt and type

    conda install -c conda-forge ixmp

Install from Source (Advanced Users)


  1. Install the Java Development Kit (Java SE 8) and set the environment variable JAVA_HOME per the JDK website instructions; if JAVA_HOME does not exist, add as new system variable. At this point, ixmp is not compatible with JAVA SE 9.

  2. Update your PATH environment variable to point to the JRE binaries and server installation (e.g., C:\Program Files\Java\jdk[YOUR JDK VERSION]\jre\bin\, C:\Program Files\Java\jdk[YOUR JDK VERSION]\jre\bin\server).

    Do not overwrite the existing `PATH` environment variable, but add to the list of existing paths.
  3. Install the latest version of GAMS, otherwise, the export to GDX may not work properly (visit If you only have a license for an older verson of GAMS, install both versions. Note that for using the integrated MESSAGEix-MACRO model, it is important to install a GAMS version >= 24.8.1.

  4. Update your PATH environment variable to point to the GAMS installation (e.g. C:\GAMS\win64\24.8); again do not overwrite existing PATH but rather add to end.

  5. Install some version of Python (2.7 is supported, but 3.6 or higher is recommended). Anaconda is a good choice for users not yet familiar with the language (during installation select add anaconda to PATH system variable)

  6. Install a Windows C++ Compiler

  7. Install a version of git, (see, e.g., the website)

  8. In a command prompt, execute the following two lines to install all Python dependencies for running the unit tests and building the auto-documentation for the Python interface and the MESSAGEix GAMS code:

    pip install cython numpy pandas "pytest>=3.0.6" "JPype1>=0.6.2" 
    pip install sphinx sphinxcontrib.bibtex sphinxcontrib-fulltoc numpydoc cloud_sptheme

Additional dependencies for R users

  1. Make sure the R version installed is either 32 OR 64 bit (and >= 3.3.0), consistently with GAMS and Java. Having both 32 and 64 bit generates error.

  2. Install packages rJava , devtools and optparse via the R package manager

  3. Install Rtools and add the path to the environment variables

  4. For working with Jupyter notebooks using R, install the IRkernel

Installing the ix modeling platform

  1. Fork this repository and clone the forked repository (<user>/ixmp) to your machine. To fork the repository, look for the fork button in the top right at iiasa/ixmp. Add iiasa/ixmp as upstream to your clone.

    We recommend GitKraken for users who prefer a graphical user interface application to work with Github (as opposed to the command line).

  2. Open a command prompt in the new ixmp directory and type

    pip install -r requirements.txt
    python install && py.test tests

Notes and Warnings

  1. For Anaconda users experiencing problems during installation of ixmp, Anaconda might not have been added to the PATH system variable properly. So, if install.bat just opens and collapses again, check if:

    C:\[YOUR ANACONDA LOCATION]\Anaconda3\Scripts;
    C:\[YOUR ANACONDA LOCATION]\Anaconda3\Library\bin;

    are all part of the PATH system variable. If they are not there, add them.

Building Documentation

Navigate to the doc folder and in a command prompt type

make doc