prepare release 0.8.1

This commit is contained in:
Fabian Neumann 2023-07-27 11:23:02 +02:00
parent e91dfdcf97
commit 8e6a70b468
8 changed files with 595 additions and 416 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.8.0 version: 0.8.1
license: MIT license: MIT
authors: authors:
- family-names: Brown - family-names: Brown

View File

@ -9,7 +9,7 @@ SPDX-License-Identifier: CC-BY-4.0
![Size](https://img.shields.io/github/repo-size/pypsa/pypsa-eur) ![Size](https://img.shields.io/github/repo-size/pypsa/pypsa-eur)
[![Zenodo PyPSA-Eur](https://zenodo.org/badge/DOI/10.5281/zenodo.3520874.svg)](https://doi.org/10.5281/zenodo.3520874) [![Zenodo PyPSA-Eur](https://zenodo.org/badge/DOI/10.5281/zenodo.3520874.svg)](https://doi.org/10.5281/zenodo.3520874)
[![Zenodo PyPSA-Eur-Sec](https://zenodo.org/badge/DOI/10.5281/zenodo.3938042.svg)](https://doi.org/10.5281/zenodo.3938042) [![Zenodo PyPSA-Eur-Sec](https://zenodo.org/badge/DOI/10.5281/zenodo.3938042.svg)](https://doi.org/10.5281/zenodo.3938042)
[![Snakemake](https://img.shields.io/badge/snakemake-≥5.0.0-brightgreen.svg?style=flat)](https://snakemake.readthedocs.io) [![Snakemake](https://img.shields.io/badge/snakemake-≥7.7.0-brightgreen.svg?style=flat)](https://snakemake.readthedocs.io)
[![REUSE status](https://api.reuse.software/badge/github.com/pypsa/pypsa-eur)](https://api.reuse.software/info/github.com/pypsa/pypsa-eur) [![REUSE status](https://api.reuse.software/badge/github.com/pypsa/pypsa-eur)](https://api.reuse.software/info/github.com/pypsa/pypsa-eur)
[![Stack Exchange questions](https://img.shields.io/stackexchange/stackoverflow/t/pypsa)](https://stackoverflow.com/questions/tagged/pypsa) [![Stack Exchange questions](https://img.shields.io/stackexchange/stackoverflow/t/pypsa)](https://stackoverflow.com/questions/tagged/pypsa)
@ -35,17 +35,18 @@ The model is designed to be imported into the open toolbox
[PyPSA](https://github.com/PyPSA/PyPSA). [PyPSA](https://github.com/PyPSA/PyPSA).
**WARNING**: PyPSA-Eur is under active development and has several **WARNING**: PyPSA-Eur is under active development and has several
[limitations](https://pypsa-eur.readthedocs.io/en/latest/limitations.html) [limitations](https://pypsa-eur.readthedocs.io/en/latest/limitations.html) which
which you should understand before using the model. The github repository you should understand before using the model. The github repository
[issues](https://github.com/PyPSA/pypsa-eur/issues) collect known topics we are [issues](https://github.com/PyPSA/pypsa-eur/issues) collect known topics we are
working on (please feel free to help or make suggestions). The working on (please feel free to help or make suggestions). The
[documentation](https://pypsa-eur.readthedocs.io/) remains somewhat patchy. You [documentation](https://pypsa-eur.readthedocs.io/) remains somewhat patchy. You
can find showcases of the model's capabilities in the preprint [Benefits of a can find showcases of the model's capabilities in the Joule paper [The potential
Hydrogen Network in Europe](https://arxiv.org/abs/2207.05816), a [paper in Joule role of a hydrogen network in
with a description of the industry sector](https://arxiv.org/abs/2109.09563), or Europe](https://doi.org/10.1016/j.joule.2023.06.016), another [paper in Joule
in [a 2021 presentation at EMP-E](https://nworbmot.org/energy/brown-empe.pdf). with a description of the industry
We cannot support this model if you choose to use it. We do not recommend to use sector](https://doi.org/10.1016/j.joule.2022.04.016), or in [a 2021 presentation
the full resolution network model for simulations. At high granularity the at EMP-E](https://nworbmot.org/energy/brown-empe.pdf). We do not recommend to
use the full resolution network model for simulations. At high granularity the
assignment of loads and generators to the nearest network node may not be a assignment of loads and generators to the nearest network node may not be a
correct assumption, depending on the topology of the underlying distribution correct assumption, depending on the topology of the underlying distribution
grid, and local grid bottlenecks may cause unrealistic load-shedding or grid, and local grid bottlenecks may cause unrealistic load-shedding or

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.8.0 version: 0.8.1
tutorial: false tutorial: false
logging: logging:

View File

@ -78,10 +78,10 @@ them:
.. note:: .. note::
You can find showcases of the model's capabilities in the Supplementary Materials of the You can find showcases of the model's capabilities in the Supplementary Materials of the
preprint `Benefits of a Hydrogen Network in Europe Joule paper `The potential role of a hydrogen network in Europe
<https://arxiv.org/abs/2207.05816>`_, the Supplementary Materials of the `paper in Joule with a <https://doi.org/10.1016/j.joule.2023.06.016>`_, the Supplementary Materials of another `paper in Joule with a
description of the industry sector description of the industry sector
<https://arxiv.org/abs/2109.09563>`_, or in `a 2021 presentation <https://doi.org/10.1016/j.joule.2022.04.016>`_, or in `a 2021 presentation
at EMP-E <https://nworbmot.org/energy/brown-empe.pdf>`_. at EMP-E <https://nworbmot.org/energy/brown-empe.pdf>`_.
The sector-coupled extension of PyPSA-Eur was The sector-coupled extension of PyPSA-Eur was
initially described in the paper `Synergies of sector coupling and transmission initially described in the paper `Synergies of sector coupling and transmission
@ -179,10 +179,13 @@ For sector-coupling studies: ::
@misc{PyPSAEurSec, @misc{PyPSAEurSec,
author = "Fabian Neumann and Elisabeth Zeyen and Marta Victoria and Tom Brown", author = "Fabian Neumann and Elisabeth Zeyen and Marta Victoria and Tom Brown",
title = "The Potential Role of a Hydrogen Network in Europe", title = "The potential role of a hydrogen network in Europe",
year = "2022", journal "Joule",
volume = "7",
pages = "1--25"
year = "2023",
eprint = "2207.05816", eprint = "2207.05816",
url = "https://arxiv.org/abs/2207.05816", doi = "10.1016/j.joule.2022.04.016",
} }
For sector-coupling studies with pathway optimisation: :: For sector-coupling studies with pathway optimisation: ::

View File

@ -7,46 +7,130 @@
Release Notes Release Notes
########################################## ##########################################
Upcoming Release .. Upcoming Release
================ .. ================
* ``param:`` section in rule definition are added to track changed settings in ``config.yaml``. The goal is to automatically re-execute rules whose parameters have changed. See `Non-file parameters for rules <https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules>`_ in the snakemake documentation. PyPSA-Eur 0.8.1 (27th July 2023)
================================
* **Important:** The configuration files are now located in the ``config`` directory. This counts for ``config.default.yaml``, ``config.yaml`` as well as the test configuration files which are now located in ``config/test``. Config files that are still in the root directory will be ignored. **New Features**
* Bugfix: Correct typo in the CPLEX solver configuration in ``config.default.yaml``. * Add option to consider dynamic line rating based on wind speeds and
temperature according to `Glaum and Hofmann (2022)
<https://arxiv.org/abs/2208.04716>`_. See configuration section ``lines:
dynamic_line_rating:`` for more details. (https://github.com/PyPSA/pypsa-eur/pull/675)
* Bugfix: Error in ``add_electricity`` where carriers were added multiple times to the network, resulting in a non-unique carriers error. * Add option to include a piecewise linear approximation of transmission losses,
e.g. by setting ``solving: options: transmission_losses: 2`` for an
* Renamed script file from PyPSA-EUR ``build_load_data`` to ``build_electricity_demand`` and ``retrieve_load_data`` to ``retrieve_electricity_demand``. approximation with two tangents. (https://github.com/PyPSA/pypsa-eur/pull/664)
* Fix docs readthedocs built
* Add plain hydrogen turbine as additional re-electrification option besides * Add plain hydrogen turbine as additional re-electrification option besides
hydrogen fuel cell. Add switches for both re-electrification options under hydrogen fuel cell. Add switches for both re-electrification options under
``sector: hydrogen_turbine:`` and ``sector: hydrogen_fuel_cell:``. ``sector: hydrogen_turbine:`` and ``sector: hydrogen_fuel_cell:``.
(https://github.com/PyPSA/pypsa-eur/pull/647)
* A new function named ``sanitize_carrier`` ensures that all unique carrier names are present in the network's carriers attribute, and adds nice names and colors for each carrier according to the provided configuration dictionary.
* Additional tech_color are added to include previously unlisted carriers.
* Remove ``vresutils`` dependency.
* Added configuration option ``lines: max_extension:`` and ``links: * Added configuration option ``lines: max_extension:`` and ``links:
max_extension:``` to control the maximum capacity addition per line or link in max_extension:``` to control the maximum capacity addition per line or link in
MW. MW. (https://github.com/PyPSA/pypsa-eur/pull/665)
* Add option to include a piecewise linear approximation of transmission losses, * A ``param:`` section in the snakemake rule definitions was added to track
e.g. by setting ``solving: options: transmission_losses: 2`` for an changed settings in ``config.yaml``. The goal is to automatically re-execute
approximation with two tangents. rules where parameters have changed. See `Non-file parameters for rules
<https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#non-file-parameters-for-rules>`_
in the snakemake documentation. (https://github.com/PyPSA/pypsa-eur/pull/663)
* A new function named ``sanitize_carrier`` ensures that all unique carrier
names are present in the network's carriers attribute, and adds nice names and
colors for each carrier according to the provided configuration dictionary.
(https://github.com/PyPSA/pypsa-eur/pull/653,
https://github.com/PyPSA/pypsa-eur/pull/690)
* The configuration settings have been documented in more detail.
(https://github.com/PyPSA/pypsa-eur/pull/685)
**Breaking Changes**
* The configuration files are now located in the ``config`` directory. This
includes the ``config.default.yaml``, ``config.yaml`` as well as the test
configuration files which are now located in the ``config/test`` directory.
Config files that are still in the root directory will be ignored.
(https://github.com/PyPSA/pypsa-eur/pull/640)
* Renamed script and rule name from ``build_load_data`` to
``build_electricity_demand`` and ``retrieve_load_data`` to
``retrieve_electricity_demand``. (https://github.com/PyPSA/pypsa-eur/pull/642,
https://github.com/PyPSA/pypsa-eur/pull/652)
* Updated to new spatial clustering module introduced in PyPSA v0.25.
(https://github.com/PyPSA/pypsa-eur/pull/696)
**Changes**
* Handling networks with links with multiple inputs/outputs no longer requires * Handling networks with links with multiple inputs/outputs no longer requires
to override component attributes. to override component attributes.
(https://github.com/PyPSA/pypsa-eur/pull/695)
* Added configuration option ``enable: retrieve:`` to control whether data * Added configuration option ``enable: retrieve:`` to control whether data
retrieval rules from snakemake are enabled or not. Th default setting ``auto`` retrieval rules from snakemake are enabled or not. Th default setting ``auto``
will automatically detect and enable/disable the rules based on internet connectivity. will automatically detect and enable/disable the rules based on internet
connectivity. (https://github.com/PyPSA/pypsa-eur/pull/694)
* Update to ``technology-data`` v0.6.0.
(https://github.com/PyPSA/pypsa-eur/pull/704)
* Handle data bundle extraction paths via ``snakemake.output``.
* Additional technologies are added to ``tech_color`` in the configuration files
to include previously unlisted carriers.
* Doc: Added note that Windows is only tested in CI with WSL.
(https://github.com/PyPSA/pypsa-eur/issues/697)
* Doc: Add support section. (https://github.com/PyPSA/pypsa-eur/pull/656)
* Open ``rasterio`` files with ``rioxarray``.
(https://github.com/PyPSA/pypsa-eur/pull/474)
* Migrate CI to ``micromamba``. (https://github.com/PyPSA/pypsa-eur/pull/700)
**Bugs and Compatibility**
* The new minimum PyPSA version is v0.25.1.
* Removed ``vresutils`` dependency.
(https://github.com/PyPSA/pypsa-eur/pull/662)
* Adapt to new ``powerplantmatching`` version.
(https://github.com/PyPSA/pypsa-eur/pull/687,
https://github.com/PyPSA/pypsa-eur/pull/701)
* Bugfix: Correct typo in the CPLEX solver configuration in
``config.default.yaml``. (https://github.com/PyPSA/pypsa-eur/pull/630)
* Bugfix: Error in ``add_electricity`` where carriers were added multiple times
to the network, resulting in a non-unique carriers error.
* Bugfix of optional reserve constraint.
(https://github.com/PyPSA/pypsa-eur/pull/645)
* Fix broken equity constraints logic.
(https://github.com/PyPSA/pypsa-eur/pull/679)
* Fix addition of load shedding generators.
(https://github.com/PyPSA/pypsa-eur/pull/649)
* Fix automatic building of documentation ond readthedocs.org.
(https://github.com/PyPSA/pypsa-eur/pull/658)
* Bugfix: Update network clustering to avoid adding deleted links in clustered
network. (https://github.com/PyPSA/pypsa-eur/pull/678)
* Address ``geopandas`` deprecations.
(https://github.com/PyPSA/pypsa-eur/pull/678)
* Fix bug with underground hydrogen storage creation, where for some small model
regions no cavern storage is available.
(https://github.com/PyPSA/pypsa-eur/pull/672)
PyPSA-Eur 0.8.0 (18th March 2023) PyPSA-Eur 0.8.0 (18th March 2023)

View File

@ -1,380 +1,468 @@
# SPDX-FileCopyrightText: : 2017-2023 The PyPSA-Eur Authors
#
# SPDX-License-Identifier: CC0-1.0
name: pypsa-eur name: pypsa-eur
channels: channels:
- bioconda - bioconda
- http://conda.anaconda.org/gurobi - http://conda.anaconda.org/gurobi
- conda-forge - conda-forge
- defaults - defaults
dependencies: dependencies:
- _libgcc_mutex=0.1 - _libgcc_mutex=0.1
- _openmp_mutex=4.5 - _openmp_mutex=4.5
- affine=2.4.0 - affine=2.4.0
- alsa-lib=1.2.8 - alsa-lib=1.2.9
- ampl-mp=3.1.0 - ampl-mp=3.1.0
- amply=0.1.5 - amply=0.1.6
- appdirs=1.4.4 - anyio=3.7.1
- asttokens=2.2.1 - appdirs=1.4.4
- atlite=0.2.10 - argon2-cffi=21.3.0
- attr=2.5.1 - argon2-cffi-bindings=21.2.0
- attrs=22.2.0 - asttokens=2.2.1
- backcall=0.2.0 - async-lru=2.0.3
- backports=1.0 - atk-1.0=2.38.0
- backports.functools_lru_cache=1.6.4 - atlite=0.2.11
- beautifulsoup4=4.11.2 - attr=2.5.1
- blosc=1.21.3 - attrs=23.1.0
- bokeh=2.4.3 - aws-c-auth=0.7.0
- boost-cpp=1.78.0 - aws-c-cal=0.6.0
- bottleneck=1.3.6 - aws-c-common=0.8.23
- branca=0.6.0 - aws-c-compression=0.2.17
- brotli=1.0.9 - aws-c-event-stream=0.3.1
- brotli-bin=1.0.9 - aws-c-http=0.7.11
- brotlipy=0.7.0 - aws-c-io=0.13.28
- bzip2=1.0.8 - aws-c-mqtt=0.8.14
- c-ares=1.18.1 - aws-c-s3=0.3.13
- ca-certificates=2022.12.7 - aws-c-sdkutils=0.1.11
- cairo=1.16.0 - aws-checksums=0.1.16
- cartopy=0.21.1 - aws-crt-cpp=0.20.3
- cdsapi=0.5.1 - aws-sdk-cpp=1.10.57
- certifi=2022.12.7 - babel=2.12.1
- cffi=1.15.1 - backcall=0.2.0
- cfitsio=4.2.0 - backports=1.0
- cftime=1.6.2 - backports.functools_lru_cache=1.6.5
- charset-normalizer=2.1.1 - beautifulsoup4=4.12.2
- click=8.1.3 - bleach=6.0.0
- click-plugins=1.1.1 - blosc=1.21.4
- cligj=0.7.2 - bokeh=3.2.1
- cloudpickle=2.2.1 - boost-cpp=1.78.0
- coin-or-cbc=2.10.8 - bottleneck=1.3.7
- coin-or-cgl=0.60.6 - branca=0.6.0
- coin-or-clp=1.17.7 - brotli=1.0.9
- coin-or-osi=0.108.7 - brotli-bin=1.0.9
- coin-or-utils=2.11.6 - brotli-python=1.0.9
- coincbc=2.10.8 - bzip2=1.0.8
- colorama=0.4.6 - c-ares=1.19.1
- configargparse=1.5.3 - c-blosc2=2.10.0
- connection_pool=0.0.3 - ca-certificates=2023.7.22
- country_converter=0.8.0 - cairo=1.16.0
- cryptography=39.0.1 - cartopy=0.21.1
- curl=7.88.0 - cdsapi=0.6.1
- cycler=0.11.0 - certifi=2023.7.22
- cytoolz=0.12.0 - cffi=1.15.1
- dask=2023.2.0 - cfitsio=4.2.0
- dask-core=2023.2.0 - cftime=1.6.2
- datrie=0.8.2 - charset-normalizer=3.2.0
- dbus=1.13.6 - click=8.1.6
- decorator=5.1.1 - click-plugins=1.1.1
- deprecation=2.1.0 - cligj=0.7.2
- descartes=1.1.0 - cloudpickle=2.2.1
- distributed=2023.2.0 - colorama=0.4.6
- distro=1.8.0 - comm=0.1.3
- docutils=0.19 - configargparse=1.7
- dpath=2.1.4 - connection_pool=0.0.3
- entsoe-py=0.5.8 - contourpy=1.1.0
- et_xmlfile=1.1.0 - country_converter=1.0.0
- exceptiongroup=1.1.0 - curl=8.2.0
- executing=1.2.0 - cycler=0.11.0
- expat=2.5.0 - cytoolz=0.12.2
- fftw=3.3.10 - dask=2023.7.1
- filelock=3.9.0 - dask-core=2023.7.1
- fiona=1.9.1 - datrie=0.8.2
- folium=0.14.0 - dbus=1.13.6
- font-ttf-dejavu-sans-mono=2.37 - debugpy=1.6.7
- font-ttf-inconsolata=3.000 - decorator=5.1.1
- font-ttf-source-code-pro=2.038 - defusedxml=0.7.1
- font-ttf-ubuntu=0.83 - deprecation=2.1.0
- fontconfig=2.14.2 - descartes=1.1.0
- fonts-conda-ecosystem=1 - distributed=2023.7.1
- fonts-conda-forge=1 - distro=1.8.0
- fonttools=4.38.0 - docutils=0.20.1
- freetype=2.12.1 - dpath=2.1.6
- freexl=1.0.6 - entrypoints=0.4
- fsspec=2023.1.0 - entsoe-py=0.5.10
- gdal=3.6.2 - et_xmlfile=1.1.0
- geographiclib=1.52 - exceptiongroup=1.1.2
- geojson-rewind=1.0.2 - executing=1.2.0
- geopandas=0.12.2 - expat=2.5.0
- geopandas-base=0.12.2 - filelock=3.12.2
- geopy=2.3.0 - fiona=1.9.4
- geos=3.11.1 - flit-core=3.9.0
- geotiff=1.7.1 - folium=0.14.0
- gettext=0.21.1 - font-ttf-dejavu-sans-mono=2.37
- giflib=5.2.1 - font-ttf-inconsolata=3.000
- gitdb=4.0.10 - font-ttf-source-code-pro=2.038
- gitpython=3.1.30 - font-ttf-ubuntu=0.83
- glib=2.74.1 - fontconfig=2.14.2
- glib-tools=2.74.1 - fonts-conda-ecosystem=1
- graphite2=1.3.13 - fonts-conda-forge=1
- gst-plugins-base=1.22.0 - fonttools=4.41.1
- gstreamer=1.22.0 - freetype=2.12.1
- gstreamer-orc=0.4.33 - freexl=1.0.6
- harfbuzz=6.0.0 - fribidi=1.0.10
- hdf4=4.2.15 - fsspec=2023.6.0
- hdf5=1.12.2 - gdal=3.7.0
- heapdict=1.0.1 - gdk-pixbuf=2.42.10
- humanfriendly=10.0 - geographiclib=1.52
- icu=70.1 - geojson-rewind=1.0.2
- idna=3.4 - geopandas=0.13.2
- importlib-metadata=6.0.0 - geopandas-base=0.13.2
- importlib_resources=5.10.2 - geopy=2.3.0
- iniconfig=2.0.0 - geos=3.11.2
- ipopt=3.14.11 - geotiff=1.7.1
- ipython=8.10.0 - gettext=0.21.1
- jack=1.9.22 - gflags=2.2.2
- jedi=0.18.2 - giflib=5.2.1
- jinja2=3.1.2 - gitdb=4.0.10
- joblib=1.2.0 - gitpython=3.1.32
- jpeg=9e - glib=2.76.4
- json-c=0.16 - glib-tools=2.76.4
- jsonschema=4.17.3 - glog=0.6.0
- jupyter_core=5.2.0 - gmp=6.2.1
- kealib=1.5.0 - graphite2=1.3.13
- keyutils=1.6.1 - graphviz=8.1.0
- kiwisolver=1.4.4 - gst-plugins-base=1.22.5
- krb5=1.20.1 - gstreamer=1.22.5
- lame=3.100 - gtk2=2.24.33
- lcms2=2.14 - gts=0.7.6
- ld_impl_linux-64=2.40 - harfbuzz=7.3.0
- lerc=4.0.0 - hdf4=4.2.15
- libaec=1.0.6 - hdf5=1.14.1
- libblas=3.9.0 - humanfriendly=10.0
- libbrotlicommon=1.0.9 - icu=72.1
- libbrotlidec=1.0.9 - idna=3.4
- libbrotlienc=1.0.9 - importlib-metadata=6.8.0
- libcap=2.66 - importlib_metadata=6.8.0
- libcblas=3.9.0 - importlib_resources=6.0.0
- libclang=15.0.7 - iniconfig=2.0.0
- libclang13=15.0.7 - ipopt=3.14.12
- libcups=2.3.3 - ipykernel=6.24.0
- libcurl=7.88.0 - ipython=8.14.0
- libdb=6.2.32 - ipython_genutils=0.2.0
- libdeflate=1.17 - ipywidgets=8.0.7
- libedit=3.1.20191231 - jedi=0.18.2
- libev=4.33 - jinja2=3.1.2
- libevent=2.1.10 - joblib=1.3.0
- libffi=3.4.2 - json-c=0.16
- libflac=1.4.2 - json5=0.9.14
- libgcc-ng=12.2.0 - jsonschema=4.18.4
- libgcrypt=1.10.1 - jsonschema-specifications=2023.7.1
- libgdal=3.6.2 - jupyter=1.0.0
- libgfortran-ng=12.2.0 - jupyter-lsp=2.2.0
- libgfortran5=12.2.0 - jupyter_client=8.3.0
- libglib=2.74.1 - jupyter_console=6.6.3
- libgomp=12.2.0 - jupyter_core=5.3.1
- libgpg-error=1.46 - jupyter_events=0.6.3
- libiconv=1.17 - jupyter_server=2.7.0
- libkml=1.3.0 - jupyter_server_terminals=0.4.4
- liblapack=3.9.0 - jupyterlab=4.0.3
- liblapacke=3.9.0 - jupyterlab_pygments=0.2.2
- libllvm15=15.0.7 - jupyterlab_server=2.24.0
- libnetcdf=4.8.1 - jupyterlab_widgets=3.0.8
- libnghttp2=1.51.0 - kealib=1.5.1
- libnsl=2.0.0 - keyutils=1.6.1
- libogg=1.3.4 - kiwisolver=1.4.4
- libopenblas=0.3.21 - krb5=1.21.1
- libopus=1.3.1 - lame=3.100
- libpng=1.6.39 - lcms2=2.15
- libpq=15.2 - ld_impl_linux-64=2.40
- librttopo=1.1.0 - lerc=4.0.0
- libsndfile=1.2.0 - libabseil=20230125.3
- libspatialindex=1.9.3 - libaec=1.0.6
- libspatialite=5.0.1 - libarchive=3.6.2
- libsqlite=3.40.0 - libarrow=12.0.1
- libssh2=1.10.0 - libblas=3.9.0
- libstdcxx-ng=12.2.0 - libbrotlicommon=1.0.9
- libsystemd0=252 - libbrotlidec=1.0.9
- libtiff=4.5.0 - libbrotlienc=1.0.9
- libtool=2.4.7 - libcap=2.67
- libudev1=252 - libcblas=3.9.0
- libuuid=2.32.1 - libclang=15.0.7
- libvorbis=1.3.7 - libclang13=15.0.7
- libwebp-base=1.2.4 - libcrc32c=1.1.2
- libxcb=1.13 - libcups=2.3.3
- libxkbcommon=1.5.0 - libcurl=8.2.0
- libxml2=2.10.3 - libdeflate=1.18
- libxslt=1.1.37 - libedit=3.1.20191231
- libzip=1.9.2 - libev=4.33
- libzlib=1.2.13 - libevent=2.1.12
- linopy=0.1.3 - libexpat=2.5.0
- locket=1.0.0 - libffi=3.4.2
- lxml=4.9.2 - libflac=1.4.3
- lz4=4.3.2 - libgcc-ng=13.1.0
- lz4-c=1.9.4 - libgcrypt=1.10.1
- lzo=2.10 - libgd=2.3.3
- mapclassify=2.5.0 - libgdal=3.7.0
- markupsafe=2.1.2 - libgfortran-ng=13.1.0
- matplotlib=3.5.3 - libgfortran5=13.1.0
- matplotlib-base=3.5.3 - libglib=2.76.4
- matplotlib-inline=0.1.6 - libgomp=13.1.0
- memory_profiler=0.61.0 - libgoogle-cloud=2.12.0
- metis=5.1.0 - libgpg-error=1.47
- mpg123=1.31.2 - libgrpc=1.56.2
- msgpack-python=1.0.4 - libiconv=1.17
- mumps-include=5.2.1 - libjpeg-turbo=2.1.5.1
- mumps-seq=5.2.1 - libkml=1.3.0
- munch=2.5.0 - liblapack=3.9.0
- munkres=1.1.4 - liblapacke=3.9.0
- mysql-common=8.0.32 - libllvm15=15.0.7
- mysql-libs=8.0.32 - libnetcdf=4.9.2
- nbformat=5.7.3 - libnghttp2=1.52.0
- ncurses=6.3 - libnsl=2.0.0
- netcdf4=1.6.2 - libnuma=2.0.16
- networkx=3.0 - libogg=1.3.4
- nomkl=1.0 - libopenblas=0.3.23
- nspr=4.35 - libopus=1.3.1
- nss=3.88 - libpng=1.6.39
- numexpr=2.8.3 - libpq=15.3
- numpy=1.24 - libprotobuf=4.23.3
- openjdk=17.0.3 - librsvg=2.56.1
- openjpeg=2.5.0 - librttopo=1.1.0
- openpyxl=3.1.0 - libsndfile=1.2.0
- openssl=3.0.8 - libsodium=1.0.18
- packaging=23.0 - libspatialindex=1.9.3
- pandas=1.5.3 - libspatialite=5.0.1
- parso=0.8.3 - libsqlite=3.42.0
- partd=1.3.0 - libssh2=1.11.0
- patsy=0.5.3 - libstdcxx-ng=13.1.0
- pcre2=10.40 - libsystemd0=253
- pexpect=4.8.0 - libthrift=0.18.1
- pickleshare=0.7.5 - libtiff=4.5.1
- pillow=9.4.0 - libtool=2.4.7
- pip=23.0 - libutf8proc=2.8.0
- pixman=0.40.0 - libuuid=2.38.1
- pkgutil-resolve-name=1.3.10 - libvorbis=1.3.7
- plac=1.3.5 - libwebp=1.3.1
- platformdirs=3.0.0 - libwebp-base=1.3.1
- pluggy=1.0.0 - libxcb=1.15
- ply=3.11 - libxkbcommon=1.5.0
- pooch=1.6.0 - libxml2=2.11.4
- poppler=22.12.0 - libxslt=1.1.37
- poppler-data=0.4.12 - libzip=1.9.2
- postgresql=15.2 - libzlib=1.2.13
- powerplantmatching=0.5.6 - locket=1.0.0
- progressbar2=4.2.0 - lxml=4.9.3
- proj=9.1.0 - lz4=4.3.2
- prompt-toolkit=3.0.36 - lz4-c=1.9.4
- psutil=5.9.4 - lzo=2.10
- pthread-stubs=0.4 - mapclassify=2.5.0
- ptyprocess=0.7.0 - markupsafe=2.1.3
- pulp=2.7.0 - matplotlib=3.5.3
- pulseaudio=16.1 - matplotlib-base=3.5.3
- pure_eval=0.2.2 - matplotlib-inline=0.1.6
- pycountry=22.3.5 - memory_profiler=0.61.0
- pycparser=2.21 - metis=5.1.1
- pygments=2.14.0 - mistune=3.0.0
- pyomo=6.4.4 - mpg123=1.31.3
- pyopenssl=23.0.0 - msgpack-python=1.0.5
- pyparsing=3.0.9 - mumps-include=5.2.1
- pyproj=3.4.1 - mumps-seq=5.2.1
- pypsa=0.22.1 - munch=4.0.0
- pyqt=5.15.7 - munkres=1.1.4
- pyqt5-sip=12.11.0 - mysql-common=8.0.33
- pyrsistent=0.19.3 - mysql-libs=8.0.33
- pyshp=2.3.1 - nbclient=0.8.0
- pysocks=1.7.1 - nbconvert=7.7.2
- pytables=3.7.0 - nbconvert-core=7.7.2
- pytest=7.2.1 - nbconvert-pandoc=7.7.2
- python=3.10.9 - nbformat=5.9.1
- python-dateutil=2.8.2 - ncurses=6.4
- python-fastjsonschema=2.16.2 - nest-asyncio=1.5.6
- python-utils=3.5.2 - netcdf4=1.6.4
- python_abi=3.10 - networkx=3.1
- pytz=2022.7.1 - nomkl=1.0
- pyxlsb=1.0.10 - notebook=7.0.0
- pyyaml=6.0 - notebook-shim=0.2.3
- qt-main=5.15.8 - nspr=4.35
- rasterio=1.3.4 - nss=3.89
- readline=8.1.2 - numexpr=2.8.4
- requests=2.28.1 - numpy=1.25.1
- retry=0.9.2 - openjdk=17.0.3
- rich=12.5.1 - openjpeg=2.5.0
- rioxarray=0.13.3 - openpyxl=3.1.2
- rtree=1.0.0 - openssl=3.1.1
- s2n=1.0.10 - orc=1.9.0
- scikit-learn=1.1.1 - overrides=7.3.1
- scipy=1.8.1 - packaging=23.1
- scotch=6.0.9 - pandas=2.0.3
- seaborn=0.12.2 - pandoc=3.1.3
- seaborn-base=0.12.2 - pandocfilters=1.5.0
- setuptools=67.3.2 - pango=1.50.14
- setuptools-scm=7.1.0 - parso=0.8.3
- setuptools_scm=7.1.0 - partd=1.4.0
- shapely=2.0.1 - patsy=0.5.3
- sip=6.7.7 - pcre2=10.40
- six=1.16.0 - pexpect=4.8.0
- smart_open=6.3.0 - pickleshare=0.7.5
- smmap=3.0.5 - pillow=10.0.0
- snakemake-minimal=7.22.0 - pip=23.2.1
- snappy=1.1.9 - pixman=0.40.0
- snuggs=1.4.7 - pkgutil-resolve-name=1.3.10
- sortedcontainers=2.4.0 - plac=1.3.5
- soupsieve=2.3.2.post1 - platformdirs=3.9.1
- sqlite=3.40.0 - pluggy=1.2.0
- stack_data=0.6.2 - ply=3.11
- statsmodels=0.13.5 - pooch=1.7.0
- stopit=1.1.2 - poppler=23.05.0
- tabula-py=2.6.0 - poppler-data=0.4.12
- tabulate=0.9.0 - postgresql=15.3
- tblib=1.7.0 - powerplantmatching=0.5.7
- threadpoolctl=3.1.0 - progressbar2=4.2.0
- throttler=1.2.1 - proj=9.2.1
- tiledb=2.13.2 - prometheus_client=0.17.1
- tk=8.6.12 - prompt-toolkit=3.0.39
- toml=0.10.2 - prompt_toolkit=3.0.39
- tomli=2.0.1 - psutil=5.9.5
- toolz=0.12.0 - pthread-stubs=0.4
- toposort=1.9 - ptyprocess=0.7.0
- tornado=6.2 - pulp=2.7.0
- tqdm=4.64.1 - pulseaudio-client=16.1
- traitlets=5.9.0 - pure_eval=0.2.2
- typing-extensions=4.4.0 - py-cpuinfo=9.0.0
- typing_extensions=4.4.0 - pyarrow=12.0.1
- tzcode=2022g - pycountry=22.3.5
- tzdata=2022g - pycparser=2.21
- unicodedata2=15.0.0 - pygments=2.15.1
- unidecode=1.3.6 - pyomo=6.6.1
- unixodbc=2.3.10 - pyparsing=3.1.0
- urllib3=1.26.14 - pyproj=3.6.0
- wcwidth=0.2.6 - pyqt=5.15.7
- wheel=0.38.4 - pyqt5-sip=12.11.0
- wrapt=1.14.1 - pyshp=2.3.1
- xarray=2023.2.0 - pysocks=1.7.1
- xcb-util=0.4.0 - pytables=3.8.0
- xcb-util-image=0.4.0 - pytest=7.4.0
- xcb-util-keysyms=0.4.0 - python=3.10.12
- xcb-util-renderutil=0.3.9 - python-dateutil=2.8.2
- xcb-util-wm=0.4.1 - python-fastjsonschema=2.18.0
- xerces-c=3.2.4 - python-json-logger=2.0.7
- xlrd=2.0.1 - python-tzdata=2023.3
- xorg-fixesproto=5.0 - python-utils=3.7.0
- xorg-inputproto=2.3.2 - python_abi=3.10
- xorg-kbproto=1.0.7 - pytz=2023.3
- xorg-libice=1.0.10 - pyxlsb=1.0.10
- xorg-libsm=1.2.3 - pyyaml=6.0
- xorg-libx11=1.7.2 - pyzmq=25.1.0
- xorg-libxau=1.0.9 - qt-main=5.15.8
- xorg-libxdmcp=1.1.3 - qtconsole=5.4.3
- xorg-libxext=1.3.4 - qtconsole-base=5.4.3
- xorg-libxfixes=5.0.3 - qtpy=2.3.1
- xorg-libxi=1.7.10 - rasterio=1.3.8
- xorg-libxrender=0.9.10 - rdma-core=28.9
- xorg-libxtst=1.2.3 - re2=2023.03.02
- xorg-recordproto=1.14.2 - readline=8.2
- xorg-renderproto=0.11.1 - referencing=0.30.0
- xorg-xextproto=7.3.0 - requests=2.31.0
- xorg-xproto=7.0.31 - reretry=0.11.8
- xyzservices=2022.9.0 - rfc3339-validator=0.1.4
- xz=5.2.6 - rfc3986-validator=0.1.1
- yaml=0.2.5 - rioxarray=0.14.1
- yte=1.5.1 - rpds-py=0.9.2
- zict=2.2.0 - rtree=1.0.1
- zipp=3.13.0 - s2n=1.3.46
- zlib=1.2.13 - scikit-learn=1.3.0
- zstd=1.5.2 - scipy=1.11.1
- pip: - scotch=6.0.9
- countrycode==0.2 - seaborn=0.12.2
- highspy==1.5.0.dev0 - seaborn-base=0.12.2
- pybind11==2.10.3 - send2trash=1.8.2
- tsam==2.2.2 - setuptools=68.0.0
- setuptools-scm=7.1.0
- setuptools_scm=7.1.0
- shapely=2.0.1
- sip=6.7.10
- six=1.16.0
- smart_open=6.3.0
- smmap=3.0.5
- snakemake-minimal=7.30.2
- snappy=1.1.10
- sniffio=1.3.0
- snuggs=1.4.7
- sortedcontainers=2.4.0
- soupsieve=2.3.2.post1
- sqlite=3.42.0
- stack_data=0.6.2
- statsmodels=0.14.0
- stopit=1.1.2
- tabula-py=2.6.0
- tabulate=0.9.0
- tblib=1.7.0
- terminado=0.17.1
- threadpoolctl=3.2.0
- throttler=1.2.1
- tiledb=2.13.2
- tinycss2=1.2.1
- tk=8.6.12
- toml=0.10.2
- tomli=2.0.1
- toolz=0.12.0
- toposort=1.10
- tornado=6.3.2
- tqdm=4.65.0
- traitlets=5.9.0
- typing-extensions=4.7.1
- typing_extensions=4.7.1
- typing_utils=0.1.0
- tzcode=2023c
- tzdata=2023c
- ucx=1.14.1
- unicodedata2=15.0.0
- unidecode=1.3.6
- unixodbc=2.3.10
- urllib3=2.0.4
- wcwidth=0.2.6
- webencodings=0.5.1
- websocket-client=1.6.1
- wheel=0.41.0
- widgetsnbextension=4.0.8
- wrapt=1.15.0
- xarray=2023.7.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.4
- xkeyboard-config=2.39
- 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.6
- 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-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=2023.7.0
- xz=5.2.6
- yaml=0.2.5
- yte=1.5.1
- zeromq=4.3.4
- zict=3.0.0
- zipp=3.16.2
- zlib=1.2.13
- zlib-ng=2.0.7
- zstd=1.5.2
- pip:
- gurobipy==10.0.2
- linopy==0.2.2
- pypsa==0.25.1
- tsam==2.3.0
- validators==0.20.0

View File

@ -56,4 +56,4 @@ dependencies:
- pip: - pip:
- tsam>=1.1.0 - tsam>=1.1.0
- git+https://github.com/PyPSA/PyPSA.git@master - pypsa>=0.25.1

View File

@ -602,6 +602,7 @@ def solve_network(n, config, solving, opts="", **kwargs):
min_iterations = cf_solving.get("min_iterations", 4) min_iterations = cf_solving.get("min_iterations", 4)
max_iterations = cf_solving.get("max_iterations", 6) max_iterations = cf_solving.get("max_iterations", 6)
transmission_losses = cf_solving.get("transmission_losses", 0) transmission_losses = cf_solving.get("transmission_losses", 0)
assign_all_duals = cf_solving.get("assign_all_duals", False)
# add to network for extra_functionality # add to network for extra_functionality
n.config = config n.config = config
@ -616,6 +617,7 @@ def solve_network(n, config, solving, opts="", **kwargs):
status, condition = n.optimize( status, condition = n.optimize(
solver_name=solver_name, solver_name=solver_name,
transmission_losses=transmission_losses, transmission_losses=transmission_losses,
assign_all_duals=assign_all_duals,
extra_functionality=extra_functionality, extra_functionality=extra_functionality,
**solver_options, **solver_options,
**kwargs, **kwargs,
@ -627,6 +629,7 @@ def solve_network(n, config, solving, opts="", **kwargs):
min_iterations=min_iterations, min_iterations=min_iterations,
max_iterations=max_iterations, max_iterations=max_iterations,
transmission_losses=transmission_losses, transmission_losses=transmission_losses,
assign_all_duals=assign_all_duals,
extra_functionality=extra_functionality, extra_functionality=extra_functionality,
**solver_options, **solver_options,
**kwargs, **kwargs,