Skip to content

Calliope: energy system modelling made simple

This is the documentation for Calliope version 0.7.0.dev7 (version history).

  • Starting quickly

  • Going deeper

    • Building blocks: more detailed explanation of all the building blocks that make up a Calliope model.
    • How to: how to troubleshoot and access more advanced features like solver customisation or shadow prices.
    • Math gallery: gallery of reusable, user-defined math for implementing advanced constraints.
  • Reference

  • Other places to look

About Calliope

Calliope is an energy system modelling framework based on mathematical optimisation. It is designed to formulate and solve typical problems from the energy field such as capacity expansion planning, economic dispatch, power market modelling and energy system modelling in general. It is used in such roles by both commercial and research organisations.

Calliope focuses 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). Its primary focus is on planning energy systems at scales ranging from urban districts to entire continents. In an optional operational mode it can also test a pre-defined system under different operational conditions.

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 optimisation problem, solves it, and reports results in the form of xarray Datasets which in turn can easily be converted into Pandas data structures for further analysis.

Calliope is developed in the open on GitHub and contributions are very welcome (see the section on contributing).

Key features of Calliope include:

  • Free and open-source (available under the Apache 2.0 license)
  • 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
  • Calligraph companion tool for interactive exploration of results - see the example below:

Acknowledgements

See the callio.pe project website for current and past team members and acknowledgements.

License

Copyright since 2013 Calliope contributors listed in AUTHORS

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Citing Calliope

Calliope is published in the Journal of Open Source Software. We encourage you to use this academic reference.