prepare release v0.11.0 (#1081)

* prepare release notes v0.11.0

* streamline release notes

* update envs/environment.fixed.yaml

* doc: update workflow DAGs

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* pre-commit formatting [no ci]

* update envs/environment.fixed.yaml

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Fabian Neumann 2024-05-25 22:47:04 +02:00 committed by GitHub
parent 7ad930ee2e
commit 1da76dd1ae
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 1437 additions and 1131 deletions

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.10.0
version: 0.11.0
license: MIT
authors:
- family-names: Brown

View File

@ -3,7 +3,7 @@
# SPDX-License-Identifier: CC0-1.0
# docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#top-level-configuration
version: 0.10.0
version: 0.11.0
tutorial: false
logging:

View File

@ -93,9 +93,9 @@ author = "Tom Brown (KIT, TUB, FIAS), Jonas Hoersch (KIT, FIAS), Fabian Hofmann
# built documents.
#
# The short X.Y version.
version = "0.10"
version = "0.11"
# The full version, including alpha/beta/rc tags.
release = "0.10.0"
release = "0.11.0"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 208 KiB

After

Width:  |  Height:  |  Size: 224 KiB

View File

@ -7,333 +7,365 @@
Release Notes
##########################################
Upcoming Release
================
.. Upcoming Release
.. ================
PyPSA-Eur 0.11.0 (25th May 2024)
=====================================
* Disable option ``electricity: everywhere_powerplants``` by default to save memory in :mod:`simplify_network`.
**New Features**
* Non-essential example configuration files have been moved to
``config/examples``.
* Introduced scenario management to support the simultaneous execution of
multiple scenarios with a single ``snakemake`` call. A ``scenarios.yaml`` file
allows customizable scenario names with configuration overrides. To enable,
set ``run: scenarios: true`` and define the list of scenario names under
``run: name:`` in the configuration file. The scenario file's top-level keys
must match the defined scenario names.
(https://github.com/PyPSA/pypsa-eur/pull/724,
https://github.com/PyPSA/pypsa-eur/pull/975,
https://github.com/PyPSA/pypsa-eur/pull/989,
https://github.com/PyPSA/pypsa-eur/pull/993,
https://github.com/PyPSA/pypsa-eur/pull/1011)
* Bugfix: The configuration setting ``electricity:
estimate_renewable_capacities: enable:`` for rule :mod:`add_electricity` is
not compatible with ``foresight: myopic``, as the former adds existing
renewable capacities in a different way in :mod:`add_existing_baseyear`.
The logic was changed so that adding existing renewable capacities is now
skipped in :mod:`add_electricity` if the foresight mode is ``myopic``.
- A scenarios template file ``config/scenarios.template.yaml`` is included and
copied to ``config/scenarios.yaml`` on first use.
- The scenario file can be changed via ``run: scenarios: file:``.
- Activating scenario management with ``run: scenarios: enable: true``
introduces a new wildcard ``{run}``. Configuration settings may now depend
on this wildcard. A new ``config_provider()`` function is used in the
``Snakefile`` and ``.smk`` files to handle wildcard values.
- Scenario files can be programmatically created using
``config/create_scenarios.py``. This script can be run with ``snakemake -j1
create_scenarios``.
- The setting ``run: name: all`` will run all scenarios in
``config/scenarios.yaml``. Otherwise, only the scenarios listed under ``run:
name:`` will run.
- The setting ``run: shared_resources:`` indicates whether resources should be
encapsulated by ``run: name:``. The special setting ``run: shared_resources:
base`` shares resources until ``add_electricity`` that do not contain
wildcards other than ``{"technology", "year", "scope"}``.
- Added new configuration options for all ``{opts}`` and ``{sector_opts}``
wildcard values to create a unique configuration file (``config.yaml``) per
PyPSA network file using ``update_config_from_wildcards()``. This function
updates the ``snakemake.config`` object with settings from wildcards.
- The cost data was moved from ``data/costs_{year}.csv`` to
``resources/costs_{year}.csv``. The ``retrieve_cost_data`` rule now calls a
Python script.
- Time clustering settings moved to ``clustering: temporal:`` from
``snapshots:``, simplifying scenario management.
- Collection rules have a new wildcard ``run=config["run"]["name"]`` to
collect outputs across scenarios.
- Scenarios can be encapsulated in a directory using ``run: prefix:``.
- The ``{sector_opts}`` wildcard is no longer used by default. All scenario
definitions are now in ``config.yaml``.
- **Warning:** Scenario management with myopic or perfect foresight pathway
optimization requires the first investment period to be shared across all
scenarios. The ``wildcard_constraints`` for the ``add_existing_baseyear``
rule do not accept wildcard-aware input functions.
* Bugfix: Make sure that gas-fired power plants are correctly added as OCGT or
CCGT in :mod:`add_electricity`. Previously they were always added as OCGT.
* Added default values for power distribution losses, assuming uniform losses of
3% on distribution grid links (cf. ``sector: transmission_efficiency:
electricity distribution grid: efficiency_static: 0.97``). Since distribution
losses are included in national load reports (cf. `this report
<https://nbviewer.org/github/Open-Power-System-Data/datapackage_timeseries/blob/2020-10-06/main.ipynb>`_),
these are deducted from the national load time series to avoid double counting
of losses. Further extensions to country-specific loss factors and
developments by planning horizon are planned.
* Doubled solar rooftop potentials to roughly 1 TW for Europe based on `recent
European Commission reports
<https://www.epj-pv.org/articles/epjpv/full_html/2024/01/pv230071/pv230071.html>`_.
* Remove exogenously set share of rooftop PV (``costs: rooftop_share:``).
Rooftop and utility-scale PV are now largely handled as separate technologies
with endogenous shares.
* New technology, solar PV with single-axis horizontal tracking (on a N-S axis),
with a carrier called ``solar-hsat`` to the networks. The default option for adding
this technology is set to ``true`` in the ``config.yaml``.
* The technology-data version was updated to v0.9.0.
* Bugfix to avoid duplicated offshore regions.
* Added option ``industry: HVC_environment_sequestration_fraction:`` to specify
the fraction of carbon contained plastics that is permanently sequestered in
landfill. The default assumption is that all carbon contained in plastics is
eventually released to the atmosphere.
* Added option for building waste-to-energy plants with and without carbon
capture to consume non-recycled and non-sequestered plastics. The config
settings are ``industry: waste_to_energy:`` and ``industry:
waste_to_energy_cc``. This does not include municipal solid waste.
* Bump minimum ``powerplantmatching`` version to v0.5.15.
* Add floating wind technology for water depths below 60m
* Add config ``run: shared_resources: exclude:`` to specify additional files
that should be excluded from shared resources with the setting ``run:
shared_resources: base``. The function ``_helpers/get_run_path()`` now takes
an additional keyword argument ``exclude_from_shared`` with a list of files
that should not be shared. This keyword argument accepts a list of strings
where the string only needs to match the start of a filename (e.g.
``"transport_data"`` would exclude both ``transport_data.csv`` and
``transport_data_{simpl}_{clusters}.csv`` from being shared across scenarios.
* Move switch ``run: shared_resources:`` to ``run: shared_resources: policy:``.
* Add config land_transport_demand_factor to model growth in land transport demand for different time horizons.
* Allow dictionary for the config aviation_demand_factor.
* Add option to post-discretize line and link capacities based on unit sizes and
rounding thresholds specified in the configuration under ``solving: options:
post_discretization:`` when iterative solving is enables (``solving: optiosn:
skip_iterations: false``). This option is disabled by default.
* Group existing capacities to the earlier grouping_year for consistency with optimized capacities.
* Update data bundle:
- Merge electricity-only and sector-coupled data bundles into `one bundle
<https://zenodo.org/records/10973944>`_. This means that the rule
``retrieve_sector_databundle`` was removed.
- Include rasterised ``natura.tiff`` in data bundle and remove rule
``retrieve_natura_raster``.
- Remove rule ``build_natura_raster`` as this rule is rarely run and increases
the data bundle size considerably.
- Remove outdated files from data bundle (e.g., Eurostat energy balances)
- Reduce spatial scope of GEBCO bathymetry data to Europe to save space.
- Remove the use of a separate data bundle for tutorials.
- Directly download `Hotmaps Industrial Database
<https://gitlab.com/hotmaps/industrial_sites/industrial_sites_Industrial_Database/-/blob/master/data/Industrial_Database.csv>`__
from source and remove ``Industrial_Database.csv`` from data bundle.
* bugfix: installed heating capacities were 5% lower than existing heating capacities
* Include gas and oil fields and saline aquifers in estimation of CO2 sequestration potential.
* bugfix: convert Strings to pathlib.Path objects as input to ConfigSettings
* bugfix: fix distinction of temperature-dependent correction factors for the
energy demand of electric vehicles, ICES fuel cell cars.
* Allow the use of more solvers in clustering (Xpress, COPT, Gurobi, CPLEX, SCIP, MOSEK).
* Enhanced support for choosing different weather years
(https://github.com/PyPSA/pypsa-eur/pull/204):
- Processed energy statistics from eurostat (1990-2021) and IDEES (2000-2015)
are now initially stored for all available years and filtered by the year
given in ``energy: energy_totals_year:``.
* Enhanced support for choosing different weather years.
(https://github.com/PyPSA/pypsa-eur/pull/204)
- Processed energy statistics from Eurostat (1990-2021) and IDEES (2000-2015)
are stored for all available years and filtered by the year in ``energy:
energy_totals_year:``.
- Added option to supplement electricity load data with synthetic time series
for years not contained in OPSD (from https://zenodo.org/records/10820928,
``load: supplement_synthetic:``).
- The total annual heat demand for years not contained in the energy
statistics by eurostat (1990-2021) or IDEES (2000-2015) are scaled based on
a regression between the total number of heating degree days and the total
annual heat demand between the years 2007-2021, assuming a similar building
stock.
for years not in OPSD (from https://zenodo.org/records/10820928, ``load:
supplement_synthetic:``).
- Total annual heat demand for years not in Eurostat (1990-2021) or IDEES
(2000-2015) is scaled based on a regression between heating degree days and
heat demand for 2007-2021, assuming a similar building stock.
- Added option to scale annual hydro-electricity generation data for years not
contained in the in EIA (1980-2021) based on a regression between annual
generation and total runoff per country for the years 1980-2021
(``renewable: hydro: eia_approximate_missing:``)
- Added option to normalize annual hydro generation data by the associated
installed capacity reported by EIA (1980-2021) in order to eliminate changes
in generation due to newly built capacity (``renewable: hydro:
eia_approximate_missing: eia_correct_by_capacity:``).
in EIA (1980-2021) based on a regression between annual generation and total
runoff per country for 1980-2021 (``renewable: hydro:
eia_approximate_missing:``).
- Added option to normalize annual hydro generation data by the installed
capacity reported by EIA (1980-2021) to eliminate changes due to newly built
capacity (``renewable: hydro: eia_approximate_missing:
eia_correct_by_capacity:``).
- Added option to make hydro generation data independent of weather year
(``renewable: hydro: eia_approximate_missing: eia_norm_year:``).
- Added option to drop leap days (``enable: drop_leap_day:``).
- Added option to make electric load data independent of weather year
(``load: fixed_year:``).
- Include time series of Swiss number of passenger vehicles from the `Swiss
Federal Statistical Office
<https://www.bfs.admin.ch/bfs/en/home/statistics/mobility-transport/transport-infrastructure-vehicles/vehicles/road-vehicles-stock-level-motorisation.html>`__.
- Added option to make electric load data independent of weather year (``load:
fixed_year:``).
- Include time series of Swiss passenger vehicles from the Swiss Federal
Statistical Office.
- Updated hydro-electricity generation and capacity data from EIA.
- The easiest way to sweep over multiple weather years is to use the new
scenario management. An example for the necessary `create_scenarios.py`
script can be found in this `Github gist
- The easiest way to use multiple weather years is with the new scenario
management. An example `create_scenarios.py` script is available in this
`Github gist
<https://gist.github.com/fneum/47b857862dd9148a22eca5a2e85caa9a>`__.
* Removed rule ``copy_config``. Instead, a config file is created for each
network output of the ``solve_*`` rules, with the same content as ``n.meta``.
* New renewable technologies:
- Solar PV with single-axis horizontal tracking (N-S axis), carrier:
``solar-hsat``. (https://github.com/PyPSA/pypsa-eur/pull/1066)
- Floating offshore wind technology for water depths below 60m, carrier:
``offwind-float``. (https://github.com/PyPSA/pypsa-eur/pull/773)
* Added default values for power distribution losses, assuming uniform 3% losses
on distribution grid links. These are deducted from national load time series
to avoid double counting. Extensions for country-specific loss factors and
planning horizon developments are planned.
* Added ``industry: HVC_environment_sequestration_fraction:`` to specify the
fraction of carbon in plastics that is permanently sequestered in landfills.
The default assumption is that all carbon in plastics is eventually released
to the atmosphere. (https://github.com/PyPSA/pypsa-eur/pull/1060)
* Added options for building waste-to-energy plants with and without carbon
capture to consume non-recycled and non-sequestered plastics. Config settings:
``industry: waste_to_energy:`` and ``industry: waste_to_energy_cc``. This
excludes municipal solid waste. (https://github.com/PyPSA/pypsa-eur/pull/1060)
* Added option to post-discretize line and link capacities based on unit sizes
and rounding thresholds in the configuration under ``solving: options:
post_discretization:``. This is disabled by default.
(https://github.com/PyPSA/pypsa-eur/pull/1064)
* Time aggregation for sector-coupled networks is now its own rule
:mod:`time_aggregation`. Time aggregation is constant over planning horizons
of the same network when using time step segmentation.
(https://github.com/PyPSA/pypsa-eur/pull/1065,
https://github.com/PyPSA/pypsa-eur/pull/1075)
* Added config ``run: shared_resources: exclude:`` to specify files excluded
from shared resources with ``run: shared_resources: base``. The function
``_helpers/get_run_path()`` now takes an additional keyword argument
``exclude_from_shared`` with a list of files that should not be shared.
(https://github.com/PyPSA/pypsa-eur/pull/1050)
* Added existing biomass boilers in :mod:`add_existing_baseyear`.
(https://github.com/PyPSA/pypsa-eur/pull/951)
* Added new HVDC transmission projects from `TYNDP 2024 draft projects
<https://tyndp.entsoe.eu/news/176-pan-european-electricity-transmission-projects-and-33-storage-projects-will-be-assessed-in-tyndp-2024>`__.
(https://github.com/PyPSA/pypsa-eur/pull/982)
* Upgrade to Snakemake v8.5+. This version is the new minimum version required.
To upgrade an existing environment, run ``conda install -c bioconda
snakemake-minimal">=8.5"`` and ``pip install snakemake-storage-plugin-http``
(https://github.com/PyPSA/pypsa-eur/pull/825).
* Linearly interpolated missing investment periods in year-dependent
configuration options. (https://github.com/PyPSA/pypsa-eur/pull/943)
* Corrected a bug leading to power plants operating after their DateOut
(https://github.com/PyPSA/pypsa-eur/pull/958). Added additional grouping years
before 1980.
* Added shapes to the ``netCDF`` files for different stages of the network
object in `base_network`, `simplify_network`, and `cluster_network`. The
`build_bus_regions` rule is now integrated into the `base_network` rule.
(https://github.com/PyPSA/pypsa-eur/pull/1013,
https://github.com/PyPSA/pypsa-eur/pull/1051)
* Add decommissioning of existing renewables assets in `add_existing_baseyear`.
* Added config ``land_transport_demand_factor`` to model growth in land
transport demand for different time horizons.
* The Eurostat data was updated to the 2023 version in :mod:`build_energy_totals`.
* Allowed dictionary for ``aviation_demand_factor`` to specify changes in
aviation demand by investment period.
* The latest `Swiss energy totals
<https://www.bfe.admin.ch/bfe/de/home/versorgung/statistik-und-geodaten/energiestatistiken/energieverbrauch-nach-verwendungszweck.html/>`__
have been updated to the 2023 version.
* Allowed more solvers in clustering (Xpress, COPT, Gurobi, CPLEX, SCIP, MOSEK).
(https://github.com/PyPSA/pypsa-eur/pull/949)
* The JRC-IDEES data is only available until 2015. For energy totals years (``energy: energy_totals_year``) after
2015, the data scaled using the ratio of Eurostat data reported for the energy
totals year and 2015.
* Added option to download cost data from custom fork of ``technology-data``.
(https://github.com/PyPSA/pypsa-eur/pull/970)
* The default energy totals year (``energy: energy_totals_year``) was updated to 2019.
* Added ``nodal_supply_energy`` to :mod:`make_summary`.
(https://github.com/PyPSA/pypsa-eur/pull/1046)
* Upgrade default techno-economic assumptions to ``technology-data`` v0.8.1.
**Breaking Changes**
* Add possibility to download cost data from custom fork of ``technology-data``.
* Upgraded to Snakemake v8.5+. This version is the new minimum requirement. To
upgrade an existing environment, run ``conda install -c bioconda
snakemake-minimal">=8.5"`` and ``pip install snakemake-storage-plugin-http``.
(https://github.com/PyPSA/pypsa-eur/pull/825)
* Linearly interpolate missing investment periods in year-dependent
configuration options.
* Removed exogenously set share of rooftop PV (``costs: rooftop_share:``).
Rooftop and utility-scale PV are now separate technologies with endogenous
shares.
* Added new scenario management that supports the simultaneous execution of
multiple scenarios with a single ``snakemake`` call. For this purpose, a
``scenarios.yaml`` file is introduced which contains customizable scenario
names with configuration overrides. To enable it, set the ``run: scenarios:
true`` and define the list of scenario names to run under ``run: name:`` in
the configuration file. The latter must be a subset of toplevel keys in the
scenario file.
* Removed rule ``copy_config``. Instead, a config file is created for each
network output of the ``solve_*`` rules, with the same content as ``n.meta``.
(https://github.com/PyPSA/pypsa-eur/pull/965)
- To get started, a scenarios template file ``config/scenarios.template.yaml``
is included in the repository, which is copied to ``config/scenarios.yaml``
on first use.
* Moved switch ``run: shared_resources:`` to ``run: shared_resources: policy:``.
- The scenario file can be changed via ``run: scenarios: file:``.
**Changes**
- If scenario management is activated with ``run: scenarios: enable: true``, a
new wildcard ``{run}`` is introduced. This means that the configuration
settings may depend on the new ``{run}`` wildcard. Therefore, a new
``config_provider()`` function is used in the ``Snakefile`` and ``.smk``
files, which takes wildcard values into account. The calls to the ``config``
object have been reduced in ``.smk`` files since there is no awareness of
wildcard values outside rule definitions.
* Updated, merged, and reduced data bundle:
(https://github.com/PyPSA/pypsa-eur/pull/1020,
https://github.com/PyPSA/pypsa-eur/pull/1027)
- The scenario files can also be programmatically created using the template
script ``config/create_scenarios.py``. This script can be run with
``snakemake -j1 create_scenarios`` and creates the scenarios file referenced
under ``run: scenarios: file:``.
- Merged electricity-only and sector-coupled data bundles into one bundle.
This removed the ``retrieve_sector_databundle`` rule.
- Included rasterised ``natura.tiff`` in the data bundle and removed the
``retrieve_natura_raster`` rule.
- Removed the ``build_natura_raster`` rule due to its infrequent use and
significant data bundle size increase.
- Removed outdated files from the data bundle (e.g., Eurostat energy
balances).
- Reduced the spatial scope of GEBCO bathymetry data to Europe to save space.
- Removed a separate data bundle for tutorials.
- Directly downloaded the `Hotmaps Industrial Database
<https://gitlab.com/hotmaps/industrial_sites/industrial_sites_Industrial_Database/-/blob/master/data/Industrial_Database.csv>`__
from the source, removing ``Industrial_Database.csv`` from the data bundle.
- The setting ``run: name: all`` will run all scenarios in
``config/scenarios.yaml``. Otherwise, it will run those passed as list in
``run: name:`` as long as ``run: scenarios: enable: true``.
* Updated energy statistics: (https://github.com/PyPSA/pypsa-eur/pull/947,
https://github.com/PyPSA/pypsa-eur/pull/973,
https://github.com/PyPSA/pypsa-eur/pull/990,
https://github.com/PyPSA/pypsa-eur/pull/1025,
https://github.com/PyPSA/pypsa-eur/pull/1074)
- The setting ``run: shared_resources:`` indicates via a boolean whether the
resources should be encapsulated by the ``run: name:``. The special setting
``run: shared_resources: base`` shares resources until ``add_electricity``
that do not contain wildcards other than ``{"technology", "year",
"scope"}``.
- Updated Eurostat data to the 2023 version in :mod:`build_energy_totals`.
- Updated the latest Swiss energy totals to the 2023 version.
- Scaled JRC-IDEES data using the ratio of Eurostat data for energy totals
years after 2015 and 2015.
- Updated default energy totals year to 2019.
- Updated energy balances for residential demands (space, water, cooking) in
JRC-IDEES data with newer Eurostat values.
- Added new configuration options for all ``{opts}`` and ``{sector_opts}``
wildcard values to create a unique configuration file (``config.yaml``) per
PyPSA network file. This is done with the help of a new function
``update_config_from_wildcards()`` which parses configuration settings from
wildcards and updates the ``snakemake.config`` object. These updated
configuration settings are used in the scripts rather than directly parsed
values from ``snakemake.wildcards``.
* Improved documentation: (https://github.com/PyPSA/pypsa-eur/pull/1017,
https://github.com/PyPSA/pypsa-eur/pull/1014)
- The cost data was moved from ``data/costs_{year}.csv`` to
``resources/costs_{year}.csv`` since it depends on configuration settings.
The ``retrieve_cost_data`` rule was changed to calling a Python script.
- Clarified that ``solving: rolling_horizon:`` only works for
:mod:`solve_operations_network`, not for networks with sector-coupling or
investment variables.
- Clarified suffix usage in `add_existing_baseyear`.
- Added documentation section for contributing documentation.
- Moved time clustering settings to ``clustering: temporal:`` from
``snapshots:`` so that the latter is only used to define the
``pandas.DatetimeIndex`` which simplifies the scenario management.
* Included gas and oil fields and saline aquifers for estimating carbon
sequestration potentials. (https://github.com/PyPSA/pypsa-eur/pull/1010,
https://github.com/PyPSA/pypsa-eur/pull/983)
- Collection rules get a new wildcard ``run=config["run"]["name"]`` so they
can collect outputs across different scenarios.
* Doubled solar rooftop potentials to roughly 1 TW for Europe based on recent
European Commission reports.
- It is further possible to encapsulate your scenarios in a directory using
the setting ``run: prefix:``.
* Consistently sourced data on existing renewable capacities from
``powerplantmatching``. Removed ``retrieve_irena`` rule. Updated the dataset
to include 2023 values. (https://github.com/PyPSA/pypsa-eur/pull/1018)
- **Warning:** One caveat remains for the scenario management with myopic or
perfect foresight pathway optimisation. The first investment period must be
shared across all scenarios. The reason is that the ``wildcard_constraints``
defined for the rule ``add_existing_baseyear`` do not accept wildcard-aware
input functions (cf.
`https://github.com/snakemake/snakemake/issues/2703`_).
* Added methanol consumption in industry as reported in the DECHEMA report
directly as methanol demand. (https://github.com/PyPSA/pypsa-eur/pull/1068)
* The outputs of the rule ``retrieve_gas_infrastructure_data`` no longer
marked as ``protected()`` as the download size is small.
* Adapted disabling of transmission expansion in myopic foresight optimizations
when the limit is reached to handle cost limits.
(https://github.com/PyPSA/pypsa-eur/pull/952,
https://github.com/PyPSA/pypsa-eur/pull/1076)
* Bugfix: allow modelling sector-coupled landlocked regions. (Fixed handling of offshore wind.)
* Improved the behavior of ``agg_p_nom_limits``: Moved configuration to
``solving``; added the ability to aggregate all ``offwind`` types; added
option to consider existing capacities; added option to distinguish by
planning horizon. (https://github.com/PyPSA/pypsa-eur/pull/1023)
* Bugfix: approximation of hydro power generation if Portugal or Spain are not included works now.
* Disabled ``electricity: everywhere_powerplants``` by default to save memory in
:mod:`simplify_network`.
* Bugfix: copy_timeslice does not copy anymore, if country not present in load data.
* Moved non-essential example configuration files to ``config/examples``.
* Adapt the disabling of transmission expansion in myopic foresight optimisations when limit is already reached to also handle cost limits.
* Outputs of the retrieve rules are no longer marked as ``protected()``.
* Fix duplicated years and grouping years reference in `add_land_use_constraint_m`.
* Improved carbon budget distribution plot.
(https://github.com/PyPSA/pypsa-eur/pull/1070)
* Fix type error with `m` option in `cluster_network`.
* Moved all graphics to ``doc/img``.
(https://github.com/PyPSA/pypsa-eur/pull/1052)
* Fix error with `symbol` of `buses` in `simplify_network`.
* Connection costs calculated in :mod:`simplify_network` are no longer written
to file. (https://github.com/PyPSA/pypsa-eur/pull/1031)
* Fix index of existing capacities in `add_power_capacities_installed_before_baseyear` with `m` option.
**Bugs and Compatibility**
* Fix custom busmap read in `cluster_network`.
* Updated ``technology-data`` to version v0.9.0.
* Add `nodal_supply_energy` to `make_summary`.
* Bumped minimum ``powerplantmatching`` version to v0.5.15.
(https://github.com/PyPSA/pypsa-eur/pull/1057)
* Data on existing renewable capacities is now consistently taken from powerplantmatching (instead of being retrieved separately); the dataset has also been updated to include 2023 values.
* Bugfix: The configuration setting ``electricity:
estimate_renewable_capacities: enable:`` for rule :mod:`add_electricity` is
not compatible with ``foresight: myopic``. The logic now skips adding existing
renewable capacities in :mod:`add_electricity` if the foresight mode is
``myopic``. (https://github.com/PyPSA/pypsa-eur/pull/1080)
* Added shapes to .nc file for different stages of the network object in `base_network`, `simplify_network`, and `cluster_network`; the `build_bus_regions` rule is now integrated into the `base_network` rule.
* Improved the behaviour of `agg_p_nom_limits`:
* Bugfix: Ensure gas-fired power plants are correctly added as OCGT or CCGT in
:mod:`add_electricity`. Previously, they were always added as OCGT.
- Moved the associated configuration to `solving`. This allows *Snakemake* to correctly decide which rules to run when the configuration changes.
* Bugfix: Fix distinction of temperature-dependent correction factors for the
energy demand of electric vehicles and ICEs fuel cell cars.
(https://github.com/PyPSA/pypsa-eur/pull/957)
- Added the ability to enable aggregation of all *offwind* types (*offwind-ac* and *offwind-dc*) when writing the constraint.
* Bugfix: Ensure all industry coal demands are considered when using
``sector_ratios_fraction_future``.
(https://github.com/PyPSA/pypsa-eur/pull/1047)
- Added the possibility to take existing capacities into account when writing the constraint.
* Bugfix: Add existing heat pumps to low-voltage level.
(https://github.com/PyPSA/pypsa-eur/pull/948)
- Added the possibility to have a different file for each planning horizon.
* Fixed gas network retrofitting to hydrogen in :mod:`add_brownfield` for myopic
pathway studies. (https://github.com/PyPSA/pypsa-eur/pull/1036)
* Fix p_nom_min of renewables generators for myopic approach and add check of existing capacities in `add_land_use_constraint_m`.
* Bugfix: Consider decommissioning of existing renewable assets in
:mod:`add_existing_baseyear`. (https://github.com/PyPSA/pypsa-eur/pull/1001,
https://github.com/PyPSA/pypsa-eur/pull/959)
* Add documentation section for how to contribute documentation
* Bugfix: Adjust build year groups of existing capacities for consistency with
optimized capacities per planning horizon. The previous setup neglected some
existing heating capacities. (https://github.com/PyPSA/pypsa-eur/pull/1019)
* Clarify suffix usage in `add_existing_baseyear`.
* Bugfix: Corrected a bug causing power plants to operate after their
``DateOut``. Added additional grouping years before 1980.
(https://github.com/PyPSA/pypsa-eur/pull/958)
* The ``{sector_opts}`` wildcard is now not used by default. All scenario definitions are now done in the ``config.yaml`` file.
* Bugfix: Allow modeling sector-coupled landlocked regions by handling the
absence of offshore wind. (https://github.com/PyPSA/pypsa-eur/pull/944)
* Fix gas network retrofitting in `add_brownfield`.
* Bugfix: Correct approximation of hydropower generation if Portugal or Spain
are not included. (https://github.com/PyPSA/pypsa-eur/pull/1054)
* Time aggregation for sector-coupled networks have been split into its own rule. When using time step segmentation, time aggregation is constant over planning horizons of the same network.
* Bugfix: In :mod:`build_electricity_demand`, ensure load data is only added if
the country is included in the configuration.
(https://github.com/PyPSA/pypsa-eur/pull/1054)
* Clarify that the rolling-horizon setting ``solving: rolling_horizon:`` only works for the rule :mod:`solve_operations_network` and not for networks with sector-coupling or investment variables.
* Bugfix: Skip heat bus for CHPs in areas without central heating.
(https://github.com/PyPSA/pypsa-eur/pull/1021)
* Fix non steel related coal demand during transition (using `sector_ratios_fraction_future`).
* Bugfix: Avoid duplicated offshore regions.
* Fix fill missing data in `build_industry_sector_ratios_intermediate`.
* Fixed type error with ``m`` option in :mod:`cluster_network`.
(https://github.com/PyPSA/pypsa-eur/pull/986)
* Add methanol consumption in industry as reported in `DECHEMA report
<https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf>`__
directly as methanol demand rather than with fixed methane and electricity
demands from today's industry sector ratios.
* Fixed error with ``symbol`` column of buses in :mod:`simplify_network`.
(https://github.com/PyPSA/pypsa-eur/pull/987)
* Mark downloaded files as ``ancient`` rather than ``protected``.
* Fixed index of existing capacities in
``add_power_capacities_installed_before_baseyear`` with ``m`` option.
(https://github.com/PyPSA/pypsa-eur/pull/1002)
* Fix file name encoding in optional rule :mod:`build_biomass_transport_costs` depending on the operating system.
* Fixed reading in custom busmaps in :mod:`cluster_network`.
(https://github.com/PyPSA/pypsa-eur/pull/1008)
* Energy balances for residential demands (space, water, cooking) in the
JRC-IDEES data are updated with newer values from eurostat based on a
disaggregated household energy balance.
(https://github.com/PyPSA/pypsa-eur/pull/1025)
* Fixed ``p_nom_min`` of renewables generators for myopic approach and added
check of existing capacities in ``add_land_use_constraint_m``.
(https://github.com/PyPSA/pypsa-eur/pull/1022,
https://github.com/PyPSA/pypsa-eur/pull/1029)
* Fixed duplicated years and grouping years reference in
``add_land_use_constraint_m``. (https://github.com/PyPSA/pypsa-eur/pull/991,
https://github.com/PyPSA/pypsa-eur/pull/968)
* Fixed filling of missing data in
``build_industry_sector_ratios_intermediate``.
(https://github.com/PyPSA/pypsa-eur/pull/1004)
* Fixed file name encoding in optional rule :mod:`build_biomass_transport_costs`
depending on the operating system.
(https://github.com/PyPSA/pypsa-eur/pull/769)
* Technical fix for constraint function ``add_operational_reserve_margin``.
(https://github.com/PyPSA/pypsa-eur/pull/1071)
* Technical fix for constraint function ``add_BAU_constraints``.
(https://github.com/PyPSA/pypsa-eur/pull/1024)
* Fixed network clustering and simplification issues caused by adding TYNDP
links. (https://github.com/PyPSA/pypsa-eur/pull/1067)
* Bugfix: Ensure correct indexing of weights in :mod:`cluster_network`.
(https://github.com/PyPSA/pypsa-eur/pull/988)
* Bugfix: Only sanitize locations when there are buses with a location.
(https://github.com/PyPSA/pypsa-eur/pull/971)
PyPSA-Eur 0.10.0 (19th February 2024)
=====================================

View File

@ -132,47 +132,51 @@ 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.38 0.6 0.85", style="rounded"];
1[label = "prepare_network\nll: copt", color = "0.53 0.6 0.85", style="rounded"];
2[label = "add_extra_components", color = "0.01 0.6 0.85", style="rounded"];
3[label = "cluster_network\nclusters: 6", color = "0.03 0.6 0.85", style="rounded"];
4[label = "simplify_network\nsimpl: ", color = "0.42 0.6 0.85", style="rounded"];
5[label = "add_electricity", color = "0.10 0.6 0.85", style="rounded"];
6[label = "build_renewable_profiles\ntechnology: solar", color = "0.50 0.6 0.85", style="rounded"];
7[label = "base_network", color = "0.22 0.6 0.85", style="rounded"];
8[label = "build_shapes", color = "0.44 0.6 0.85", style="rounded"];
9[label = "retrieve_databundle", color = "0.29 0.6 0.85", style="rounded"];
10[label = "retrieve_cutout\ncutout: be-03-2013-era5", color = "0.49 0.6 0.85", style="rounded"];
11[label = "build_renewable_profiles\ntechnology: onwind", color = "0.50 0.6 0.85", style="rounded"];
12[label = "build_renewable_profiles\ntechnology: offwind-ac", color = "0.50 0.6 0.85", style="rounded"];
13[label = "build_ship_raster", color = "0.19 0.6 0.85", style="rounded"];
14[label = "retrieve_ship_raster", color = "0.35 0.6 0.85", style="rounded"];
15[label = "build_renewable_profiles\ntechnology: offwind-dc", color = "0.50 0.6 0.85", style="rounded"];
16[label = "build_line_rating", color = "0.60 0.6 0.85", style="rounded"];
17[label = "retrieve_cost_data\nyear: 2030", color = "0.59 0.6 0.85", style="rounded"];
18[label = "build_powerplants", color = "0.06 0.6 0.85", style="rounded"];
19[label = "build_electricity_demand", color = "0.13 0.6 0.85", style="rounded"];
20[label = "retrieve_electricity_demand", color = "0.49 0.6 0.85", style="rounded"];
21[label = "retrieve_synthetic_electricity_demand", color = "0.41 0.6 0.85", style="rounded"];
0[label = "solve_network", color = "0.21 0.6 0.85", style="rounded"];
1[label = "prepare_network\nll: copt\nopts: ", color = "0.51 0.6 0.85", style="rounded"];
2[label = "add_extra_components", color = "0.43 0.6 0.85", style="rounded"];
3[label = "cluster_network\nclusters: 6", color = "0.17 0.6 0.85", style="rounded"];
4[label = "simplify_network\nsimpl: ", color = "0.49 0.6 0.85", style="rounded"];
5[label = "add_electricity", color = "0.26 0.6 0.85", style="rounded"];
6[label = "build_renewable_profiles\ntechnology: solar", color = "0.02 0.6 0.85", style="rounded"];
7[label = "base_network", color = "0.35 0.6 0.85", style="rounded"];
8[label = "build_shapes", color = "0.62 0.6 0.85", style="rounded"];
9[label = "retrieve_databundle", color = "0.24 0.6 0.85", style="rounded"];
10[label = "retrieve_cutout\ncutout: be-03-2013-era5", color = "0.36 0.6 0.85", style="rounded"];
11[label = "build_renewable_profiles\ntechnology: solar-hsat", color = "0.02 0.6 0.85", style="rounded"];
12[label = "build_renewable_profiles\ntechnology: onwind", color = "0.02 0.6 0.85", style="rounded"];
13[label = "build_renewable_profiles\ntechnology: offwind-ac", color = "0.02 0.6 0.85", style="rounded"];
14[label = "build_ship_raster", color = "0.08 0.6 0.85", style="rounded"];
15[label = "retrieve_ship_raster", color = "0.28 0.6 0.85", style="rounded"];
16[label = "build_renewable_profiles\ntechnology: offwind-dc", color = "0.02 0.6 0.85", style="rounded"];
17[label = "build_renewable_profiles\ntechnology: offwind-float", color = "0.02 0.6 0.85", style="rounded"];
18[label = "build_line_rating", color = "0.07 0.6 0.85", style="rounded"];
19[label = "retrieve_cost_data\nyear: 2030", color = "0.47 0.6 0.85", style="rounded"];
20[label = "build_powerplants", color = "0.11 0.6 0.85", style="rounded"];
21[label = "build_electricity_demand", color = "0.05 0.6 0.85", style="rounded"];
22[label = "retrieve_electricity_demand", color = "0.58 0.6 0.85", style="rounded"];
23[label = "retrieve_synthetic_electricity_demand", color = "0.11 0.6 0.85", style="rounded"];
1 -> 0
2 -> 1
17 -> 1
19 -> 1
3 -> 2
17 -> 2
19 -> 2
4 -> 3
17 -> 3
19 -> 3
5 -> 4
17 -> 4
19 -> 4
7 -> 4
6 -> 5
11 -> 5
12 -> 5
15 -> 5
7 -> 5
13 -> 5
16 -> 5
17 -> 5
7 -> 5
18 -> 5
19 -> 5
20 -> 5
21 -> 5
8 -> 5
7 -> 6
9 -> 6
@ -186,21 +190,30 @@ This triggers a workflow of multiple preceding jobs that depend on each rule's i
10 -> 11
7 -> 12
9 -> 12
13 -> 12
8 -> 12
10 -> 12
7 -> 13
9 -> 13
14 -> 13
8 -> 13
10 -> 13
7 -> 15
9 -> 15
13 -> 15
8 -> 15
10 -> 15
15 -> 14
10 -> 14
7 -> 16
9 -> 16
14 -> 16
8 -> 16
10 -> 16
7 -> 17
9 -> 17
14 -> 17
8 -> 17
10 -> 17
7 -> 18
20 -> 19
21 -> 19
10 -> 18
7 -> 20
22 -> 21
23 -> 21
}
|
@ -219,7 +232,7 @@ In the terminal, this will show up as a list of jobs to be run:
build_electricity_demand 1
build_line_rating 1
build_powerplants 1
build_renewable_profiles 4
build_renewable_profiles 6
build_shapes 1
build_ship_raster 1
cluster_network 1
@ -232,7 +245,7 @@ In the terminal, this will show up as a list of jobs to be run:
retrieve_synthetic_electricity_demand 1
simplify_network 1
solve_network 1
total 22
total 24
``snakemake`` then runs these jobs in the correct order.
@ -241,16 +254,15 @@ A job (here ``simplify_network``) will display its attributes and normally some
.. code:: bash
[Mon Feb 19 17:06:17 2024]
rule simplify_network:
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
input: resources/test/networks/elec.nc, resources/test/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
log: logs/test/simplify_network/elec_s.log
jobid: 4
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
benchmark: benchmarks/test/simplify_network/elec_s
reason: Forced execution
wildcards: simpl=
resources: tmpdir=/tmp, mem_mb=12000, mem_mib=11445
resources: tmpdir=<TBD>, 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,472 +1,464 @@
# SPDX-FileCopyrightText: : 2017-2024 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0
name: pypsa-eur
channels:
- bioconda
- http://conda.anaconda.org/gurobi
- conda-forge
- bioconda
- gurobi
- defaults
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_gnu
- affine=2.4.0=pyhd8ed1ab_0
- alsa-lib=1.2.11=hd590300_1
- ampl-mp=3.1.0=h2cc385e_1006
- amply=0.1.6=pyhd8ed1ab_0
- appdirs=1.4.4=pyh9f0ad1d_0
- argparse-dataclass=2.0.0=pyhd8ed1ab_0
- asttokens=2.4.1=pyhd8ed1ab_0
- atk-1.0=2.38.0=h04ea711_2
- atlite=0.2.12=pyhd8ed1ab_0
- attr=2.5.1=h166bdaf_1
- attrs=23.2.0=pyh71513ae_0
- aws-c-auth=0.7.18=he0b1f16_0
- aws-c-cal=0.6.11=heb1d5e4_0
- aws-c-common=0.9.15=hd590300_0
- aws-c-compression=0.2.18=hce8ee76_3
- aws-c-event-stream=0.4.2=h01f5eca_8
- aws-c-http=0.8.1=hdb68c23_10
- aws-c-io=0.14.7=hbfbeace_6
- aws-c-mqtt=0.10.4=h50844eb_0
- aws-c-s3=0.5.7=h6be9164_2
- aws-c-sdkutils=0.1.15=hce8ee76_3
- aws-checksums=0.1.18=hce8ee76_3
- aws-crt-cpp=0.26.8=h2150271_2
- aws-sdk-cpp=1.11.267=hddb5a97_7
- azure-core-cpp=1.11.1=h91d86a7_1
- azure-identity-cpp=1.6.0=hf1915f5_1
- azure-storage-blobs-cpp=12.10.0=h00ab1b0_1
- azure-storage-common-cpp=12.5.0=h94269e2_4
- beautifulsoup4=4.12.3=pyha770c72_0
- blosc=1.21.5=hc2324a3_1
- bokeh=3.4.1=pyhd8ed1ab_0
- bottleneck=1.3.8=py311h1f0f07a_0
- branca=0.7.2=pyhd8ed1ab_0
- brotli=1.1.0=hd590300_1
- brotli-bin=1.1.0=hd590300_1
- brotli-python=1.1.0=py311hb755f60_1
- bzip2=1.0.8=hd590300_5
- c-ares=1.28.1=hd590300_0
- c-blosc2=2.14.4=hb4ffafa_1
- ca-certificates=2024.2.2=hbcca054_0
- cads-api-client=1.0.0=pyhd8ed1ab_0
- cairo=1.18.0=h3faef2a_0
- cartopy=0.23.0=py311h320fe9a_0
- cdsapi=0.7.0=pyhd8ed1ab_0
- certifi=2024.2.2=pyhd8ed1ab_0
- cffi=1.16.0=py311hb3a22ac_0
- cfgv=3.3.1=pyhd8ed1ab_0
- cfitsio=4.4.0=hbdc6101_1
- cftime=1.6.3=py311h1f0f07a_0
- charset-normalizer=3.3.2=pyhd8ed1ab_0
- click=8.1.7=unix_pyh707e725_0
- click-plugins=1.1.1=py_0
- cligj=0.7.2=pyhd8ed1ab_1
- cloudpickle=3.0.0=pyhd8ed1ab_0
- coin-or-cbc=2.10.10=h9002f0b_0
- coin-or-cgl=0.60.7=h516709c_0
- coin-or-clp=1.17.8=h1ee7a9c_0
- coin-or-osi=0.108.10=haf5fa05_0
- coin-or-utils=2.11.11=hee58242_0
- coincbc=2.10.10=0_metapackage
- colorama=0.4.6=pyhd8ed1ab_0
- conda-inject=1.3.1=pyhd8ed1ab_0
- configargparse=1.7=pyhd8ed1ab_0
- connection_pool=0.0.3=pyhd3deb0d_0
- contourpy=1.2.1=py311h9547e67_0
- country_converter=1.2=pyhd8ed1ab_0
- cppad=20240000.4=h59595ed_0
- cycler=0.12.1=pyhd8ed1ab_0
- cytoolz=0.12.3=py311h459d7ec_0
- dask=2024.4.2=pyhd8ed1ab_0
- dask-core=2024.4.2=pyhd8ed1ab_0
- dask-expr=1.0.14=pyhd8ed1ab_0
- datrie=0.8.2=py311h459d7ec_7
- dbus=1.13.6=h5008d03_3
- decorator=5.1.1=pyhd8ed1ab_0
- deprecation=2.1.0=pyh9f0ad1d_0
- descartes=1.1.0=py_4
- distlib=0.3.8=pyhd8ed1ab_0
- distributed=2024.4.2=pyhd8ed1ab_0
- distro=1.9.0=pyhd8ed1ab_0
- docutils=0.21.2=pyhd8ed1ab_0
- dpath=2.1.6=pyha770c72_0
- entsoe-py=0.6.7=pyhd8ed1ab_0
- et_xmlfile=1.1.0=pyhd8ed1ab_0
- exceptiongroup=1.2.0=pyhd8ed1ab_2
- executing=2.0.1=pyhd8ed1ab_0
- expat=2.6.2=h59595ed_0
- filelock=3.14.0=pyhd8ed1ab_0
- fiona=1.9.6=py311hf8e0aa6_0
- fmt=10.2.1=h00ab1b0_0
- folium=0.16.0=pyhd8ed1ab_0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0
- font-ttf-inconsolata=3.000=h77eed37_0
- font-ttf-source-code-pro=2.038=h77eed37_0
- font-ttf-ubuntu=0.83=h77eed37_2
- fontconfig=2.14.2=h14ed4e7_0
- fonts-conda-ecosystem=1=0
- fonts-conda-forge=1=0
- fonttools=4.51.0=py311h459d7ec_0
- freetype=2.12.1=h267a509_2
- freexl=2.0.0=h743c826_0
- fribidi=1.0.10=h36c2ea0_0
- fsspec=2024.3.1=pyhca7485f_0
- gdal=3.8.5=py311hd032c08_2
- gdk-pixbuf=2.42.11=hb9ae30d_0
- geographiclib=2.0=pyhd8ed1ab_0
- geojson-rewind=1.1.0=pyhd8ed1ab_0
- geopandas=0.14.4=pyhd8ed1ab_0
- geopandas-base=0.14.4=pyha770c72_0
- geopy=2.4.1=pyhd8ed1ab_1
- geos=3.12.1=h59595ed_0
- geotiff=1.7.1=h6cf1f90_16
- gettext=0.22.5=h59595ed_2
- gettext-tools=0.22.5=h59595ed_2
- gflags=2.2.2=he1b5a44_1004
- giflib=5.2.2=hd590300_0
- gitdb=4.0.11=pyhd8ed1ab_0
- gitpython=3.1.43=pyhd8ed1ab_0
- glib=2.80.0=hf2295e7_6
- glib-tools=2.80.0=hde27a5a_6
- glog=0.7.0=hed5481d_0
- glpk=5.0=h445213a_0
- gmp=6.3.0=h59595ed_1
- graphite2=1.3.13=h59595ed_1003
- graphviz=9.0.0=h78e8752_1
- gst-plugins-base=1.24.1=hfa15dee_2
- gstreamer=1.24.1=h98fc4e7_2
- gtk2=2.24.33=h280cfa0_4
- gts=0.7.6=h977cf35_4
- harfbuzz=8.4.0=h3d44ed6_0
- hdf4=4.2.15=h2a13503_7
- hdf5=1.14.3=nompi_h4f84152_101
- humanfriendly=10.0=pyhd8ed1ab_6
- icu=73.2=h59595ed_0
- identify=2.5.36=pyhd8ed1ab_0
- idna=3.7=pyhd8ed1ab_0
- immutables=0.20=py311h459d7ec_1
- importlib-metadata=7.1.0=pyha770c72_0
- importlib_metadata=7.1.0=hd8ed1ab_0
- importlib_resources=6.4.0=pyhd8ed1ab_0
- iniconfig=2.0.0=pyhd8ed1ab_0
- ipopt=3.14.16=hf967516_0
- ipython=8.22.2=pyh707e725_0
- jedi=0.19.1=pyhd8ed1ab_0
- jinja2=3.1.3=pyhd8ed1ab_0
- joblib=1.4.2=pyhd8ed1ab_0
- json-c=0.17=h7ab15ed_0
- jsonschema=4.22.0=pyhd8ed1ab_0
- jsonschema-specifications=2023.12.1=pyhd8ed1ab_0
- jupyter_core=5.7.2=py311h38be061_0
- kealib=1.5.3=h2f55d51_0
- keyutils=1.6.1=h166bdaf_0
- kiwisolver=1.4.5=py311h9547e67_1
- krb5=1.21.2=h659d440_0
- lame=3.100=h166bdaf_1003
- lcms2=2.16=hb7c19ff_0
- ld_impl_linux-64=2.40=h55db66e_0
- lerc=4.0.0=h27087fc_0
- libabseil=20240116.2=cxx17_h59595ed_0
- libaec=1.1.3=h59595ed_0
- libarchive=3.7.2=h2aa1ff5_1
- libarrow=15.0.2=hefa796f_6_cpu
- libarrow-acero=15.0.2=hbabe93e_6_cpu
- libarrow-dataset=15.0.2=hbabe93e_6_cpu
- libarrow-flight=15.0.2=hc4f8a93_6_cpu
- libarrow-flight-sql=15.0.2=he4f5ca8_6_cpu
- libarrow-gandiva=15.0.2=hc1954e9_6_cpu
- libarrow-substrait=15.0.2=he4f5ca8_6_cpu
- libasprintf=0.22.5=h661eb56_2
- libasprintf-devel=0.22.5=h661eb56_2
- libblas=3.9.0=22_linux64_openblas
- libboost-headers=1.84.0=ha770c72_2
- libbrotlicommon=1.1.0=hd590300_1
- libbrotlidec=1.1.0=hd590300_1
- libbrotlienc=1.1.0=hd590300_1
- libcap=2.69=h0f662aa_0
- libcblas=3.9.0=22_linux64_openblas
- libclang-cpp15=15.0.7=default_h127d8a8_5
- libclang13=18.1.4=default_h5d6823c_0
- libcrc32c=1.1.2=h9c3ff4c_0
- libcups=2.3.3=h4637d8d_4
- libcurl=8.7.1=hca28451_0
- libdeflate=1.20=hd590300_0
- libedit=3.1.20191231=he28a2e2_2
- libev=4.33=hd590300_2
- libevent=2.1.12=hf998b51_1
- libexpat=2.6.2=h59595ed_0
- libffi=3.4.2=h7f98852_5
- libflac=1.4.3=h59595ed_0
- libgcc-ng=13.2.0=h77fa898_6
- libgcrypt=1.10.3=hd590300_0
- libgd=2.3.3=h119a65a_9
- libgdal=3.8.5=hf9625ee_2
- libgettextpo=0.22.5=h59595ed_2
- libgettextpo-devel=0.22.5=h59595ed_2
- libgfortran-ng=13.2.0=h69a702a_6
- libgfortran5=13.2.0=h43f5ff8_6
- libglib=2.80.0=hf2295e7_6
- libgomp=13.2.0=h77fa898_6
- libgoogle-cloud=2.23.0=h9be4e54_1
- libgoogle-cloud-storage=2.23.0=hc7a4891_1
- libgpg-error=1.49=h4f305b6_0
- libgrpc=1.62.2=h15f2491_0
- libhwloc=2.9.3=default_h554bfaf_1009
- libiconv=1.17=hd590300_2
- libjpeg-turbo=3.0.0=hd590300_1
- libkml=1.3.0=h01aab08_1018
- liblapack=3.9.0=22_linux64_openblas
- liblapacke=3.9.0=22_linux64_openblas
- libllvm15=15.0.7=hb3ce162_4
- libllvm16=16.0.6=hb3ce162_3
- libllvm18=18.1.4=h2448989_0
- libnetcdf=4.9.2=nompi_h9612171_113
- libnghttp2=1.58.0=h47da74e_1
- libnl=3.9.0=hd590300_0
- libnsl=2.0.1=hd590300_0
- libogg=1.3.4=h7f98852_1
- libopenblas=0.3.27=pthreads_h413a1c8_0
- libopus=1.3.1=h7f98852_1
- libparquet=15.0.2=hacf5a1f_6_cpu
- libpng=1.6.43=h2797004_0
- libpq=16.2=h33b98f1_1
- libprotobuf=4.25.3=h08a7969_0
- libre2-11=2023.09.01=h5a48ba9_2
- librsvg=2.58.0=hadf69e7_1
- librttopo=1.1.0=h8917695_15
- libscotch=7.0.4=h91e35bf_1
- libsndfile=1.2.2=hc60ed4a_1
- libspatialindex=1.9.3=h9c3ff4c_4
- libspatialite=5.1.0=h6f065fc_5
- libspral=2024.01.18=h6aa6db2_0
- libsqlite=3.45.3=h2797004_0
- libssh2=1.11.0=h0841786_0
- libstdcxx-ng=13.2.0=hc0a3c3a_6
- libsystemd0=255=h3516f8a_1
- libthrift=0.19.0=hb90f79a_1
- libtiff=4.6.0=h1dd3fc0_3
- libutf8proc=2.8.0=h166bdaf_0
- libuuid=2.38.1=h0b41bf4_0
- libvorbis=1.3.7=h9c3ff4c_0
- libwebp=1.4.0=h2c329e2_0
- libwebp-base=1.4.0=hd590300_0
- libxcb=1.15=h0b41bf4_0
- libxcrypt=4.4.36=hd590300_1
- libxkbcommon=1.7.0=h662e7e4_0
- libxml2=2.12.6=h232c23b_2
- libxslt=1.1.39=h76b75d6_0
- libzip=1.10.1=h2629f0a_3
- libzlib=1.2.13=hd590300_5
- linopy=0.3.8=pyhd8ed1ab_0
- locket=1.0.0=pyhd8ed1ab_0
- lxml=5.2.1=py311hc0a218f_0
- lz4=4.3.3=py311h38e4bf4_0
- lz4-c=1.9.4=hcb278e6_0
- lzo=2.10=hd590300_1001
- mapclassify=2.6.1=pyhd8ed1ab_0
- markupsafe=2.1.5=py311h459d7ec_0
- matplotlib=3.8.4=py311h38be061_0
- matplotlib-base=3.8.4=py311h54ef318_0
- matplotlib-inline=0.1.7=pyhd8ed1ab_0
- memory_profiler=0.61.0=pyhd8ed1ab_0
- metis=5.1.0=h59595ed_1007
- minizip=4.0.5=h0ab5242_0
- mpfr=4.2.1=h9458935_1
- mpg123=1.32.6=h59595ed_0
- msgpack-python=1.0.7=py311h9547e67_0
- multiurl=0.3.1=pyhd8ed1ab_0
- mumps-include=5.6.2=ha770c72_4
- mumps-seq=5.6.2=hfef103a_4
- munkres=1.1.4=pyh9f0ad1d_0
- mysql-common=8.3.0=hf1915f5_4
- mysql-libs=8.3.0=hca2cd23_4
- nbformat=5.10.4=pyhd8ed1ab_0
- ncurses=6.4.20240210=h59595ed_0
- netcdf4=1.6.5=nompi_py311he8ad708_100
- networkx=3.3=pyhd8ed1ab_1
- nodeenv=1.8.0=pyhd8ed1ab_0
- nomkl=1.0=h5ca1d4c_0
- nspr=4.35=h27087fc_0
- nss=3.98=h1d7d5a4_0
- numexpr=2.9.0=py311h039bad6_100
- numpy=1.26.4=py311h64a7726_0
- openjdk=22.0.1=hb622114_0
- openjpeg=2.5.2=h488ebb8_0
- openpyxl=3.1.2=py311h459d7ec_1
- openssl=3.3.0=hd590300_0
- orc=2.0.0=h17fec99_1
- packaging=24.0=pyhd8ed1ab_0
- pandas=2.2.2=py311h320fe9a_0
- pango=1.52.2=ha41ecd1_0
- parso=0.8.4=pyhd8ed1ab_0
- partd=1.4.1=pyhd8ed1ab_0
- patsy=0.5.6=pyhd8ed1ab_0
- pcre2=10.43=hcad00b1_0
- pexpect=4.9.0=pyhd8ed1ab_0
- pickleshare=0.7.5=py_1003
- pillow=10.3.0=py311h18e6fac_0
- pip=24.0=pyhd8ed1ab_0
- pixman=0.43.2=h59595ed_0
- pkgutil-resolve-name=1.3.10=pyhd8ed1ab_1
- plac=1.4.3=pyhd8ed1ab_0
- platformdirs=4.2.1=pyhd8ed1ab_0
- pluggy=1.5.0=pyhd8ed1ab_0
- ply=3.11=pyhd8ed1ab_2
- poppler=24.04.0=hb6cd0d7_0
- poppler-data=0.4.12=hd8ed1ab_0
- postgresql=16.2=h82ecc9d_1
- powerplantmatching=0.5.14=pyhd8ed1ab_0
- pre-commit=3.7.0=pyha770c72_0
- progressbar2=4.4.2=pyhd8ed1ab_0
- proj=9.4.0=h1d62c97_1
- prompt-toolkit=3.0.42=pyha770c72_0
- psutil=5.9.8=py311h459d7ec_0
- pthread-stubs=0.4=h36c2ea0_1001
- ptyprocess=0.7.0=pyhd3deb0d_0
- pulp=2.8.0=py311h38be061_0
- pulseaudio-client=17.0=hb77b528_0
- pure_eval=0.2.2=pyhd8ed1ab_0
- py-cpuinfo=9.0.0=pyhd8ed1ab_0
- pyarrow=15.0.2=py311hd5e4297_6_cpu
- pyarrow-hotfix=0.6=pyhd8ed1ab_0
- pycountry=22.3.5=pyhd8ed1ab_0
- pycparser=2.22=pyhd8ed1ab_0
- pygments=2.17.2=pyhd8ed1ab_0
- pyomo=6.6.1=py311hb755f60_0
- pyparsing=3.1.2=pyhd8ed1ab_0
- pyproj=3.6.1=py311hb3a3e68_6
- pypsa=0.27.1=pyhd8ed1ab_0
- pyqt=5.15.9=py311hf0fb5b6_5
- pyqt5-sip=12.12.2=py311hb755f60_5
- pyscipopt=5.0.1=py311hb755f60_0
- pyshp=2.3.1=pyhd8ed1ab_0
- pysocks=1.7.1=pyha2e5f31_6
- pytables=3.9.2=py311h3e8b7c9_2
- pytest=8.2.0=pyhd8ed1ab_0
- python=3.11.9=hb806964_0_cpython
- python-dateutil=2.9.0=pyhd8ed1ab_0
- python-fastjsonschema=2.19.1=pyhd8ed1ab_0
- python-tzdata=2024.1=pyhd8ed1ab_0
- python-utils=3.8.2=pyhd8ed1ab_0
- python_abi=3.11=4_cp311
- pytz=2024.1=pyhd8ed1ab_0
- pyxlsb=1.0.10=pyhd8ed1ab_0
- pyyaml=6.0.1=py311h459d7ec_1
- qt-main=5.15.8=hc9dc06e_21
- rasterio=1.3.10=py311h375a7ea_0
- rdma-core=51.0=hd3aeb46_0
- re2=2023.09.01=h7f4b329_2
- readline=8.2=h8228510_1
- referencing=0.35.1=pyhd8ed1ab_0
- requests=2.31.0=pyhd8ed1ab_0
- reretry=0.11.8=pyhd8ed1ab_0
- rioxarray=0.15.5=pyhd8ed1ab_0
- rpds-py=0.18.0=py311h46250e7_0
- rtree=1.2.0=py311h3bb2b0f_0
- s2n=1.4.12=h06160fa_0
- scikit-learn=1.4.2=py311hc009520_0
- scip=9.0.0=hded5f35_4
- scipy=1.13.0=py311h64a7726_0
- scotch=7.0.4=h23d43cc_1
- seaborn=0.13.2=hd8ed1ab_2
- seaborn-base=0.13.2=pyhd8ed1ab_2
- setuptools=69.5.1=pyhd8ed1ab_0
- setuptools-scm=8.0.4=pyhd8ed1ab_1
- setuptools_scm=8.0.4=hd8ed1ab_1
- shapely=2.0.4=py311h2032efe_0
- sip=6.7.12=py311hb755f60_0
- six=1.16.0=pyh6c4a22f_0
- smart_open=7.0.4=pyhd8ed1ab_0
- smmap=5.0.0=pyhd8ed1ab_0
- snakemake-interface-common=1.17.2=pyhdfd78af_0
- snakemake-interface-executor-plugins=9.1.1=pyhdfd78af_0
- snakemake-interface-report-plugins=1.0.0=pyhdfd78af_0
- snakemake-interface-storage-plugins=3.2.2=pyhdfd78af_0
- snakemake-minimal=8.11.1=pyhdfd78af_0
- snappy=1.2.0=hdb0a2a9_1
- snuggs=1.4.7=py_0
- sortedcontainers=2.4.0=pyhd8ed1ab_0
- soupsieve=2.5=pyhd8ed1ab_1
- spdlog=1.13.0=hd2e6256_0
- sqlite=3.45.3=h2c6b66d_0
- stack_data=0.6.2=pyhd8ed1ab_0
- statsmodels=0.14.1=py311h1f0f07a_0
- stopit=1.1.2=py_0
- tabula-py=2.7.0=py311h38be061_1
- tabulate=0.9.0=pyhd8ed1ab_1
- tbb=2021.11.0=h00ab1b0_1
- tblib=3.0.0=pyhd8ed1ab_0
- threadpoolctl=3.5.0=pyhc1e730c_0
- throttler=1.2.2=pyhd8ed1ab_0
- tiledb=2.22.0=h27f064a_3
- tk=8.6.13=noxft_h4845f30_101
- toml=0.10.2=pyhd8ed1ab_0
- tomli=2.0.1=pyhd8ed1ab_0
- toolz=0.12.1=pyhd8ed1ab_0
- toposort=1.10=pyhd8ed1ab_0
- tornado=6.4=py311h459d7ec_0
- tqdm=4.66.2=pyhd8ed1ab_0
- traitlets=5.14.3=pyhd8ed1ab_0
- typing-extensions=4.11.0=hd8ed1ab_0
- typing_extensions=4.11.0=pyha770c72_0
- tzcode=2024a=h3f72095_0
- tzdata=2024a=h0c530f3_0
- ucx=1.15.0=ha691c75_8
- ukkonen=1.0.1=py311h9547e67_4
- unidecode=1.3.8=pyhd8ed1ab_0
- unixodbc=2.3.12=h661eb56_0
- uriparser=0.9.7=h59595ed_1
- urllib3=2.2.1=pyhd8ed1ab_0
- validators=0.28.1=pyhd8ed1ab_0
- virtualenv=20.26.1=pyhd8ed1ab_0
- wcwidth=0.2.13=pyhd8ed1ab_0
- wheel=0.43.0=pyhd8ed1ab_1
- wrapt=1.16.0=py311h459d7ec_0
- xarray=2024.3.0=pyhd8ed1ab_0
- xcb-util=0.4.0=hd590300_1
- xcb-util-image=0.4.0=h8ee46fc_1
- xcb-util-keysyms=0.4.0=h8ee46fc_1
- xcb-util-renderutil=0.3.9=hd590300_1
- xcb-util-wm=0.4.1=h8ee46fc_1
- xerces-c=3.2.5=hac6953d_0
- xkeyboard-config=2.41=hd590300_0
- xlrd=2.0.1=pyhd8ed1ab_3
- xorg-fixesproto=5.0=h7f98852_1002
- xorg-inputproto=2.3.2=h7f98852_1002
- xorg-kbproto=1.0.7=h7f98852_1002
- xorg-libice=1.1.1=hd590300_0
- xorg-libsm=1.2.4=h7391055_0
- xorg-libx11=1.8.9=h8ee46fc_0
- xorg-libxau=1.0.11=hd590300_0
- xorg-libxdmcp=1.1.3=h7f98852_0
- xorg-libxext=1.3.4=h0b41bf4_2
- xorg-libxfixes=5.0.3=h7f98852_1004
- xorg-libxi=1.7.10=h7f98852_0
- xorg-libxrender=0.9.11=hd590300_0
- xorg-libxt=1.3.0=hd590300_1
- xorg-libxtst=1.2.3=h7f98852_1002
- xorg-recordproto=1.14.2=h7f98852_1002
- xorg-renderproto=0.11.1=h7f98852_1002
- xorg-xextproto=7.3.0=h0b41bf4_1003
- xorg-xf86vidmodeproto=2.3.1=h7f98852_1002
- xorg-xproto=7.0.31=h7f98852_1007
- xyzservices=2024.4.0=pyhd8ed1ab_0
- xz=5.2.6=h166bdaf_0
- yaml=0.2.5=h7f98852_2
- yte=1.5.4=pyha770c72_0
- zict=3.0.0=pyhd8ed1ab_0
- zipp=3.17.0=pyhd8ed1ab_0
- zlib=1.2.13=hd590300_5
- zlib-ng=2.0.7=h0b41bf4_0
- zstd=1.5.5=hfc55251_0
- _libgcc_mutex=0.1
- _openmp_mutex=4.5
- affine=2.4.0
- alsa-lib=1.2.11
- ampl-mp=3.1.0
- amply=0.1.6
- appdirs=1.4.4
- argparse-dataclass=2.0.0
- asttokens=2.4.1
- atk-1.0=2.38.0
- atlite=0.2.12
- attr=2.5.1
- attrs=23.2.0
- aws-c-auth=0.7.22
- aws-c-cal=0.6.14
- aws-c-common=0.9.19
- aws-c-compression=0.2.18
- aws-c-event-stream=0.4.2
- aws-c-http=0.8.1
- aws-c-io=0.14.8
- aws-c-mqtt=0.10.4
- aws-c-s3=0.5.9
- aws-c-sdkutils=0.1.16
- aws-checksums=0.1.18
- aws-crt-cpp=0.26.9
- aws-sdk-cpp=1.11.329
- azure-core-cpp=1.11.1
- azure-identity-cpp=1.6.0
- azure-storage-blobs-cpp=12.10.0
- azure-storage-common-cpp=12.5.0
- beautifulsoup4=4.12.3
- blosc=1.21.5
- bokeh=3.4.1
- bottleneck=1.3.8
- branca=0.7.2
- brotli=1.1.0
- brotli-bin=1.1.0
- brotli-python=1.1.0
- bzip2=1.0.8
- c-ares=1.28.1
- c-blosc2=2.14.4
- ca-certificates=2024.2.2
- cads-api-client=1.0.3
- cairo=1.18.0
- cartopy=0.23.0
- cdsapi=0.7.0
- certifi=2024.2.2
- cffi=1.16.0
- cfgv=3.3.1
- cfitsio=4.4.0
- cftime=1.6.3
- charset-normalizer=3.3.2
- click=8.1.7
- click-plugins=1.1.1
- cligj=0.7.2
- cloudpickle=3.0.0
- coin-or-cbc=2.10.10
- coin-or-cgl=0.60.7
- coin-or-clp=1.17.8
- coin-or-osi=0.108.10
- coin-or-utils=2.11.11
- coincbc=2.10.10
- colorama=0.4.6
- conda-inject=1.3.1
- configargparse=1.7
- connection_pool=0.0.3
- contourpy=1.2.1
- country_converter=1.2
- cppad=20240000.4
- cycler=0.12.1
- cytoolz=0.12.3
- dask=2024.5.1
- dask-core=2024.5.1
- dask-expr=1.1.1
- datrie=0.8.2
- dbus=1.13.6
- decorator=5.1.1
- deprecation=2.1.0
- descartes=1.1.0
- distlib=0.3.8
- distributed=2024.5.1
- distro=1.9.0
- docutils=0.21.2
- dpath=2.1.6
- entsoe-py=0.6.7
- et_xmlfile=1.1.0
- exceptiongroup=1.2.0
- executing=2.0.1
- expat=2.6.2
- filelock=3.14.0
- fiona=1.9.6
- fmt=10.2.1
- folium=0.16.0
- font-ttf-dejavu-sans-mono=2.37
- font-ttf-inconsolata=3.000
- font-ttf-source-code-pro=2.038
- font-ttf-ubuntu=0.83
- fontconfig=2.14.2
- fonts-conda-ecosystem=1
- fonts-conda-forge=1
- fonttools=4.52.1
- freetype=2.12.1
- freexl=2.0.0
- fribidi=1.0.10
- fsspec=2024.5.0
- gdal=3.8.5
- gdk-pixbuf=2.42.12
- geographiclib=2.0
- geojson-rewind=1.1.0
- geopandas=0.14.4
- geopandas-base=0.14.4
- geopy=2.4.1
- geos=3.12.1
- geotiff=1.7.3
- gettext=0.22.5
- gettext-tools=0.22.5
- gflags=2.2.2
- giflib=5.2.2
- gitdb=4.0.11
- gitpython=3.1.43
- glib=2.80.2
- glib-tools=2.80.2
- glog=0.7.0
- glpk=5.0
- gmp=6.3.0
- graphite2=1.3.13
- graphviz=11.0.0
- gst-plugins-base=1.24.3
- gstreamer=1.24.3
- gtk2=2.24.33
- gts=0.7.6
- gurobi=11.0.2
- harfbuzz=8.5.0
- hdf4=4.2.15
- hdf5=1.14.3
- humanfriendly=10.0
- icu=73.2
- identify=2.5.36
- idna=3.7
- immutables=0.20
- importlib-metadata=7.1.0
- importlib_metadata=7.1.0
- importlib_resources=6.4.0
- iniconfig=2.0.0
- ipopt=3.14.16
- ipython=8.24.0
- jedi=0.19.1
- jinja2=3.1.4
- joblib=1.4.2
- json-c=0.17
- jsonschema=4.22.0
- jsonschema-specifications=2023.12.1
- jupyter_core=5.7.2
- kealib=1.5.3
- keyutils=1.6.1
- kiwisolver=1.4.5
- krb5=1.21.2
- lame=3.100
- lcms2=2.16
- ld_impl_linux-64=2.40
- lerc=4.0.0
- libabseil=20240116.2
- libaec=1.1.3
- libarchive=3.7.4
- libarrow=16.1.0
- libarrow-acero=16.1.0
- libarrow-dataset=16.1.0
- libarrow-substrait=16.1.0
- libasprintf=0.22.5
- libasprintf-devel=0.22.5
- libblas=3.9.0
- libboost-headers=1.85.0
- libbrotlicommon=1.1.0
- libbrotlidec=1.1.0
- libbrotlienc=1.1.0
- libcap=2.69
- libcblas=3.9.0
- libclang-cpp15=15.0.7
- libclang13=18.1.5
- libcrc32c=1.1.2
- libcups=2.3.3
- libcurl=8.8.0
- libdeflate=1.20
- libedit=3.1.20191231
- libev=4.33
- libevent=2.1.12
- libexpat=2.6.2
- libffi=3.4.2
- libflac=1.4.3
- libgcc-ng=13.2.0
- libgcrypt=1.10.3
- libgd=2.3.3
- libgdal=3.8.5
- libgettextpo=0.22.5
- libgettextpo-devel=0.22.5
- libgfortran-ng=13.2.0
- libgfortran5=13.2.0
- libglib=2.80.2
- libgomp=13.2.0
- libgoogle-cloud=2.24.0
- libgoogle-cloud-storage=2.24.0
- libgpg-error=1.49
- libgrpc=1.62.2
- libhwloc=2.9.3
- libiconv=1.17
- libjpeg-turbo=3.0.0
- libkml=1.3.0
- liblapack=3.9.0
- liblapacke=3.9.0
- libllvm15=15.0.7
- libllvm18=18.1.6
- libnetcdf=4.9.2
- libnghttp2=1.58.0
- libnsl=2.0.1
- libogg=1.3.4
- libopenblas=0.3.27
- libopus=1.3.1
- libparquet=16.1.0
- libpng=1.6.43
- libpq=16.3
- libprotobuf=4.25.3
- libre2-11=2023.09.01
- librsvg=2.58.0
- librttopo=1.1.0
- libscotch=7.0.4
- libsndfile=1.2.2
- libspatialindex=1.9.3
- libspatialite=5.1.0
- libspral=2024.01.18
- libsqlite=3.45.3
- libssh2=1.11.0
- libstdcxx-ng=13.2.0
- libsystemd0=255
- libthrift=0.19.0
- libtiff=4.6.0
- libutf8proc=2.8.0
- libuuid=2.38.1
- libvorbis=1.3.7
- libwebp=1.4.0
- libwebp-base=1.4.0
- libxcb=1.15
- libxcrypt=4.4.36
- libxkbcommon=1.7.0
- libxml2=2.12.7
- libxslt=1.1.39
- libzip=1.10.1
- libzlib=1.2.13
- linopy=0.3.9
- locket=1.0.0
- lxml=5.2.2
- lz4=4.3.3
- lz4-c=1.9.4
- lzo=2.10
- mapclassify=2.6.1
- markupsafe=2.1.5
- matplotlib=3.8.4
- matplotlib-base=3.8.4
- matplotlib-inline=0.1.7
- memory_profiler=0.61.0
- metis=5.1.0
- minizip=4.0.5
- mpfr=4.2.1
- mpg123=1.32.6
- msgpack-python=1.0.8
- multiurl=0.3.1
- mumps-include=5.7.1
- mumps-seq=5.7.1
- munkres=1.1.4
- mysql-common=8.3.0
- mysql-libs=8.3.0
- nbformat=5.10.4
- ncurses=6.5
- netcdf4=1.6.5
- networkx=3.3
- nodeenv=1.8.0
- nomkl=1.0
- nspr=4.35
- nss=3.100
- numexpr=2.9.0
- numpy=1.26.4
- openjdk=22.0.1
- openjpeg=2.5.2
- openpyxl=3.1.2
- openssl=3.3.0
- orc=2.0.1
- packaging=24.0
- pandas=2.2.2
- pango=1.52.2
- parso=0.8.4
- partd=1.4.2
- patsy=0.5.6
- pcre2=10.43
- pexpect=4.9.0
- pickleshare=0.7.5
- pillow=10.3.0
- pip=24.0
- pixman=0.43.2
- pkgutil-resolve-name=1.3.10
- plac=1.4.3
- platformdirs=4.2.2
- pluggy=1.5.0
- ply=3.11
- poppler=24.04.0
- poppler-data=0.4.12
- postgresql=16.3
- powerplantmatching=0.5.15
- pre-commit=3.7.1
- progressbar2=4.4.2
- proj=9.4.0
- prompt-toolkit=3.0.42
- psutil=5.9.8
- pthread-stubs=0.4
- ptyprocess=0.7.0
- pulp=2.8.0
- pulseaudio-client=17.0
- pure_eval=0.2.2
- py-cpuinfo=9.0.0
- pyarrow=16.1.0
- pyarrow-core=16.1.0
- pyarrow-hotfix=0.6
- pycountry=22.3.5
- pycparser=2.22
- pygments=2.18.0
- pyomo=6.6.1
- pyparsing=3.1.2
- pyproj=3.6.1
- pypsa=0.28.0
- pyqt=5.15.9
- pyqt5-sip=12.12.2
- pyscipopt=5.0.1
- pyshp=2.3.1
- pysocks=1.7.1
- pytables=3.9.2
- pytest=8.2.1
- python=3.11.9
- python-dateutil=2.9.0
- python-fastjsonschema=2.19.1
- python-tzdata=2024.1
- python-utils=3.8.2
- python_abi=3.11
- pytz=2024.1
- pyxlsb=1.0.10
- pyyaml=6.0.1
- qt-main=5.15.8
- rasterio=1.3.10
- re2=2023.09.01
- readline=8.2
- referencing=0.35.1
- requests=2.32.2
- reretry=0.11.8
- rioxarray=0.15.5
- rpds-py=0.18.1
- rtree=1.2.0
- s2n=1.4.15
- scikit-learn=1.5.0
- scip=9.0.1
- scipy=1.13.1
- scotch=7.0.4
- seaborn=0.13.2
- seaborn-base=0.13.2
- setuptools=70.0.0
- setuptools-scm=8.1.0
- setuptools_scm=8.1.0
- shapely=2.0.4
- sip=6.7.12
- six=1.16.0
- smart_open=7.0.4
- smmap=5.0.0
- snakemake-interface-common=1.17.2
- snakemake-interface-executor-plugins=9.1.1
- snakemake-interface-report-plugins=1.0.0
- snakemake-interface-storage-plugins=3.2.2
- snakemake-minimal=8.11.6
- snappy=1.2.0
- snuggs=1.4.7
- sortedcontainers=2.4.0
- soupsieve=2.5
- spdlog=1.13.0
- sqlite=3.45.3
- stack_data=0.6.2
- statsmodels=0.14.2
- stopit=1.1.2
- tabula-py=2.7.0
- tabulate=0.9.0
- tbb=2021.11.0
- tblib=3.0.0
- threadpoolctl=3.5.0
- throttler=1.2.2
- tiledb=2.23.0
- tk=8.6.13
- toml=0.10.2
- tomli=2.0.1
- toolz=0.12.1
- toposort=1.10
- tornado=6.4
- tqdm=4.66.4
- traitlets=5.14.3
- typing-extensions=4.11.0
- typing_extensions=4.11.0
- tzcode=2024a
- tzdata=2024a
- ukkonen=1.0.1
- unidecode=1.3.8
- unixodbc=2.3.12
- uriparser=0.9.8
- urllib3=2.2.1
- validators=0.28.2
- virtualenv=20.26.2
- wcwidth=0.2.13
- wheel=0.43.0
- wrapt=1.16.0
- xarray=2024.5.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.41
- xlrd=2.0.1
- xorg-fixesproto=5.0
- xorg-inputproto=2.3.2
- xorg-kbproto=1.0.7
- xorg-libice=1.1.1
- xorg-libsm=1.2.4
- xorg-libx11=1.8.9
- xorg-libxau=1.0.11
- xorg-libxdmcp=1.1.3
- xorg-libxext=1.3.4
- xorg-libxfixes=5.0.3
- xorg-libxi=1.7.10
- xorg-libxrender=0.9.11
- xorg-libxt=1.3.0
- xorg-libxtst=1.2.3
- xorg-recordproto=1.14.2
- xorg-renderproto=0.11.1
- xorg-xextproto=7.3.0
- xorg-xf86vidmodeproto=2.3.1
- xorg-xproto=7.0.31
- xyzservices=2024.4.0
- xz=5.2.6
- yaml=0.2.5
- yte=1.5.4
- zict=3.0.0
- zipp=3.17.0
- zlib=1.2.13
- zlib-ng=2.0.7
- zstd=1.5.6
- pip:
- highspy==1.5.3
- oauthlib==3.2.2
- requests-oauthlib==1.3.1
- snakemake-executor-plugin-cluster-generic==1.0.9
- snakemake-executor-plugin-slurm==0.4.5
- snakemake-executor-plugin-slurm==0.5.1
- snakemake-executor-plugin-slurm-jobstep==0.2.1
- snakemake-storage-plugin-http==0.2.3
- tsam==2.3.1