diff --git a/.github/workflows/pr-ci.yml b/.github/workflows/pr-ci.yml index 60d31be97..efd5f1e78 100644 --- a/.github/workflows/pr-ci.yml +++ b/.github/workflows/pr-ci.yml @@ -28,7 +28,7 @@ jobs: strategy: matrix: os: [windows-latest, ubuntu-latest, macos-latest] - py3version: ["9", "11"] + py3version: ["9", "10", "11"] fail-fast: false runs-on: ${{ matrix.os }} steps: diff --git a/paper/codemeta.json b/paper/codemeta.json deleted file mode 100644 index abf27a669..000000000 --- a/paper/codemeta.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "@context": "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld", - "@type": "Code", - "author": [ - { - "@id": "https://orcid.org/0000-0002-8420-9498", - "@type": "Person", - "name": "Stefan Pfenninger", - "affiliation": "ETH Zürich" - }, - { - "@id": "https://orcid.org/0000-0003-4044-6587", - "@type": "Person", - "name": "Bryn Pickering", - "affiliation": "University of Cambridge" - } - ], - "identifier": "https://doi.org/10.5281/zenodo.593292", - "codeRepository": "https://github.com/calliope-project/calliope", - "datePublished": "2018-06-04", - "dateModified": "2018-06-04", - "dateCreated": "2018-06-04", - "description": "A multi-scale energy systems modelling framework", - "keywords": "python, energy, optimisation, energy-system", - "license": "Apache 2.0", - "title": "Calliope", - "version": "0.6.2" -} diff --git a/paper/paper.bib b/paper/paper.bib deleted file mode 100644 index be42bce1f..000000000 --- a/paper/paper.bib +++ /dev/null @@ -1,78 +0,0 @@ -@inproceedings{Heussen2010, - title = {Energy storage in power system operation: The power nodes modeling framework}, - shorttitle = {Energy storage in power system operation}, - doi = {10.1109/ISGTEUROPE.2010.5638865}, - booktitle = {Innovative Smart Grid Technologies Conference {Europe} ({ISGT} {Europe}), 2010 {IEEE} {PES}}, - author = {Heussen, Kai and Koch, Stephan and Ulbig, Andreas and Andersson, Göran}, - year = {2010}, - pages = {1--8} -} - -@article{Pfenninger2015_1, - title = {Renewables, nuclear, or fossil fuels? Scenarios for {Great Britain}'s power system considering costs, emissions and import dependency}, - volume = {152}, - doi = {10.1016/j.apenergy.2015.04.102}, - journal = {Applied Energy}, - author = {Pfenninger, Stefan and Keirstead, James}, - year = {2015}, - pages = {83--93} -} - -@article{Pfenninger2015_2, - title = {Comparing concentrating solar and nuclear power as baseload providers using the example of {South Africa}}, - volume = {87}, - issn = {0360-5442}, - doi = {10.1016/j.energy.2015.04.077}, - urldate = {2015-06-13}, - journal = {Energy}, - author = {Pfenninger, Stefan and Keirstead, James}, - year = {2015}, - pages = {303--314} -} - -@inproceedings{Pickering2017, - title = {Applying Piecewise Linear Characteristic Curves in District Energy Optimisation}, - booktitle = {Proceedings of the 30th {ECOS} Conference, {San Diego}, {CA}, 2-6 July 2017}, - author = {Pickering, Bryn and Choudhary, Ruchi}, - year = {2017}, - howpublished = {\url{https://www.researchgate.net/publication/319334427_Applying_Piecewise_Linear_Characteristic_Curves_in_District_Energy_Optimisation}} -} - -@online{xarray, - author = {xarray}, - title = {xarray: N-D labeled arrays and datasets in {Python}}, - year = 2018, - url = {https://xarray.pydata.org/en/stable/}, - urldate = {2018-04-27} -} - -@online{pyomo, - author = {Pyomo}, - title = {Pyomo - Flexible modeling of optimization problems in {Python}}, - year = 2018, - url = {https://www.pyomo.org/}, - urldate = {2018-04-27} -} - -@online{plotly, - author = {Plotly}, - title = {Plotly - Modern Visualization for the Data Era}, - year = 2018, - url = {https://plot.ly/}, - urldate = {2018-04-27} -} - -@online{CalliopeGitHub, - author = {Pfenninger, Stefan and Pickering, Bryn}, - title = {Calliope}, - year = 2018, - url = {https://github.com/calliope-project/calliope}, - urldate = {2018-04-27} -} - -@misc{CalliopeZenodo, - author = {Pfenninger, Stefan and Pickering, Bryn}, - title = {Calliope}, - doi = {10.5281/zenodo.593292}, - howpublished = {\url{https://doi.org/10.5281/zenodo.593292}} -} diff --git a/paper/paper.md b/paper/paper.md deleted file mode 100644 index 3da7d05fe..000000000 --- a/paper/paper.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: 'Calliope: a multi-scale energy systems modelling framework' -tags: - - energy - - optimisation - - python -authors: - - name: Stefan Pfenninger - orcid: 0000-0002-8420-9498 - affiliation: 1 - - name: Bryn Pickering - orcid: 0000-0003-4044-6587 - affiliation: 2 -affiliations: - - name: Department of Environmental Systems Science, ETH Zürich - index: 1 - - name: Department of Engineering, University of Cambridge - index: 2 -date: 30 April 2018 -bibliography: paper.bib ---- - -# Summary - -Energy system models create coherent quantitative descriptions of how energy is converted, transported, and consumed, at scales ranging from urban districts to entire continents. Formulating such models as optimisation problems allows a modeller to asses the effect of constraints, such as limited land availability for wind power deployment, the cost of battery electricity storage, or the elimination of fossil fuels from a country or a city, on the feasibility or cost of the modelled system. These models are particularly important in planning and policy-making for the transformation of the global energy system to address climate change. - -Calliope is a framework to build energy system models, designed to analyse systems with arbitrarily high spatial and temporal resolution, with a scale-agnostic mathematical formulation permitting analyses ranging from single urban districts to countries and continents. Its formulation of energy system components was influenced by the power nodes modelling framework by Heussen et al. [@Heussen2010], but generalised to consider energy carriers other than electricity. Calliope's key features include the ability to handle high spatial and temporal resolution and to easily run on high-performance computing systems. Its design cleanly separates the general framework (code) from the problem-specific model (data). It provides both a command-line interface and an API for programmatic use, to be useful both for users experienced with Python and those with no Python knowledge. - -A Calliope model consists of a collection of ``YAML`` and ``CSV`` files that define technologies, locations, links between locations, resource potentials, and other constraints. Calliope takes these files, constructs an optimisation problem, solves it, and reports results in the form of ``xarray`` [@xarray] Datasets, which can easily be saved to NetCDF files for further processing. It uses Pyomo [@pyomo] as a backend to interface with both open and commercial solvers, currently handling linear and mixed-integer problems, although nonlinear components could be implemented if necessary for new kinds of problems. Calliope's built-in tools allow interactive exploration of results using Plotly [@plotly], as shown in Figure 1. - -![Example time series visualisation of aggregated generation decisions at hourly time scale from a national-scale model of the UK power system, created with the Plotly-based visualisation tools in Calliope.](timeseries.pdf) - -Calliope has been used in various studies, for example, analyses of the national-scale power systems in Britain [@Pfenninger2015_1] and South Africa [@Pfenninger2015_2], and in methodological development for piecewise linearisation of characteristic technology performance curves for district-scale energy system analysis [@Pickering2017]. Ongoing research projects using Calliope include the effect of increased resilience to uncertain future demand and the interaction between local and national actors in the clean energy transition. - -Calliope is developed in the open on GitHub [@CalliopeGitHub] and each release is archived on Zenodo [@CalliopeZenodo]. - -# Acknowledgements - -The authors acknowledge funding via the European Research Council (grant StG 2012-313553), the Grantham Institute for Climate Change at Imperial College London, and the Engineering and Physical Sciences Research Council (ref EP/L016095/1). - -# References diff --git a/paper/timeseries.pdf b/paper/timeseries.pdf deleted file mode 100644 index 1f7abec43..000000000 Binary files a/paper/timeseries.pdf and /dev/null differ