Merge branch 'master' into scenario-management

This commit is contained in:
Fabian Neumann 2024-02-20 12:08:54 +01:00
commit 719d4dad23
128 changed files with 1203 additions and 872 deletions

2
.gitattributes vendored
View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2021-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2021-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

2
.gitignore vendored
View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

View File

@ -51,7 +51,7 @@ repos:
# Formatting with "black" coding style
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 24.1.1
rev: 24.2.0
hooks:
# Format Python files
- id: black

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

View File

@ -4,33 +4,33 @@ Upstream-Contact: Tom Brown <t.brown@tu-berlin.de>
Source: https://github.com/pypsa/pypsa-eur
Files: doc/img/*
Copyright: 2019-2023 The PyPSA-Eur Authors
Copyright: 2019-2024 The PyPSA-Eur Authors
License: CC-BY-4.0
Files: doc/data.csv
Copyright: 2019-2023 The PyPSA-Eur Authors
Copyright: 2019-2024 The PyPSA-Eur Authors
License: CC-BY-4.0
Files: doc/configtables/*
Copyright: 2019-2023 The PyPSA-Eur Authors
Copyright: 2019-2024 The PyPSA-Eur Authors
License: CC-BY-4.0
Files: data/*
Copyright: 2017-2023 The PyPSA-Eur Authors
Copyright: 2017-2024 The PyPSA-Eur Authors
License: CC-BY-4.0
Files: .github/*
Copyright: 2019-2023 The PyPSA-Eur Authors
Copyright: 2019-2024 The PyPSA-Eur Authors
License: CC0-1.0
Files: matplotlibrc
Copyright: 2017-2023 The PyPSA-Eur Authors
Copyright: 2017-2024 The PyPSA-Eur Authors
License: CC0-1.0
Files: borg-it
Copyright: 2017-2023 The PyPSA-Eur Authors
Copyright: 2017-2024 The PyPSA-Eur Authors
License: CC0-1.0
Files: graphics/*
Copyright: 2017-2023 The PyPSA-Eur Authors
Copyright: 2017-2024 The PyPSA-Eur Authors
License: CC-BY-4.0

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2021-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2021-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

View File

@ -6,7 +6,7 @@ cff-version: 1.1.0
message: "If you use this package, please cite it in the following way."
title: "PyPSA-Eur: An open sector-coupled optimisation model of the European energy system"
repository: https://github.com/pypsa/pypsa-eur
version: 0.9.0
version: 0.10.0
license: MIT
authors:
- family-names: Brown

View File

@ -1,6 +1,6 @@
MIT License
Copyright 2017-2023 The PyPSA-Eur Authors
Copyright 2017-2024 The PyPSA-Eur Authors
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in

View File

@ -1,5 +1,5 @@
<!--
SPDX-FileCopyrightText: 2017-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2017-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
-->

View File

@ -26,6 +26,7 @@ for template, target in default_files.items():
copyfile(template, target)
configfile: "config/config.default.yaml"
configfile: "config/config.yaml"

View File

@ -1,9 +1,9 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0
# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#top-level-configuration
version: 0.9.0
version: 0.10.0
tutorial: false
logging:
@ -668,7 +668,7 @@ industry:
# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#costs
costs:
year: 2030
version: v0.7.0
version: v0.8.0
rooftop_share: 0.14 # based on the potentials, assuming (0.1 kW/m2 and 10 m2/person)
social_discountrate: 0.02
fill_values:

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0
run:

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0
run:

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -72,7 +72,7 @@ master_doc = "index"
# General information about the project.
project = "PyPSA-Eur"
copyright = "2017-2023 Tom Brown (KIT, TUB, FIAS), Jonas Hoersch (KIT, FIAS), Fabian Hofmann (TUB, FIAS), Fabian Neumann (TUB, KIT), Marta Victoria (Aarhus University), Lisa Zeyen (KIT, TUB)"
copyright = "2017-2024 Tom Brown (KIT, TUB, FIAS), Jonas Hoersch (KIT, FIAS), Fabian Hofmann (TUB, FIAS), Fabian Neumann (TUB, KIT), Marta Victoria (Aarhus University), Lisa Zeyen (KIT, TUB)"
author = "Tom Brown (KIT, TUB, FIAS), Jonas Hoersch (KIT, FIAS), Fabian Hofmann (TUB, FIAS), Fabian Neumann (TUB, KIT), Marta Victoria (Aarhus University), Lisa Zeyen (KIT, TUB)"
# The version info for the project you're documenting, acts as replacement for
@ -80,9 +80,9 @@ author = "Tom Brown (KIT, TUB, FIAS), Jonas Hoersch (KIT, FIAS), Fabian Hofmann
# built documents.
#
# The short X.Y version.
version = "0.9"
version = "0.10"
# The full version, including alpha/beta/rc tags.
release = "0.9.0"
release = "0.10.0"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2021-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2021-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
@ -31,7 +31,7 @@ Install Python Dependencies
PyPSA-Eur relies on a set of other Python packages to function.
We recommend using the package manager `mamba <https://mamba.readthedocs.io/en/latest/>`_ to install them and manage your environments.
For instructions for your operating system follow the ``mamba`` `installation guide <https://mamba.readthedocs.io/en/latest/installation.html>`_.
For instructions for your operating system follow the ``mamba`` `installation guide <https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html>`_.
You can also use ``conda`` equivalently.
The package requirements are curated in the `envs/environment.yaml <https://github.com/PyPSA/pypsa-eur/blob/master/envs/environment.yaml>`_ file.
@ -79,31 +79,9 @@ Nevertheless, you can still use open-source solvers for smaller problems.
`Instructions how to install a solver in the documentation of PyPSA <https://pypsa.readthedocs.io/en/latest/installation.html#getting-a-solver-for-linear-optimisation>`_
.. note::
The rules :mod:`cluster_network` and :mod:`simplify_network` solve a quadratic optimisation problem for clustering.
The open-source solvers Cbc and GlPK cannot handle this. A fallback to Ipopt is implemented in this case, but requires
it to be installed. For an open-source solver setup install in your ``conda`` environment on OSX/Linux
.. code:: bash
mamba activate pypsa-eur
mamba install -c conda-forge ipopt coincbc
and on Windows
.. code:: bash
mamba activate pypsa-eur
mamba install -c conda-forge ipopt glpk
For HiGHS, run
.. code:: bash
mamba activate pypsa-eur
mamba install -c conda-forge ipopt
pip install highspy
For Gurobi, run
The rules :mod:`cluster_network` and :mod:`simplify_network` solve a mixed-integer quadratic optimisation problem for clustering.
The open-source solvers HiGHS, Cbc and GlPK cannot handle this. A fallback to SCIP is implemented in this case.
For an open-source solver setup install in your ``conda`` environment on OSX/Linux. To install the default solver Gurobi, run
.. code:: bash

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2023-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,4 +1,4 @@
REM SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
REM SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
REM SPDX-License-Identifier: MIT
@ECHO OFF

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
@Comment{
SPDX-FileCopyrightText: 2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2023-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC0-1.0
}

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2023-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
@ -7,8 +7,14 @@
Release Notes
##########################################
Upcoming Release
================
.. Upcoming Release
.. ================
..
PyPSA-Eur 0.10.0 (19th February 2024)
=====================================
**New Features**
* Added new scenario management that supports the simultaneous execution of
multiple scenarios with a single ``snakemake`` call. For this purpose, a
@ -83,113 +89,82 @@ Upcoming Release
energy carrier usage per ton material output to the best-in-class energy
consumption of tomorrow. This is done on a per-country basis. The ratio of
today to tomorrow's energy consumption is set with the ``industry:
sector_ratios_fraction_future:`` parameter.
* Fix plotting of retrofitted hydrogen pipelines with pathway optimisation.
* Bugfix: Correct units of subtracted chlorine and methanol demand in
:mod:`build_industry_sector_ratios`.
* Include all countries in ammonia production resource. This is so that the full
EU28 ammonia demand can be correctly subtracted in the rule
:mod:`build_industry_sector_ratios`.
* Regions are assigned to all buses with unique coordinates in the network with
a preference given to substations. Previously, only substations had assigned
regions, but this could lead to issues when a high spatial resolution was
applied.
* The default configuration ``config/config.default.yaml`` is now automatically
used as a base configuration file. The file ``config/config.yaml`` should be
used to define deviations from the default configuration.
* Merged two OPSD time series data versions into such that the option ``load:
power_statistics:`` becomes superfluous and was hence removed.
* Bugfix: The industry coal emissions for industry were not properly tracked.
* Allow industrial coal demand to be regional so its emissions can be included
in regional emission limits.
sector_ratios_fraction_future:`` parameter
(https://github.com/PyPSA/pypsa-eur/pull/929).
* Add new default to overdimension heating in individual buildings. This allows
them to cover heat demand peaks e.g. 10% higher than those in the data. The
disadvantage of manipulating the costs is that the capacity is then not quite
right. This way at least the costs are right.
right. This way at least the costs are right
(https://github.com/PyPSA/pypsa-eur/pull/918).
* Allow industrial coal demand to be regional so its emissions can be included
in regional emission limits (https://github.com/PyPSA/pypsa-eur/pull/923).
* Add option to specify to set a default heating lifetime for existing heating
(``existing_capacities: default_heating_lifetime:``).
(``existing_capacities: default_heating_lifetime:``)
(https://github.com/PyPSA/pypsa-eur/pull/918).
* Correctly source the existing heating technologies for buildings since the
source URL has changed. It represents the year 2012 and is only for
buildings, not district heating. So the capacities for urban central are now
set to zero from this source.
* Added option to specify turbine and solar panel models for specific years as a
dictionary (e.g. ``renewable: onwind: resource: turbine:``). The years will be
interpreted as years from when the the corresponding turbine model substitutes
the previous model for new installations. This will only have an effect on
workflows with foresight ``"myopic"`` and still needs to be added foresight
option ``"perfect"`` (https://github.com/PyPSA/pypsa-eur/pull/912).
* Remove long-deprecated function ``attach_extendable_generators`` in :mod:`add_electricity`.
* New configuration option ``everywhere_powerplants`` to build conventional
powerplants everywhere, irrespective of existing powerplants locations, in the
network (https://github.com/PyPSA/pypsa-eur/pull/850).
* The filtering of power plants in the ``config.default.yaml`` has been updated regarding phased-out power plants in 2023.
* Add the option to customise map projection in plotting config under
``plotting: projection: name`` (https://github.com/PyPSA/pypsa-eur/pull/898).
* Upgrade techno-economic assumptions to ``technology-data`` v0.7.0.
* Add support for the linopy ``io_api`` option under ``solving: options:
io_api:``. Set to ``"direct"`` to increase model reading and writing
performance for the highs and gurobi solvers on slow file systems
(https://github.com/PyPSA/pypsa-eur/pull/892).
* Bugfix: Correct technology keys for the electricity production plotting to work out the box.
* It is now possible to determine the directory for shared resources by setting
`shared_resources` to a string (https://github.com/PyPSA/pypsa-eur/pull/906).
* New configuration option ``everywhere_powerplants`` to build conventional powerplants everywhere, irrespective of existing powerplants locations, in the network (https://github.com/PyPSA/pypsa-eur/pull/850).
* Improve ``mock_snakemake()`` for usage in Snakemake modules
(https://github.com/PyPSA/pypsa-eur/pull/869).
**Breaking Changes**
* Remove long-deprecated function ``attach_extendable_generators`` in
:mod:`add_electricity`.
* Remove option for wave energy as technology data is not maintained.
* Define global constraint for CO2 emissions on the final state of charge of the
CO2 atmosphere store. This gives a more sparse constraint that should improve
the performance of the solving process.
* The order of buses (bus0, bus1, ...) for DAC components has changed to meet
the convention of the other components. Therefore, `bus0` refers to the
electricity bus (input), `bus1` to the heat bus (input), 'bus2' to the CO2
atmosphere bus (input), and `bus3` to the CO2 storage bus (output)
(https://github.com/PyPSA/pypsa-eur/pull/901).
* Bugfix: Assure entering of code block which corrects Norwegian heat demand.
**Changes**
* Add warning when BEV availability weekly profile has negative values in `build_transport_demand`.
* Upgrade default techno-economic assumptions to ``technology-data`` v0.8.0.
* Stacktrace of uncaught exceptions should now be correctly included inside log files (via `configure_logging(..)`).
* Cluster residential and services heat buses by default. Can be disabled with ``cluster_heat_buses: false``.
* Bugfix: Do not reduce district heat share when building population-weighted
energy statistics. Previously the district heating share was being multiplied
by the population weighting, reducing the DH share with multiple nodes.
* Update hydrogen pipeline losses to latest data from Danish Energy Agency
(https://github.com/PyPSA/pypsa-eur/pull/933).
* Move building of daily heat profile to its own rule
:mod:`build_hourly_heat_demand` from :mod:`prepare_sector_network`.
:mod:`build_hourly_heat_demand` from :mod:`prepare_sector_network`
(https://github.com/PyPSA/pypsa-eur/pull/884).
* In :mod:`build_energy_totals`, district heating shares are now reported in a
separate file.
separate file (https://github.com/PyPSA/pypsa-eur/pull/884).
* Move calculation of district heating share to its own rule
:mod:`build_district_heat_share`.
:mod:`build_district_heat_share`
(https://github.com/PyPSA/pypsa-eur/pull/884).
* Move building of distribution of existing heating to own rule
:mod:`build_existing_heating_distribution`. This makes the distribution of
existing heating to urban/rural, residential/services and spatially more
transparent.
* Bugfix: Correctly read out number of solver threads from configuration file.
* Air-sourced heat pumps can now also be built in rural areas. Previously, only
ground-sourced heat pumps were considered for this category.
* Bugfix: Correctly read out number of solver threads from configuration file.
* Add support for the linopy ``io_api`` option; set to ``"direct"`` to increase model reading and writing performance for the highs and gurobi solvers.
* Add the option to customise map projection in plotting config.
* The order of buses (bus0, bus1, ...) for DAC components has changed to meet the convention of the other components. Therefore, `bus0` refers to the electricity bus (input), `bus1` to the heat bus (input), 'bus2' to the CO2 atmosphere bus (input), and `bus3` to the CO2 storage bus (output).
* The rule ``plot_network`` has been split into separate rules for plotting
electricity, hydrogen and gas networks.
* To determine the optimal topology to meet the number of clusters, the workflow used pyomo in combination with ``ipopt`` or ``gurobi``. This dependency has been replaced by using ``linopy`` in combination with ``scipopt`` or ``gurobi``. The environment file has been updated accordingly.
* The ``highs`` solver was added to the default environment file.
* Various minor bugfixes to the perfect foresight workflow, though perfect foresight must still be considered experimental.
* It is now possible to determine the directory for shared resources by setting `shared_resources` to a string.
* A ``test.sh`` script was added to the repository to run the tests locally.
transparent (https://github.com/PyPSA/pypsa-eur/pull/884).
* Default settings for recycling rates and primary product shares of high-value
chemicals have been set in accordance with the values used in `Neumann et al.
@ -198,14 +173,124 @@ Upcoming Release
Energiewende (2021)
<https://static.agora-energiewende.de/fileadmin/Projekte/2021/2021_02_EU_CEAP/A-EW_254_Mobilising-circular-economy_study_WEB.pdf>`_.
* Added option to specify turbine and solar panel models for specific years as a
dictionary (e.g. ``renewable: onwind: resource: turbine:``). The years will be
interpreted as years from when the the corresponding turbine model substitutes
the previous model for new installations. This will only have an effect on
workflows with foresight "myopic" and still needs to be added foresight option
"perfect".
* Air-sourced heat pumps can now also be built in rural areas. Previously, only
ground-sourced heat pumps were considered for this category
(https://github.com/PyPSA/pypsa-eur/pull/890).
* Switched the energy totals year from 2011 to 2013 to comply with the assumed default weather year.
* The default configuration ``config/config.default.yaml`` is now automatically
used as a base configuration file. The file ``config/config.yaml`` can now be
used to only define deviations from the default configuration. The
``config/config.default.yaml`` is still copied into ``config/config.yaml`` on
first usage (https://github.com/PyPSA/pypsa-eur/pull/925).
* Regions are assigned to all buses with unique coordinates in the network with
a preference given to substations. Previously, only substations had assigned
regions, but this could lead to issues when a high spatial resolution was
applied (https://github.com/PyPSA/pypsa-eur/pull/922).
* Define global constraint for CO2 emissions on the final state of charge of the
CO2 atmosphere store. This gives a more sparse constraint that should improve
the performance of the solving process
(https://github.com/PyPSA/pypsa-eur/pull/862).
* Switched the energy totals year from 2011 to 2013 to comply with the assumed
default weather year (https://github.com/PyPSA/pypsa-eur/pull/934).
* Cluster residential and services heat buses by default. Can be disabled with
``cluster_heat_buses: false`` (https://github.com/PyPSA/pypsa-eur/pull/877).
* The rule ``plot_network`` has been split into separate rules for plotting
electricity, hydrogen and gas networks
(https://github.com/PyPSA/pypsa-eur/pull/900).
* To determine the optimal topology to meet the number of clusters, the workflow
used pyomo in combination with ``ipopt`` or ``gurobi``. This dependency has
been replaced by using ``linopy`` in combination with ``scipopt`` or
``gurobi``. The environment file has been updated accordingly
(https://github.com/PyPSA/pypsa-eur/pull/903).
* The ``highs`` solver was added to the default environment file.
* New default solver settings for COPT solver
(https://github.com/PyPSA/pypsa-eur/pull/882).
* Data retrieval rules now use their own minimal conda environment. This can
avoid unnecessary reruns of the workflow
(https://github.com/PyPSA/pypsa-eur/pull/888).
* Merged two OPSD time series data versions into such that the option ``load:
power_statistics:`` becomes superfluous and was hence removed
(https://github.com/PyPSA/pypsa-eur/pull/924).
* The filtering of power plants in the ``config.default.yaml`` has been updated
regarding phased-out power plants in 2023.
* Include all countries in ammonia production resource. This is so that the full
EU28 ammonia demand can be correctly subtracted in the rule
:mod:`build_industry_sector_ratios`
(https://github.com/PyPSA/pypsa-eur/pull/931).
* Correctly source the existing heating technologies for buildings since the
source URL has changed. It represents the year 2012 and is only for buildings,
not district heating (https://github.com/PyPSA/pypsa-eur/pull/918).
* Add warning when BEV availability weekly profile has negative values in
`build_transport_demand` (https://github.com/PyPSA/pypsa-eur/pull/858).
* Time series clipping for very small values was added for Links
(https://github.com/PyPSA/pypsa-eur/pull/870).
* A ``test.sh`` script was added to the repository to run the tests locally.
* The CI now tests additionally against ``master`` versions of PyPSA, atlite and
powerplantmatching (https://github.com/PyPSA/pypsa-eur/pull/904).
* A function ``sanitize_locations()`` was added to improve the coverage of the
``location`` attribute of network components.
**Bugs and Compatibility**
* Bugfix: Do not reduce district heat share when building population-weighted
energy statistics. Previously the district heating share was being multiplied
by the population weighting, reducing the DH share with multiple nodes
(https://github.com/PyPSA/pypsa-eur/pull/884).
* Bugfix: The industry coal emissions for industry were not properly tracked
(https://github.com/PyPSA/pypsa-eur/pull/923).
* Bugfix: Correct units of subtracted chlorine and methanol demand in
:mod:`build_industry_sector_ratios`
(https://github.com/PyPSA/pypsa-eur/pull/930).
* Various minor bugfixes to the perfect foresight workflow, though perfect
foresight must still be considered experimental
(https://github.com/PyPSA/pypsa-eur/pull/910).
* Fix plotting of retrofitted hydrogen pipelines with myopic pathway
optimisation (https://github.com/PyPSA/pypsa-eur/pull/937).
* Bugfix: Correct technology keys for the electricity production plotting to
work out the box.
* Bugfix: Assure entering of code block which corrects Norwegian heat demand
(https://github.com/PyPSA/pypsa-eur/pull/870).
* Stacktrace of uncaught exceptions should now be correctly included inside log
files (via `configure_logging(..)`)
(https://github.com/PyPSA/pypsa-eur/pull/875).
* Bugfix: Correctly read out number of solver threads from configuration file
(https://github.com/PyPSA/pypsa-eur/pull/889).
* Made copying default config file compatible with snakemake module
(https://github.com/PyPSA/pypsa-eur/pull/894).
* Compatibility with ``pandas=2.2``
(https://github.com/PyPSA/pypsa-eur/pull/861).
Special thanks for this release to Koen van Greevenbroek (`@koen-vg
<https://github.com/koen-vg>`_) for various new features, bugfixes and taking
care of deprecations.
PyPSA-Eur 0.9.0 (5th January 2024)

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2019-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2019-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2023-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,7 +1,7 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2021-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2021-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2021-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2021-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0
@ -133,82 +133,89 @@ This triggers a workflow of multiple preceding jobs that depend on each rule's i
graph[bgcolor=white, margin=0];
node[shape=box, style=rounded, fontname=sans, fontsize=10, penwidth=2];
edge[penwidth=2, color=grey];
0[label = "solve_network", color = "0.33 0.6 0.85", style="rounded"];
1[label = "prepare_network\nll: copt\nopts: Co2L-24H", color = "0.03 0.6 0.85", style="rounded"];
2[label = "add_extra_components", color = "0.45 0.6 0.85", style="rounded"];
3[label = "cluster_network\nclusters: 6", color = "0.46 0.6 0.85", style="rounded"];
4[label = "simplify_network\nsimpl: ", color = "0.52 0.6 0.85", style="rounded"];
5[label = "add_electricity", color = "0.55 0.6 0.85", style="rounded"];
6[label = "build_renewable_profiles\ntechnology: solar", color = "0.15 0.6 0.85", style="rounded"];
7[label = "base_network", color = "0.37 0.6 0.85", style="rounded,dashed"];
8[label = "build_shapes", color = "0.07 0.6 0.85", style="rounded,dashed"];
9[label = "retrieve_databundle", color = "0.60 0.6 0.85", style="rounded"];
10[label = "retrieve_natura_raster", color = "0.42 0.6 0.85", style="rounded"];
11[label = "build_bus_regions", color = "0.09 0.6 0.85", style="rounded,dashed"];
12[label = "build_renewable_profiles\ntechnology: onwind", color = "0.15 0.6 0.85", style="rounded"];
13[label = "build_renewable_profiles\ntechnology: offwind-ac", color = "0.15 0.6 0.85", style="rounded"];
14[label = "build_ship_raster", color = "0.02 0.6 0.85", style="rounded"];
15[label = "retrieve_ship_raster", color = "0.40 0.6 0.85", style="rounded"];
16[label = "build_renewable_profiles\ntechnology: offwind-dc", color = "0.15 0.6 0.85", style="rounded"];
17[label = "build_line_rating", color = "0.32 0.6 0.85", style="rounded"];
18[label = "retrieve_cost_data\nyear: 2030", color = "0.50 0.6 0.85", style="rounded"];
19[label = "build_powerplants", color = "0.64 0.6 0.85", style="rounded,dashed"];
20[label = "build_electricity_demand", color = "0.13 0.6 0.85", style="rounded,dashed"];
21[label = "retrieve_electricity_demand", color = "0.31 0.6 0.85", style="rounded"];
22[label = "copy_config", color = "0.23 0.6 0.85", style="rounded"];
0[label = "solve_network", color = "0.39 0.6 0.85", style="rounded"];
1[label = "prepare_network\nll: copt\nopts: Co2L-24H", color = "0.29 0.6 0.85", style="rounded"];
2[label = "add_extra_components", color = "0.28 0.6 0.85", style="rounded"];
3[label = "cluster_network\nclusters: 6", color = "0.19 0.6 0.85", style="rounded"];
4[label = "simplify_network\nsimpl: ", color = "0.01 0.6 0.85", style="rounded"];
5[label = "add_electricity", color = "0.49 0.6 0.85", style="rounded"];
6[label = "build_renewable_profiles\ntechnology: solar", color = "0.21 0.6 0.85", style="rounded"];
7[label = "base_network", color = "0.27 0.6 0.85", style="rounded"];
8[label = "build_shapes", color = "0.26 0.6 0.85", style="rounded"];
9[label = "retrieve_databundle", color = "0.59 0.6 0.85", style="rounded"];
10[label = "retrieve_natura_raster", color = "0.47 0.6 0.85", style="rounded"];
11[label = "build_bus_regions", color = "0.13 0.6 0.85", style="rounded"];
12[label = "retrieve_cutout\ncutout: be-03-2013-era5", color = "0.36 0.6 0.85", style="rounded,dashed"];
13[label = "build_renewable_profiles\ntechnology: onwind", color = "0.21 0.6 0.85", style="rounded"];
14[label = "build_renewable_profiles\ntechnology: offwind-ac", color = "0.21 0.6 0.85", style="rounded"];
15[label = "build_ship_raster", color = "0.00 0.6 0.85", style="rounded"];
16[label = "retrieve_ship_raster", color = "0.51 0.6 0.85", style="rounded,dashed"];
17[label = "build_renewable_profiles\ntechnology: offwind-dc", color = "0.21 0.6 0.85", style="rounded"];
18[label = "build_line_rating", color = "0.05 0.6 0.85", style="rounded"];
19[label = "retrieve_cost_data\nyear: 2030", color = "0.15 0.6 0.85", style="rounded"];
20[label = "build_powerplants", color = "0.54 0.6 0.85", style="rounded"];
21[label = "build_electricity_demand", color = "0.52 0.6 0.85", style="rounded"];
22[label = "retrieve_electricity_demand", color = "0.22 0.6 0.85", style="rounded"];
23[label = "copy_config", color = "0.44 0.6 0.85", style="rounded"];
1 -> 0
22 -> 0
23 -> 0
2 -> 1
18 -> 1
19 -> 1
3 -> 2
18 -> 2
19 -> 2
4 -> 3
18 -> 3
19 -> 3
5 -> 4
18 -> 4
19 -> 4
11 -> 4
6 -> 5
12 -> 5
13 -> 5
16 -> 5
7 -> 5
14 -> 5
17 -> 5
7 -> 5
18 -> 5
11 -> 5
19 -> 5
9 -> 5
11 -> 5
20 -> 5
9 -> 5
21 -> 5
8 -> 5
7 -> 6
9 -> 6
10 -> 6
8 -> 6
11 -> 6
12 -> 6
8 -> 7
9 -> 8
8 -> 11
7 -> 11
7 -> 12
9 -> 12
10 -> 12
8 -> 12
11 -> 12
7 -> 13
9 -> 13
10 -> 13
14 -> 13
8 -> 13
11 -> 13
12 -> 13
7 -> 14
9 -> 14
10 -> 14
15 -> 14
7 -> 16
9 -> 16
10 -> 16
14 -> 16
8 -> 16
11 -> 16
8 -> 14
11 -> 14
12 -> 14
16 -> 15
12 -> 15
7 -> 17
7 -> 19
21 -> 20
9 -> 17
10 -> 17
15 -> 17
8 -> 17
11 -> 17
12 -> 17
7 -> 18
12 -> 18
7 -> 20
22 -> 21
}
|
@ -218,26 +225,29 @@ In the terminal, this will show up as a list of jobs to be run:
.. code:: bash
Building DAG of jobs...
job count min threads max threads
------------------------ ------- ------------- -------------
add_electricity 1 1 1
add_extra_components 1 1 1
base_network 1 1 1
build_bus_regions 1 1 1
build_hydro_profile 1 1 1
build_electricity_demand 1 1 1
build_powerplants 1 1 1
build_renewable_profiles 4 1 1
build_shapes 1 1 1
build_ship_raster 1 1 1
cluster_network 1 1 1
prepare_network 1 1 1
retrieve_cost_data 1 1 1
retrieve_databundle 1 1 1
retrieve_natura_raster 1 1 1
simplify_network 1 1 1
solve_network 1 1 1
total 20 1 1
Job stats:
job count
--------------------------- -------
add_electricity 1
add_extra_components 1
base_network 1
build_bus_regions 1
build_electricity_demand 1
build_line_rating 1
build_powerplants 1
build_renewable_profiles 4
build_shapes 1
build_ship_raster 1
cluster_network 1
copy_config 1
prepare_network 1
retrieve_cost_data 1
retrieve_databundle 1
retrieve_electricity_demand 1
retrieve_natura_raster 1
simplify_network 1
solve_network 1
total 22
``snakemake`` then runs these jobs in the correct order.
@ -246,16 +256,16 @@ A job (here ``simplify_network``) will display its attributes and normally some
.. code:: bash
[Mon Jan 1 00:00:00 2023]
[Mon Feb 19 17:06:17 2024]
rule simplify_network:
input: networks/elec.nc, resources/costs.csv, resources/regions_onshore.geojson, resources/regions_offshore.geojson
output: networks/elec_s.nc, resources/regions_onshore_elec_s.geojson, resources/regions_offshore_elec_s.geojson, resources/busmap_elec_s.csv, resources/connection_costs_s.csv
log: logs/simplify_network/elec_s.log
input: resources/test/networks/elec.nc, data/costs_2030.csv, resources/test/regions_onshore.geojson, resources/test/regions_offshore.geojson
output: resources/test/networks/elec_s.nc, resources/test/regions_onshore_elec_s.geojson, resources/test/regions_offshore_elec_s.geojson, resources/test/busmap_elec_s.csv, resources/test/connection_costs_s.csv
log: logs/test-elec/simplify_network/elec_s.log
jobid: 4
benchmark: benchmarks/simplify_network/elec_s
reason: Missing output files: resources/busmap_elec_s.csv, resources/regions_onshore_elec_s.geojson, networks/elec_s.nc, resources/regions_offshore_elec_s.geojson; Input files updated by another job: resources/regions_offshore.geojson, resources/regions_onshore.geojson, resources/costs.csv, networks/elec.nc
benchmark: benchmarks/test-elec/simplify_network/elec_s
reason: Missing output files: resources/test/regions_offshore_elec_s.geojson, resources/test/busmap_elec_s.csv, resources/test/regions_onshore_elec_s.geojson, resources/test/networks/elec_s.nc; Input files updated by another job: resources/test/regions_offshore.geojson, resources/test/networks/elec.nc, resources/test/regions_onshore.geojson, data/costs_2030.csv
wildcards: simpl=
resources: tmpdir=/tmp, mem_mb=4000, mem_mib=3815
resources: tmpdir=/tmp, mem_mb=12000, mem_mib=11445
Once the whole worktree is finished, it should state so in the terminal.

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -1,5 +1,5 @@
..
SPDX-FileCopyrightText: 2019-2023 The PyPSA-Eur Authors
SPDX-FileCopyrightText: 2019-2024 The PyPSA-Eur Authors
SPDX-License-Identifier: CC-BY-4.0

View File

@ -5,7 +5,6 @@
name: pypsa-eur
channels:
- bioconda
- gurobi
- http://conda.anaconda.org/gurobi
- conda-forge
- defaults
@ -16,51 +15,46 @@ dependencies:
- alsa-lib=1.2.10
- ampl-mp=3.1.0
- amply=0.1.6
- anyio=4.2.0
- appdirs=1.4.4
- argon2-cffi=23.1.0
- argon2-cffi-bindings=21.2.0
- arrow=1.3.0
- asttokens=2.4.1
- async-lru=2.0.4
- atk-1.0=2.38.0
- atlite=0.2.12
- attr=2.5.1
- attrs=23.2.0
- aws-c-auth=0.7.8
- aws-c-auth=0.7.15
- aws-c-cal=0.6.9
- aws-c-common=0.9.10
- aws-c-common=0.9.12
- aws-c-compression=0.2.17
- aws-c-event-stream=0.3.2
- aws-c-http=0.7.15
- aws-c-io=0.13.36
- aws-c-mqtt=0.10.0
- aws-c-s3=0.4.7
- aws-c-sdkutils=0.1.13
- aws-c-event-stream=0.4.1
- aws-c-http=0.8.0
- aws-c-io=0.14.3
- aws-c-mqtt=0.10.1
- aws-c-s3=0.5.0
- aws-c-sdkutils=0.1.14
- aws-checksums=0.1.17
- aws-crt-cpp=0.25.1
- aws-sdk-cpp=1.11.210
- babel=2.14.0
- beautifulsoup4=4.12.2
- bleach=6.1.0
- aws-crt-cpp=0.26.1
- aws-sdk-cpp=1.11.242
- azure-core-cpp=1.10.3
- azure-storage-blobs-cpp=12.10.0
- azure-storage-common-cpp=12.5.0
- beautifulsoup4=4.12.3
- blosc=1.21.5
- bokeh=3.3.2
- bokeh=3.3.4
- bottleneck=1.3.7
- branca=0.7.0
- branca=0.7.1
- brotli=1.1.0
- brotli-bin=1.1.0
- brotli-python=1.1.0
- bzip2=1.0.8
- c-ares=1.24.0
- c-blosc2=2.12.0
- ca-certificates=2023.11.17
- cached-property=1.5.2
- cached_property=1.5.2
- c-ares=1.26.0
- c-blosc2=2.13.2
- ca-certificates=2024.2.2
- cairo=1.18.0
- cartopy=0.22.0
- cdsapi=0.6.1
- certifi=2023.11.17
- certifi=2024.2.2
- cffi=1.16.0
- cfgv=3.3.1
- cfitsio=4.3.1
- cftime=1.6.3
- charset-normalizer=3.3.2
@ -75,32 +69,31 @@ dependencies:
- coin-or-utils=2.11.9
- coincbc=2.10.10
- colorama=0.4.6
- comm=0.1.4
- configargparse=1.7
- connection_pool=0.0.3
- contourpy=1.2.0
- country_converter=1.2
- cppad=20240000.2
- cycler=0.12.1
- cytoolz=0.12.2
- dask=2023.12.1
- dask-core=2023.12.1
- cytoolz=0.12.3
- dask=2024.2.0
- dask-core=2024.2.0
- datrie=0.8.2
- dbus=1.13.6
- debugpy=1.8.0
- decorator=5.1.1
- defusedxml=0.7.1
- deprecation=2.1.0
- descartes=1.1.0
- distributed=2023.12.1
- distro=1.8.0
- distlib=0.3.8
- distributed=2024.2.0
- distro=1.9.0
- docutils=0.20.1
- dpath=2.1.6
- entrypoints=0.4
- entsoe-py=0.6.1
- entsoe-py=0.6.6
- et_xmlfile=1.1.0
- exceptiongroup=1.2.0
- executing=2.0.1
- expat=2.5.0
- filelock=3.13.1
- fiona=1.9.5
- folium=0.15.1
- font-ttf-dejavu-sans-mono=2.37
@ -110,18 +103,17 @@ dependencies:
- fontconfig=2.14.2
- fonts-conda-ecosystem=1
- fonts-conda-forge=1
- fonttools=4.47.0
- fqdn=1.5.1
- fonttools=4.49.0
- freetype=2.12.1
- freexl=2.0.0
- fribidi=1.0.10
- fsspec=2023.12.2
- gdal=3.7.3
- fsspec=2024.2.0
- gdal=3.8.4
- gdk-pixbuf=2.42.10
- geographiclib=1.52
- geojson-rewind=1.1.0
- geopandas=0.14.1
- geopandas-base=0.14.1
- geopandas=0.14.3
- geopandas-base=0.14.3
- geopy=2.4.1
- geos=3.12.1
- geotiff=1.7.1
@ -129,55 +121,38 @@ dependencies:
- gflags=2.2.2
- giflib=5.2.1
- gitdb=4.0.11
- gitpython=3.1.40
- glib=2.78.3
- glib-tools=2.78.3
- gitpython=3.1.42
- glib=2.78.4
- glib-tools=2.78.4
- glog=0.6.0
- glpk=5.0
- gmp=6.3.0
- graphite2=1.3.13
- graphviz=9.0.0
- gst-plugins-base=1.22.8
- gstreamer=1.22.8
- gst-plugins-base=1.22.9
- gstreamer=1.22.9
- gtk2=2.24.33
- gts=0.7.6
- gurobi=11.0.0
- harfbuzz=8.3.0
- hdf4=4.2.15
- hdf5=1.14.3
- humanfriendly=10.0
- icu=73.2
- identify=2.5.35
- idna=3.6
- importlib-metadata=7.0.1
- importlib_metadata=7.0.1
- importlib_resources=6.1.1
- iniconfig=2.0.0
- ipopt=3.14.13
- ipykernel=6.28.0
- ipython=8.19.0
- ipywidgets=8.1.1
- isoduration=20.11.0
- ipopt=3.14.14
- ipython=8.21.0
- jedi=0.19.1
- jinja2=3.1.2
- jinja2=3.1.3
- joblib=1.3.2
- json-c=0.17
- json5=0.9.14
- jsonpointer=2.4
- jsonschema=4.20.0
- jsonschema=4.21.1
- jsonschema-specifications=2023.12.1
- jsonschema-with-format-nongpl=4.20.0
- jupyter=1.0.0
- jupyter-lsp=2.2.1
- jupyter_client=8.6.0
- jupyter_console=6.6.3
- jupyter_core=5.6.1
- jupyter_events=0.9.0
- jupyter_server=2.12.1
- jupyter_server_terminals=0.5.1
- jupyterlab=4.0.10
- jupyterlab_pygments=0.3.0
- jupyterlab_server=2.25.2
- jupyterlab_widgets=3.0.9
- jupyter_core=5.7.1
- kealib=1.5.3
- keyutils=1.6.1
- kiwisolver=1.4.5
@ -189,13 +164,13 @@ dependencies:
- libabseil=20230802.1
- libaec=1.1.2
- libarchive=3.7.2
- libarrow=14.0.2
- libarrow-acero=14.0.2
- libarrow-dataset=14.0.2
- libarrow-flight=14.0.2
- libarrow-flight-sql=14.0.2
- libarrow-gandiva=14.0.2
- libarrow-substrait=14.0.2
- libarrow=15.0.0
- libarrow-acero=15.0.0
- libarrow-dataset=15.0.0
- libarrow-flight=15.0.0
- libarrow-flight-sql=15.0.0
- libarrow-gandiva=15.0.0
- libarrow-substrait=15.0.0
- libblas=3.9.0
- libboost-headers=1.84.0
- libbrotlicommon=1.1.0
@ -218,15 +193,15 @@ dependencies:
- libgcc-ng=13.2.0
- libgcrypt=1.10.3
- libgd=2.3.3
- libgdal=3.7.3
- libgdal=3.8.4
- libgfortran-ng=13.2.0
- libgfortran5=13.2.0
- libglib=2.78.3
- libglib=2.78.4
- libgomp=13.2.0
- libgoogle-cloud=2.12.0
- libgpg-error=1.47
- libgrpc=1.59.3
- libhwloc=2.9.1
- libgrpc=1.60.1
- libhwloc=2.9.3
- libiconv=1.17
- libjpeg-turbo=3.0.0
- libkml=1.3.0
@ -239,21 +214,21 @@ dependencies:
- libnsl=2.0.1
- libnuma=2.0.16
- libogg=1.3.4
- libopenblas=0.3.25
- libopenblas=0.3.26
- libopus=1.3.1
- libparquet=14.0.2
- libpng=1.6.39
- libpq=16.1
- libprotobuf=4.24.4
- libparquet=15.0.0
- libpng=1.6.42
- libpq=16.2
- libprotobuf=4.25.1
- libre2-11=2023.06.02
- librsvg=2.56.3
- librttopo=1.1.0
- libscotch=7.0.4
- libsndfile=1.2.2
- libsodium=1.0.18
- libspatialindex=1.9.3
- libspatialite=5.1.0
- libspral=2023.08.02
- libsqlite=3.44.2
- libspral=2023.09.07
- libsqlite=3.45.1
- libssh2=1.11.0
- libstdcxx-ng=13.2.0
- libsystemd0=255
@ -267,91 +242,79 @@ dependencies:
- libxcb=1.15
- libxcrypt=4.4.36
- libxkbcommon=1.6.0
- libxml2=2.11.6
- libxslt=1.1.37
- libxml2=2.12.5
- libxslt=1.1.39
- libzip=1.10.1
- libzlib=1.2.13
- linopy=0.3.2
- linopy=0.3.4
- locket=1.0.0
- lxml=4.9.3
- lz4=4.3.2
- lxml=5.1.0
- lz4=4.3.3
- lz4-c=1.9.4
- lzo=2.10
- mapclassify=2.6.1
- markupsafe=2.1.3
- matplotlib=3.8.2
- matplotlib-base=3.8.2
- markupsafe=2.1.5
- matplotlib=3.8.3
- matplotlib-base=3.8.3
- matplotlib-inline=0.1.6
- memory_profiler=0.61.0
- metis=5.1.0
- minizip=4.0.4
- mistune=3.0.2
- mpg123=1.32.3
- mpg123=1.32.4
- msgpack-python=1.0.7
- mumps-include=5.2.1
- mumps-seq=5.2.1
- munch=4.0.0
- mumps-include=5.6.2
- mumps-seq=5.6.2
- munkres=1.1.4
- mysql-common=8.0.33
- mysql-libs=8.0.33
- nbclient=0.8.0
- nbconvert=7.14.0
- nbconvert-core=7.14.0
- nbconvert-pandoc=7.14.0
- nbformat=5.9.2
- ncurses=6.4
- nest-asyncio=1.5.8
- netcdf4=1.6.5
- networkx=3.2.1
- nodeenv=1.8.0
- nomkl=1.0
- notebook=7.0.6
- notebook-shim=0.2.3
- nspr=4.35
- nss=3.96
- numexpr=2.8.8
- numpy=1.26.2
- openjdk=21.0.1
- nss=3.98
- numexpr=2.9.0
- numpy=1.26.4
- openjdk=21.0.2
- openjpeg=2.5.0
- openpyxl=3.1.2
- openssl=3.2.0
- openssl=3.2.1
- orc=1.9.2
- overrides=7.4.0
- packaging=23.2
- pandas=2.1.4
- pandoc=3.1.3
- pandocfilters=1.5.0
- pandas=2.2.0
- pango=1.50.14
- parso=0.8.3
- partd=1.4.1
- patsy=0.5.5
- patsy=0.5.6
- pcre2=10.42
- pexpect=4.8.0
- pexpect=4.9.0
- pickleshare=0.7.5
- pillow=10.2.0
- pip=23.3.2
- pixman=0.42.2
- pip=24.0
- pixman=0.43.2
- pkgutil-resolve-name=1.3.10
- plac=1.4.2
- platformdirs=4.1.0
- pluggy=1.3.0
- platformdirs=4.2.0
- pluggy=1.4.0
- ply=3.11
- poppler=23.12.0
- poppler=24.02.0
- poppler-data=0.4.12
- postgresql=16.1
- powerplantmatching=0.5.8
- postgresql=16.2
- powerplantmatching=0.5.11
- pre-commit=3.6.2
- progressbar2=4.3.2
- proj=9.3.0
- prometheus_client=0.19.0
- proj=9.3.1
- prompt-toolkit=3.0.42
- prompt_toolkit=3.0.42
- psutil=5.9.7
- psutil=5.9.8
- pthread-stubs=0.4
- ptyprocess=0.7.0
- pulp=2.7.0
- pulseaudio-client=16.1
- pure_eval=0.2.2
- py-cpuinfo=9.0.0
- pyarrow=14.0.2
- pyarrow=15.0.0
- pyarrow-hotfix=0.6
- pycountry=22.3.5
- pycparser=2.21
@ -359,47 +322,42 @@ dependencies:
- pyomo=6.6.1
- pyparsing=3.1.1
- pyproj=3.6.1
- pypsa=0.26.2
- pypsa=0.27.0
- pyqt=5.15.9
- pyqt5-sip=12.12.2
- pyscipopt=4.4.0
- pyshp=2.3.1
- pysocks=1.7.1
- pytables=3.9.2
- pytest=7.4.4
- python=3.11.7
- pytest=8.0.0
- python=3.11.8
- python-dateutil=2.8.2
- python-fastjsonschema=2.19.1
- python-json-logger=2.0.7
- python-tzdata=2023.4
- python-utils=3.8.1
- python-tzdata=2024.1
- python-utils=3.8.2
- python_abi=3.11
- pytz=2023.3.post1
- pytz=2024.1
- pyxlsb=1.0.10
- pyyaml=6.0.1
- pyzmq=25.1.2
- qt-main=5.15.8
- qtconsole-base=5.5.1
- qtpy=2.4.1
- rasterio=1.3.9
- rdma-core=49.0
- rdma-core=50.0
- re2=2023.06.02
- readline=8.2
- referencing=0.32.0
- referencing=0.33.0
- requests=2.31.0
- reretry=0.11.8
- rfc3339-validator=0.1.4
- rfc3986-validator=0.1.1
- rioxarray=0.15.0
- rpds-py=0.16.2
- rtree=1.1.0
- s2n=1.4.1
- scikit-learn=1.3.2
- scipy=1.11.4
- scotch=6.0.9
- seaborn=0.13.0
- seaborn-base=0.13.0
- send2trash=1.8.2
- setuptools=69.0.3
- rioxarray=0.15.1
- rpds-py=0.18.0
- rtree=1.2.0
- s2n=1.4.3
- scikit-learn=1.4.1.post1
- scip=8.1.0
- scipy=1.12.0
- scotch=7.0.4
- seaborn=0.13.2
- seaborn-base=0.13.2
- setuptools=69.1.0
- setuptools-scm=8.0.4
- setuptools_scm=8.0.4
- shapely=2.0.2
@ -409,58 +367,51 @@ dependencies:
- smmap=5.0.0
- snakemake-minimal=7.32.4
- snappy=1.1.10
- sniffio=1.3.0
- snuggs=1.4.7
- sortedcontainers=2.4.0
- soupsieve=2.5
- sqlite=3.44.2
- sqlite=3.45.1
- stack_data=0.6.2
- statsmodels=0.14.1
- stopit=1.1.2
- tabula-py=2.7.0
- tabulate=0.9.0
- tbb=2021.11.0
- tblib=3.0.0
- terminado=0.18.0
- threadpoolctl=3.2.0
- threadpoolctl=3.3.0
- throttler=1.2.2
- tiledb=2.18.2
- tinycss2=1.2.1
- tiledb=2.20.0
- tk=8.6.13
- toml=0.10.2
- tomli=2.0.1
- toolz=0.12.0
- toolz=0.12.1
- toposort=1.10
- tornado=6.3.3
- tqdm=4.66.1
- tqdm=4.66.2
- traitlets=5.14.1
- types-python-dateutil=2.8.19.14
- typing-extensions=4.9.0
- typing_extensions=4.9.0
- typing_utils=0.1.0
- tzcode=2023d
- tzdata=2023d
- tzcode=2024a
- tzdata=2024a
- ucx=1.15.0
- unidecode=1.3.7
- ukkonen=1.0.1
- unidecode=1.3.8
- unixodbc=2.3.12
- uri-template=1.3.0
- uriparser=0.9.7
- urllib3=2.1.0
- urllib3=2.2.1
- validators=0.22.0
- wcwidth=0.2.12
- webcolors=1.13
- webencodings=0.5.1
- websocket-client=1.7.0
- virtualenv=20.25.0
- wcwidth=0.2.13
- wheel=0.42.0
- widgetsnbextension=4.0.9
- wrapt=1.16.0
- xarray=2023.12.0
- xarray=2024.2.0
- xcb-util=0.4.0
- xcb-util-image=0.4.0
- xcb-util-keysyms=0.4.0
- xcb-util-renderutil=0.3.9
- xcb-util-wm=0.4.1
- xerces-c=3.2.5
- xkeyboard-config=2.40
- xkeyboard-config=2.41
- xlrd=2.0.1
- xorg-fixesproto=5.0
- xorg-inputproto=2.3.2
@ -485,7 +436,6 @@ dependencies:
- xz=5.2.6
- yaml=0.2.5
- yte=1.5.4
- zeromq=4.3.5
- zict=3.0.0
- zipp=3.17.0
- zlib=1.2.13

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

Binary file not shown.

Before

Width:  |  Height:  |  Size: 636 KiB

After

Width:  |  Height:  |  Size: 664 KiB

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0
font.family: sans-serif

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2023-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2023-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2023-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2023-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2023-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2023-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2023-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2023-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
rule add_existing_baseyear:

View File

@ -1,4 +1,4 @@
# SPDX-FileCopyrightText: : 2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2023-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2021-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2021-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2021-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2021-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,7 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2020-2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2020-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

View File

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# SPDX-FileCopyrightText: : 2023 The PyPSA-Eur Authors
# SPDX-FileCopyrightText: : 2023-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: MIT
"""

Some files were not shown because too many files have changed in this diff Show More