1,722,677 research outputs found
ykawazura/calliope: Calliope 1.0
This is the first public version of Calliope, a pseudospectral shearing magnetohydrodynamics code with a pencil decomposition
Euro-Calliope v1.0.0
A model of the European power system built using Calliope.
This repository contains the workflow routines that automatically build the model from source data. Alternatively to building models yourself, you can use pre-built models that run out-of-the-box.
See README.md for further information.
If you use euro-calliope in an academic publication, please cite the following article:
Tröndle, T., Lilliestam, J., Marelli, S., Pfenninger, S., 2020. Trade-offs between geographic scale, cost, and infrastructure requirements for fully renewable electricity in Europe. Joule
calliope-project/calliope: Release v0.7.0.dev2
<p>v0.7 includes a major change to how Calliope internally operates.
Along with this, there are multiple changes to how Calliope models are defined and configured.
This requires adapting models to work with v0.7.</p>
<p>Due to the scale of these changes, we are staging the development with a series of pre-releases for users to test the functionality.</p>
<p>Below is a summary of the changes made in this pre-release. For more detail on the changes in v0.7 compared to v0.6, see our page on migrating between the two in <a href="https://calliope.readthedocs.io/en/latest/migrating/">our documentation</a>.</p>
<p>|new| Storage buffers available in all technology base classes.</p>
<p>|new| Multiple carriers and different carriers in/out available in all technology base classes.</p>
<p>|new| <code>node_groups</code> added to match <code>tech_groups</code>.</p>
<p>|new| technology efficiencies split into inflow and outflow efficiencies.</p>
<p>|new| Technology capacities and efficiencies can be differentiated between technology carriers.</p>
<p>|new| Parameters can be defined outside the scope of <code>nodes</code> and <code>techs</code> using the top-level <code>parameters</code> key in YAML.</p>
<p>|new| Any parameters can be indexed over arbitrary dimensions, both core Calliope dimensions and new, user-defined dimensions.</p>
<p>|new| Non-timeseries data can be loaded from CSV files or in-memory Pandas DataFrames using the top-level <code>data_sources</code> key in YAML.</p>
<p>|new| User-defined mathematical formulations using the new Calliope math syntax can be loaded when creating a model.</p>
<p>|new| Shadow prices obtained from a dual LP problem can be read by using <code>model.backend.shadow_prices.get("constraint_name")</code>.</p>
<p>|changed| |backwards-incompatible| Updated to support Python versions >= 3.10.</p>
<p>|changed| |backwards-incompatible| Updated to Pandas >= v2.1, Pyomo >= v6.4, Xarray >= v2023.10.</p>
<p>|changed| |backwards-incompatible| Flat technology definitions, removing the distinction between <code>essentials</code>, <code>constraints</code> and <code>costs</code>.</p>
<p>|changed| |backwards-incompatible| Timeseries data is defined under the <code>data_sources</code> top-level key, not with <code>file=</code>/<code>df=</code> at the technology level.</p>
<p>|changed| |backwards-incompatible| Demand and carrier consumption values are strictly positive instead of strictly negative.</p>
<p>|changed| |backwards-incompatible| <code>model.run()</code> method → two-stage <code>model.build()</code> + <code>model.solve()</code> methods.</p>
<p>|changed| |backwards-incompatible| <code>model</code> and <code>run</code> top-level keys → <code>config.init</code>/<code>.build</code>/<code>.solve</code>.</p>
<p>|changed| |backwards-incompatible| <code>locations</code> top-level key and <code>loc</code> data dimensions → <code>nodes</code>.</p>
<p>|changed| |backwards-incompatible| <code>parent</code> technology parameter → <code>base_tech</code> + <code>inherit</code>.</p>
<p>|changed| |backwards-incompatible| Cost parameters are flattened and use the indexed parameter syntax.</p>
<p>|changed| |backwards-incompatible| <code>links</code> top-level key → transmission links defined in <code>techs</code>.</p>
<p>|changed| |backwards-incompatible| Various parameters/decision variables renamed (namely <code>energy_</code> → <code>flow_</code>, <code>carrier_prod</code>/<code>_con</code> → <code>flow_out</code>/<code>_in</code>, and <code>resource</code> → <code>source_use</code>/<code>sink_use</code>).</p>
<p>|changed| |backwards-incompatible| Various configuration options renamed.</p>
<p>|changed| |backwards-incompatible| <code>force_resource</code> technology parameter → <code>source_use_equals</code> / <code>sink_use_equals</code>.</p>
<p>|changed| |backwards-incompatible| <code>units</code> + <code>purchased</code> decision variables → <code>purchased_units</code>.</p>
<p>|changed| |backwards-incompatible| Parameters added to explicitly trigger MILP and storage decision variables/constraints.</p>
<p>|changed| |backwards-incompatible| Structure of input and output data within a Calliope model updated to remove concatenated <code>loc::tech::carrier</code> sets and technology subsets (e.g. <code>techs_supply</code>) in favour of sparse arrays indexed over core dimensions only (<code>nodes</code>, <code>techs</code>, <code>carriers</code>, <code>timesteps</code>).</p>
<p>|changed| |backwards-incompatible| <code>coordinates.lat</code>/<code>lon</code> node parameter → <code>latitude</code>/<code>longitude</code>.</p>
<p>|changed| |backwards-incompatible| Distance units default to kilometres and can be reverted to metres with <code>config.init.distance_unit</code>.</p>
<p>|changed| |backwards-incompatible| <code>operate</code> mode input parameters now expected to match <code>plan</code> mode decision variable names (e.g., <code>flow_cap</code>).</p>
<p>|changed| |backwards-incompatible| Cyclic storage is defined per-technology, not as a top-level configuration option.</p>
<p>|changed| Documentation has been overhauled.</p>
<p>|removed| <code>_equals</code> constraints.
Use both <code>_min</code> and <code>_max</code> constraints to the same value.</p>
<p>|removed| <code>x</code>/<code>y</code> coordinates.
Use geographic lat/lon coordinates (in <code>EPSG:4326</code> projection) instead.</p>
<p>|removed| Comma-separated node definitions.
Inheriting duplicate definitions from <code>node_groups</code> instead.</p>
<p>|removed| <code>supply_plus</code> and <code>conversion_plus</code> technology base classes.
Use <code>supply</code> and <code>conversion</code> technology base classes instead.</p>
<p>|removed| <code>carrier</code> key.
Use <code>carrier_in</code> and <code>carrier_out</code> instead.</p>
<p>|removed| <code>carrier_tiers</code> and <code>carrier_ratios</code>.
Use indexed parameter definitions for <code>flow_out_eff</code> and custom math instead.</p>
<p>|removed| <code>calliope.Model.get_formatted_array</code>.
The Calliope internal representation of data now matches the format achieved by calling this method in v0.6.</p>
<p>|removed| Group constraints.
Use custom math instead.</p>
<p>|removed| Configuration options for features we no longer support.</p>
<p>|removed| Plotting.
See our documentation for example of how to visualise your data with Plotly.</p>
<p>|removed| Clustering.
Cluster your data before creating your Calliope model.
Mapping of timeseries dates to representative days is still possible.</p>
tessif-calliope-0-6-6post1: Version 0.1.2
Tessif-Plugin Adding Support for Calliope Version 0.6.6post
Input datasets for Euro-Calliope
<p><a href="https://euro-calliope.readthedocs.io/">Euro-Calliope</a> is a set of models of the European energy sytem and an automatic workflow to generate them. Euro-Calliope is based on a variety of input datasets each of which describes a certain aspect of the energy system, like generation potentials, historical generation, and energy demand. The workflow building all models does not contain data but instead automatically derives input data from their source where possible. For some input datasets this is not possible and this folder includes these datasets.</p>
Euro-Calliope: pre-built models
pre-built Euro-Calliope
Ready to use models of the European electricity system built using Calliope. Models are available on three different spatial resolutions: continental, national, and regional.
In addition, euro-calliope models can be built manually which adds more configuration options. To build euro-calliope manually, head over to GitHub.
At a glance
euro-calliope models the European electricity system with each location representing an administrative unit. It is built on three spatial resolutions: on the continental level as a single location, on the national level with 34 locations, and on the regional level with 497 locations. On each node, renewable generation capacities (wind, solar, bioenergy) and balancing capacities (battery, hydrogen) can be built. In addition, hydro electricity and pumped hydro storage capacities can be built up to the extent to which they exist today. All capacities are used to satisfy electricity demand on all locations which is based on historic data. Locations are connected through transmission lines of unrestricted capacity. Using Calliope, the model is formulated as a linear optimisation problem with total monetary cost of all capacities as the minimisation objective. The pre-built models can be manipulated by updating any of the files. In addition to the pre-built models, models can be built manually. Manual builds provide more flexibility in adapting and configuring the model. To build euro-calliope manually, head over to GitHub.
Get ready to run the models
You need a Gurobi license installed on your computer. You may as well choose another solver than Gurobi. See Calliope’s documentation to understand how to switch to another solver.
You need to have Calliope and Gurobi installed in your environment. The easiest way to do so is using conda. Using conda, you can create a conda environment from within you can build the model:
conda env create -f environment.yaml
conda activate euro-calliope
Run the models
There are three models in this directory – one for each of the three spatial resolutions continental, national, and regional. You can run all three models out-of-the-box, but you may want to modify the model. By default, the model runs for the first day of January only. To run the example model on the continental resolution type:
$ calliope run ./continental/example-model.yaml
For more information on how to use and modify Calliope models, see Calliope’s documentation.
Manipulating the model using overrides
Calliope overrides allow to easily manipulate models. An override named freeze-hydro-capacities can be used for example in this way:
calliope run build/model/continental/example-model.yaml --scenario=freeze-hydro-capacities
You can define your own overrides to manipulate any model component. The following overrides are built into euro-calliope:
directional-rooftop-pv
By default, euro-calliope contains a single technology for rooftop PV. This technology comprises the total rooftop PV potential in each location, in particular including east-, west-, and north-facing rooftops. While this allows to fully exploit the potential of rooftop PV, it leads to less than optimal capacity factors as long as the potential is not fully exploited. That is because, one would likely first exploit all south-facing rooftop, then east- and west-facing rooftops, and only then – if at all – north-facing rooftops. By default, euro-calliope cannot model that.
When using the directional-rooftop-pv override, there are three instead of just one technologies for rooftop PV. The three technologies comprise (1) south-facing and flat rooftops, (2) east- and west-facing rooftops, and (3) north-facing rooftops. This leads to higher capacity factors of rooftop PV as long as the potential of rooftop PV is not fully exploited. However, this also increases the complexity of the model.
freeze-hydro-capacities
By default, euro-calliope allows capacities of run-of-river hydro, reservoir hydro, and pumped storage hydro capacities up to today’s levels. Alternatively, it’s possible to freeze these capacities to today’s levels using the freeze-hydro-capacities override.
Model components
The models contain the following files. All files in the root directory are independent of the spatial resolution. All files that depend on the spatial resolution are within subfolders named by the resolution.
├── {resolution} <- For each spatial resolution an individual folder.
│ ├── capacityfactors-{technology}.csv <- Timeseries of capacityfactors of all renewables.
│ ├── directional-rooftop.yaml <- Override discriminating rooftop PV by orientation.
│ ├── electricity-demand.csv <- Timeseries of electricity demand on each node.
│ ├── example-model.yaml <- Calliope model definition.
│ ├── link-all-neighbours.yaml <- Connects neighbouring locations with transmission.
│ ├── locations.csv <- Map from Calliope location id to name of location.
│ └── locations.yaml <- Defines all locations and their max capacities.
├── build-metadata.yaml <- Metadata of the build process.
├── demand-techs.yaml <- Definition of demand technologies.
├── environment.yaml <- Conda file defining an environment to run the model in.
├── interest-rate.yaml <- Interest rates of all capacities.
├── link-techs.yaml <- Definition of link technologies.
├── README.md <- The file you are currently looking at.
├── renewable-techs.yaml <- Definition of supply technologies.
└── storage-techs.yaml <- Definition of storage technologies.
Units of quantities
The units of quantities within the models are the following:
power: 100,000 MW
energy: 100,000 MWh
area: 10,000 km2
monetary cost: 1e+09 EUR
These units were chosen in order to minimise numerical issues within the optimisation algorithm.
License and attribution
euro-calliope has been developed and is maintained by Tim Tröndle, IASS Potsdam.
If you use euro-calliope in an academic publication, please cite the following article:
Tröndle, T., Lilliestam, J., Marelli, S., Pfenninger, S., 2020. Trade-offs between geographic scale, cost, and infrastructure requirements for fully renewable electricity in Europe. Joule.
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
Contains modified Copernicus Atmosphere Monitoring Service information 2020. Neither the European Commission nor ECMWF is responsible for any use that may be made of the Copernicus information or data it contains.
Contains modified data from Renewables.ninja.
Contains modified data from Open Power System Data
calliope-project/calliope: Release v0.6.6-post1
A multi-scale energy systems modelling framewor
calliope-project/calliope: Release v0.4.0
High-resolution open-source energy modelling framework in Pytho
Calliope
A preliminary sketch of Calliope, the muse of heroic epics. Calliope holds a manuscript in her right hand. It is believed that Calliope was Homer's muse as he wrote the Iliad and Odysse
calliope-project/calliope: Release v0.6.2
A multi-scale energy systems modelling framewor
- …
