diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 8c0760ce4..ecc0c81a5 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -12,13 +12,16 @@ on: branches: - master schedule: - - cron: "0 5 * * *" + - cron: "0 5 * * 1-6" + - cron: "0 5 * * 0" # Cancel any in-progress runs when a new run is triggered concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true +env: + BASE_ENV: envs/environment.yaml jobs: run-tests: @@ -27,14 +30,8 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu, macos, windows] - include: - - os: ubuntu - env_file: envs/linux-pinned.yaml - - os: macos - env_file: envs/macos-pinned.yaml - - os: windows - env_file: envs/windows-pinned.yaml + # Run windows only on scheduled runs on Sundays, otherwise ignore + os: ${{ github.event.schedule == '0 5 * * 0' && fromJson('["ubuntu", "macos", "windows"]') || fromJson('["ubuntu", "macos"]') }} defaults: run: @@ -43,17 +40,36 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup secrets & cache dates + - name: Setup env file path (ubuntu) + if: matrix.os == 'ubuntu' run: | - echo -ne "url: ${CDSAPI_URL}\nkey: ${CDSAPI_TOKEN}\n" > ~/.cdsapirc - echo "week=$(date +'%Y%U')" >> $GITHUB_ENV # data and cutouts + echo "env_file=envs/linux-pinned.yaml" >> $GITHUB_ENV + + - name: Setup env file path (macos and windows) + if: matrix.os != 'ubuntu' + run: | + echo "env_file=envs/${{ matrix.os }}-pinned.yaml" >> $GITHUB_ENV + + - name: Use base env file if it was changed + run: | + git fetch origin master + if git diff --name-only origin/master | grep '${{ env.BASE_ENV }}'; then + echo "Base env ${{ env.BASE_ENV }} changed. Using it instead of pinned envs." + echo "env_file=${{ env.BASE_ENV }}" >> $GITHUB_ENV + else + echo "Base env ${{ env.BASE_ENV }} not changed. Using pinned envs." + fi + + - name: Setup cache keys + run: | + echo "WEEK=$(date +'%Y%U')" >> $GITHUB_ENV # data and cutouts - uses: actions/cache@v4 with: path: | data cutouts - key: data-cutouts-${{ env.week }} + key: data-cutouts-${{ env.WEEK }} - uses: conda-incubator/setup-miniconda@v3 with: @@ -63,12 +79,14 @@ jobs: uses: actions/cache@v4 with: path: ${{ env.CONDA }}/envs - key: conda-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles(format('{0}', matrix.env_file)) }} + key: conda-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles(format('{0}', env.env_file)) }} id: cache-env - name: Update environment if: steps.cache-env.outputs.cache-hit != 'true' - run: conda env update -n pypsa-eur -f ${{ matrix.env_file }} + run: | + conda env update -n pypsa-eur -f ${{ env.env_file }} + echo "Run conda list" && conda list - name: Run snakemake test workflows run: | @@ -104,22 +122,31 @@ jobs: steps: - uses: actions/checkout@v4 + - name: Use base env file if it was changed + run: | + git fetch origin master + if git diff --name-only origin/master | grep '${{ env.BASE_ENV }}'; then + echo "Base env ${{ env.BASE_ENV }} changed. Using it instead of pinned envs." + echo "env_file=${{ env.BASE_ENV }}" >> $GITHUB_ENV + else + echo "Base env ${{ env.BASE_ENV }} not changed. Using pinned envs." + echo "env_file=envs/linux-pinned.yaml" >> $GITHUB_ENV + fi + # Only run checks if package is not pinned - name: Check if inhouse package is pinned run: | - grep_line=$(grep -- '- ${{ matrix.inhouse }}' envs/environment.yaml) + grep_line=$(grep -- '- ${{ matrix.inhouse }}' ${{ env.BASE_ENV }}) if [[ $grep_line == *"<"* || $grep_line == *"=="* ]]; then echo "pinned=true" >> $GITHUB_ENV else echo "pinned=false" >> $GITHUB_ENV fi - - name: Setup secrets & cache dates + - name: Setup cache keys if: env.pinned == 'false' run: | - echo -ne "url: ${CDSAPI_URL}\nkey: ${CDSAPI_TOKEN}\n" > ~/.cdsapirc - echo "week=$(date +'%Y%U')" >> $GITHUB_ENV # data and cutouts - echo "today=$(/bin/date -u '+%Y%m%d')" >> $GITHUB_ENV # env + echo "WEEK=$(date +'%Y%U')" >> $GITHUB_ENV # data and cutouts - uses: actions/cache@v4 if: env.pinned == 'false' @@ -127,7 +154,7 @@ jobs: path: | data cutouts - key: data-cutouts-${{ env.week }} + key: data-cutouts-${{ env.WEEK }} - uses: conda-incubator/setup-miniconda@v3 if: env.pinned == 'false' @@ -139,12 +166,14 @@ jobs: uses: actions/cache@v4 with: path: ${{ env.CONDA }}/envs - key: conda-${{ runner.os }}-${{ runner.arch }}-${{ matrix.inhouse }}-hashFiles("envs/linux-pinned.yaml") + key: conda-${{ runner.os }}-${{ runner.arch }}-${{ matrix.inhouse }}-${{ hashFiles(format('{0}', env.env_file)) }} id: cache-env - name: Update environment if: env.pinned == 'false' && steps.cache-env.outputs.cache-hit != 'true' - run: conda env update -n pypsa-eur -f envs/linux-pinned.yaml + run: | + conda env update -n pypsa-eur -f ${{ env.env_file }} + echo "Run conda list" && conda list - name: Install inhouse packages from master if: env.pinned == 'false' @@ -157,7 +186,7 @@ jobs: make test - name: Upload artifacts - if: env.pinned == 'false' + if: env.pinned == 'false' && always() uses: actions/upload-artifact@v4 with: name: results-inhouse-${{ matrix.inhouse }} diff --git a/.github/workflows/update-fixed-env.yaml b/.github/workflows/update-pinned-env.yaml similarity index 94% rename from .github/workflows/update-fixed-env.yaml rename to .github/workflows/update-pinned-env.yaml index b5e3cb28f..c4126142e 100644 --- a/.github/workflows/update-fixed-env.yaml +++ b/.github/workflows/update-pinned-env.yaml @@ -2,17 +2,19 @@ name: Update pinned envs on: push: - branches: - - master paths: - - 'envs/environment.yaml' + - envs/environment.yaml + # Run every Sunday at 5:00 UTC schedule: - cron: "0 5 * * 0" workflow_dispatch: +env: + BASE_ENV: envs/environment.yaml jobs: update-pinned-environment: + if: ${{ github.ref == 'refs/heads/master' }} name: Update pinned envs runs-on: ${{ matrix.os }}-latest strategy: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1d32a4345..688aab8c6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -89,6 +89,6 @@ repos: # Check for FSFE REUSE compliance (licensing) - repo: https://github.com/fsfe/reuse-tool - rev: v4.0.3 + rev: v5.0.2 hooks: - id: reuse diff --git a/Makefile b/Makefile index d8c7834b9..ee20cf259 100755 --- a/Makefile +++ b/Makefile @@ -54,12 +54,13 @@ clean-tests: # Removes all created files except for large cutout files (similar to fresh clone) reset: - @echo "Do you really wanna continue? This will remove logs, resources, benchmarks, results, and .snakemake directories (y/n): " && \ + @echo "Do you really wanna continue? This will remove config/config.yaml, logs, resources, benchmarks, results, and .snakemake directories (y/n): " && \ read ans && [ $${ans} = y ] && ( \ rm -r ./logs || true; \ rm -r ./resources || true; \ rm -r ./benchmarks || true; \ rm -r ./results || true; \ rm -r ./.snakemake || true; \ + rm ./config/config.yaml || true; \ echo "Reset completed." \ ) || echo "Reset cancelled." diff --git a/config/config.default.yaml b/config/config.default.yaml index 08babad80..2337a7364 100644 --- a/config/config.default.yaml +++ b/config/config.default.yaml @@ -499,7 +499,7 @@ sector: EV_lower_degree_factor: 0.98 EV_upper_degree_factor: 0.63 bev_dsm: true - bev_availability: 0.5 + bev_dsm_availability: 0.5 bev_energy: 0.05 bev_charge_efficiency: 0.9 bev_charge_rate: 0.011 diff --git a/doc/conf.py b/doc/conf.py index 7165b86cf..053c43267 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -20,6 +20,22 @@ import os import sys +import requests + + +def get_basemap(app): + url = "https://zenodo.org/records/14144752/files/map.html?download=1" + response = requests.get(url) + + build_path = os.path.join(app.builder.outdir, "base-network-raw.html") + with open(build_path, "w") as f: + f.write(response.text) + + +def setup(app): + app.connect("builder-inited", get_basemap) + + # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. diff --git a/doc/configtables/sector.csv b/doc/configtables/sector.csv index 71e149fed..ba87e2d7d 100644 --- a/doc/configtables/sector.csv +++ b/doc/configtables/sector.csv @@ -40,13 +40,13 @@ EV_lower_degree_factor,--,float,Share increase in energy demand in electric vehi EV_upper_degree_factor,--,float,Share increase in energy demand in electric vehicles (EV) for each degree difference between the hot environment and the maximum temperature. bev_dsm,--,"{true, false}",Add the option for battery electric vehicles (BEV) to participate in demand-side management (DSM) ,,, -bev_availability,--,float,The share for battery electric vehicles (BEV) that are able to do demand side management (DSM) +bev_dsm_availability,--,float,The share for battery electric vehicles (BEV) that are able to do demand side management (DSM) bev_energy,--,float,The average size of battery electric vehicles (BEV) in MWh bev_charge_efficiency,--,float,Battery electric vehicles (BEV) charge and discharge efficiency bev_charge_rate,MWh,float,The power consumption for one electric vehicle (EV) in MWh. Value derived from 3-phase charger with 11 kW. bev_avail_max,--,float,The maximum share plugged-in availability for passenger electric vehicles. bev_avail_mean,--,float,The average share plugged-in availability for passenger electric vehicles. -v2g,--,"{true, false}",Allows feed-in to grid from EV battery +v2g,--,"{true, false}","Allows feed-in to grid from EV battery. This is only enabled if BEV demand-side management is enabled, and the share of vehicles participating is V2G is given by `bev_dsm_availability`." land_transport_fuel_cell _share,--,Dictionary with planning horizons as keys.,The share of vehicles that uses fuel cells in a given year land_transport_electric _share,--,Dictionary with planning horizons as keys.,The share of vehicles that uses electric vehicles (EV) in a given year land_transport_ice _share,--,Dictionary with planning horizons as keys.,The share of vehicles that uses internal combustion engines (ICE) in a given year. What is not EV or FCEV is oil-fuelled ICE. diff --git a/doc/data-base-network.rst b/doc/data-base-network.rst new file mode 100644 index 000000000..5a61f71c5 --- /dev/null +++ b/doc/data-base-network.rst @@ -0,0 +1,45 @@ +.. + SPDX-FileCopyrightText: 2024 The PyPSA-Eur Authors + + SPDX-License-Identifier: CC-BY-4.0 + +############# +Base network +############# + +.. raw:: html + + + +The map might take a moment to load. To view it in full screen, click `here `__. + +``data/osm-prebuilt`` + +- **Source:** OpenStreetMap; Xiong, B., Neumann, F., & Brown, T. (2024). + Prebuilt Electricity Network for PyPSA-Eur based on OpenStreetMap Data (0.5) + [Data set]. Zenodo. https://doi.org/10.5281/zenodo.13981528 +- **Link:** https://zenodo.org/records/13981528 +- **License:** ODbL (`reference `) +- **Description:** Pre-built data of high-voltage transmission grid in Europe from OpenStreetMap. + +This dataset contains a topologically connected representation of the European +high-voltage grid (220 kV to 750 kV) constructed using OpenStreetMap data. Input data +was retrieved using the `Overpass turbo API `__. A heurisitic +cleaning process was used to for lines and links where electrical parameters are +incomplete, missing, or ambiguous. Close substations within a radius of 500 m are +aggregated to single buses, exact locations of underlying substations is preserved. +Unique identifiers for lines and links are preserved. + +A detailed explanation on the background, methodology, and validation of this dataset +can be found in `this paper `__ preprint +currently under peer-review. + +Countries included in the dataset: + +Albania (AL), Austria (AT), Belgium (BE), Bosnia and Herzegovina (BA), Bulgaria (BG), +Croatia (HR), Czech Republic (CZ), Denmark (DK), Estonia (EE), Finland (FI), France +(FR), Germany (DE), Greece (GR), Hungary (HU), Ireland (IE), Italy (IT), Kosovo (XK), +Latvia (LV), Lithuania (LT), Luxembourg (LU), Moldova (MD), Montenegro (ME), Netherlands +(NL), North Macedonia (MK), Norway (NO), Poland (PL), Portugal (PT), Romania (RO), Serbia +(RS), Slovakia (SK), Slovenia (SI), Spain (ES), Sweden (SE), Switzerland (CH), Ukraine +(UA), United Kingdom (GB) diff --git a/doc/data-bundle.rst b/doc/data-bundle.rst new file mode 100644 index 000000000..2d62d20fc --- /dev/null +++ b/doc/data-bundle.rst @@ -0,0 +1,108 @@ +.. + SPDX-FileCopyrightText: 2024 The PyPSA-Eur Authors + + SPDX-License-Identifier: CC-BY-4.0 + +################### +Zenodo data bundle +################### + +Data in this section is downloaded and extracted from the Zenodo data bundle +(https://zenodo.org/records/12760663). Files included in the data bundle are too +large to be placed directly in the repository, have been reduced in spatial +scope to reduce file size, or are not provided through stable URLs elsewhere. + +``data/bundle/je-e-21.03.02.xls`` + +- **Source:** Swiss Federal Statistics Office +- **Link:** https://www.bfs.admin.ch/bfs/en/home/news/whats-new.assetdetail.7786557.html#context-sidebar +- **License:** `custom (OPEN BY ASK) `__ +- **Description:** Population and GDP data for Swiss Cantons. + +``data/bundle/NUTS_2013_60M_SH`` + +- **Source:** GISCO +- **Link:** https://gisco-services.ec.europa.eu/distribution/v2/nuts/download/ +- **License:** `custom `__ +- **Description:** Europe's NUTS administrative regions. + +``data/bundle/nama_10r_3popgdp.tsv.gz`` + +- **Source:** Eurostat +- **Link:** https://ec.europa.eu/eurostat/databrowser/view/NAMA_10R_3POPGDP/default/table?lang=en +- **License:** `custom `__ +- **Description:** Average annual population to calculate regional GDP data (thousand persons) by NUTS 3 regions. + +``data/bundle/nama_10r_3gdp.tsv.gz`` + +- **Source:** Eurostat +- **Link:** https://ec.europa.eu/eurostat/databrowser/view/nama_10r_3gdp/default/table?lang=en +- **License:** `custom `__ +- **Description:** Gross domestic product (GDP) at current market prices by NUTS 3 regions. + +``data/bundle/corine`` + +- **Source:** European Environment Agency (EEA) +- **Link:** https://sdi.eea.europa.eu/catalogue/copernicus/api/records/a84ae124-c5c5-4577-8e10-511bfe55cc0d +- **License:** `custom `__ +- **Description:** CORINE Land Cover (CLC) database. + +``data/bundle/eea`` + +- **Source:** European Environment Agency (EEA) +- **Link:** https://www.eea.europa.eu/en/datahub/datahubitem-view/3b7fe76c-524a-439a-bfd2-a6e4046302a2 +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Total GHG emissions and removals in the EU. + +``data/bundle/emobility`` + +- **Source:** German Federal Highway Research Institute (BASt) +- **Link:** https://www.bast.de/DE/Verkehrstechnik/Fachthemen/v2-verkehrszaehlung/zaehl_node.html +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Contains data from permanent automatic counting stations on highways and federal roads in Germany. + +``data/bundle/h2_salt_caverns_GWh_per_sqkm.geojson`` + +- **Source:** Dilara Gulcin Caglayan, Nikolaus Weber, Heidi U. Heinrichs, Jochen + Linßen, Martin Robinius, Peter A. Kukla, Detlef Stolten, Technical potential + of salt caverns for hydrogen storage in Europe, International Journal of + Hydrogen Energy, Volume 45, Issue 11, 2020, Pages 6793-6805. +- **Link:** https://doi.org/10.1016/j.ijhydene.2019.12.161 +- **License:** CC-BY 4.0 +- **Description:** Contains geological hydrogen storage potentials for Europe. + +``data/bundle/natura`` + +- **Source:** European Environment Agency (EEA) +- **Link:** https://www.eea.europa.eu/en/datahub/datahubitem-view/6fc8ad2d-195d-40f4-bdec-576e7d1268e4 +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Natura 2000 natural protection areas. + +``data/bundle/gebco`` + +- **Source:** GEBCO +- **Link:** https://www.gebco.net/data_and_products/gridded_bathymetry_data/version_20141103/ +- **License:** CC0 (`reference `__) +- **Description:** Bathymetric dataset (2014 version). + +``data/bundle/GDP_per_capita_PPP_1990_2015_v2.nc`` + +- **Source:** Kummu, M., Taka, M. & Guillaume, J. Gridded global datasets for + Gross Domestic Product and Human Development Index over 1990-2015. Sci Data 5, + 180004 (2018). https://doi.org/10.1038/sdata.2018.4 +- **Link:** https://datadryad.org/stash/dataset/doi:10.5061/dryad.dk1j0 +- **License:** CC0 (`reference `__) +- **Description:** Gridded GDP data. + +``data/bundle/ppp_2013_1km_Aggregated.tif`` + +- **Source:** WorldPop (www.worldpop.org - School of Geography and Environmental + Science, University of Southampton; Department of Geography and Geosciences, + University of Louisville; Departement de Geographie, Universite de Namur) and + Center for International Earth Science Information Network (CIESIN), Columbia + University (2018). Global High Resolution Population Denominators Project - + Funded by The Bill and Melinda Gates Foundation (OPP1134076). + https://dx.doi.org/10.5258/SOTON/WP00647 +- **Link:** https://hub.worldpop.org/doi/10.5258/SOTON/WP00647 +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Gridded population data. diff --git a/doc/data-repos.rst b/doc/data-repos.rst new file mode 100644 index 000000000..0dd6e85d0 --- /dev/null +++ b/doc/data-repos.rst @@ -0,0 +1,242 @@ +.. + SPDX-FileCopyrightText: 2024 The PyPSA-Eur Authors + + SPDX-License-Identifier: CC-BY-4.0 + +########### +Repository +########### + +Data in this section is included in the PyPSA-Eur repository in the ``data`` folder. + +``data/entsoegridkit`` + +- **Source:** ENTSO-E +- **Link:** https://www.entsoe.eu/data/map/, extracted with https://github.com/PyPSA/GridKit/tree/master/entsoe +- **License:** unknown +- **Description:** Data of high-voltage transmission grid in Europe from ENTSO-E. + +``data/existing_infrastructure`` + +- **Source:** European Commission DG ENER; Mapping and analyses of the current and future (2020 - 2030) heating/cooling fuel deployment +- **Link:** https://energy.ec.europa.eu/publications/mapping-and-analyses-current-and-future-2020-2030-heatingcooling-fuel-deployment-fossilrenewables-1_en +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Contains country-level data on existing heating infrastructure, i.e. gas, oil, coal boilers, resistive heaters, air- and ground-sourced heat pumps. + +``data/retro/comparative_level_investment.csv`` + +- **Source:** Eurostat +- **Link:** https://ec.europa.eu/eurostat/statistics-explained/index.php?title=Comparative_price_levels_for_investment +- **License:** `custom `__ +- **Description:** Contains data on comparative price levels for investment in Europe. + +``data/retro/data_building_stock.csv`` + +- **Source:** Simon Pezzutto, Stefano Zambotti, Silvia Croce, Pietro Zambelli, + Giulia Garegnani, Chiara Scaramuzzino, Ramón Pascual Pascuas, Alyona + Zubaryeva, Franziska Haas, Dagmar Exner (EURAC), Andreas Müller (e-think), + Michael Hartner (TUW), Tobias Fleiter, Anna-Lena Klingler, Matthias Kühnbach, + Pia Manz, Simon Marwitz, Matthias Rehfeldt, Jan Steinbach, Eftim Popovski + (Fraunhofer ISI) Reviewed by Lukas Kranzl, Sara Fritz (TUW) Hotmaps Project, + D2.3 WP2 Report - Open Data Set for the EU28, 2018 www.hotmaps-project.eu +- **Link:** https://gitlab.com/hotmaps/building-stock +- **License:** CC-BY 4.0 +- **Description:** Contains data on European building stock. + +``data/retro/electricity_taxes_eu.csv`` + +- **Source:** Eurostat +- **Link:** https://ec.europa.eu/eurostat/databrowser/view/NRG_PC_204/default/table?lang=en +- **License:** `custom `__ +- **Description:** Electricity prices for household consumers. + +``data/retro/{floor_area_missing,u_values_poland}.csv`` + +- **Source:** EU Building Stock Observatory +- **Link:** https://data.europa.eu/euodp/de/data/dataset/building-stock-observatory +- **License:** `custom `__ +- **Description:** The EU Building Stock Observatory monitors the energy + performance of buildings across Europe. It assesses improvements in the energy + efficiency of buildings and the impact of this on the actual energy + consumption of the buildings sector overall. + +``data/retro/retro_cost_germany.csv`` + +- **Source:** Institut Wohnen und Umwelt (IWU) +- **Link:** https://www.iwu.de/forschung/handlungslogiken/kosten-energierelevanter-bau-und-anlagenteile-bei-modernisierung/ +- **License:** unknown +- **Description:** Contains thermal envelop costs for retrofitting buildings in + Germany. + +``data/retro/window_assumptions.csv`` + +- **Source:** ifeu, Fraunhofer IEE and Consentec (2018): Building sector + Efficiency: A crucial Component of the Energy Transition. A study commissioned + by Agora Energiewende. +- **Link:** https://www.agora-energiewende.de/en/publications/building-sector-efficiency-a-crucial-component-of-the-energy-transition/ +- **License:** unknown +- **Description:** Contains data on physical parameters of double- and triple-glazed windows. + +``data/transmission_projects/nep`` + +- **Source:** German Federal Network Agency (Bundesnetzagentur, BNetzA) +- **Link:** https://data.netzausbau.de/2037-2023/NEP/NEP_2037_2045_Bestaetigung.pdf +- **License:** unknown +- **Description:** Contains transmission projects in Europe from German network development plan (Netzentwicklungsplan). + +``data/transmission_projects/tyndp2020`` + +- **Source:** ENTSO-E +- **Link:** https://tyndp2020-project-platform.azurewebsites.net/projectsheets +- **License:** unknown +- **Description:** Contains transmission projects in Europe from ENTSO-E Ten Year Network Development Plan (TYNDP). + +``data/ammonia_plants.csv`` + +- **Source:** manually collected, mostly from ICIS +- **Link:** https://www.icis.com/explore/resources/news/2023/01/18/10846094/insight-poor-demand-high-costs-stifle-europe-industry-despite-falling-gas-prices/ +- **License:** CC-BY 4.0 (for compiled dataset) +- **Description:** Locations and production capacities of ammonia plants in Europe. + +``data/attributed_ports.json`` + +- **Source:** World Bank +- **Link:** https://datacatalog.worldbank.org/search/dataset/0038118/Global---International-Ports +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** International ports with attributes describing name, port functions, total capacity and location. + +``data/cement_plants-noneu.csv`` + +- **Source:** manually collected, mostly from USGS +- **Link:** https://www.usgs.gov/centers/national-minerals-information-center/international-minerals-statistics-and-information +- **License:** CC0 (`reference `__) +- **Description:** Contains energy balances for Europe. + +``data/ch_cantons.csv`` + +- **Source:** Wikipedia +- **Link:** https://en.wikipedia.org/wiki/Data_codes_for_Switzerland +- **License:** CC-BY-SA 4.0 +- **Description:** Contains NUTS codes for regions in Switzerland. + +``data/ch_industrial_production_per_subsector.csv`` + +- **Source:** Swiss Federal Office of Energy (SFOE) +- **Link:** https://pubdb.bfe.admin.ch/de/publication/download/11817 +- **License:** `custom `__ +- **Description:** Contains energy consumption in industry and the service sector in Switzerland. + +``data/district_heat_share.csv`` + +- **Source:** Euroheat & Power +- **Link:** https://www.euroheat.org/knowledge-hub/country-profiles +- **License:** unknown +- **Description:** Contains district heating shares for European countries. + +``data/egs_costs.json`` + +- **Source:** Arman Aghahosseini, Christian Breyer, From hot rock to useful + energy: A global estimate of enhanced geothermal systems potential, Applied + Energy, Volume 279, 2020, 115769. +- **Link:** https://doi.org/10.1016/j.apenergy.2020.115769 +- **License:** unknown +- **Description:** Contains rastered potentials and capital costs for enhanced geothermal electricity generation in Europe. + +``data/eia_hydro_annual_capacity.csv`` + +- **Source:** Energy Information Agency (EIA) +- **Link:** https://www.eia.gov/international/data/world/electricity/electricity-generation +- **License:** CC0 (`reference `__) +- **Description:** Contains country-level hydro-electric capacity for Europe by year. + +``data/eia_hydro_annual_generation.csv`` + +- **Source:** Energy Information Agency (EIA) +- **Link:** https://www.eia.gov/international/data/world/electricity/electricity-generation +- **License:** CC0 (`reference `__) +- **Description:** Contains country-level hydro-electric generato for Europe by year. + +``data/era5-annual-HDD-per-country.csv`` + +- **Source:** Neumann, Fabian +- **Link:** https://gist.github.com/fneum/d99e24e19da423038fd55fe3a4ddf875 +- **License:** CC-BY 4.0 +- **Description:** Contains country-level annual sum of heating degree days in + Europe. Used for rescaling heat demand in weather years not covered by energy + balance statistics. + +``data/era5-annual-runoff-per-country.csv`` + +- **Source:** Neumann, Fabian +- **Link:** https://gist.github.com/fneum/d99e24e19da423038fd55fe3a4ddf875 +- **License:** CC-BY 4.0 +- **Description:** Contains country-level annual sum of runoff in Europe. Used + for rescaling hydro-electricity availability in weather years not covered by + EIA hydro-generation statistics. + +``data/gr-e-11.03.02.01.01-cc.csv`` + +- **Source:** Swiss Federal Statistics Office +- **Link:** https://www.bfs.admin.ch/asset/de/30305426 +- **License:** `custom (OPEN BY ASK) `__ +- **Description:** Stock of road motor vehicles in Switzerland. + +``data/heat_load_profile_BDEW.csv`` + +- **Source:** oemof/demandlib +- **Link:** https://github.com/oemof/demandlib +- **License:** unknown +- **Description:** Contains standard heat load profiles based on data from BDEW (German Association of Energy and Water Industries). + +``data/hydro_capacities.csv`` + +.. warning:: + The provenance of the data is unclear. We will improve this in the future. + +``data/links_p_nom.csv`` + +- **Source:** Wikipedia +- **Link:** https://en.wikipedia.org/wiki/List_of_HVDC_projects +- **License:** CC-BY-SA 4.0 +- **Description:** Contains list of HVDC transmission line projects. + +``data/nuclear_p_max_pu.csv`` + +- **Source:** International Atomic Energy Agency (IAEA) +- **Link:** https://pris.iaea.org/PRIS/WorldStatistics/ThreeYrsEnergyAvailabilityFactor.aspx +- **License:** `custom `__ +- **Description:** Country-level nuclear power plant availability factors. + +``data/refineries-noneu.csv`` + +- **Source:** manually collected, mostly from Energy Information Agency (EIA) +- **Link:** https://www.eia.gov/petroleum/refinerycapacity/table3.pdf +- **License:** CC0 (`reference `__) +- **Description:** Contains locations and capacities of oil refineries in Europe. + +``data/switzerland-new_format-all_years.csv`` + +- **Source:** Swiss Federal Office of Energy (SFOE) +- **Link:** https://www.bfe.admin.ch/bfe/de/home/versorgung/statistik-und-geodaten/energiestatistiken/energieverbrauch-nach-verwendungszweck.html/ +- **License:** `custom `__ +- **Description:** Contains energy consumption by sector / application for Switzerland. + +``data/unit_commitment.csv`` + +- **Source:** `DIW + `__, + `Agora Energiewende + `__, + `Schill et al. (2017) + `__, + `Martin (2022) `__ +- **Link:** https://github.com/lisazeyen/hourly_vs_annually/blob/b67ca9222711372d8ab6cd58f9ebe7bc637939bf/scripts/solve_network.py#L554 +- **License:** CC-BY 4.0 +- **Description:** Contains energy balances for Europe. + +``data/biomass_transport_costs_supply_chain{1,2}.csv`` + +- **Source:** European Commission Joint Research Centre (JRC) +- **Link:** https://publications.jrc.ec.europa.eu/repository/handle/JRC98626 +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Contains transport costs for different types of biomass. diff --git a/doc/data-retrieval.rst b/doc/data-retrieval.rst new file mode 100644 index 000000000..7509c8b57 --- /dev/null +++ b/doc/data-retrieval.rst @@ -0,0 +1,221 @@ +.. + SPDX-FileCopyrightText: 2024 The PyPSA-Eur Authors + + SPDX-License-Identifier: CC-BY-4.0 + +######################### +Specific retrieval rules +######################### + +Data in this section is retrieved and extracted in rules specified in ``rules/retrieve.smk``. + +``data/nuts`` + +- **Source:** GISCO +- **Link:** https://gisco-services.ec.europa.eu/distribution/v2/nuts/download/ +- **License:** `custom `__ +- **Description:** Europe's NUTS administrative regions. + +``data/ENSPRESO_BIOMASS.xlsx`` + +- **Source:** European Commission Joint Research Centre (JRC) +- **Link:** https://data.jrc.ec.europa.eu/dataset/74ed5a04-7d74-4807-9eab-b94774309d9f +- **License:** CC-BY 4.0 +- **Description:** Contains biomass potentials for Europe. + +``data/complete_map_2020_unit_Mt.geojson`` + +- **Source:** SETIS +- **Link:** https://setis.ec.europa.eu/european-co2-storage-database_en, processed with https://github.com/ericzhou571/Co2Storage +- **License:** `various `__ +- **Description:** European CO2 storage database CO2StoP. + +``data/myb1-2022-nitro-ert.xlsx`` + +- **Source:** United States Geological Survey (USGS) +- **Link:** https://www.usgs.gov/centers/national-minerals-information-center/nitrogen-statistics-and-information +- **License:** CC0 (`reference `__) +- **Description:** Statistics and information on the worldwide supply of, demand for, and flow of the mineral commodity nitrogen. + +``data/Industrial_Database.csv`` + +- **Source:** Simon Pezzutto, Stefano Zambotti, Silvia Croce, Pietro Zambelli, + Giulia Garegnani, Chiara Scaramuzzino, Ramón Pascual Pascuas, Alyona + Zubaryeva, Franziska Haas, Dagmar Exner (EURAC), Andreas Mueller (e-think), + Michael Hartner (TUW), Tobias Fleiter, Anna-Lena Klingler, Matthias Kuehnbach, + Pia Manz, Simon Marwitz, Matthias Rehfeldt, Jan Steinbach, Eftim Popovski + (Fraunhofer ISI) Reviewed by Lukas Kranzl, Sara Fritz (TUW) + Hotmaps Project, D2.3 WP2 Report - Open Data Set for the EU28, 2018 + https://www.hotmaps-project.eu +- **Link:** https://gitlab.com/hotmaps/industrial_sites/industrial_sites_Industrial_Database +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Contains georeferenced industrial sites of energy-intensive + industry sectors, together with GHG-emissions, production capacity, fuel + demand and excess heat potentials calculated from emission and production + data. + +``data/eurostat/Balances-April2023`` + +- **Source:** Eurostat +- **Link:** https://ec.europa.eu/eurostat/documents/38154/4956218/Balances-April2023.zip +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Contains energy balances for Europe. + +``data/eurostat/eurostat-household_energy_balances-february_2024.csv`` + +- **Source:** Eurostat +- **Link:** https://ec.europa.eu/eurostat/databrowser-backend/api/extraction/1.0/LIVE/false/sdmx/csv/nrg_d_hhq__custom_11480365?startPeriod=2013&endPeriod=2022&i&compressed=true +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Contains household energy balances for Europe. + +``data/jrc-idees-2021`` + +- **Source:** Rózsai, M., Jaxa-Rozen, M., Salvucci, R., Sikora, P., Tattini, J. + and Neuwahl, F., JRC-IDEES-2021: the Integrated Database of the European + Energy System - Data update and technical documentation, Publications Office + of the European Union, Luxembourg, 2024, doi:10.2760/614599, JRC137809. +- **Link:** https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/JRC-IDEES/JRC-IDEES-2021_v1 +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Contains more granular energy balances for Europe. + +``data/gas_network`` + +- **Source:** Jan Diettrich, Adam Pluta, & Wided Medjroubi. (2021). SciGRID_gas + IGGIELGN (1.1.2) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.4767098 +- **Link:** https://zenodo.org/records/4767098 +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Contains gas infrastructure data. + +``data/electricity_demand_raw.csv`` + +- **Source:** Open Power System Data (OPSD) from ENTSO-E Transparency +- **Link:** + https://data.open-power-system-data.org/time_series/2019-06-05/time_series_60min_singleindex.csv + and https://data.open-power-system-data.org/time_series/2020-10-06/time_series_60min_singleindex.csv +- **License:** unknown +- **Description:** Contains country-level electricity demand time series. + +``data/load_synthetic_raw.csv`` + +- **Source:** Frysztacki, M., van der Most, L., & Neumann, F. (2024). + Interannual Electricity Demand Calculator [Data set]. Zenodo. + https://doi.org/10.5281/zenodo.10820928 +- **Link:** https://zenodo.org/records/10820928 +- **License:** CC-BY 4.0 +- **Description:** Contains synthetic country-level electricity demand time series. + +``data/shipdensity_global.zip`` + +- **Source:** World Bank +- **Link:** https://datacatalog.worldbank.org/search/dataset/0037580/Global-Shipping-Traffic-Density +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Global shipping traffic density. + +``data/Copernicus_LC100_global_v3.0.1_2019-nrt_Discrete-Classification-map_EPSG-4326.tif`` + +- **Source:** Marcel Buchhorn, Bruno Smets, Luc Bertels, Bert De Roo, Myroslava + Lesiv, Nandin-Erdene Tsendbazar, Martin Herold, & Steffen Fritz. (2020). + Copernicus Global Land Service: Land Cover 100m: collection 3: epoch 2019: + Globe (V3.0.1) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.3939050 +- **Link:** https://zenodo.org/records/3939050 +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Contains rastered land cover and land use data. + +``data/LUISA_basemap_020321_50m.tif`` + +- **Source:** European Commission Joint Research Centre (JRC) +- **Link:** https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/LUISA/EUROPE/Basemaps/LandUse/2018/LATEST/ +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Contains rastered land cover and land use data. + +``data/eez`` + +- **Source:** Marine Regions +- **Link:** https://www.marineregions.org/download_file.php +- **License:** CC-BY-NC-SA +- **Description:** Contains offshore exclusive economic zones. + +``data/worldbank`` + +- **Source:** World Bank +- **Link:** https://data.worldbank.org/indicator/SP.URB.TOTL.IN.ZS +- **License:** CC-BY 4.0 +- **Description:** Contains share of urban population by country. + +``data/naturalearth`` + +- **Source:** Natural Earth +- **Link:** https://www.naturalearthdata.com/downloads/10m-cultural-vectors/ +- **License:** CC0 (`reference `__) +- **Description:** Country shapes, using point-of-view (POV) variant of Germany so that Crimea is included. + +``data/gem/Europe-Gas-Tracker-2024-05.xlsx`` + +- **Source:** Global Energy Monitor +- **Link:** https://globalenergymonitor.org/projects/global-steel-plant-tracker/ +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** Covers methane gas pipelines, LNG terminals, oil and gas-fired power plants, and methane gas extraction sites. + +``data/gem/Global-Steel-Plant-Tracker-April-2024-Standard-Copy-V1.xlsx`` + +- **Source:** Global Energy Monitor +- **Link:** https://globalenergymonitor.org/projects/global-steel-plant-tracker/ +- **License:** CC-BY 4.0 (`reference `__) +- **Description:** The Global Steel Plant Tracker (GSPT) provides information on + global crude iron and steel production plants, and includes every plant + currently operating with a capacity of five hundred thousand tonnes per year + (ttpa) or more of crude iron or steel. + +``data/WDPA.gpkg`` + +- **Source:** UNEP-WCMC and IUCN (2024), Protected Planet: The World Database on + Protected Areas (WDPA) [Online], September 2024, Cambridge, UK: UNEP-WCMC and + IUCN. Available at: www.protectedplanet.net. +- **Link:** https://www.protectedplanet.net/en/thematic-areas/wdpa +- **License:** `custom `__ +- **Description:** Contains global protected areas. + +``data/WDPA_WDOECM_marine.gpkg`` + +- **Source:** UNEP-WCMC and IUCN (2024), Protected Planet: The World Database on + Protected Areas (WDPA) and World Database on Other Effective Area-based + Conservation Measures (WD-OECM) [Online], September 2024, Cambridge, UK: + UNEP-WCMC and IUCN. Available at: www.protectedplanet.net. +- **Link:** https://www.protectedplanet.net/en/thematic-areas/marine-protected-areas +- **License:** `custom `__ +- **Description:** Contains global protected marine areas. + +``data/osm-raw`` + +- **Source:** OpenStreetMap via Overpass API +- **Link:** https://overpass-api.de/api/interpreter +- **License:** ODbL +- **Description:** Data of high-voltage transmission grid in Europe from OpenStreetMap. + +``cutouts`` + +- **Source:** `ERA5 + `__ + and `SARAH-3 `__ +- **Link:** https://zenodo.org/records/12791128 +- **License:** CC-BY 4.0 +- **Description:** Contains weather data cutouts for Europe to read in with ``atlite``. + +``resources/costs_{year}.csv`` + +- **Source:** various, mostly compiled from Danish Energy Agency (DEA) + `Technology Catalogues + `__. +- **Link:** https://github.com/PyPSA/technology-data +- **License:** GPL-3.0 +- **Description:** Contains technology data for different years such as costs, efficiencies, and lifetimes. + +``resources/powerplants.csv`` + +- **Source:** F. Gotzens, H. Heinrichs, J. Hörsch, and F. Hofmann, Performing + energy modelling exercises in a transparent way - The issue of data quality in + power plant databases, Energy Strategy Reviews, vol. 23, pp. 1-12, Jan. 2019. + https://doi.org/10.1016/j.esr.2018.11.004 +- **Link:** https://github.com/PyPSA/powerplantmatching +- **License:** GPL-3.0 +- **Description:** Contains matched dataset of powerplants in Europe. diff --git a/doc/data_sources.rst b/doc/data_sources.rst index f11714db0..7840c6c58 100644 --- a/doc/data_sources.rst +++ b/doc/data_sources.rst @@ -3,577 +3,18 @@ SPDX-License-Identifier: CC-BY-4.0 -########################################## +############# Data Sources -########################################## +############# PyPSA-Eur is combiled from a variety of data sources. The following table provides an overview of the data sources used in PyPSA-Eur. Different licenses apply to the data sources. -Zenodo data bundle -======================= +.. toctree:: + :maxdepth: 1 -Data in this section is downloaded and extracted from the Zenodo data bundle -(https://zenodo.org/records/12760663). Files included in the data bundle are too -large to be placed directly in the repository, have been reduced in spatial -scope to reduce file size, or are not provided through stable URLs elsewhere. - -``data/bundle/je-e-21.03.02.xls`` - -- **Source:** Swiss Federal Statistics Office -- **Link:** https://www.bfs.admin.ch/bfs/en/home/news/whats-new.assetdetail.7786557.html#context-sidebar -- **License:** `custom (OPEN BY ASK) `__ -- **Description:** Population and GDP data for Swiss Cantons. - -``data/bundle/NUTS_2013_60M_SH`` - -- **Source:** GISCO -- **Link:** https://gisco-services.ec.europa.eu/distribution/v2/nuts/download/ -- **License:** `custom `__ -- **Description:** Europe's NUTS administrative regions. - -``data/bundle/nama_10r_3popgdp.tsv.gz`` - -- **Source:** Eurostat -- **Link:** https://ec.europa.eu/eurostat/databrowser/view/NAMA_10R_3POPGDP/default/table?lang=en -- **License:** `custom `__ -- **Description:** Average annual population to calculate regional GDP data (thousand persons) by NUTS 3 regions. - -``data/bundle/nama_10r_3gdp.tsv.gz`` - -- **Source:** Eurostat -- **Link:** https://ec.europa.eu/eurostat/databrowser/view/nama_10r_3gdp/default/table?lang=en -- **License:** `custom `__ -- **Description:** Gross domestic product (GDP) at current market prices by NUTS 3 regions. - -``data/bundle/corine`` - -- **Source:** European Environment Agency (EEA) -- **Link:** https://sdi.eea.europa.eu/catalogue/copernicus/api/records/a84ae124-c5c5-4577-8e10-511bfe55cc0d -- **License:** `custom `__ -- **Description:** CORINE Land Cover (CLC) database. - -``data/bundle/eea`` - -- **Source:** European Environment Agency (EEA) -- **Link:** https://www.eea.europa.eu/en/datahub/datahubitem-view/3b7fe76c-524a-439a-bfd2-a6e4046302a2 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Total GHG emissions and removals in the EU. - -``data/bundle/emobility`` - -- **Source:** German Federal Highway Research Institute (BASt) -- **Link:** https://www.bast.de/DE/Verkehrstechnik/Fachthemen/v2-verkehrszaehlung/zaehl_node.html -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains data from permanent automatic counting stations on highways and federal roads in Germany. - -``data/bundle/h2_salt_caverns_GWh_per_sqkm.geojson`` - -- **Source:** Dilara Gulcin Caglayan, Nikolaus Weber, Heidi U. Heinrichs, Jochen - Linßen, Martin Robinius, Peter A. Kukla, Detlef Stolten, Technical potential - of salt caverns for hydrogen storage in Europe, International Journal of - Hydrogen Energy, Volume 45, Issue 11, 2020, Pages 6793-6805. -- **Link:** https://doi.org/10.1016/j.ijhydene.2019.12.161 -- **License:** CC-BY 4.0 -- **Description:** Contains geological hydrogen storage potentials for Europe. - -``data/bundle/natura`` - -- **Source:** European Environment Agency (EEA) -- **Link:** https://www.eea.europa.eu/en/datahub/datahubitem-view/6fc8ad2d-195d-40f4-bdec-576e7d1268e4 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Natura 2000 natural protection areas. - -``data/bundle/gebco`` - -- **Source:** GEBCO -- **Link:** https://www.gebco.net/data_and_products/gridded_bathymetry_data/version_20141103/ -- **License:** CC0 (`reference `__) -- **Description:** Bathymetric dataset (2014 version). - -``data/bundle/GDP_per_capita_PPP_1990_2015_v2.nc`` - -- **Source:** Kummu, M., Taka, M. & Guillaume, J. Gridded global datasets for - Gross Domestic Product and Human Development Index over 1990-2015. Sci Data 5, - 180004 (2018). https://doi.org/10.1038/sdata.2018.4 -- **Link:** https://datadryad.org/stash/dataset/doi:10.5061/dryad.dk1j0 -- **License:** CC0 (`reference `__) -- **Description:** Gridded GDP data. - -``data/bundle/ppp_2013_1km_Aggregated.tif`` - -- **Source:** WorldPop (www.worldpop.org - School of Geography and Environmental - Science, University of Southampton; Department of Geography and Geosciences, - University of Louisville; Departement de Geographie, Universite de Namur) and - Center for International Earth Science Information Network (CIESIN), Columbia - University (2018). Global High Resolution Population Denominators Project - - Funded by The Bill and Melinda Gates Foundation (OPP1134076). - https://dx.doi.org/10.5258/SOTON/WP00647 -- **Link:** https://hub.worldpop.org/doi/10.5258/SOTON/WP00647 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Gridded population data. - - -Specific retrieval rules -======================== - -Data in this section is retrieved and extracted in rules specified in ``rules/retrieve.smk``. - -``data/nuts`` - -- **Source:** GISCO -- **Link:** https://gisco-services.ec.europa.eu/distribution/v2/nuts/download/ -- **License:** `custom `__ -- **Description:** Europe's NUTS administrative regions. - -``data/ENSPRESO_BIOMASS.xlsx`` - -- **Source:** European Commission Joint Research Centre (JRC) -- **Link:** https://data.jrc.ec.europa.eu/dataset/74ed5a04-7d74-4807-9eab-b94774309d9f -- **License:** CC-BY 4.0 -- **Description:** Contains biomass potentials for Europe. - -``data/complete_map_2020_unit_Mt.geojson`` - -- **Source:** SETIS -- **Link:** https://setis.ec.europa.eu/european-co2-storage-database_en, processed with https://github.com/ericzhou571/Co2Storage -- **License:** `various `__ -- **Description:** European CO2 storage database CO2StoP. - -``data/myb1-2022-nitro-ert.xlsx`` - -- **Source:** United States Geological Survey (USGS) -- **Link:** https://www.usgs.gov/centers/national-minerals-information-center/nitrogen-statistics-and-information -- **License:** CC0 (`reference `__) -- **Description:** Statistics and information on the worldwide supply of, demand for, and flow of the mineral commodity nitrogen. - -``data/Industrial_Database.csv`` - -- **Source:** Simon Pezzutto, Stefano Zambotti, Silvia Croce, Pietro Zambelli, - Giulia Garegnani, Chiara Scaramuzzino, Ramón Pascual Pascuas, Alyona - Zubaryeva, Franziska Haas, Dagmar Exner (EURAC), Andreas Mueller (e-think), - Michael Hartner (TUW), Tobias Fleiter, Anna-Lena Klingler, Matthias Kuehnbach, - Pia Manz, Simon Marwitz, Matthias Rehfeldt, Jan Steinbach, Eftim Popovski - (Fraunhofer ISI) Reviewed by Lukas Kranzl, Sara Fritz (TUW) - Hotmaps Project, D2.3 WP2 Report - Open Data Set for the EU28, 2018 - https://www.hotmaps-project.eu -- **Link:** https://gitlab.com/hotmaps/industrial_sites/industrial_sites_Industrial_Database -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains georeferenced industrial sites of energy-intensive - industry sectors, together with GHG-emissions, production capacity, fuel - demand and excess heat potentials calculated from emission and production - data. - -``data/eurostat/Balances-April2023`` - -- **Source:** Eurostat -- **Link:** https://ec.europa.eu/eurostat/documents/38154/4956218/Balances-April2023.zip -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains energy balances for Europe. - -``data/eurostat/eurostat-household_energy_balances-february_2024.csv`` - -- **Source:** Eurostat -- **Link:** https://ec.europa.eu/eurostat/databrowser-backend/api/extraction/1.0/LIVE/false/sdmx/csv/nrg_d_hhq__custom_11480365?startPeriod=2013&endPeriod=2022&i&compressed=true -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains household energy balances for Europe. - -``data/jrc-idees-2021`` - -- **Source:** Rózsai, M., Jaxa-Rozen, M., Salvucci, R., Sikora, P., Tattini, J. - and Neuwahl, F., JRC-IDEES-2021: the Integrated Database of the European - Energy System - Data update and technical documentation, Publications Office - of the European Union, Luxembourg, 2024, doi:10.2760/614599, JRC137809. -- **Link:** https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/JRC-IDEES/JRC-IDEES-2021_v1 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains more granular energy balances for Europe. - -``data/gas_network`` - -- **Source:** Jan Diettrich, Adam Pluta, & Wided Medjroubi. (2021). SciGRID_gas - IGGIELGN (1.1.2) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.4767098 -- **Link:** https://zenodo.org/records/4767098 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains gas infrastructure data. - -``data/electricity_demand_raw.csv`` - -- **Source:** Open Power System Data (OPSD) from ENTSO-E Transparency -- **Link:** - https://data.open-power-system-data.org/time_series/2019-06-05/time_series_60min_singleindex.csv - and https://data.open-power-system-data.org/time_series/2020-10-06/time_series_60min_singleindex.csv -- **License:** unknown -- **Description:** Contains country-level electricity demand time series. - -``data/load_synthetic_raw.csv`` - -- **Source:** Frysztacki, M., van der Most, L., & Neumann, F. (2024). - Interannual Electricity Demand Calculator [Data set]. Zenodo. - https://doi.org/10.5281/zenodo.10820928 -- **Link:** https://zenodo.org/records/10820928 -- **License:** CC-BY 4.0 -- **Description:** Contains synthetic country-level electricity demand time series. - -``data/shipdensity_global.zip`` - -- **Source:** World Bank -- **Link:** https://datacatalog.worldbank.org/search/dataset/0037580/Global-Shipping-Traffic-Density -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Global shipping traffic density. - -``data/Copernicus_LC100_global_v3.0.1_2019-nrt_Discrete-Classification-map_EPSG-4326.tif`` - -- **Source:** Marcel Buchhorn, Bruno Smets, Luc Bertels, Bert De Roo, Myroslava - Lesiv, Nandin-Erdene Tsendbazar, Martin Herold, & Steffen Fritz. (2020). - Copernicus Global Land Service: Land Cover 100m: collection 3: epoch 2019: - Globe (V3.0.1) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.3939050 -- **Link:** https://zenodo.org/records/3939050 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains rastered land cover and land use data. - -``data/LUISA_basemap_020321_50m.tif`` - -- **Source:** European Commission Joint Research Centre (JRC) -- **Link:** https://jeodpp.jrc.ec.europa.eu/ftp/jrc-opendata/LUISA/EUROPE/Basemaps/LandUse/2018/LATEST/ -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains rastered land cover and land use data. - -``data/eez`` - -- **Source:** Marine Regions -- **Link:** https://www.marineregions.org/download_file.php -- **License:** CC-BY-NC-SA -- **Description:** Contains offshore exclusive economic zones. - -``data/worldbank`` - -- **Source:** World Bank -- **Link:** https://data.worldbank.org/indicator/SP.URB.TOTL.IN.ZS -- **License:** CC-BY 4.0 -- **Description:** Contains share of urban population by country. - -``data/naturalearth`` - -- **Source:** Natural Earth -- **Link:** https://www.naturalearthdata.com/downloads/10m-cultural-vectors/ -- **License:** CC0 (`reference `__) -- **Description:** Country shapes, using point-of-view (POV) variant of Germany so that Crimea is included. - -``data/gem/Europe-Gas-Tracker-2024-05.xlsx`` - -- **Source:** Global Energy Monitor -- **Link:** https://globalenergymonitor.org/projects/global-steel-plant-tracker/ -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Covers methane gas pipelines, LNG terminals, oil and gas-fired power plants, and methane gas extraction sites. - -``data/gem/Global-Steel-Plant-Tracker-April-2024-Standard-Copy-V1.xlsx`` - -- **Source:** Global Energy Monitor -- **Link:** https://globalenergymonitor.org/projects/global-steel-plant-tracker/ -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** The Global Steel Plant Tracker (GSPT) provides information on - global crude iron and steel production plants, and includes every plant - currently operating with a capacity of five hundred thousand tonnes per year - (ttpa) or more of crude iron or steel. - -``data/WDPA.gpkg`` - -- **Source:** UNEP-WCMC and IUCN (2024), Protected Planet: The World Database on - Protected Areas (WDPA) [Online], September 2024, Cambridge, UK: UNEP-WCMC and - IUCN. Available at: www.protectedplanet.net. -- **Link:** https://www.protectedplanet.net/en/thematic-areas/wdpa -- **License:** `custom `__ -- **Description:** Contains global protected areas. - -``data/WDPA_WDOECM_marine.gpkg`` - -- **Source:** UNEP-WCMC and IUCN (2024), Protected Planet: The World Database on - Protected Areas (WDPA) and World Database on Other Effective Area-based - Conservation Measures (WD-OECM) [Online], September 2024, Cambridge, UK: - UNEP-WCMC and IUCN. Available at: www.protectedplanet.net. -- **Link:** https://www.protectedplanet.net/en/thematic-areas/marine-protected-areas -- **License:** `custom `__ -- **Description:** Contains global protected marine areas. - -``data/osm-prebuilt`` - -- **Source:** OpenStreetMap; Xiong, B., Neumann, F., & Brown, T. (2024). - Prebuilt Electricity Network for PyPSA-Eur based on OpenStreetMap Data (0.5) - [Data set]. Zenodo. https://doi.org/10.5281/zenodo.13981528 -- **Link:** https://zenodo.org/records/13981528 -- **License:** ODbL (`reference `) -- **Description:** Pre-built data of high-voltage transmission grid in Europe from OpenStreetMap. - -``data/osm-raw`` - -- **Source:** OpenStreetMap via Overpass API -- **Link:** https://overpass-api.de/api/interpreter -- **License:** ODbL -- **Description:** Data of high-voltage transmission grid in Europe from OpenStreetMap. - -``cutouts`` - -- **Source:** `ERA5 - `__ - and `SARAH-3 `__ -- **Link:** https://zenodo.org/records/12791128 -- **License:** CC-BY 4.0 -- **Description:** Contains weather data cutouts for Europe to read in with ``atlite``. - -``resources/costs_{year}.csv`` - -- **Source:** various, mostly compiled from Danish Energy Agency (DEA) - `Technology Catalogues - `__. -- **Link:** https://github.com/PyPSA/technology-data -- **License:** GPL-3.0 -- **Description:** Contains technology data for different years such as costs, efficiencies, and lifetimes. - -``resources/powerplants.csv`` - -- **Source:** F. Gotzens, H. Heinrichs, J. Hörsch, and F. Hofmann, Performing - energy modelling exercises in a transparent way - The issue of data quality in - power plant databases, Energy Strategy Reviews, vol. 23, pp. 1-12, Jan. 2019. - https://doi.org/10.1016/j.esr.2018.11.004 -- **Link:** https://github.com/PyPSA/powerplantmatching -- **License:** GPL-3.0 -- **Description:** Contains matched dataset of powerplants in Europe. - - -Repository -========== - -Data in this section is included in the PyPSA-Eur repository in the ``data`` folder. - -``data/entsoegridkit`` - -- **Source:** ENTSO-E -- **Link:** https://www.entsoe.eu/data/map/, extracted with https://github.com/PyPSA/GridKit/tree/master/entsoe -- **License:** unknown -- **Description:** Data of high-voltage transmission grid in Europe from ENTSO-E. - -``data/existing_infrastructure`` - -- **Source:** European Commission DG ENER; Mapping and analyses of the current and future (2020 - 2030) heating/cooling fuel deployment -- **Link:** https://energy.ec.europa.eu/publications/mapping-and-analyses-current-and-future-2020-2030-heatingcooling-fuel-deployment-fossilrenewables-1_en -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains country-level data on existing heating infrastructure, i.e. gas, oil, coal boilers, resistive heaters, air- and ground-sourced heat pumps. - -``data/retro/comparative_level_investment.csv`` - -- **Source:** Eurostat -- **Link:** https://ec.europa.eu/eurostat/statistics-explained/index.php?title=Comparative_price_levels_for_investment -- **License:** `custom `__ -- **Description:** Contains data on comparative price levels for investment in Europe. - -``data/retro/data_building_stock.csv`` - -- **Source:** Simon Pezzutto, Stefano Zambotti, Silvia Croce, Pietro Zambelli, - Giulia Garegnani, Chiara Scaramuzzino, Ramón Pascual Pascuas, Alyona - Zubaryeva, Franziska Haas, Dagmar Exner (EURAC), Andreas Müller (e-think), - Michael Hartner (TUW), Tobias Fleiter, Anna-Lena Klingler, Matthias Kühnbach, - Pia Manz, Simon Marwitz, Matthias Rehfeldt, Jan Steinbach, Eftim Popovski - (Fraunhofer ISI) Reviewed by Lukas Kranzl, Sara Fritz (TUW) Hotmaps Project, - D2.3 WP2 Report - Open Data Set for the EU28, 2018 www.hotmaps-project.eu -- **Link:** https://gitlab.com/hotmaps/building-stock -- **License:** CC-BY 4.0 -- **Description:** Contains data on European building stock. - -``data/retro/electricity_taxes_eu.csv`` - -- **Source:** Eurostat -- **Link:** https://ec.europa.eu/eurostat/databrowser/view/NRG_PC_204/default/table?lang=en -- **License:** `custom `__ -- **Description:** Electricity prices for household consumers. - -``data/retro/{floor_area_missing,u_values_poland}.csv`` - -- **Source:** EU Building Stock Observatory -- **Link:** https://data.europa.eu/euodp/de/data/dataset/building-stock-observatory -- **License:** `custom `__ -- **Description:** The EU Building Stock Observatory monitors the energy - performance of buildings across Europe. It assesses improvements in the energy - efficiency of buildings and the impact of this on the actual energy - consumption of the buildings sector overall. - -``data/retro/retro_cost_germany.csv`` - -- **Source:** Institut Wohnen und Umwelt (IWU) -- **Link:** https://www.iwu.de/forschung/handlungslogiken/kosten-energierelevanter-bau-und-anlagenteile-bei-modernisierung/ -- **License:** unknown -- **Description:** Contains thermal envelop costs for retrofitting buildings in - Germany. - -``data/retro/window_assumptions.csv`` - -- **Source:** ifeu, Fraunhofer IEE and Consentec (2018): Building sector - Efficiency: A crucial Component of the Energy Transition. A study commissioned - by Agora Energiewende. -- **Link:** https://www.agora-energiewende.de/en/publications/building-sector-efficiency-a-crucial-component-of-the-energy-transition/ -- **License:** unknown -- **Description:** Contains data on physical parameters of double- and triple-glazed windows. - -``data/transmission_projects/nep`` - -- **Source:** German Federal Network Agency (Bundesnetzagentur, BNetzA) -- **Link:** https://data.netzausbau.de/2037-2023/NEP/NEP_2037_2045_Bestaetigung.pdf -- **License:** unknown -- **Description:** Contains transmission projects in Europe from German network development plan (Netzentwicklungsplan). - -``data/transmission_projects/tyndp2020`` - -- **Source:** ENTSO-E -- **Link:** https://tyndp2020-project-platform.azurewebsites.net/projectsheets -- **License:** unknown -- **Description:** Contains transmission projects in Europe from ENTSO-E Ten Year Network Development Plan (TYNDP). - -``data/ammonia_plants.csv`` - -- **Source:** manually collected, mostly from ICIS -- **Link:** https://www.icis.com/explore/resources/news/2023/01/18/10846094/insight-poor-demand-high-costs-stifle-europe-industry-despite-falling-gas-prices/ -- **License:** CC-BY 4.0 (for compiled dataset) -- **Description:** Locations and production capacities of ammonia plants in Europe. - -``data/attributed_ports.json`` - -- **Source:** World Bank -- **Link:** https://datacatalog.worldbank.org/search/dataset/0038118/Global---International-Ports -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** International ports with attributes describing name, port functions, total capacity and location. - -``data/cement_plants-noneu.csv`` - -- **Source:** manually collected, mostly from USGS -- **Link:** https://www.usgs.gov/centers/national-minerals-information-center/international-minerals-statistics-and-information -- **License:** CC0 (`reference `__) -- **Description:** Contains energy balances for Europe. - -``data/ch_cantons.csv`` - -- **Source:** Wikipedia -- **Link:** https://en.wikipedia.org/wiki/Data_codes_for_Switzerland -- **License:** CC-BY-SA 4.0 -- **Description:** Contains NUTS codes for regions in Switzerland. - -``data/ch_industrial_production_per_subsector.csv`` - -- **Source:** Swiss Federal Office of Energy (SFOE) -- **Link:** https://pubdb.bfe.admin.ch/de/publication/download/11817 -- **License:** `custom `__ -- **Description:** Contains energy consumption in industry and the service sector in Switzerland. - -``data/district_heat_share.csv`` - -- **Source:** Euroheat & Power -- **Link:** https://www.euroheat.org/knowledge-hub/country-profiles -- **License:** unknown -- **Description:** Contains district heating shares for European countries. - -``data/egs_costs.json`` - -- **Source:** Arman Aghahosseini, Christian Breyer, From hot rock to useful - energy: A global estimate of enhanced geothermal systems potential, Applied - Energy, Volume 279, 2020, 115769. -- **Link:** https://doi.org/10.1016/j.apenergy.2020.115769 -- **License:** unknown -- **Description:** Contains rastered potentials and capital costs for enhanced geothermal electricity generation in Europe. - -``data/eia_hydro_annual_capacity.csv`` - -- **Source:** Energy Information Agency (EIA) -- **Link:** https://www.eia.gov/international/data/world/electricity/electricity-generation -- **License:** CC0 (`reference `__) -- **Description:** Contains country-level hydro-electric capacity for Europe by year. - -``data/eia_hydro_annual_generation.csv`` - -- **Source:** Energy Information Agency (EIA) -- **Link:** https://www.eia.gov/international/data/world/electricity/electricity-generation -- **License:** CC0 (`reference `__) -- **Description:** Contains country-level hydro-electric generato for Europe by year. - -``data/era5-annual-HDD-per-country.csv`` - -- **Source:** Neumann, Fabian -- **Link:** https://gist.github.com/fneum/d99e24e19da423038fd55fe3a4ddf875 -- **License:** CC-BY 4.0 -- **Description:** Contains country-level annual sum of heating degree days in - Europe. Used for rescaling heat demand in weather years not covered by energy - balance statistics. - -``data/era5-annual-runoff-per-country.csv`` - -- **Source:** Neumann, Fabian -- **Link:** https://gist.github.com/fneum/d99e24e19da423038fd55fe3a4ddf875 -- **License:** CC-BY 4.0 -- **Description:** Contains country-level annual sum of runoff in Europe. Used - for rescaling hydro-electricity availability in weather years not covered by - EIA hydro-generation statistics. - -``data/gr-e-11.03.02.01.01-cc.csv`` - -- **Source:** Swiss Federal Statistics Office -- **Link:** https://www.bfs.admin.ch/asset/de/30305426 -- **License:** `custom (OPEN BY ASK) `__ -- **Description:** Stock of road motor vehicles in Switzerland. - -``data/heat_load_profile_BDEW.csv`` - -- **Source:** oemof/demandlib -- **Link:** https://github.com/oemof/demandlib -- **License:** unknown -- **Description:** Contains standard heat load profiles based on data from BDEW (German Association of Energy and Water Industries). - -``data/hydro_capacities.csv`` - -.. warning:: - The provenance of the data is unclear. We will improve this in the future. - -``data/links_p_nom.csv`` - -- **Source:** Wikipedia -- **Link:** https://en.wikipedia.org/wiki/List_of_HVDC_projects -- **License:** CC-BY-SA 4.0 -- **Description:** Contains list of HVDC transmission line projects. - -``data/nuclear_p_max_pu.csv`` - -- **Source:** International Atomic Energy Agency (IAEA) -- **Link:** https://pris.iaea.org/PRIS/WorldStatistics/ThreeYrsEnergyAvailabilityFactor.aspx -- **License:** `custom `__ -- **Description:** Country-level nuclear power plant availability factors. - -``data/refineries-noneu.csv`` - -- **Source:** manually collected, mostly from Energy Information Agency (EIA) -- **Link:** https://www.eia.gov/petroleum/refinerycapacity/table3.pdf -- **License:** CC0 (`reference `__) -- **Description:** Contains locations and capacities of oil refineries in Europe. - -``data/switzerland-new_format-all_years.csv`` - -- **Source:** Swiss Federal Office of Energy (SFOE) -- **Link:** https://www.bfe.admin.ch/bfe/de/home/versorgung/statistik-und-geodaten/energiestatistiken/energieverbrauch-nach-verwendungszweck.html/ -- **License:** `custom `__ -- **Description:** Contains energy consumption by sector / application for Switzerland. - -``data/unit_commitment.csv`` - -- **Source:** `DIW - `__, - `Agora Energiewende - `__, - `Schill et al. (2017) - `__, - `Martin (2022) `__ -- **Link:** https://github.com/lisazeyen/hourly_vs_annually/blob/b67ca9222711372d8ab6cd58f9ebe7bc637939bf/scripts/solve_network.py#L554 -- **License:** CC-BY 4.0 -- **Description:** Contains energy balances for Europe. - -``data/biomass_transport_costs_supply_chain{1,2}.csv`` - -- **Source:** European Commission Joint Research Centre (JRC) -- **Link:** https://publications.jrc.ec.europa.eu/repository/handle/JRC98626 -- **License:** CC-BY 4.0 (`reference `__) -- **Description:** Contains transport costs for different types of biomass. + ../data-base-network + ../data-bundle + ../data-retrieval + ../data-repos diff --git a/doc/index.rst b/doc/index.rst index a07c1e8ca..47725f444 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -219,7 +219,7 @@ The PyPSA-Eur workflow is continuously tested for Linux, macOS and Windows (WSL .. toctree:: :hidden: - :maxdepth: 1 + :maxdepth: 2 :caption: Getting Started introduction @@ -229,7 +229,7 @@ The PyPSA-Eur workflow is continuously tested for Linux, macOS and Windows (WSL .. toctree:: :hidden: - :maxdepth: 1 + :maxdepth: 2 :caption: Configuration wildcards @@ -239,7 +239,7 @@ The PyPSA-Eur workflow is continuously tested for Linux, macOS and Windows (WSL .. toctree:: :hidden: - :maxdepth: 1 + :maxdepth: 2 :caption: Rules Overview retrieve @@ -251,7 +251,7 @@ The PyPSA-Eur workflow is continuously tested for Linux, macOS and Windows (WSL .. toctree:: :hidden: - :maxdepth: 1 + :maxdepth: 2 :caption: Implementation details for sector-coupled systems spatial_resolution @@ -259,7 +259,7 @@ The PyPSA-Eur workflow is continuously tested for Linux, macOS and Windows (WSL .. toctree:: :hidden: - :maxdepth: 1 + :maxdepth: 2 :caption: References release_notes diff --git a/doc/release_notes.rst b/doc/release_notes.rst index f9fb8ccf0..c62580266 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -103,6 +103,8 @@ Upcoming Release * Updated osm-prebuilt base network to version 0.5, for changelog, see https://zenodo.org/records/13981528 +* Bugfix: vehicle-to-grid dispatch capacity is now limited by the fraction of vehicles participating in demand-side-management, halving the dispatch capacity under the default demand-side management participation rate of 0.5. + PyPSA-Eur 0.13.0 (13th September 2024) ====================================== diff --git a/doc/requirements.txt b/doc/requirements.txt index dca414fcb..d93c119ee 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -15,6 +15,9 @@ dask[distributed] matplotlib>3.5.1,<3.6 tabula-py +# HTML map retrieval +requests + # cartopy scikit-learn pyyaml diff --git a/envs/environment.yaml b/envs/environment.yaml index 2ff44ece7..da1cc5685 100644 --- a/envs/environment.yaml +++ b/envs/environment.yaml @@ -19,7 +19,7 @@ dependencies: # Dependencies of the workflow itself - dask - xlrd -- openpyxl!=3.1.1 +- openpyxl - seaborn - snakemake-minimal>=8.14 - memory_profiler @@ -37,6 +37,7 @@ dependencies: - glpk - shapely>=2.0 - pyscipopt +- scip!=9.2.0 # dependency of pyscipopt, temporary fix - matplotlib - proj - fiona @@ -56,11 +57,11 @@ dependencies: # GIS dependencies: - cartopy - descartes -- rasterio<1.4 +- rasterio - pip: - gurobipy - - highspy!=1.8.0 # No conda channel for arm macos + - highspy<1.8 - tsam>=2.3.1 - snakemake-storage-plugin-http - snakemake-executor-plugin-slurm diff --git a/envs/linux-pinned.yaml b/envs/linux-pinned.yaml index 9d3e054a7..65951c72e 100644 --- a/envs/linux-pinned.yaml +++ b/envs/linux-pinned.yaml @@ -12,7 +12,7 @@ dependencies: - _libgcc_mutex=0.1 - _openmp_mutex=4.5 - affine=2.4.0 -- alsa-lib=1.2.12 +- alsa-lib=1.2.13 - ampl-mp=3.1.0 - amply=0.1.6 - appdirs=1.4.4 @@ -23,17 +23,17 @@ dependencies: - attrs=24.2.0 - aws-c-auth=0.8.0 - aws-c-cal=0.8.0 -- aws-c-common=0.10.0 +- aws-c-common=0.10.3 - aws-c-compression=0.3.0 - aws-c-event-stream=0.5.0 -- aws-c-http=0.9.0 -- aws-c-io=0.15.1 +- aws-c-http=0.9.1 +- aws-c-io=0.15.2 - aws-c-mqtt=0.11.0 -- aws-c-s3=0.7.0 +- aws-c-s3=0.7.1 - aws-c-sdkutils=0.2.1 -- aws-checksums=0.2.0 -- aws-crt-cpp=0.29.3 -- aws-sdk-cpp=1.11.407 +- aws-checksums=0.2.2 +- aws-crt-cpp=0.29.4 +- aws-sdk-cpp=1.11.449 - azure-core-cpp=1.14.0 - azure-identity-cpp=1.10.0 - azure-storage-blobs-cpp=12.13.0 @@ -51,8 +51,9 @@ dependencies: - c-ares=1.34.3 - c-blosc2=2.15.1 - ca-certificates=2024.8.30 -- cads-api-client=1.5.2 +- cads-api-client=1.5.4 - cairo=1.18.0 +- capnproto=1.0.2 - cartopy=0.24.0 - cdsapi=0.7.4 - certifi=2024.8.30 @@ -75,22 +76,22 @@ dependencies: - conda-inject=1.3.2 - configargparse=1.7 - connection_pool=0.0.3 -- contourpy=1.3.0 +- contourpy=1.3.1 - country_converter=1.2 - cppad=20240000.7 - cycler=0.12.1 - cyrus-sasl=2.1.27 - cytoolz=1.0.0 -- dask=2024.11.0 -- dask-core=2024.11.0 -- dask-expr=1.1.17 +- dask=2024.11.2 +- dask-core=2024.11.2 +- dask-expr=1.1.19 - datrie=0.8.2 - dbus=1.13.6 - decorator=5.1.1 - deprecation=2.1.0 - descartes=1.1.0 - distlib=0.3.9 -- distributed=2024.11.0 +- distributed=2024.11.2 - docutils=0.21.2 - double-conversion=3.3.0 - dpath=2.2.0 @@ -110,7 +111,7 @@ dependencies: - fontconfig=2.15.0 - fonts-conda-ecosystem=1 - fonts-conda-forge=1 -- fonttools=4.54.1 +- fonttools=4.55.0 - freetype=2.12.1 - freexl=2.0.0 - fribidi=1.0.10 @@ -148,12 +149,11 @@ dependencies: - idna=3.10 - immutables=0.21 - importlib-metadata=8.5.0 -- importlib_metadata=8.5.0 - importlib_resources=6.4.5 - iniconfig=2.0.0 - ipopt=3.14.16 - ipython=8.29.0 -- jedi=0.19.1 +- jedi=0.19.2 - jinja2=3.1.4 - joblib=1.4.2 - jpype1=1.5.0 @@ -218,8 +218,8 @@ dependencies: - libglvnd=1.7.0 - libglx=1.7.0 - libgomp=14.2.0 -- libgoogle-cloud=2.30.0 -- libgoogle-cloud-storage=2.30.0 +- libgoogle-cloud=2.31.0 +- libgoogle-cloud-storage=2.31.0 - libgrpc=1.67.1 - libhwloc=2.11.2 - libiconv=1.17 @@ -237,7 +237,7 @@ dependencies: - libparquet=18.0.0 - libpciaccess=0.18 - libpng=1.6.44 -- libpq=17.0 +- libpq=17.1 - libprotobuf=5.28.2 - libre2-11=2024.07.02 - librsvg=2.58.4 @@ -257,11 +257,11 @@ dependencies: - libxcb=1.17.0 - libxcrypt=4.4.36 - libxkbcommon=1.7.0 -- libxml2=2.13.4 +- libxml2=2.13.5 - libxslt=1.1.39 - libzip=1.11.2 - libzlib=1.3.1 -- linopy=0.4.0 +- linopy=0.4.1 - locket=1.0.0 - lxml=5.3.0 - lz4=4.3.3 @@ -277,7 +277,7 @@ dependencies: - minizip=4.0.7 - mpfr=4.2.1 - msgpack-python=1.1.0 -- multiurl=0.3.2 +- multiurl=0.3.3 - mumps-include=5.7.3 - mumps-seq=5.7.3 - munkres=1.1.4 @@ -296,14 +296,14 @@ dependencies: - openjpeg=2.5.2 - openldap=2.6.8 - openpyxl=3.1.5 -- openssl=3.3.2 -- orc=2.0.2 -- packaging=24.1 +- openssl=3.4.0 +- orc=2.0.3 +- packaging=24.2 - pandas=2.2.3 - pango=1.54.0 - parso=0.8.4 - partd=1.4.2 -- patsy=0.5.6 +- patsy=1.0.1 - pcre2=10.44 - pexpect=4.9.0 - pickleshare=0.7.5 @@ -317,7 +317,7 @@ dependencies: - polars=1.12.0 - poppler=24.08.0 - poppler-data=0.4.12 -- postgresql=17.0 +- postgresql=17.1 - powerplantmatching=0.5.19 - pre-commit=4.0.1 - progressbar2=4.5.0 @@ -338,14 +338,14 @@ dependencies: - pyparsing=3.2.0 - pyproj=3.7.0 - pypsa=0.31.1 -- pyscipopt=5.1.1 +- pyscipopt=5.2.1 - pyshp=2.3.1 - pyside6=6.8.0.2 - pysocks=1.7.1 - pytables=3.10.1 - pytest=8.3.3 - python=3.12.7 -- python-dateutil=2.9.0 +- python-dateutil=2.9.0.post0 - python-fastjsonschema=2.20.0 - python-tzdata=2024.2 - python-utils=3.9.0 @@ -355,7 +355,7 @@ dependencies: - pyyaml=6.0.2 - qhull=2020.2 - qt6-main=6.8.0 -- rasterio=1.3.11 +- rasterio=1.4.2 - re2=2024.07.02 - readline=8.2 - referencing=0.35.1 @@ -363,13 +363,13 @@ dependencies: - reretry=0.11.8 - rioxarray=0.17.0 - rpds-py=0.21.0 -- s2n=1.5.7 +- s2n=1.5.9 - scikit-learn=1.5.2 - scip=9.1.1 - scipy=1.14.1 - seaborn=0.13.2 - seaborn-base=0.13.2 -- setuptools=75.3.0 +- setuptools=75.5.0 - shapely=2.0.6 - six=1.16.0 - smart_open=7.0.5 @@ -378,7 +378,7 @@ dependencies: - snakemake-interface-executor-plugins=9.3.2 - snakemake-interface-report-plugins=1.1.0 - snakemake-interface-storage-plugins=3.3.0 -- snakemake-minimal=8.25.2 +- snakemake-minimal=8.25.3 - snappy=1.2.1 - snuggs=1.4.7 - sortedcontainers=2.4.0 @@ -394,7 +394,7 @@ dependencies: - throttler=1.2.2 - tiledb=2.26.2 - tk=8.6.13 -- tomli=2.0.2 +- tomli=2.1.0 - toolz=1.0.0 - tornado=6.4.1 - tqdm=4.67.0 @@ -446,17 +446,17 @@ dependencies: - yaml=0.2.5 - yte=1.5.4 - zict=3.0.0 -- zipp=3.20.2 +- zipp=3.21.0 - zlib=1.3.1 - zlib-ng=2.2.2 - zstandard=0.23.0 - zstd=1.5.6 - pip: - - gurobipy==11.0.3 + - gurobipy==12.0.0 - highspy==1.7.2 - oauthlib==3.2.2 - ply==3.11 - - pyomo==6.8.0 + - pyomo==6.8.2 - requests-oauthlib==1.3.1 - snakemake-executor-plugin-cluster-generic==1.0.9 - snakemake-executor-plugin-slurm==0.11.2 diff --git a/envs/macos-pinned.yaml b/envs/macos-pinned.yaml index e20f24ded..ba89d9b06 100644 --- a/envs/macos-pinned.yaml +++ b/envs/macos-pinned.yaml @@ -20,17 +20,17 @@ dependencies: - attrs=24.2.0 - aws-c-auth=0.8.0 - aws-c-cal=0.8.0 -- aws-c-common=0.10.0 +- aws-c-common=0.10.3 - aws-c-compression=0.3.0 - aws-c-event-stream=0.5.0 -- aws-c-http=0.9.0 -- aws-c-io=0.15.1 +- aws-c-http=0.9.1 +- aws-c-io=0.15.2 - aws-c-mqtt=0.11.0 -- aws-c-s3=0.7.0 +- aws-c-s3=0.7.1 - aws-c-sdkutils=0.2.1 -- aws-checksums=0.2.0 -- aws-crt-cpp=0.29.3 -- aws-sdk-cpp=1.11.407 +- aws-checksums=0.2.2 +- aws-crt-cpp=0.29.4 +- aws-sdk-cpp=1.11.449 - azure-core-cpp=1.14.0 - azure-identity-cpp=1.10.0 - azure-storage-blobs-cpp=12.13.0 @@ -48,8 +48,9 @@ dependencies: - c-ares=1.34.3 - c-blosc2=2.15.1 - ca-certificates=2024.8.30 -- cads-api-client=1.5.2 +- cads-api-client=1.5.4 - cairo=1.18.0 +- capnproto=1.0.2 - cartopy=0.24.0 - cdsapi=0.7.4 - certifi=2024.8.30 @@ -72,21 +73,21 @@ dependencies: - conda-inject=1.3.2 - configargparse=1.7 - connection_pool=0.0.3 -- contourpy=1.3.0 +- contourpy=1.3.1 - country_converter=1.2 - cppad=20240000.7 - cycler=0.12.1 - cyrus-sasl=2.1.27 - cytoolz=1.0.0 -- dask=2024.11.0 -- dask-core=2024.11.0 -- dask-expr=1.1.17 +- dask=2024.11.2 +- dask-core=2024.11.2 +- dask-expr=1.1.19 - datrie=0.8.2 - decorator=5.1.1 - deprecation=2.1.0 - descartes=1.1.0 - distlib=0.3.9 -- distributed=2024.11.0 +- distributed=2024.11.2 - docutils=0.21.2 - dpath=2.2.0 - entsoe-py=0.6.11 @@ -104,7 +105,7 @@ dependencies: - fontconfig=2.15.0 - fonts-conda-ecosystem=1 - fonts-conda-forge=1 -- fonttools=4.54.1 +- fonttools=4.55.0 - freetype=2.12.1 - freexl=2.0.0 - fribidi=1.0.10 @@ -142,12 +143,11 @@ dependencies: - idna=3.10 - immutables=0.21 - importlib-metadata=8.5.0 -- importlib_metadata=8.5.0 - importlib_resources=6.4.5 - iniconfig=2.0.0 - ipopt=3.14.16 - ipython=8.29.0 -- jedi=0.19.1 +- jedi=0.19.2 - jinja2=3.1.4 - joblib=1.4.2 - jpype1=1.5.0 @@ -199,8 +199,8 @@ dependencies: - libgfortran=5.0.0 - libgfortran5=13.2.0 - libglib=2.82.2 -- libgoogle-cloud=2.30.0 -- libgoogle-cloud-storage=2.30.0 +- libgoogle-cloud=2.31.0 +- libgoogle-cloud-storage=2.31.0 - libgrpc=1.67.1 - libhwloc=2.11.2 - libiconv=1.17 @@ -215,7 +215,7 @@ dependencies: - libopenblas=0.3.28 - libparquet=18.0.0 - libpng=1.6.44 -- libpq=17.0 +- libpq=17.1 - libprotobuf=5.28.2 - libre2-11=2024.07.02 - librsvg=2.58.4 @@ -229,11 +229,11 @@ dependencies: - libutf8proc=2.8.0 - libwebp-base=1.4.0 - libxcb=1.17.0 -- libxml2=2.13.4 +- libxml2=2.13.5 - libxslt=1.1.39 - libzip=1.11.2 - libzlib=1.3.1 -- linopy=0.4.0 +- linopy=0.4.1 - llvm-openmp=19.1.3 - locket=1.0.0 - lxml=5.3.0 @@ -250,7 +250,7 @@ dependencies: - minizip=4.0.7 - mpfr=4.2.1 - msgpack-python=1.1.0 -- multiurl=0.3.2 +- multiurl=0.3.3 - mumps-include=5.7.3 - mumps-seq=5.7.3 - munkres=1.1.4 @@ -266,14 +266,14 @@ dependencies: - openjpeg=2.5.2 - openldap=2.6.8 - openpyxl=3.1.5 -- openssl=3.3.2 -- orc=2.0.2 -- packaging=24.1 +- openssl=3.4.0 +- orc=2.0.3 +- packaging=24.2 - pandas=2.2.3 - pango=1.54.0 - parso=0.8.4 - partd=1.4.2 -- patsy=0.5.6 +- patsy=1.0.1 - pcre2=10.44 - pexpect=4.9.0 - pickleshare=0.7.5 @@ -287,7 +287,7 @@ dependencies: - polars=1.12.0 - poppler=24.08.0 - poppler-data=0.4.12 -- postgresql=17.0 +- postgresql=17.1 - powerplantmatching=0.5.19 - pre-commit=4.0.1 - progressbar2=4.5.0 @@ -308,13 +308,13 @@ dependencies: - pyparsing=3.2.0 - pyproj=3.7.0 - pypsa=0.31.1 -- pyscipopt=5.1.1 +- pyscipopt=5.2.1 - pyshp=2.3.1 - pysocks=1.7.1 - pytables=3.10.1 - pytest=8.3.3 - python=3.12.7 -- python-dateutil=2.9.0 +- python-dateutil=2.9.0.post0 - python-fastjsonschema=2.20.0 - python-tzdata=2024.2 - python-utils=3.9.0 @@ -323,7 +323,7 @@ dependencies: - pyxlsb=1.0.10 - pyyaml=6.0.2 - qhull=2020.2 -- rasterio=1.3.11 +- rasterio=1.4.2 - re2=2024.07.02 - readline=8.2 - referencing=0.35.1 @@ -336,7 +336,7 @@ dependencies: - scipy=1.14.1 - seaborn=0.13.2 - seaborn-base=0.13.2 -- setuptools=75.3.0 +- setuptools=75.5.0 - shapely=2.0.6 - six=1.16.0 - smart_open=7.0.5 @@ -345,7 +345,7 @@ dependencies: - snakemake-interface-executor-plugins=9.3.2 - snakemake-interface-report-plugins=1.1.0 - snakemake-interface-storage-plugins=3.3.0 -- snakemake-minimal=8.25.2 +- snakemake-minimal=8.25.3 - snappy=1.2.1 - snuggs=1.4.7 - sortedcontainers=2.4.0 @@ -361,7 +361,7 @@ dependencies: - throttler=1.2.2 - tiledb=2.26.2 - tk=8.6.13 -- tomli=2.0.2 +- tomli=2.1.0 - toolz=1.0.0 - tornado=6.4.1 - tqdm=4.67.0 @@ -391,17 +391,17 @@ dependencies: - yaml=0.2.5 - yte=1.5.4 - zict=3.0.0 -- zipp=3.20.2 +- zipp=3.21.0 - zlib=1.3.1 - zlib-ng=2.2.2 - zstandard=0.23.0 - zstd=1.5.6 - pip: - - gurobipy==11.0.3 + - gurobipy==12.0.0 - highspy==1.7.2 - oauthlib==3.2.2 - ply==3.11 - - pyomo==6.8.0 + - pyomo==6.8.2 - requests-oauthlib==1.3.1 - snakemake-executor-plugin-cluster-generic==1.0.9 - snakemake-executor-plugin-slurm==0.11.2 diff --git a/envs/windows-pinned.yaml b/envs/windows-pinned.yaml index f813406c3..8884148dc 100644 --- a/envs/windows-pinned.yaml +++ b/envs/windows-pinned.yaml @@ -6,6 +6,9 @@ channels: - conda-forge - bioconda - defaults +- https://repo.anaconda.com/pkgs/main +- https://repo.anaconda.com/pkgs/r +- https://repo.anaconda.com/pkgs/msys2 dependencies: - _openmp_mutex=4.5 - affine=2.4.0 @@ -17,17 +20,17 @@ dependencies: - attrs=24.2.0 - aws-c-auth=0.8.0 - aws-c-cal=0.8.0 -- aws-c-common=0.10.0 +- aws-c-common=0.10.3 - aws-c-compression=0.3.0 - aws-c-event-stream=0.5.0 -- aws-c-http=0.9.0 -- aws-c-io=0.15.1 +- aws-c-http=0.9.1 +- aws-c-io=0.15.2 - aws-c-mqtt=0.11.0 -- aws-c-s3=0.7.0 +- aws-c-s3=0.7.1 - aws-c-sdkutils=0.2.1 -- aws-checksums=0.2.0 -- aws-crt-cpp=0.29.3 -- aws-sdk-cpp=1.11.407 +- aws-checksums=0.2.2 +- aws-crt-cpp=0.29.4 +- aws-sdk-cpp=1.11.449 - azure-core-cpp=1.14.0 - azure-identity-cpp=1.10.0 - azure-storage-blobs-cpp=12.13.0 @@ -44,8 +47,9 @@ dependencies: - c-ares=1.34.3 - c-blosc2=2.15.1 - ca-certificates=2024.8.30 -- cads-api-client=1.5.2 +- cads-api-client=1.5.4 - cairo=1.18.0 +- capnproto=1.0.2 - cartopy=0.24.0 - cdsapi=0.7.4 - certifi=2024.8.30 @@ -62,21 +66,21 @@ dependencies: - conda-inject=1.3.2 - configargparse=1.7 - connection_pool=0.0.3 -- contourpy=1.3.0 +- contourpy=1.3.1 - country_converter=1.2 - cppad=20240000.7 - cpython=3.12.7 - cycler=0.12.1 - cytoolz=1.0.0 -- dask=2024.11.0 -- dask-core=2024.11.0 -- dask-expr=1.1.17 +- dask=2024.11.2 +- dask-core=2024.11.2 +- dask-expr=1.1.19 - datrie=0.8.2 - decorator=5.1.1 - deprecation=2.1.0 - descartes=1.1.0 - distlib=0.3.9 -- distributed=2024.11.0 +- distributed=2024.11.2 - docutils=0.21.2 - double-conversion=3.3.0 - dpath=2.2.0 @@ -95,7 +99,7 @@ dependencies: - fontconfig=2.15.0 - fonts-conda-ecosystem=1 - fonts-conda-forge=1 -- fonttools=4.54.1 +- fonttools=4.55.0 - freetype=2.12.1 - freexl=2.0.0 - fribidi=1.0.10 @@ -129,12 +133,11 @@ dependencies: - idna=3.10 - immutables=0.21 - importlib-metadata=8.5.0 -- importlib_metadata=8.5.0 - importlib_resources=6.4.5 - iniconfig=2.0.0 - ipopt=3.14.16 - ipython=8.29.0 -- jedi=0.19.1 +- jedi=0.19.2 - jinja2=3.1.4 - joblib=1.4.2 - jpype1=1.5.0 @@ -154,6 +157,7 @@ dependencies: - libarrow-dataset=18.0.0 - libarrow-substrait=18.0.0 - libblas=3.9.0 +- libboost=1.86.0 - libbrotlicommon=1.1.0 - libbrotlidec=1.1.0 - libbrotlienc=1.1.0 @@ -184,9 +188,10 @@ dependencies: - libgdal-xls=3.9.3 - libglib=2.82.2 - libgomp=14.2.0 -- libgoogle-cloud=2.30.0 -- libgoogle-cloud-storage=2.30.0 +- libgoogle-cloud=2.31.0 +- libgoogle-cloud-storage=2.31.0 - libgrpc=1.67.1 +- libhwloc=2.11.2 - libiconv=1.17 - libintl=0.22.5 - libjpeg-turbo=3.0.0 @@ -196,7 +201,7 @@ dependencies: - libopenblas=0.3.28 - libparquet=18.0.0 - libpng=1.6.44 -- libpq=17.0 +- libpq=17.1 - libprotobuf=5.28.2 - libre2-11=2024.07.02 - librttopo=1.1.0 @@ -209,11 +214,11 @@ dependencies: - libwebp-base=1.4.0 - libwinpthread=12.0.0.r4.gg4f2fc60ca - libxcb=1.17.0 -- libxml2=2.13.4 +- libxml2=2.13.5 - libxslt=1.1.39 - libzip=1.11.2 - libzlib=1.3.1 -- linopy=0.4.0 +- linopy=0.4.1 - llvm-meta=5.0.0 - locket=1.0.0 - lxml=5.3.0 @@ -229,7 +234,7 @@ dependencies: - minizip=4.0.6 - mpfr=4.2.1 - msgpack-python=1.1.0 -- multiurl=0.3.2 +- multiurl=0.3.3 - mumps-seq=5.7.3 - munkres=1.1.4 - nbformat=5.10.4 @@ -242,14 +247,14 @@ dependencies: - openjpeg=2.5.2 - openmp=5.0.0 - openpyxl=3.1.5 -- openssl=3.3.2 -- orc=2.0.2 -- packaging=24.1 +- openssl=3.4.0 +- orc=2.0.3 +- packaging=24.2 - pandas=2.2.3 - pango=1.54.0 - parso=0.8.4 - partd=1.4.2 -- patsy=0.5.6 +- patsy=1.0.1 - pcre2=10.44 - pickleshare=0.7.5 - pillow=11.0.0 @@ -261,7 +266,7 @@ dependencies: - pluggy=1.5.0 - poppler=24.08.0 - poppler-data=0.4.12 -- postgresql=17.0 +- postgresql=17.1 - powerplantmatching=0.5.19 - pre-commit=4.0.1 - progressbar2=4.5.0 @@ -282,14 +287,14 @@ dependencies: - pyproj=3.7.0 - pypsa=0.31.1 - pyreadline3=3.5.4 -- pyscipopt=5.1.1 +- pyscipopt=5.2.1 - pyshp=2.3.1 - pyside6=6.8.0.2 - pysocks=1.7.1 - pytables=3.10.1 - pytest=8.3.3 - python=3.12.7 -- python-dateutil=2.9.0 +- python-dateutil=2.9.0.post0 - python-fastjsonschema=2.20.0 - python-tzdata=2024.2 - python-utils=3.9.0 @@ -300,7 +305,7 @@ dependencies: - pyyaml=6.0.2 - qhull=2020.2 - qt6-main=6.8.0 -- rasterio=1.3.11 +- rasterio=1.4.2 - re2=2024.07.02 - referencing=0.35.1 - requests=2.32.3 @@ -312,7 +317,7 @@ dependencies: - scipy=1.14.1 - seaborn=0.13.2 - seaborn-base=0.13.2 -- setuptools=75.3.0 +- setuptools=75.5.0 - shapely=2.0.6 - six=1.16.0 - smart_open=7.0.5 @@ -321,7 +326,7 @@ dependencies: - snakemake-interface-executor-plugins=9.3.2 - snakemake-interface-report-plugins=1.1.0 - snakemake-interface-storage-plugins=3.3.0 -- snakemake-minimal=8.25.2 +- snakemake-minimal=8.25.3 - snappy=1.2.1 - snuggs=1.4.7 - sortedcontainers=2.4.0 @@ -331,13 +336,13 @@ dependencies: - stack_data=0.6.2 - statsmodels=0.14.4 - tabulate=0.9.0 -- tbb=2021.7.0 +- tbb=2022.0.0 - tblib=3.0.0 - threadpoolctl=3.5.0 - throttler=1.2.2 - tiledb=2.26.2 - tk=8.6.13 -- tomli=2.0.2 +- tomli=2.1.0 - toolz=1.0.0 - tornado=6.4.1 - tqdm=4.67.0 @@ -353,9 +358,9 @@ dependencies: - urllib3=2.2.3 - validators=0.34.0 - vc=14.3 -- vc14_runtime=14.40.33810 +- vc14_runtime=14.42.34433 - virtualenv=20.27.1 -- vs2015_runtime=14.40.33810 +- vs2015_runtime=14.42.34433 - wcwidth=0.2.13 - wheel=0.45.0 - win_inet_pton=1.1.0 @@ -370,25 +375,25 @@ dependencies: - xorg-libxdmcp=1.1.5 - xorg-libxext=1.3.6 - xorg-libxpm=3.5.17 -- xorg-libxt=1.3.0 +- xorg-libxt=1.3.1 - xorg-xorgproto=2024.1 - xyzservices=2024.9.0 - xz=5.2.6 - yaml=0.2.5 - yte=1.5.4 - zict=3.0.0 -- zipp=3.20.2 +- zipp=3.21.0 - zlib=1.3.1 - zlib-ng=2.2.2 - zstandard=0.23.0 - zstd=1.5.6 - pip: - - gurobipy==11.0.3 + - gurobipy==12.0.0 - highspy==1.7.2 - oauthlib==3.2.2 - ply==3.11 - polars==1.12.0 - - pyomo==6.8.0 + - pyomo==6.8.2 - requests-oauthlib==1.3.1 - snakemake-executor-plugin-cluster-generic==1.0.9 - snakemake-executor-plugin-slurm==0.11.2 diff --git a/rules/solve_electricity.smk b/rules/solve_electricity.smk index 204286a30..36a2a99ab 100644 --- a/rules/solve_electricity.smk +++ b/rules/solve_electricity.smk @@ -22,6 +22,8 @@ rule solve_network: RESULTS + "logs/solve_network/base_s_{clusters}_elec_l{ll}_{opts}_solver.log" ), + memory=RESULTS + + "logs/solve_network/base_s_{clusters}_elec_l{ll}_{opts}_memory.log", python=RESULTS + "logs/solve_network/base_s_{clusters}_elec_l{ll}_{opts}_python.log", benchmark: diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index f0012bf79..b9d7e842a 100755 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -1831,25 +1831,11 @@ def add_EVs( efficiency=options["bev_charge_efficiency"], ) - if options["v2g"]: - n.add( - "Link", - spatial.nodes, - suffix=" V2G", - bus1=spatial.nodes, - bus0=spatial.nodes + " EV battery", - p_nom=p_nom, - carrier="V2G", - p_max_pu=avail_profile.loc[n.snapshots, spatial.nodes], - lifetime=1, - efficiency=options["bev_charge_efficiency"], - ) - if options["bev_dsm"]: e_nom = ( number_cars * options["bev_energy"] - * options["bev_availability"] + * options["bev_dsm_availability"] * electric_share ) @@ -1865,6 +1851,20 @@ def add_EVs( e_min_pu=dsm_profile.loc[n.snapshots, spatial.nodes], ) + if options["v2g"]: + n.add( + "Link", + spatial.nodes, + suffix=" V2G", + bus1=spatial.nodes, + bus0=spatial.nodes + " EV battery", + p_nom=p_nom * options["bev_dsm_availability"], + carrier="V2G", + p_max_pu=avail_profile.loc[n.snapshots, spatial.nodes], + lifetime=1, + efficiency=options["bev_charge_efficiency"], + ) + def add_fuel_cell_cars(n, p_set, fuel_cell_share, temperature): car_efficiency = options["transport_fuel_cell_efficiency"]