A multi-scale energy systems (MUSES) modeling framework

PyPI version Anaconda.org/conda-forge version GitHub stars Chat on Gitter

Calliope is a framework to develop energy system models, with a focus on flexibility, high spatial and temporal resolution, the ability to execute many runs based on the same base model, and a clear separation of framework (code) and model (data). It is freely available under the Apache 2.0 license.

The latest stable release is available through PyPI and Anaconda. Development takes place in the open on GitHub.


A Calliope model consists of a collection of text files (in YAML and CSV formats) that fully define a model, with details on technologies, locations, resource potentials, etc. Calliope takes these files, constructs an optimization problem, solves it, and reports back results. Results can be saved to CSV or NetCDF files for further processing, or analysed directly in Python through Python’s extensive scientific data processing capabilities provided by libraries like Pandas and xarray.

Calliope comes with several built-in analysis and visualisation tools. Having some knowledge of the Python programming language helps when running Calliope and using these tools, but is not a prerequisite.

Quick start

Calliope can run on Windows, macOS and Linux. Installing it is quickest with the conda package manager by running a single command: conda create -c conda-forge -n calliope python=3.6 calliope. See the documentation for more information on installing.

Several easy to understand example models are included with Calliope and accessible through the calliope.examples submodule.

The tutorials in the documentation run through these examples. A good place to start is to look at these tutorials to get a feel for how Calliope works, and then to read the “Introduction”, “Building a model”, “Running a model”, and “Analysing a model” sections in the online documentation.

A fully-featured example model is UK-Calliope, which models the power system of Great Britain (England+Scotland+Wales), and has been used in several peer-reviewed scientific publications.


Calliope is developed in the open on GitHub and contributions are very welcome. See the list of open issues and planned milestones for an overview of where development is heading, and join us on Gitter to ask questions or discuss code. Comments, bug reports, pull requests, and any other contributions are welcome.


Key features of Calliope include:

  • Model specification in an easy-to-read and machine-processable YAML format
  • Generic technology definition allows modelling any mix of production, storage and consumption
  • Resolved in space: define locations with individual resource potentials
  • Resolved in time: read time series with arbitrary resolution
  • Able to run on high-performance computing (HPC) clusters
  • Uses a state-of-the-art Python toolchain based on Pyomo, xarray, and Pandas
  • Freely available under the Apache 2.0 license

Citing Calliope


Statue of Calliope; in the Museo Pio-Clementino, Vatican. © Trustees of the British Museum.

Please cite the following paper if you use Calliope for academic research:

Stefan Pfenninger (2017). Dealing with multiple decades of hourly wind and PV time series in energy models: a comparison of methods to reduce time resolution and the planning implications of inter-annual variability. Applied Energy. doi: 10.1016/j.apenergy.2017.03.051

All Calliope releases are archived on Zenodo, and can be referred to by the overall concept DOI 10.5281/zenodo.593292. Each version also has its own specific DOI listed on Zenodo.