Calliope: energy system modelling made simple¶
This is the documentation for Calliope version 0.7.0.dev7 (version history).
-
Starting quickly
- Download and installation: get Calliope installed and ready to use.
- Getting started: read through this first to understand Calliope's basic concepts.
- Examples & tutorials: these examples are best understood after you've gone through the basic concepts.
-
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
- YAML, command line & schemas: the YAML syntax, command-line interface, and configuration schemas.
- Python API: reference documentation for the API.
- Built-in math: the base and other built-in math formulations.
-
Other places to look
- Migrating between versions: what changed between v0.6 and v0.7 and how to update your models.
- Contributing: how to contribute to Calliope's development.
- Version history: the full changelog.
- Also see www.callio.pe for more general information on the Calliope project.
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.