Skip to content

Calliope: energy system modelling made simple

Warning

Calliope version 0.7 is available as a pre-release with the purpose of gathering feedback from users. To install the pre-release as a user:

mamba create -n calliope -c conda-forge/label/calliope_dev -c conda-forge calliope

Some functionality is not yet available in 0.7, notably:

  • spores mode
  • Plotting (see the example notebooks for sample code on making plots directly with Plotly)

To see a full list of changes, read our page on migrating between v0.6 and v0.7.

If you want to install the most recent stable version of Calliope, see our v0.6.10 documentation.

Note

This is the documentation for version 0.7.0.dev3 (version history). See the main project website at www.callio.pe for more general information, including a gallery of models built with Calliope, and other useful information.

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. Calliope's built-in tools allow interactive exploration of results.

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 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 section on contributing).

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

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.