A multi-scale energy systems (MUSES) modeling framework

PyPI Anaconda.org GitHub stars Chat on Gitter

Calliope is a framework to develop energy system models using a modern and open source Python-based toolchain. It is under active development and 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.

About

Calliope

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

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).

A model based on Calliope consists of a collection of text files (in YAML and CSV formats) that define the technologies, locations and resource potentials. Calliope takes these files, constructs an optimization problem, solves it, and reports results in the form of Pandas data structures for easy analysis with Calliope’s built-in tools or the standard Python data analysis stack.

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.

See the introduction in the documentation and the tutorials for more.

See Contact for contact information.

Features

Calliope’s main features include:

  • Generic technology definition allows modeling 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
  • Model specification in an easy-to-read and machine-processable YAML format
  • Able to run on computing clusters
  • Easily extensible in a modular way: custom constraint generator functions and custom time mask functions
  • Uses a state-of-the-art Python toolchain based on Pyomo, xarray, and Pandas
  • Freely available under the Apache 2.0 license

Citing Calliope

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.