organise release notes
This commit is contained in:
parent
274eadd085
commit
7f0ed1372c
@ -11,88 +11,155 @@ Future release
|
|||||||
PyPSA-Eur-Sec 0.6.0 (4 October 2021)
|
PyPSA-Eur-Sec 0.6.0 (4 October 2021)
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
|
|
||||||
|
**General**
|
||||||
|
|
||||||
* With this release, we change the license from copyleft GPLv3 to the more
|
* With this release, we change the license from copyleft GPLv3 to the more
|
||||||
liberal MIT license with the consent of all contributors.
|
liberal MIT license with the consent of all contributors.
|
||||||
|
|
||||||
|
|
||||||
|
**New features and functionality**
|
||||||
|
|
||||||
|
* Distinguish costs for home battery storage and inverter from utility-scale
|
||||||
|
battery costs.
|
||||||
|
|
||||||
|
* Separate basic chemicals into HVC (high-value chemicals), chlorine, methanol and ammonia
|
||||||
|
[`#166 <https://github.com/PyPSA/PyPSA-Eur-Sec/pull/166>`_].
|
||||||
|
|
||||||
|
* Add option to specify reuse, primary production, and mechanical and chemical
|
||||||
|
recycling fraction of platics
|
||||||
|
[`#166 <https://github.com/PyPSA/PyPSA-Eur-Sec/pull/166>`_].
|
||||||
|
|
||||||
|
* Include today's district heating shares in myopic optimisation and add option
|
||||||
|
to specify exogenous path for district heating share increase under ``sector:
|
||||||
|
district_heating:`` [`#149 <https://github.com/PyPSA/PyPSA-Eur-Sec/pull/149>`_].
|
||||||
|
|
||||||
|
* Added option for hydrogen liquefaction costs for hydrogen demand in shipping.
|
||||||
|
This introduces a new ``H2 liquid`` bus at each location. It is activated via
|
||||||
|
``sector: shipping_hydrogen_liquefaction: true``.
|
||||||
|
|
||||||
|
* The share of shipping transformed into hydrogen fuel cell can be now defined
|
||||||
|
for different years in the ``config.yaml`` file. The carbon emission from the
|
||||||
|
remaining share is treated as a negative load on the atmospheric carbon dioxide
|
||||||
|
bus, just like aviation and land transport emissions.
|
||||||
|
|
||||||
|
* The transformation of the Steel and Aluminium production can be now defined
|
||||||
|
for different years in the ``config.yaml`` file.
|
||||||
|
|
||||||
|
* Include the option to alter the maximum energy capacity of a store via the
|
||||||
|
``carrier+factor`` in the ``{sector_opts}`` wildcard. This can be useful for
|
||||||
|
sensitivity analyses. Example: ``co2 stored+e2`` multiplies the ``e_nom_max`` by
|
||||||
|
factor 2. In this example, ``e_nom_max`` represents the CO2 sequestration
|
||||||
|
potential in Europe.
|
||||||
|
|
||||||
|
* Use `JRC ENSPRESO database <https://data.jrc.ec.europa.eu/dataset/74ed5a04-7d74-4807-9eab-b94774309d9f>`_ to
|
||||||
|
spatially disaggregate biomass potentials to PyPSA-Eur regions based on
|
||||||
|
overlaps with NUTS2 regions from ENSPRESO (proportional to area) (`#151
|
||||||
|
<https://github.com/PyPSA/pypsa-eur-sec/pull/151>`_).
|
||||||
|
|
||||||
|
* Add option to regionally disaggregate biomass potential to individual nodes
|
||||||
|
(previously given per country, then distributed by population density within)
|
||||||
|
and allow the transport of solid biomass. The transport costs are determined
|
||||||
|
based on the `JRC-EU-Times Bioenergy report
|
||||||
|
<http://dx.doi.org/10.2790/01017>`_ in the new optional rule
|
||||||
|
``build_biomass_transport_costs``. Biomass transport can be activated with the
|
||||||
|
setting ``sector: biomass_transport: true``.
|
||||||
|
|
||||||
|
* Add option to regionally resolve CO2 storage and add CO2 pipeline transport
|
||||||
|
because geological storage potential,
|
||||||
|
CO2 utilisation sites and CO2 capture sites may be separated. The CO2 network
|
||||||
|
is built from zero based on the topology of the electricity grid (greenfield).
|
||||||
|
Pipelines are assumed to be bidirectional and lossless. Furthermore, neither
|
||||||
|
retrofitting of natural gas pipelines (required pressures are too high, 80-160
|
||||||
|
bar vs <80 bar) nor other modes of CO2 transport (by ship, road or rail) are
|
||||||
|
considered. The regional representation of CO2 is activated with the config
|
||||||
|
setting ``sector: co2_network: true`` but is deactivated by default. The
|
||||||
|
global limit for CO2 sequestration now applies to the sum of all CO2 stores
|
||||||
|
via an ``extra_functionality`` constraint.
|
||||||
|
|
||||||
|
* The myopic option can now be used together with different clustering for the
|
||||||
|
generators and the network. The existing renewable capacities are split evenly
|
||||||
|
among the regions in every country [`#144 <https://github.com/PyPSA/PyPSA-Eur-Sec/pull/144>`_].
|
||||||
|
|
||||||
|
* Add optional function to use ``geopy`` to locate entries of the Hotmaps
|
||||||
|
database of industrial sites with missing location based on city and country,
|
||||||
|
which reduces missing entries by half. It can be activated by setting
|
||||||
|
``industry: hotmaps_locate_missing: true``, takes a few minutes longer, and
|
||||||
|
should only be used if spatial resolution is coarser than city level.
|
||||||
|
|
||||||
|
|
||||||
|
**Performance and Structure**
|
||||||
|
|
||||||
* Extended use of ``multiprocessing`` for much better performance
|
* Extended use of ``multiprocessing`` for much better performance
|
||||||
(from up to 20 minutes to less than one minute).
|
(from up to 20 minutes to less than one minute).
|
||||||
* Compatibility with ``atlite>=0.2``. Older versions of ``atlite`` will no longer work.
|
|
||||||
* Handle most input files (or base directories) via ``snakemake.input``.
|
* Handle most input files (or base directories) via ``snakemake.input``.
|
||||||
|
|
||||||
* Use of ``mock_snakemake`` from PyPSA-Eur.
|
* Use of ``mock_snakemake`` from PyPSA-Eur.
|
||||||
* Update ``solve_network`` rule to match implementation in PyPSA-Eur by using ``n.ilopf()`` and remove outdated code using ``pyomo``.
|
|
||||||
Allows the new setting to skip iterated impedance updates with ``solving: options: skip_iterations: true``.
|
* Update ``solve_network`` rule to match implementation in PyPSA-Eur by using
|
||||||
|
``n.ilopf()`` and remove outdated code using ``pyomo``.
|
||||||
|
Allows the new setting to skip iterated impedance updates with ``solving:
|
||||||
|
options: skip_iterations: true``.
|
||||||
|
|
||||||
* The component attributes that are to be overridden are now stored in the folder
|
* The component attributes that are to be overridden are now stored in the folder
|
||||||
``data/override_component_attrs`` analogous to ``pypsa/component_attrs``.
|
``data/override_component_attrs`` analogous to ``pypsa/component_attrs``.
|
||||||
This reduces verbosity and also allows circumventing the ``n.madd()`` hack
|
This reduces verbosity and also allows circumventing the ``n.madd()`` hack
|
||||||
for individual components with non-default attributes.
|
for individual components with non-default attributes.
|
||||||
This data is also tracked in the Snakefile.
|
This data is also tracked in the Snakefile.
|
||||||
|
|
||||||
A function ``helper.override_component_attrs`` was added that loads this data
|
A function ``helper.override_component_attrs`` was added that loads this data
|
||||||
and can pass the overridden component attributes into ``pypsa.Network()``:
|
and can pass the overridden component attributes into ``pypsa.Network()``.
|
||||||
|
|
||||||
>>> from helper import override_component_attrs
|
|
||||||
>>> overrides = override_component_attrs(snakemake.input.overrides)
|
|
||||||
>>> n = pypsa.Network("mynetwork.nc", override_component_attrs=overrides)
|
|
||||||
|
|
||||||
* Add various parameters to ``config.default.yaml`` which were previously hardcoded inside the scripts
|
* Add various parameters to ``config.default.yaml`` which were previously hardcoded inside the scripts
|
||||||
(e.g. energy reference years, BEV settings, solar thermal collector models, geomap colours).
|
(e.g. energy reference years, BEV settings, solar thermal collector models, geomap colours).
|
||||||
|
|
||||||
* Removed stale industry demand rules ``build_industrial_energy_demand_per_country``
|
* Removed stale industry demand rules ``build_industrial_energy_demand_per_country``
|
||||||
and ``build_industrial_demand``. These are superseded with more regionally resolved rules.
|
and ``build_industrial_demand``. These are superseded with more regionally resolved rules.
|
||||||
|
|
||||||
* Use simpler and shorter ``gdf.sjoin()`` function to allocate industrial sites
|
* Use simpler and shorter ``gdf.sjoin()`` function to allocate industrial sites
|
||||||
from the Hotmaps database to onshore regions.
|
from the Hotmaps database to onshore regions.
|
||||||
|
|
||||||
This change also fixes a bug:
|
This change also fixes a bug:
|
||||||
The previous version allocated sites to the closest bus,
|
The previous version allocated sites to the closest bus,
|
||||||
but at country borders (where Voronoi cells are distorted by the borders),
|
but at country borders (where Voronoi cells are distorted by the borders),
|
||||||
this had resulted in e.g. a Spanish site close to the French border
|
this had resulted in e.g. a Spanish site close to the French border
|
||||||
being wrongly allocated to the French bus if the bus center was closer.
|
being wrongly allocated to the French bus if the bus center was closer.
|
||||||
* Bugfix: Corrected calculation of "gas for industry" carbon capture efficiency.
|
|
||||||
* Retrofitting rule is now only triggered if endogeneously optimised.
|
* Retrofitting rule is now only triggered if endogeneously optimised.
|
||||||
|
|
||||||
* Show progress in build rules with ``tqdm`` progress bars.
|
* Show progress in build rules with ``tqdm`` progress bars.
|
||||||
|
|
||||||
* Reduced verbosity of ``Snakefile`` through directory prefixes.
|
* Reduced verbosity of ``Snakefile`` through directory prefixes.
|
||||||
|
|
||||||
* Improve legibility of ``config.default.yaml`` and remove unused options.
|
* Improve legibility of ``config.default.yaml`` and remove unused options.
|
||||||
* Add optional function to use ``geopy`` to locate entries of the Hotmaps database of industrial sites
|
|
||||||
with missing location based on city and country, which reduces missing entries by half. It can be
|
|
||||||
activated by setting ``industry: hotmaps_locate_missing: true``, takes a few minutes longer,
|
|
||||||
and should only be used if spatial resolution is coarser than city level.
|
|
||||||
* Use the country-specific time zone mappings from ``pytz`` rather than a manual mapping.
|
* Use the country-specific time zone mappings from ``pytz`` rather than a manual mapping.
|
||||||
|
|
||||||
* A function ``add_carrier_buses()`` was added to the ``prepare_network`` rule to reduce code duplication.
|
* A function ``add_carrier_buses()`` was added to the ``prepare_network`` rule to reduce code duplication.
|
||||||
|
|
||||||
* In the ``prepare_network`` rule the cost and potential adjustment was moved into an
|
* In the ``prepare_network`` rule the cost and potential adjustment was moved into an
|
||||||
own function ``maybe_adjust_costs_and_potentials()``.
|
own function ``maybe_adjust_costs_and_potentials()``.
|
||||||
* Use ``matplotlibrc`` to set the default plotting style and backend``.
|
|
||||||
|
* Use ``matplotlibrc`` to set the default plotting style and backend.
|
||||||
|
|
||||||
* Added benchmark files for each rule.
|
* Added benchmark files for each rule.
|
||||||
* Implements changes to ``n.snapshot_weightings`` in upcoming PyPSA version (cf. `PyPSA/#227 <https://github.com/PyPSA/PyPSA/pull/227>`_).
|
|
||||||
* New dependencies: ``tqdm``, ``atlite>=0.2.4``, ``pytz`` and ``geopy`` (optional).
|
|
||||||
These are included in the environment specifications of PyPSA-Eur.
|
|
||||||
* Consistent use of ``__main__`` block and further unspecific code cleaning.
|
* Consistent use of ``__main__`` block and further unspecific code cleaning.
|
||||||
* Distinguish costs for home battery storage and inverter from utility-scale battery costs.
|
|
||||||
* Add option to regionally resolve CO2 storage and add CO2 pipeline transport because geological storage potential,
|
|
||||||
CO2 utilisation sites and CO2 capture sites may be separated.
|
**Bugfixes and Compatibility**
|
||||||
The CO2 network is built from zero based on the topology of the electricity grid (greenfield).
|
|
||||||
Pipelines are assumed to be bidirectional and lossless.
|
* Compatibility with ``atlite>=0.2``. Older versions of ``atlite`` will no longer work.
|
||||||
Furthermore, neither retrofitting of natural gas pipelines (required pressures are too high, 80-160 bar vs <80 bar)
|
|
||||||
nor other modes of CO2 transport (by ship, road or rail) are considered.
|
* Corrected calculation of "gas for industry" carbon capture efficiency.
|
||||||
The regional representation of CO2 is activated with the config setting ``sector: co2_network: true`` but is deactivated by default.
|
|
||||||
The global limit for CO2 sequestration now applies to the sum of all CO2 stores via an ``extra_functionality`` constraint.
|
* Implemented changes to ``n.snapshot_weightings`` in PyPSA v0.18.0.
|
||||||
* Added option for hydrogen liquefaction costs for hydrogen demand in shipping.
|
|
||||||
This introduces a new ``H2 liquid`` bus at each location.
|
|
||||||
It is activated via ``sector: shipping_hydrogen_liquefaction: true``.
|
|
||||||
* The share of shipping transformed into hydrogen fuel cell can be now defined for different years in the ``config.yaml`` file. The carbon emission from the remaining share is treated as a negative load on the atmospheric carbon dioxide bus, just like aviation and land transport emissions.
|
|
||||||
* The transformation of the Steel and Aluminium production can be now defined for different years in the ``config.yaml`` file.
|
|
||||||
* Include the option to alter the maximum energy capacity of a store via the ``carrier+factor`` in the ``{sector_opts}`` wildcard. This can be useful for sensitivity analyses. Example: ``co2 stored+e2`` multiplies the ``e_nom_max`` by factor 2. In this example, ``e_nom_max`` represents the CO2 sequestration potential in Europe.
|
|
||||||
* Add option to regionally disaggregate biomass potential to individual nodes
|
|
||||||
(currently given per country, then distributed by population density within)
|
|
||||||
and allow the transport of solid biomass.
|
|
||||||
The transport costs are determined based on the `JRC-EU-Times Bioenergy report <http://dx.doi.org/10.2790/01017>`_
|
|
||||||
in the new optional rule ``build_biomass_transport_costs``.
|
|
||||||
Biomass transport can be activated with the setting ``sector: biomass_transport: true``.
|
|
||||||
* Use `JRC ENSPRESO database <https://data.jrc.ec.europa.eu/dataset/74ed5a04-7d74-4807-9eab-b94774309d9f>`_ to
|
|
||||||
spatially disaggregate biomass potentials to PyPSA-Eur regions based on overlaps with NUTS2 regions from ENSPRESO
|
|
||||||
(proportional to area) (`#151 <https://github.com/PyPSA/pypsa-eur-sec/pull/151>`_).
|
|
||||||
* Compatibility with ``xarray`` version 0.19.
|
* Compatibility with ``xarray`` version 0.19.
|
||||||
* Separate basic chemicals into HVC, chlorine, methanol and ammonia [`#166 <https://github.com/PyPSA/PyPSA-Eur-Sec/pull/166>`_].
|
*
|
||||||
* Add option to specify reuse, primary production, and mechanical and chemical recycling fraction of platics [`#166 <https://github.com/PyPSA/PyPSA-Eur-Sec/pull/166>`_].
|
* New dependencies: ``tqdm``, ``atlite>=0.2.4``, ``pytz`` and ``geopy`` (optional).
|
||||||
* Include today's district heating shares in myopic optimisation and add option to specify exogenous path for district heating share increase under ``sector: district_heating:`` [`#149 <https://github.com/PyPSA/PyPSA-Eur-Sec/pull/149>`_].
|
These are included in the environment specifications of PyPSA-Eur v0.3.0.
|
||||||
* The myopic option can now be used together with different clustering for the generators and the network. The existing renewable capacities are split evenly among the regions in every country [`#144 <https://github.com/PyPSA/PyPSA-Eur-Sec/pull/144>`_].
|
|
||||||
|
|
||||||
|
|
||||||
PyPSA-Eur-Sec 0.5.0 (21st May 2021)
|
PyPSA-Eur-Sec 0.5.0 (21st May 2021)
|
||||||
===================================
|
===================================
|
||||||
|
Loading…
Reference in New Issue
Block a user