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." 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" title: "PyPSA-Eur: An open sector-coupled optimisation model of the European energy system"
repository: https://github.com/pypsa/pypsa-eur repository: https://github.com/pypsa/pypsa-eur
version: 0.10.0 version: 0.11.0
license: MIT license: MIT
authors: authors:
- family-names: Brown - family-names: Brown

View File

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

View File

@ -93,9 +93,9 @@ author = "Tom Brown (KIT, TUB, FIAS), Jonas Hoersch (KIT, FIAS), Fabian Hofmann
# built documents. # built documents.
# #
# The short X.Y version. # The short X.Y version.
version = "0.10" version = "0.11"
# The full version, including alpha/beta/rc tags. # 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 # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # 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 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 * Introduced scenario management to support the simultaneous execution of
``config/examples``. 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: - A scenarios template file ``config/scenarios.template.yaml`` is included and
estimate_renewable_capacities: enable:`` for rule :mod:`add_electricity` is copied to ``config/scenarios.yaml`` on first use.
not compatible with ``foresight: myopic``, as the former adds existing - The scenario file can be changed via ``run: scenarios: file:``.
renewable capacities in a different way in :mod:`add_existing_baseyear`. - Activating scenario management with ``run: scenarios: enable: true``
The logic was changed so that adding existing renewable capacities is now introduces a new wildcard ``{run}``. Configuration settings may now depend
skipped in :mod:`add_electricity` if the foresight mode is ``myopic``. 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 * Enhanced support for choosing different weather years.
CCGT in :mod:`add_electricity`. Previously they were always added as OCGT. (https://github.com/PyPSA/pypsa-eur/pull/204)
* 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:``.
- 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 - Added option to supplement electricity load data with synthetic time series
for years not contained in OPSD (from https://zenodo.org/records/10820928, for years not in OPSD (from https://zenodo.org/records/10820928, ``load:
``load: supplement_synthetic:``). supplement_synthetic:``).
- Total annual heat demand for years not in Eurostat (1990-2021) or IDEES
- The total annual heat demand for years not contained in the energy (2000-2015) is scaled based on a regression between heating degree days and
statistics by eurostat (1990-2021) or IDEES (2000-2015) are scaled based on heat demand for 2007-2021, assuming a similar building stock.
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.
- Added option to scale annual hydro-electricity generation data for years not - 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 in EIA (1980-2021) based on a regression between annual generation and total
generation and total runoff per country for the years 1980-2021 runoff per country for 1980-2021 (``renewable: hydro:
(``renewable: hydro: eia_approximate_missing:``) eia_approximate_missing:``).
- Added option to normalize annual hydro generation data by the installed
- Added option to normalize annual hydro generation data by the associated capacity reported by EIA (1980-2021) to eliminate changes due to newly built
installed capacity reported by EIA (1980-2021) in order to eliminate changes capacity (``renewable: hydro: eia_approximate_missing:
in generation due to newly built capacity (``renewable: hydro: eia_correct_by_capacity:``).
eia_approximate_missing: eia_correct_by_capacity:``).
- Added option to make hydro generation data independent of weather year - Added option to make hydro generation data independent of weather year
(``renewable: hydro: eia_approximate_missing: eia_norm_year:``). (``renewable: hydro: eia_approximate_missing: eia_norm_year:``).
- Added option to drop leap days (``enable: drop_leap_day:``). - Added option to drop leap days (``enable: drop_leap_day:``).
- Added option to make electric load data independent of weather year (``load:
- Added option to make electric load data independent of weather year fixed_year:``).
(``load: fixed_year:``). - Include time series of Swiss passenger vehicles from the Swiss Federal
Statistical Office.
- 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>`__.
- Updated hydro-electricity generation and capacity data from EIA. - Updated hydro-electricity generation and capacity data from EIA.
- The easiest way to use multiple weather years is with the new scenario
- The easiest way to sweep over multiple weather years is to use the new management. An example `create_scenarios.py` script is available in this
scenario management. An example for the necessary `create_scenarios.py` `Github gist
script can be found in this `Github gist
<https://gist.github.com/fneum/47b857862dd9148a22eca5a2e85caa9a>`__. <https://gist.github.com/fneum/47b857862dd9148a22eca5a2e85caa9a>`__.
* Removed rule ``copy_config``. Instead, a config file is created for each * New renewable technologies:
network output of the ``solve_*`` rules, with the same content as ``n.meta``.
- 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 * 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://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. * Linearly interpolated missing investment periods in year-dependent
To upgrade an existing environment, run ``conda install -c bioconda configuration options. (https://github.com/PyPSA/pypsa-eur/pull/943)
snakemake-minimal">=8.5"`` and ``pip install snakemake-storage-plugin-http``
(https://github.com/PyPSA/pypsa-eur/pull/825).
* Corrected a bug leading to power plants operating after their DateOut * Added shapes to the ``netCDF`` files for different stages of the network
(https://github.com/PyPSA/pypsa-eur/pull/958). Added additional grouping years object in `base_network`, `simplify_network`, and `cluster_network`. The
before 1980. `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 * Allowed more solvers in clustering (Xpress, COPT, Gurobi, CPLEX, SCIP, MOSEK).
<https://www.bfe.admin.ch/bfe/de/home/versorgung/statistik-und-geodaten/energiestatistiken/energieverbrauch-nach-verwendungszweck.html/>`__ (https://github.com/PyPSA/pypsa-eur/pull/949)
have been updated to the 2023 version.
* The JRC-IDEES data is only available until 2015. For energy totals years (``energy: energy_totals_year``) after * Added option to download cost data from custom fork of ``technology-data``.
2015, the data scaled using the ratio of Eurostat data reported for the energy (https://github.com/PyPSA/pypsa-eur/pull/970)
totals year and 2015.
* 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 * Removed exogenously set share of rooftop PV (``costs: rooftop_share:``).
configuration options. Rooftop and utility-scale PV are now separate technologies with endogenous
shares.
* Added new scenario management that supports the simultaneous execution of * Removed rule ``copy_config``. Instead, a config file is created for each
multiple scenarios with a single ``snakemake`` call. For this purpose, a network output of the ``solve_*`` rules, with the same content as ``n.meta``.
``scenarios.yaml`` file is introduced which contains customizable scenario (https://github.com/PyPSA/pypsa-eur/pull/965)
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.
- To get started, a scenarios template file ``config/scenarios.template.yaml`` * Moved switch ``run: shared_resources:`` to ``run: shared_resources: policy:``.
is included in the repository, which is copied to ``config/scenarios.yaml``
on first use.
- The scenario file can be changed via ``run: scenarios: file:``. **Changes**
- If scenario management is activated with ``run: scenarios: enable: true``, a * Updated, merged, and reduced data bundle:
new wildcard ``{run}`` is introduced. This means that the configuration (https://github.com/PyPSA/pypsa-eur/pull/1020,
settings may depend on the new ``{run}`` wildcard. Therefore, a new https://github.com/PyPSA/pypsa-eur/pull/1027)
``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.
- The scenario files can also be programmatically created using the template - Merged electricity-only and sector-coupled data bundles into one bundle.
script ``config/create_scenarios.py``. This script can be run with This removed the ``retrieve_sector_databundle`` rule.
``snakemake -j1 create_scenarios`` and creates the scenarios file referenced - Included rasterised ``natura.tiff`` in the data bundle and removed the
under ``run: scenarios: file:``. ``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 * Updated energy statistics: (https://github.com/PyPSA/pypsa-eur/pull/947,
``config/scenarios.yaml``. Otherwise, it will run those passed as list in https://github.com/PyPSA/pypsa-eur/pull/973,
``run: name:`` as long as ``run: scenarios: enable: true``. 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 - Updated Eurostat data to the 2023 version in :mod:`build_energy_totals`.
resources should be encapsulated by the ``run: name:``. The special setting - Updated the latest Swiss energy totals to the 2023 version.
``run: shared_resources: base`` shares resources until ``add_electricity`` - Scaled JRC-IDEES data using the ratio of Eurostat data for energy totals
that do not contain wildcards other than ``{"technology", "year", years after 2015 and 2015.
"scope"}``. - 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}`` * Improved documentation: (https://github.com/PyPSA/pypsa-eur/pull/1017,
wildcard values to create a unique configuration file (``config.yaml``) per https://github.com/PyPSA/pypsa-eur/pull/1014)
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``.
- The cost data was moved from ``data/costs_{year}.csv`` to - Clarified that ``solving: rolling_horizon:`` only works for
``resources/costs_{year}.csv`` since it depends on configuration settings. :mod:`solve_operations_network`, not for networks with sector-coupling or
The ``retrieve_cost_data`` rule was changed to calling a Python script. investment variables.
- Clarified suffix usage in `add_existing_baseyear`.
- Added documentation section for contributing documentation.
- Moved time clustering settings to ``clustering: temporal:`` from * Included gas and oil fields and saline aquifers for estimating carbon
``snapshots:`` so that the latter is only used to define the sequestration potentials. (https://github.com/PyPSA/pypsa-eur/pull/1010,
``pandas.DatetimeIndex`` which simplifies the scenario management. https://github.com/PyPSA/pypsa-eur/pull/983)
- Collection rules get a new wildcard ``run=config["run"]["name"]`` so they * Doubled solar rooftop potentials to roughly 1 TW for Europe based on recent
can collect outputs across different scenarios. European Commission reports.
- It is further possible to encapsulate your scenarios in a directory using * Consistently sourced data on existing renewable capacities from
the setting ``run: prefix:``. ``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 * Added methanol consumption in industry as reported in the DECHEMA report
perfect foresight pathway optimisation. The first investment period must be directly as methanol demand. (https://github.com/PyPSA/pypsa-eur/pull/1068)
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`_).
* The outputs of the rule ``retrieve_gas_infrastructure_data`` no longer * Adapted disabling of transmission expansion in myopic foresight optimizations
marked as ``protected()`` as the download size is small. 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. * Bugfix: Ensure gas-fired power plants are correctly added as OCGT or CCGT in
* Improved the behaviour of `agg_p_nom_limits`: :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 * Fixed error with ``symbol`` column of buses in :mod:`simplify_network`.
<https://dechema.de/dechema_media/Downloads/Positionspapiere/Technology_study_Low_carbon_energy_and_feedstock_for_the_European_chemical_industry.pdf>`__ (https://github.com/PyPSA/pypsa-eur/pull/987)
directly as methanol demand rather than with fixed methane and electricity
demands from today's industry sector ratios.
* 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 * Fixed ``p_nom_min`` of renewables generators for myopic approach and added
JRC-IDEES data are updated with newer values from eurostat based on a check of existing capacities in ``add_land_use_constraint_m``.
disaggregated household energy balance. (https://github.com/PyPSA/pypsa-eur/pull/1022,
(https://github.com/PyPSA/pypsa-eur/pull/1025) 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) 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]; graph[bgcolor=white, margin=0];
node[shape=box, style=rounded, fontname=sans, fontsize=10, penwidth=2]; node[shape=box, style=rounded, fontname=sans, fontsize=10, penwidth=2];
edge[penwidth=2, color=grey]; edge[penwidth=2, color=grey];
0[label = "solve_network", color = "0.38 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", color = "0.53 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.01 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.03 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.42 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.10 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.50 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.22 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.44 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.29 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.49 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: onwind", color = "0.50 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: offwind-ac", color = "0.50 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_ship_raster", color = "0.19 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 = "retrieve_ship_raster", color = "0.35 0.6 0.85", style="rounded"]; 14[label = "build_ship_raster", color = "0.08 0.6 0.85", style="rounded"];
15[label = "build_renewable_profiles\ntechnology: offwind-dc", color = "0.50 0.6 0.85", style="rounded"]; 15[label = "retrieve_ship_raster", color = "0.28 0.6 0.85", style="rounded"];
16[label = "build_line_rating", color = "0.60 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 = "retrieve_cost_data\nyear: 2030", color = "0.59 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_powerplants", color = "0.06 0.6 0.85", style="rounded"]; 18[label = "build_line_rating", color = "0.07 0.6 0.85", style="rounded"];
19[label = "build_electricity_demand", color = "0.13 0.6 0.85", style="rounded"]; 19[label = "retrieve_cost_data\nyear: 2030", color = "0.47 0.6 0.85", style="rounded"];
20[label = "retrieve_electricity_demand", color = "0.49 0.6 0.85", style="rounded"]; 20[label = "build_powerplants", color = "0.11 0.6 0.85", style="rounded"];
21[label = "retrieve_synthetic_electricity_demand", color = "0.41 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 1 -> 0
2 -> 1 2 -> 1
17 -> 1 19 -> 1
3 -> 2 3 -> 2
17 -> 2 19 -> 2
4 -> 3 4 -> 3
17 -> 3 19 -> 3
5 -> 4 5 -> 4
17 -> 4 19 -> 4
7 -> 4 7 -> 4
6 -> 5 6 -> 5
11 -> 5 11 -> 5
12 -> 5 12 -> 5
15 -> 5 13 -> 5
7 -> 5
16 -> 5 16 -> 5
17 -> 5 17 -> 5
7 -> 5
18 -> 5 18 -> 5
19 -> 5 19 -> 5
20 -> 5
21 -> 5
8 -> 5 8 -> 5
7 -> 6 7 -> 6
9 -> 6 9 -> 6
@ -186,21 +190,30 @@ This triggers a workflow of multiple preceding jobs that depend on each rule's i
10 -> 11 10 -> 11
7 -> 12 7 -> 12
9 -> 12 9 -> 12
13 -> 12
8 -> 12 8 -> 12
10 -> 12 10 -> 12
7 -> 13
9 -> 13
14 -> 13 14 -> 13
8 -> 13
10 -> 13 10 -> 13
7 -> 15 15 -> 14
9 -> 15 10 -> 14
13 -> 15
8 -> 15
10 -> 15
7 -> 16 7 -> 16
9 -> 16
14 -> 16
8 -> 16
10 -> 16 10 -> 16
7 -> 17
9 -> 17
14 -> 17
8 -> 17
10 -> 17
7 -> 18 7 -> 18
20 -> 19 10 -> 18
21 -> 19 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_electricity_demand 1
build_line_rating 1 build_line_rating 1
build_powerplants 1 build_powerplants 1
build_renewable_profiles 4 build_renewable_profiles 6
build_shapes 1 build_shapes 1
build_ship_raster 1 build_ship_raster 1
cluster_network 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 retrieve_synthetic_electricity_demand 1
simplify_network 1 simplify_network 1
solve_network 1 solve_network 1
total 22 total 24
``snakemake`` then runs these jobs in the correct order. ``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 .. code:: bash
[Mon Feb 19 17:06:17 2024]
rule simplify_network: rule simplify_network:
input: resources/test/networks/elec.nc, data/costs_2030.csv, resources/test/regions_onshore.geojson, resources/test/regions_offshore.geojson 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, resources/test/connection_costs_s.csv 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-elec/simplify_network/elec_s.log log: logs/test/simplify_network/elec_s.log
jobid: 4 jobid: 4
benchmark: benchmarks/test-elec/simplify_network/elec_s benchmark: benchmarks/test/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 reason: Forced execution
wildcards: simpl= 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. 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 name: pypsa-eur
channels: channels:
- bioconda
- http://conda.anaconda.org/gurobi
- conda-forge - conda-forge
- bioconda
- gurobi
- defaults
dependencies: dependencies:
- _libgcc_mutex=0.1=conda_forge - _libgcc_mutex=0.1
- _openmp_mutex=4.5=2_gnu - _openmp_mutex=4.5
- affine=2.4.0=pyhd8ed1ab_0 - affine=2.4.0
- alsa-lib=1.2.11=hd590300_1 - alsa-lib=1.2.11
- ampl-mp=3.1.0=h2cc385e_1006 - ampl-mp=3.1.0
- amply=0.1.6=pyhd8ed1ab_0 - amply=0.1.6
- appdirs=1.4.4=pyh9f0ad1d_0 - appdirs=1.4.4
- argparse-dataclass=2.0.0=pyhd8ed1ab_0 - argparse-dataclass=2.0.0
- asttokens=2.4.1=pyhd8ed1ab_0 - asttokens=2.4.1
- atk-1.0=2.38.0=h04ea711_2 - atk-1.0=2.38.0
- atlite=0.2.12=pyhd8ed1ab_0 - atlite=0.2.12
- attr=2.5.1=h166bdaf_1 - attr=2.5.1
- attrs=23.2.0=pyh71513ae_0 - attrs=23.2.0
- aws-c-auth=0.7.18=he0b1f16_0 - aws-c-auth=0.7.22
- aws-c-cal=0.6.11=heb1d5e4_0 - aws-c-cal=0.6.14
- aws-c-common=0.9.15=hd590300_0 - aws-c-common=0.9.19
- aws-c-compression=0.2.18=hce8ee76_3 - aws-c-compression=0.2.18
- aws-c-event-stream=0.4.2=h01f5eca_8 - aws-c-event-stream=0.4.2
- aws-c-http=0.8.1=hdb68c23_10 - aws-c-http=0.8.1
- aws-c-io=0.14.7=hbfbeace_6 - aws-c-io=0.14.8
- aws-c-mqtt=0.10.4=h50844eb_0 - aws-c-mqtt=0.10.4
- aws-c-s3=0.5.7=h6be9164_2 - aws-c-s3=0.5.9
- aws-c-sdkutils=0.1.15=hce8ee76_3 - aws-c-sdkutils=0.1.16
- aws-checksums=0.1.18=hce8ee76_3 - aws-checksums=0.1.18
- aws-crt-cpp=0.26.8=h2150271_2 - aws-crt-cpp=0.26.9
- aws-sdk-cpp=1.11.267=hddb5a97_7 - aws-sdk-cpp=1.11.329
- azure-core-cpp=1.11.1=h91d86a7_1 - azure-core-cpp=1.11.1
- azure-identity-cpp=1.6.0=hf1915f5_1 - azure-identity-cpp=1.6.0
- azure-storage-blobs-cpp=12.10.0=h00ab1b0_1 - azure-storage-blobs-cpp=12.10.0
- azure-storage-common-cpp=12.5.0=h94269e2_4 - azure-storage-common-cpp=12.5.0
- beautifulsoup4=4.12.3=pyha770c72_0 - beautifulsoup4=4.12.3
- blosc=1.21.5=hc2324a3_1 - blosc=1.21.5
- bokeh=3.4.1=pyhd8ed1ab_0 - bokeh=3.4.1
- bottleneck=1.3.8=py311h1f0f07a_0 - bottleneck=1.3.8
- branca=0.7.2=pyhd8ed1ab_0 - branca=0.7.2
- brotli=1.1.0=hd590300_1 - brotli=1.1.0
- brotli-bin=1.1.0=hd590300_1 - brotli-bin=1.1.0
- brotli-python=1.1.0=py311hb755f60_1 - brotli-python=1.1.0
- bzip2=1.0.8=hd590300_5 - bzip2=1.0.8
- c-ares=1.28.1=hd590300_0 - c-ares=1.28.1
- c-blosc2=2.14.4=hb4ffafa_1 - c-blosc2=2.14.4
- ca-certificates=2024.2.2=hbcca054_0 - ca-certificates=2024.2.2
- cads-api-client=1.0.0=pyhd8ed1ab_0 - cads-api-client=1.0.3
- cairo=1.18.0=h3faef2a_0 - cairo=1.18.0
- cartopy=0.23.0=py311h320fe9a_0 - cartopy=0.23.0
- cdsapi=0.7.0=pyhd8ed1ab_0 - cdsapi=0.7.0
- certifi=2024.2.2=pyhd8ed1ab_0 - certifi=2024.2.2
- cffi=1.16.0=py311hb3a22ac_0 - cffi=1.16.0
- cfgv=3.3.1=pyhd8ed1ab_0 - cfgv=3.3.1
- cfitsio=4.4.0=hbdc6101_1 - cfitsio=4.4.0
- cftime=1.6.3=py311h1f0f07a_0 - cftime=1.6.3
- charset-normalizer=3.3.2=pyhd8ed1ab_0 - charset-normalizer=3.3.2
- click=8.1.7=unix_pyh707e725_0 - click=8.1.7
- click-plugins=1.1.1=py_0 - click-plugins=1.1.1
- cligj=0.7.2=pyhd8ed1ab_1 - cligj=0.7.2
- cloudpickle=3.0.0=pyhd8ed1ab_0 - cloudpickle=3.0.0
- coin-or-cbc=2.10.10=h9002f0b_0 - coin-or-cbc=2.10.10
- coin-or-cgl=0.60.7=h516709c_0 - coin-or-cgl=0.60.7
- coin-or-clp=1.17.8=h1ee7a9c_0 - coin-or-clp=1.17.8
- coin-or-osi=0.108.10=haf5fa05_0 - coin-or-osi=0.108.10
- coin-or-utils=2.11.11=hee58242_0 - coin-or-utils=2.11.11
- coincbc=2.10.10=0_metapackage - coincbc=2.10.10
- colorama=0.4.6=pyhd8ed1ab_0 - colorama=0.4.6
- conda-inject=1.3.1=pyhd8ed1ab_0 - conda-inject=1.3.1
- configargparse=1.7=pyhd8ed1ab_0 - configargparse=1.7
- connection_pool=0.0.3=pyhd3deb0d_0 - connection_pool=0.0.3
- contourpy=1.2.1=py311h9547e67_0 - contourpy=1.2.1
- country_converter=1.2=pyhd8ed1ab_0 - country_converter=1.2
- cppad=20240000.4=h59595ed_0 - cppad=20240000.4
- cycler=0.12.1=pyhd8ed1ab_0 - cycler=0.12.1
- cytoolz=0.12.3=py311h459d7ec_0 - cytoolz=0.12.3
- dask=2024.4.2=pyhd8ed1ab_0 - dask=2024.5.1
- dask-core=2024.4.2=pyhd8ed1ab_0 - dask-core=2024.5.1
- dask-expr=1.0.14=pyhd8ed1ab_0 - dask-expr=1.1.1
- datrie=0.8.2=py311h459d7ec_7 - datrie=0.8.2
- dbus=1.13.6=h5008d03_3 - dbus=1.13.6
- decorator=5.1.1=pyhd8ed1ab_0 - decorator=5.1.1
- deprecation=2.1.0=pyh9f0ad1d_0 - deprecation=2.1.0
- descartes=1.1.0=py_4 - descartes=1.1.0
- distlib=0.3.8=pyhd8ed1ab_0 - distlib=0.3.8
- distributed=2024.4.2=pyhd8ed1ab_0 - distributed=2024.5.1
- distro=1.9.0=pyhd8ed1ab_0 - distro=1.9.0
- docutils=0.21.2=pyhd8ed1ab_0 - docutils=0.21.2
- dpath=2.1.6=pyha770c72_0 - dpath=2.1.6
- entsoe-py=0.6.7=pyhd8ed1ab_0 - entsoe-py=0.6.7
- et_xmlfile=1.1.0=pyhd8ed1ab_0 - et_xmlfile=1.1.0
- exceptiongroup=1.2.0=pyhd8ed1ab_2 - exceptiongroup=1.2.0
- executing=2.0.1=pyhd8ed1ab_0 - executing=2.0.1
- expat=2.6.2=h59595ed_0 - expat=2.6.2
- filelock=3.14.0=pyhd8ed1ab_0 - filelock=3.14.0
- fiona=1.9.6=py311hf8e0aa6_0 - fiona=1.9.6
- fmt=10.2.1=h00ab1b0_0 - fmt=10.2.1
- folium=0.16.0=pyhd8ed1ab_0 - folium=0.16.0
- font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - font-ttf-dejavu-sans-mono=2.37
- font-ttf-inconsolata=3.000=h77eed37_0 - font-ttf-inconsolata=3.000
- font-ttf-source-code-pro=2.038=h77eed37_0 - font-ttf-source-code-pro=2.038
- font-ttf-ubuntu=0.83=h77eed37_2 - font-ttf-ubuntu=0.83
- fontconfig=2.14.2=h14ed4e7_0 - fontconfig=2.14.2
- fonts-conda-ecosystem=1=0 - fonts-conda-ecosystem=1
- fonts-conda-forge=1=0 - fonts-conda-forge=1
- fonttools=4.51.0=py311h459d7ec_0 - fonttools=4.52.1
- freetype=2.12.1=h267a509_2 - freetype=2.12.1
- freexl=2.0.0=h743c826_0 - freexl=2.0.0
- fribidi=1.0.10=h36c2ea0_0 - fribidi=1.0.10
- fsspec=2024.3.1=pyhca7485f_0 - fsspec=2024.5.0
- gdal=3.8.5=py311hd032c08_2 - gdal=3.8.5
- gdk-pixbuf=2.42.11=hb9ae30d_0 - gdk-pixbuf=2.42.12
- geographiclib=2.0=pyhd8ed1ab_0 - geographiclib=2.0
- geojson-rewind=1.1.0=pyhd8ed1ab_0 - geojson-rewind=1.1.0
- geopandas=0.14.4=pyhd8ed1ab_0 - geopandas=0.14.4
- geopandas-base=0.14.4=pyha770c72_0 - geopandas-base=0.14.4
- geopy=2.4.1=pyhd8ed1ab_1 - geopy=2.4.1
- geos=3.12.1=h59595ed_0 - geos=3.12.1
- geotiff=1.7.1=h6cf1f90_16 - geotiff=1.7.3
- gettext=0.22.5=h59595ed_2 - gettext=0.22.5
- gettext-tools=0.22.5=h59595ed_2 - gettext-tools=0.22.5
- gflags=2.2.2=he1b5a44_1004 - gflags=2.2.2
- giflib=5.2.2=hd590300_0 - giflib=5.2.2
- gitdb=4.0.11=pyhd8ed1ab_0 - gitdb=4.0.11
- gitpython=3.1.43=pyhd8ed1ab_0 - gitpython=3.1.43
- glib=2.80.0=hf2295e7_6 - glib=2.80.2
- glib-tools=2.80.0=hde27a5a_6 - glib-tools=2.80.2
- glog=0.7.0=hed5481d_0 - glog=0.7.0
- glpk=5.0=h445213a_0 - glpk=5.0
- gmp=6.3.0=h59595ed_1 - gmp=6.3.0
- graphite2=1.3.13=h59595ed_1003 - graphite2=1.3.13
- graphviz=9.0.0=h78e8752_1 - graphviz=11.0.0
- gst-plugins-base=1.24.1=hfa15dee_2 - gst-plugins-base=1.24.3
- gstreamer=1.24.1=h98fc4e7_2 - gstreamer=1.24.3
- gtk2=2.24.33=h280cfa0_4 - gtk2=2.24.33
- gts=0.7.6=h977cf35_4 - gts=0.7.6
- harfbuzz=8.4.0=h3d44ed6_0 - gurobi=11.0.2
- hdf4=4.2.15=h2a13503_7 - harfbuzz=8.5.0
- hdf5=1.14.3=nompi_h4f84152_101 - hdf4=4.2.15
- humanfriendly=10.0=pyhd8ed1ab_6 - hdf5=1.14.3
- icu=73.2=h59595ed_0 - humanfriendly=10.0
- identify=2.5.36=pyhd8ed1ab_0 - icu=73.2
- idna=3.7=pyhd8ed1ab_0 - identify=2.5.36
- immutables=0.20=py311h459d7ec_1 - idna=3.7
- importlib-metadata=7.1.0=pyha770c72_0 - immutables=0.20
- importlib_metadata=7.1.0=hd8ed1ab_0 - importlib-metadata=7.1.0
- importlib_resources=6.4.0=pyhd8ed1ab_0 - importlib_metadata=7.1.0
- iniconfig=2.0.0=pyhd8ed1ab_0 - importlib_resources=6.4.0
- ipopt=3.14.16=hf967516_0 - iniconfig=2.0.0
- ipython=8.22.2=pyh707e725_0 - ipopt=3.14.16
- jedi=0.19.1=pyhd8ed1ab_0 - ipython=8.24.0
- jinja2=3.1.3=pyhd8ed1ab_0 - jedi=0.19.1
- joblib=1.4.2=pyhd8ed1ab_0 - jinja2=3.1.4
- json-c=0.17=h7ab15ed_0 - joblib=1.4.2
- jsonschema=4.22.0=pyhd8ed1ab_0 - json-c=0.17
- jsonschema-specifications=2023.12.1=pyhd8ed1ab_0 - jsonschema=4.22.0
- jupyter_core=5.7.2=py311h38be061_0 - jsonschema-specifications=2023.12.1
- kealib=1.5.3=h2f55d51_0 - jupyter_core=5.7.2
- keyutils=1.6.1=h166bdaf_0 - kealib=1.5.3
- kiwisolver=1.4.5=py311h9547e67_1 - keyutils=1.6.1
- krb5=1.21.2=h659d440_0 - kiwisolver=1.4.5
- lame=3.100=h166bdaf_1003 - krb5=1.21.2
- lcms2=2.16=hb7c19ff_0 - lame=3.100
- ld_impl_linux-64=2.40=h55db66e_0 - lcms2=2.16
- lerc=4.0.0=h27087fc_0 - ld_impl_linux-64=2.40
- libabseil=20240116.2=cxx17_h59595ed_0 - lerc=4.0.0
- libaec=1.1.3=h59595ed_0 - libabseil=20240116.2
- libarchive=3.7.2=h2aa1ff5_1 - libaec=1.1.3
- libarrow=15.0.2=hefa796f_6_cpu - libarchive=3.7.4
- libarrow-acero=15.0.2=hbabe93e_6_cpu - libarrow=16.1.0
- libarrow-dataset=15.0.2=hbabe93e_6_cpu - libarrow-acero=16.1.0
- libarrow-flight=15.0.2=hc4f8a93_6_cpu - libarrow-dataset=16.1.0
- libarrow-flight-sql=15.0.2=he4f5ca8_6_cpu - libarrow-substrait=16.1.0
- libarrow-gandiva=15.0.2=hc1954e9_6_cpu - libasprintf=0.22.5
- libarrow-substrait=15.0.2=he4f5ca8_6_cpu - libasprintf-devel=0.22.5
- libasprintf=0.22.5=h661eb56_2 - libblas=3.9.0
- libasprintf-devel=0.22.5=h661eb56_2 - libboost-headers=1.85.0
- libblas=3.9.0=22_linux64_openblas - libbrotlicommon=1.1.0
- libboost-headers=1.84.0=ha770c72_2 - libbrotlidec=1.1.0
- libbrotlicommon=1.1.0=hd590300_1 - libbrotlienc=1.1.0
- libbrotlidec=1.1.0=hd590300_1 - libcap=2.69
- libbrotlienc=1.1.0=hd590300_1 - libcblas=3.9.0
- libcap=2.69=h0f662aa_0 - libclang-cpp15=15.0.7
- libcblas=3.9.0=22_linux64_openblas - libclang13=18.1.5
- libclang-cpp15=15.0.7=default_h127d8a8_5 - libcrc32c=1.1.2
- libclang13=18.1.4=default_h5d6823c_0 - libcups=2.3.3
- libcrc32c=1.1.2=h9c3ff4c_0 - libcurl=8.8.0
- libcups=2.3.3=h4637d8d_4 - libdeflate=1.20
- libcurl=8.7.1=hca28451_0 - libedit=3.1.20191231
- libdeflate=1.20=hd590300_0 - libev=4.33
- libedit=3.1.20191231=he28a2e2_2 - libevent=2.1.12
- libev=4.33=hd590300_2 - libexpat=2.6.2
- libevent=2.1.12=hf998b51_1 - libffi=3.4.2
- libexpat=2.6.2=h59595ed_0 - libflac=1.4.3
- libffi=3.4.2=h7f98852_5 - libgcc-ng=13.2.0
- libflac=1.4.3=h59595ed_0 - libgcrypt=1.10.3
- libgcc-ng=13.2.0=h77fa898_6 - libgd=2.3.3
- libgcrypt=1.10.3=hd590300_0 - libgdal=3.8.5
- libgd=2.3.3=h119a65a_9 - libgettextpo=0.22.5
- libgdal=3.8.5=hf9625ee_2 - libgettextpo-devel=0.22.5
- libgettextpo=0.22.5=h59595ed_2 - libgfortran-ng=13.2.0
- libgettextpo-devel=0.22.5=h59595ed_2 - libgfortran5=13.2.0
- libgfortran-ng=13.2.0=h69a702a_6 - libglib=2.80.2
- libgfortran5=13.2.0=h43f5ff8_6 - libgomp=13.2.0
- libglib=2.80.0=hf2295e7_6 - libgoogle-cloud=2.24.0
- libgomp=13.2.0=h77fa898_6 - libgoogle-cloud-storage=2.24.0
- libgoogle-cloud=2.23.0=h9be4e54_1 - libgpg-error=1.49
- libgoogle-cloud-storage=2.23.0=hc7a4891_1 - libgrpc=1.62.2
- libgpg-error=1.49=h4f305b6_0 - libhwloc=2.9.3
- libgrpc=1.62.2=h15f2491_0 - libiconv=1.17
- libhwloc=2.9.3=default_h554bfaf_1009 - libjpeg-turbo=3.0.0
- libiconv=1.17=hd590300_2 - libkml=1.3.0
- libjpeg-turbo=3.0.0=hd590300_1 - liblapack=3.9.0
- libkml=1.3.0=h01aab08_1018 - liblapacke=3.9.0
- liblapack=3.9.0=22_linux64_openblas - libllvm15=15.0.7
- liblapacke=3.9.0=22_linux64_openblas - libllvm18=18.1.6
- libllvm15=15.0.7=hb3ce162_4 - libnetcdf=4.9.2
- libllvm16=16.0.6=hb3ce162_3 - libnghttp2=1.58.0
- libllvm18=18.1.4=h2448989_0 - libnsl=2.0.1
- libnetcdf=4.9.2=nompi_h9612171_113 - libogg=1.3.4
- libnghttp2=1.58.0=h47da74e_1 - libopenblas=0.3.27
- libnl=3.9.0=hd590300_0 - libopus=1.3.1
- libnsl=2.0.1=hd590300_0 - libparquet=16.1.0
- libogg=1.3.4=h7f98852_1 - libpng=1.6.43
- libopenblas=0.3.27=pthreads_h413a1c8_0 - libpq=16.3
- libopus=1.3.1=h7f98852_1 - libprotobuf=4.25.3
- libparquet=15.0.2=hacf5a1f_6_cpu - libre2-11=2023.09.01
- libpng=1.6.43=h2797004_0 - librsvg=2.58.0
- libpq=16.2=h33b98f1_1 - librttopo=1.1.0
- libprotobuf=4.25.3=h08a7969_0 - libscotch=7.0.4
- libre2-11=2023.09.01=h5a48ba9_2 - libsndfile=1.2.2
- librsvg=2.58.0=hadf69e7_1 - libspatialindex=1.9.3
- librttopo=1.1.0=h8917695_15 - libspatialite=5.1.0
- libscotch=7.0.4=h91e35bf_1 - libspral=2024.01.18
- libsndfile=1.2.2=hc60ed4a_1 - libsqlite=3.45.3
- libspatialindex=1.9.3=h9c3ff4c_4 - libssh2=1.11.0
- libspatialite=5.1.0=h6f065fc_5 - libstdcxx-ng=13.2.0
- libspral=2024.01.18=h6aa6db2_0 - libsystemd0=255
- libsqlite=3.45.3=h2797004_0 - libthrift=0.19.0
- libssh2=1.11.0=h0841786_0 - libtiff=4.6.0
- libstdcxx-ng=13.2.0=hc0a3c3a_6 - libutf8proc=2.8.0
- libsystemd0=255=h3516f8a_1 - libuuid=2.38.1
- libthrift=0.19.0=hb90f79a_1 - libvorbis=1.3.7
- libtiff=4.6.0=h1dd3fc0_3 - libwebp=1.4.0
- libutf8proc=2.8.0=h166bdaf_0 - libwebp-base=1.4.0
- libuuid=2.38.1=h0b41bf4_0 - libxcb=1.15
- libvorbis=1.3.7=h9c3ff4c_0 - libxcrypt=4.4.36
- libwebp=1.4.0=h2c329e2_0 - libxkbcommon=1.7.0
- libwebp-base=1.4.0=hd590300_0 - libxml2=2.12.7
- libxcb=1.15=h0b41bf4_0 - libxslt=1.1.39
- libxcrypt=4.4.36=hd590300_1 - libzip=1.10.1
- libxkbcommon=1.7.0=h662e7e4_0 - libzlib=1.2.13
- libxml2=2.12.6=h232c23b_2 - linopy=0.3.9
- libxslt=1.1.39=h76b75d6_0 - locket=1.0.0
- libzip=1.10.1=h2629f0a_3 - lxml=5.2.2
- libzlib=1.2.13=hd590300_5 - lz4=4.3.3
- linopy=0.3.8=pyhd8ed1ab_0 - lz4-c=1.9.4
- locket=1.0.0=pyhd8ed1ab_0 - lzo=2.10
- lxml=5.2.1=py311hc0a218f_0 - mapclassify=2.6.1
- lz4=4.3.3=py311h38e4bf4_0 - markupsafe=2.1.5
- lz4-c=1.9.4=hcb278e6_0 - matplotlib=3.8.4
- lzo=2.10=hd590300_1001 - matplotlib-base=3.8.4
- mapclassify=2.6.1=pyhd8ed1ab_0 - matplotlib-inline=0.1.7
- markupsafe=2.1.5=py311h459d7ec_0 - memory_profiler=0.61.0
- matplotlib=3.8.4=py311h38be061_0 - metis=5.1.0
- matplotlib-base=3.8.4=py311h54ef318_0 - minizip=4.0.5
- matplotlib-inline=0.1.7=pyhd8ed1ab_0 - mpfr=4.2.1
- memory_profiler=0.61.0=pyhd8ed1ab_0 - mpg123=1.32.6
- metis=5.1.0=h59595ed_1007 - msgpack-python=1.0.8
- minizip=4.0.5=h0ab5242_0 - multiurl=0.3.1
- mpfr=4.2.1=h9458935_1 - mumps-include=5.7.1
- mpg123=1.32.6=h59595ed_0 - mumps-seq=5.7.1
- msgpack-python=1.0.7=py311h9547e67_0 - munkres=1.1.4
- multiurl=0.3.1=pyhd8ed1ab_0 - mysql-common=8.3.0
- mumps-include=5.6.2=ha770c72_4 - mysql-libs=8.3.0
- mumps-seq=5.6.2=hfef103a_4 - nbformat=5.10.4
- munkres=1.1.4=pyh9f0ad1d_0 - ncurses=6.5
- mysql-common=8.3.0=hf1915f5_4 - netcdf4=1.6.5
- mysql-libs=8.3.0=hca2cd23_4 - networkx=3.3
- nbformat=5.10.4=pyhd8ed1ab_0 - nodeenv=1.8.0
- ncurses=6.4.20240210=h59595ed_0 - nomkl=1.0
- netcdf4=1.6.5=nompi_py311he8ad708_100 - nspr=4.35
- networkx=3.3=pyhd8ed1ab_1 - nss=3.100
- nodeenv=1.8.0=pyhd8ed1ab_0 - numexpr=2.9.0
- nomkl=1.0=h5ca1d4c_0 - numpy=1.26.4
- nspr=4.35=h27087fc_0 - openjdk=22.0.1
- nss=3.98=h1d7d5a4_0 - openjpeg=2.5.2
- numexpr=2.9.0=py311h039bad6_100 - openpyxl=3.1.2
- numpy=1.26.4=py311h64a7726_0 - openssl=3.3.0
- openjdk=22.0.1=hb622114_0 - orc=2.0.1
- openjpeg=2.5.2=h488ebb8_0 - packaging=24.0
- openpyxl=3.1.2=py311h459d7ec_1 - pandas=2.2.2
- openssl=3.3.0=hd590300_0 - pango=1.52.2
- orc=2.0.0=h17fec99_1 - parso=0.8.4
- packaging=24.0=pyhd8ed1ab_0 - partd=1.4.2
- pandas=2.2.2=py311h320fe9a_0 - patsy=0.5.6
- pango=1.52.2=ha41ecd1_0 - pcre2=10.43
- parso=0.8.4=pyhd8ed1ab_0 - pexpect=4.9.0
- partd=1.4.1=pyhd8ed1ab_0 - pickleshare=0.7.5
- patsy=0.5.6=pyhd8ed1ab_0 - pillow=10.3.0
- pcre2=10.43=hcad00b1_0 - pip=24.0
- pexpect=4.9.0=pyhd8ed1ab_0 - pixman=0.43.2
- pickleshare=0.7.5=py_1003 - pkgutil-resolve-name=1.3.10
- pillow=10.3.0=py311h18e6fac_0 - plac=1.4.3
- pip=24.0=pyhd8ed1ab_0 - platformdirs=4.2.2
- pixman=0.43.2=h59595ed_0 - pluggy=1.5.0
- pkgutil-resolve-name=1.3.10=pyhd8ed1ab_1 - ply=3.11
- plac=1.4.3=pyhd8ed1ab_0 - poppler=24.04.0
- platformdirs=4.2.1=pyhd8ed1ab_0 - poppler-data=0.4.12
- pluggy=1.5.0=pyhd8ed1ab_0 - postgresql=16.3
- ply=3.11=pyhd8ed1ab_2 - powerplantmatching=0.5.15
- poppler=24.04.0=hb6cd0d7_0 - pre-commit=3.7.1
- poppler-data=0.4.12=hd8ed1ab_0 - progressbar2=4.4.2
- postgresql=16.2=h82ecc9d_1 - proj=9.4.0
- powerplantmatching=0.5.14=pyhd8ed1ab_0 - prompt-toolkit=3.0.42
- pre-commit=3.7.0=pyha770c72_0 - psutil=5.9.8
- progressbar2=4.4.2=pyhd8ed1ab_0 - pthread-stubs=0.4
- proj=9.4.0=h1d62c97_1 - ptyprocess=0.7.0
- prompt-toolkit=3.0.42=pyha770c72_0 - pulp=2.8.0
- psutil=5.9.8=py311h459d7ec_0 - pulseaudio-client=17.0
- pthread-stubs=0.4=h36c2ea0_1001 - pure_eval=0.2.2
- ptyprocess=0.7.0=pyhd3deb0d_0 - py-cpuinfo=9.0.0
- pulp=2.8.0=py311h38be061_0 - pyarrow=16.1.0
- pulseaudio-client=17.0=hb77b528_0 - pyarrow-core=16.1.0
- pure_eval=0.2.2=pyhd8ed1ab_0 - pyarrow-hotfix=0.6
- py-cpuinfo=9.0.0=pyhd8ed1ab_0 - pycountry=22.3.5
- pyarrow=15.0.2=py311hd5e4297_6_cpu - pycparser=2.22
- pyarrow-hotfix=0.6=pyhd8ed1ab_0 - pygments=2.18.0
- pycountry=22.3.5=pyhd8ed1ab_0 - pyomo=6.6.1
- pycparser=2.22=pyhd8ed1ab_0 - pyparsing=3.1.2
- pygments=2.17.2=pyhd8ed1ab_0 - pyproj=3.6.1
- pyomo=6.6.1=py311hb755f60_0 - pypsa=0.28.0
- pyparsing=3.1.2=pyhd8ed1ab_0 - pyqt=5.15.9
- pyproj=3.6.1=py311hb3a3e68_6 - pyqt5-sip=12.12.2
- pypsa=0.27.1=pyhd8ed1ab_0 - pyscipopt=5.0.1
- pyqt=5.15.9=py311hf0fb5b6_5 - pyshp=2.3.1
- pyqt5-sip=12.12.2=py311hb755f60_5 - pysocks=1.7.1
- pyscipopt=5.0.1=py311hb755f60_0 - pytables=3.9.2
- pyshp=2.3.1=pyhd8ed1ab_0 - pytest=8.2.1
- pysocks=1.7.1=pyha2e5f31_6 - python=3.11.9
- pytables=3.9.2=py311h3e8b7c9_2 - python-dateutil=2.9.0
- pytest=8.2.0=pyhd8ed1ab_0 - python-fastjsonschema=2.19.1
- python=3.11.9=hb806964_0_cpython - python-tzdata=2024.1
- python-dateutil=2.9.0=pyhd8ed1ab_0 - python-utils=3.8.2
- python-fastjsonschema=2.19.1=pyhd8ed1ab_0 - python_abi=3.11
- python-tzdata=2024.1=pyhd8ed1ab_0 - pytz=2024.1
- python-utils=3.8.2=pyhd8ed1ab_0 - pyxlsb=1.0.10
- python_abi=3.11=4_cp311 - pyyaml=6.0.1
- pytz=2024.1=pyhd8ed1ab_0 - qt-main=5.15.8
- pyxlsb=1.0.10=pyhd8ed1ab_0 - rasterio=1.3.10
- pyyaml=6.0.1=py311h459d7ec_1 - re2=2023.09.01
- qt-main=5.15.8=hc9dc06e_21 - readline=8.2
- rasterio=1.3.10=py311h375a7ea_0 - referencing=0.35.1
- rdma-core=51.0=hd3aeb46_0 - requests=2.32.2
- re2=2023.09.01=h7f4b329_2 - reretry=0.11.8
- readline=8.2=h8228510_1 - rioxarray=0.15.5
- referencing=0.35.1=pyhd8ed1ab_0 - rpds-py=0.18.1
- requests=2.31.0=pyhd8ed1ab_0 - rtree=1.2.0
- reretry=0.11.8=pyhd8ed1ab_0 - s2n=1.4.15
- rioxarray=0.15.5=pyhd8ed1ab_0 - scikit-learn=1.5.0
- rpds-py=0.18.0=py311h46250e7_0 - scip=9.0.1
- rtree=1.2.0=py311h3bb2b0f_0 - scipy=1.13.1
- s2n=1.4.12=h06160fa_0 - scotch=7.0.4
- scikit-learn=1.4.2=py311hc009520_0 - seaborn=0.13.2
- scip=9.0.0=hded5f35_4 - seaborn-base=0.13.2
- scipy=1.13.0=py311h64a7726_0 - setuptools=70.0.0
- scotch=7.0.4=h23d43cc_1 - setuptools-scm=8.1.0
- seaborn=0.13.2=hd8ed1ab_2 - setuptools_scm=8.1.0
- seaborn-base=0.13.2=pyhd8ed1ab_2 - shapely=2.0.4
- setuptools=69.5.1=pyhd8ed1ab_0 - sip=6.7.12
- setuptools-scm=8.0.4=pyhd8ed1ab_1 - six=1.16.0
- setuptools_scm=8.0.4=hd8ed1ab_1 - smart_open=7.0.4
- shapely=2.0.4=py311h2032efe_0 - smmap=5.0.0
- sip=6.7.12=py311hb755f60_0 - snakemake-interface-common=1.17.2
- six=1.16.0=pyh6c4a22f_0 - snakemake-interface-executor-plugins=9.1.1
- smart_open=7.0.4=pyhd8ed1ab_0 - snakemake-interface-report-plugins=1.0.0
- smmap=5.0.0=pyhd8ed1ab_0 - snakemake-interface-storage-plugins=3.2.2
- snakemake-interface-common=1.17.2=pyhdfd78af_0 - snakemake-minimal=8.11.6
- snakemake-interface-executor-plugins=9.1.1=pyhdfd78af_0 - snappy=1.2.0
- snakemake-interface-report-plugins=1.0.0=pyhdfd78af_0 - snuggs=1.4.7
- snakemake-interface-storage-plugins=3.2.2=pyhdfd78af_0 - sortedcontainers=2.4.0
- snakemake-minimal=8.11.1=pyhdfd78af_0 - soupsieve=2.5
- snappy=1.2.0=hdb0a2a9_1 - spdlog=1.13.0
- snuggs=1.4.7=py_0 - sqlite=3.45.3
- sortedcontainers=2.4.0=pyhd8ed1ab_0 - stack_data=0.6.2
- soupsieve=2.5=pyhd8ed1ab_1 - statsmodels=0.14.2
- spdlog=1.13.0=hd2e6256_0 - stopit=1.1.2
- sqlite=3.45.3=h2c6b66d_0 - tabula-py=2.7.0
- stack_data=0.6.2=pyhd8ed1ab_0 - tabulate=0.9.0
- statsmodels=0.14.1=py311h1f0f07a_0 - tbb=2021.11.0
- stopit=1.1.2=py_0 - tblib=3.0.0
- tabula-py=2.7.0=py311h38be061_1 - threadpoolctl=3.5.0
- tabulate=0.9.0=pyhd8ed1ab_1 - throttler=1.2.2
- tbb=2021.11.0=h00ab1b0_1 - tiledb=2.23.0
- tblib=3.0.0=pyhd8ed1ab_0 - tk=8.6.13
- threadpoolctl=3.5.0=pyhc1e730c_0 - toml=0.10.2
- throttler=1.2.2=pyhd8ed1ab_0 - tomli=2.0.1
- tiledb=2.22.0=h27f064a_3 - toolz=0.12.1
- tk=8.6.13=noxft_h4845f30_101 - toposort=1.10
- toml=0.10.2=pyhd8ed1ab_0 - tornado=6.4
- tomli=2.0.1=pyhd8ed1ab_0 - tqdm=4.66.4
- toolz=0.12.1=pyhd8ed1ab_0 - traitlets=5.14.3
- toposort=1.10=pyhd8ed1ab_0 - typing-extensions=4.11.0
- tornado=6.4=py311h459d7ec_0 - typing_extensions=4.11.0
- tqdm=4.66.2=pyhd8ed1ab_0 - tzcode=2024a
- traitlets=5.14.3=pyhd8ed1ab_0 - tzdata=2024a
- typing-extensions=4.11.0=hd8ed1ab_0 - ukkonen=1.0.1
- typing_extensions=4.11.0=pyha770c72_0 - unidecode=1.3.8
- tzcode=2024a=h3f72095_0 - unixodbc=2.3.12
- tzdata=2024a=h0c530f3_0 - uriparser=0.9.8
- ucx=1.15.0=ha691c75_8 - urllib3=2.2.1
- ukkonen=1.0.1=py311h9547e67_4 - validators=0.28.2
- unidecode=1.3.8=pyhd8ed1ab_0 - virtualenv=20.26.2
- unixodbc=2.3.12=h661eb56_0 - wcwidth=0.2.13
- uriparser=0.9.7=h59595ed_1 - wheel=0.43.0
- urllib3=2.2.1=pyhd8ed1ab_0 - wrapt=1.16.0
- validators=0.28.1=pyhd8ed1ab_0 - xarray=2024.5.0
- virtualenv=20.26.1=pyhd8ed1ab_0 - xcb-util=0.4.0
- wcwidth=0.2.13=pyhd8ed1ab_0 - xcb-util-image=0.4.0
- wheel=0.43.0=pyhd8ed1ab_1 - xcb-util-keysyms=0.4.0
- wrapt=1.16.0=py311h459d7ec_0 - xcb-util-renderutil=0.3.9
- xarray=2024.3.0=pyhd8ed1ab_0 - xcb-util-wm=0.4.1
- xcb-util=0.4.0=hd590300_1 - xerces-c=3.2.5
- xcb-util-image=0.4.0=h8ee46fc_1 - xkeyboard-config=2.41
- xcb-util-keysyms=0.4.0=h8ee46fc_1 - xlrd=2.0.1
- xcb-util-renderutil=0.3.9=hd590300_1 - xorg-fixesproto=5.0
- xcb-util-wm=0.4.1=h8ee46fc_1 - xorg-inputproto=2.3.2
- xerces-c=3.2.5=hac6953d_0 - xorg-kbproto=1.0.7
- xkeyboard-config=2.41=hd590300_0 - xorg-libice=1.1.1
- xlrd=2.0.1=pyhd8ed1ab_3 - xorg-libsm=1.2.4
- xorg-fixesproto=5.0=h7f98852_1002 - xorg-libx11=1.8.9
- xorg-inputproto=2.3.2=h7f98852_1002 - xorg-libxau=1.0.11
- xorg-kbproto=1.0.7=h7f98852_1002 - xorg-libxdmcp=1.1.3
- xorg-libice=1.1.1=hd590300_0 - xorg-libxext=1.3.4
- xorg-libsm=1.2.4=h7391055_0 - xorg-libxfixes=5.0.3
- xorg-libx11=1.8.9=h8ee46fc_0 - xorg-libxi=1.7.10
- xorg-libxau=1.0.11=hd590300_0 - xorg-libxrender=0.9.11
- xorg-libxdmcp=1.1.3=h7f98852_0 - xorg-libxt=1.3.0
- xorg-libxext=1.3.4=h0b41bf4_2 - xorg-libxtst=1.2.3
- xorg-libxfixes=5.0.3=h7f98852_1004 - xorg-recordproto=1.14.2
- xorg-libxi=1.7.10=h7f98852_0 - xorg-renderproto=0.11.1
- xorg-libxrender=0.9.11=hd590300_0 - xorg-xextproto=7.3.0
- xorg-libxt=1.3.0=hd590300_1 - xorg-xf86vidmodeproto=2.3.1
- xorg-libxtst=1.2.3=h7f98852_1002 - xorg-xproto=7.0.31
- xorg-recordproto=1.14.2=h7f98852_1002 - xyzservices=2024.4.0
- xorg-renderproto=0.11.1=h7f98852_1002 - xz=5.2.6
- xorg-xextproto=7.3.0=h0b41bf4_1003 - yaml=0.2.5
- xorg-xf86vidmodeproto=2.3.1=h7f98852_1002 - yte=1.5.4
- xorg-xproto=7.0.31=h7f98852_1007 - zict=3.0.0
- xyzservices=2024.4.0=pyhd8ed1ab_0 - zipp=3.17.0
- xz=5.2.6=h166bdaf_0 - zlib=1.2.13
- yaml=0.2.5=h7f98852_2 - zlib-ng=2.0.7
- yte=1.5.4=pyha770c72_0 - zstd=1.5.6
- 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
- pip: - pip:
- highspy==1.5.3 - highspy==1.5.3
- oauthlib==3.2.2 - oauthlib==3.2.2
- requests-oauthlib==1.3.1 - requests-oauthlib==1.3.1
- snakemake-executor-plugin-cluster-generic==1.0.9 - 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-executor-plugin-slurm-jobstep==0.2.1
- snakemake-storage-plugin-http==0.2.3 - snakemake-storage-plugin-http==0.2.3
- tsam==2.3.1 - tsam==2.3.1