Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.0%) to scientific vocabulary

Keywords from Contributors

energy-system energy-system-model heating snakemake-workflow sector-coupling pypsa power-systems great-britain energy-transition energy-model
Last synced: 7 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: fneum
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 79.3 MB
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 0
  • Open Issues: 1
  • Releases: 5
Created almost 4 years ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

Energy Imports and Infrastructure in a Carbon-Neutral European Energy System

Code for preprint article 2404.03927 currently under review.

Abstract:

Importing renewable energy to Europe may offer many potential benefits, including reduced energy costs, lower pressure on infrastructure development, and less land-use within Europe. However, there remain many open questions: on the achievable cost reductions, how much should be imported, whether the energy vector should be electricity, hydrogen or hydrogen derivatives like ammonia or steel, and their impact on Europe's domestic energy infrastructure needs. This study integrates the TRACE global energy supply chain model with the sector-coupled energy system model for Europe, PyPSA-Eur, to explore net-zero emission scenarios with varying import volumes, costs, and vectors. We find system cost reductions of 1-11%, within import cost variations of +/- 20% around our central estimate, with diminishing returns for larger import volumes and a preference for methanol, steel and hydrogen imports. Keeping some domestic power-to-X production is beneficial for integrating variable renewables, leveraging local sustainable carbon sources and utilising some waste heat from fuel synthesis. Across scenarios, power grid reinforcements are more stable than hydrogen pipeline expansion. Our findings highlight the need for coordinating import strategies with infrastructure policy and reveal maneuvering space for incorporating non-cost decision factors.

Installation

Clone the git repository from Github and enter the directory:

sh git clone --recurse-submodules git@github.com:fneum/import-benefits cd import-benefits

Consider adding git clone --depth=1 --shallow-submodules to skip to only retrieve the latest commits and not the full git history.

Use conda or a similar alternative to install the necessary Python environments for running TRACE and PyPSA-Eur:

sh conda env create -f workflow/trace/envs/environment.20240826-z1.yaml conda env create -f workflow/pypsa-eur/envs/environment.20240826-z1.yaml

The installation process should take only a few minutes; if it takes longer, consider updating your conda installation before retrying to create the environment:

sh conda deactivate conda update conda

Additionally, install a solver of your choice, e.g. Gurobi (requires license, e.g. from https://www.gurobi.com/academia/academic-program-and-licenses):

sh conda activate trace-20240826-z1 conda install -c gurobi gurobi"==11.0.1" conda activate pypsa-eur-20240826-z1 conda install -c gurobi gurobi"==11.0.1"

Both workflows can be executed on Linux, Mac or Windows (WSL). There are no futher specific non-standard hardware requirements.

Usage of TRACE

TRACE uses the snakemake workflow management tool.

Here, we use a derivative of TRACE v1.1.

Running a limited number of scenarios is possible on a local machine.

To run the workflow and reproduce the model runs presented in the paper, execute the following commands from the root directory of the project:

sh cd workflow/trace conda activate trace-20240826-z1 snakemake -call all_scenario_results -n # dry-run snakemake -call all_scenario_results

The results are stored in results/results.parquet (and in alternative file format as results/results.csv).

Two files are required for the PyPSA-Eur workflow and should be transferred to .workflow/pypsa-eur/data/imports before continuing. From the root of this repository, run:

sh mkdir -p workflow/pypsa-eur/data/imports cp workflow/trace/results/{results.parquet,combined_weighted_generator_timeseries.nc} workflow/pypsa-eur/data/imports

Alternatively, in case you want to reproduce PyPSA-Eur runs without re-running TRACE, download the following two files into the ./workflow/pypsa-eur/data/imports directory.

sh mkdir -p workflow/pypsa-eur/data/imports wget -P workflow/pypsa-eur/data/imports \ https://zenodo.org/records/14872184/files/combined_weighted_generator_timeseries.nc \ https://zenodo.org/records/14872184/files/results.parquet

Usage of PyPSA-Eur

PyPSA-Eur also uses the snakemake workflow management tool.

Here, we use a derivative of PyPSA-Eur v0.13.0.

Apart from solving the optimisation problem of a high-resolution model configuration, the workflow can be executed on a local machine. The preprocessing can take 1-2 hours and may require 16-24 GB of RAM.

To run the workflow and reproduce the model runs presented in the paper, execute the following commands from the root directory of the project:

sh cd workflow/pypsa-eur conda activate pypsa-eur-20240826-z1 snakemake -call make_global_summary --configfile=config/config.20240826-z1.yaml -n # dry-run snakemake -call make_global_summary --configfile=config/config.20240826-z1.yaml

These larger runs with higher temporal resolution require a high-performance computing setup with at least 125-150 GB RAM available and access to multiple cores is beneficial for runtime improvements but not strictly necessary. However, the runtime for a single scenario can exceed 48-72 hours. As there are around 350 scenarios, it is recommended to use the snakemake cluster integration to parallelize scenarios. Additional snakemake settings are required depending on the compute infrastructure available.

The yaml files referenced above can be used to edit and configure the scenarios, e.g. by adding additional cases, changing some assumptions or reducing complexity.

More detailed usage instructions for the underlying PyPSA-Eur model can be found at https://pypsa-eur.readthedocs.io/en/v0.13.0-docs-fix/.

Outputs and Inspection

Running the workflow will create various intermediate resources and results files, including .csv files with summary data, .pdf files with summary plots and .nc files, most of which are PyPSA network files before and after solving.

These files are placed in the workflow/pypsa-eur/resources and workflow/pypsa-eur/results directories.

PyPSA networks can be read and inspected with Python in the following way:

py import pypsa fn = f"workflow/pypsa-eur/results/20240826-z1/postnetworks/base_s_115_lvopt__imp_2050.nc" n = pypsa.Network(fn) n.statistics() n.statistics.capex() + n.statistics.opex() n.statistics.energy_balance() n.buses_t.marginal_price

License

MIT

Owner

  • Name: Fabian Neumann
  • Login: fneum
  • Kind: user
  • Location: Berlin
  • Company: TU Berlin

Energy System Modeller at Technische Universität Berlin

Citation (CITATION.cff)

cff-version: 1.2.0
message: ""
title: "Energy Imports and Infrastructure in a Carbon-Neutral European Energy System"
repository: https://github.com/fneum/import-benefits
version: 3.0.0
license: MIT
authors:
  - family-names: Neumann
    given-names: Fabian
    orcid: https://orcid.org/0000-0001-8551-1480
  - family-names: Hampp
    given-names: Johannes
    orcid: https://orcid.org/0000-0002-1776-116X
  - family-names: Brown
    given-names: Tom
    orcid: https://orcid.org/0000-0001-5898-1911

GitHub Events

Total
  • Create event: 2
  • Issues event: 1
  • Release event: 4
  • Watch event: 1
  • Issue comment event: 1
  • Push event: 23
Last Year
  • Create event: 2
  • Issues event: 1
  • Release event: 4
  • Watch event: 1
  • Issue comment event: 1
  • Push event: 23

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 86
  • Total Committers: 3
  • Avg Commits per committer: 28.667
  • Development Distribution Score (DDS): 0.07
Past Year
  • Commits: 28
  • Committers: 2
  • Avg Commits per committer: 14.0
  • Development Distribution Score (DDS): 0.071
Top Committers
Name Email Commits
Fabian Neumann f****n@o****e 80
euronion 4****n 4
pre-commit-ci[bot] 6****] 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 2
  • Total pull requests: 4
  • Average time to close issues: 12 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 1
  • Pull requests: 1
  • Average time to close issues: 6 months
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • giridhar-gandi (1)
  • fneum (1)
Pull Request Authors
  • pre-commit-ci[bot] (4)
  • euronion (2)
Top Labels
Issue Labels
Pull Request Labels