From 3c64ecf0578f835f03e1175933ae2c06ca7d40e0 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Wed, 27 Jul 2022 11:55:37 +0200 Subject: [PATCH 1/4] doc: fix syntax of electricity.csv --- doc/configtables/electricity.csv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/configtables/electricity.csv b/doc/configtables/electricity.csv index eb9a2379..e0ee25cd 100644 --- a/doc/configtables/electricity.csv +++ b/doc/configtables/electricity.csv @@ -19,7 +19,7 @@ extendable_carriers,,, -- Link,--,Any subset of {'H2 pipeline'},Adds extendable links (H2 pipelines only) at every connection where there are lines or HVDC links without capacity limits and with zero initial capacity. Hydrogen pipelines require hydrogen storage to be modelled as ``Store``. powerplants_filter,--,"use `pandas.query `_ strings here, e.g. Country not in ['Germany']",Filter query for the default powerplant database. custom_powerplants,--,"use `pandas.query `_ strings here, e.g. Country in ['Germany']",Filter query for the custom powerplant database. -conventional_carriers,--,"Any subset of {nuclear, oil, OCGT, CCGT, coal, lignite, geothermal, biomass}","List of conventional power plants to include in the model from ``resources/powerplants.csv``. If an included carrier is also listed in `extendable_carriers`, the capacity is taken as a lower bound." +conventional_carriers,--,"Any subset of {nuclear, oil, OCGT, CCGT, coal, lignite, geothermal, biomass}","List of conventional power plants to include in the model from ``resources/powerplants.csv``. If an included carrier is also listed in `extendable_carriers`, the capacity is taken as a lower bound." renewable_carriers,--,"Any subset of {solar, onwind, offwind-ac, offwind-dc, hydro}",List of renewable generators to include in the model. estimate_renewable_capacities,,, -- enable,,bool,"Activate routine to estimate renewable capacities" From 885316002ced01ee1636205897be5a10e68d853b Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Wed, 27 Jul 2022 11:58:23 +0200 Subject: [PATCH 2/4] release_notes: markdown to rst syntax --- doc/release_notes.rst | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/release_notes.rst b/doc/release_notes.rst index 937999e7..1633ac90 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -38,7 +38,7 @@ PyPSA-Eur 0.5.0 (27th July 2022) energy yield for each bus region * The config key ``renewable_capacities_from_OPSD`` is deprecated and was moved under the section, ``estimate_renewable_capacities``. To enable it, set - ``from_opsd`` to `True`. + ``from_opsd`` to ``True``. * Add operational reserve margin constraint analogous to `GenX implementation `_. Can be activated @@ -52,16 +52,16 @@ PyPSA-Eur 0.5.0 (27th July 2022) * Add function to add global constraint on use of gas in :mod:`prepare_network`. This can be activated by including the keyword ``CH4L`` in the ``{opts}`` wildcard which enforces the limit set in ``electricity: gaslimit:`` given in - MWh thermal. Alternatively, it is possible to append a number in the `{opts}` - wildcard, e.g. `CH4L200` which limits the gas use to 200 TWh thermal. + MWh thermal. Alternatively, it is possible to append a number in the ``{opts}`` + wildcard, e.g. ``CH4L200`` which limits the gas use to 200 TWh thermal. -* Add option to alter marginal costs of a carrier through `{opts}` wildcard: - `+m`, e.g. `gas+m2.5`, will multiply the default marginal +* Add option to alter marginal costs of a carrier through ``{opts}`` wildcard: + ``+m``, e.g. ``gas+m2.5``, will multiply the default marginal cost for gas by factor 2.5. * Hierarchical clustering was introduced. Distance metric is calculated from - renewable potentials on hourly (feature entry ends with `-time`) or annual - (feature entry in config end with `-cap`) values. + renewable potentials on hourly (feature entry ends with ``-time``) or annual + (feature entry in config end with ``-cap``) values. * Greedy modularity clustering was introduced. Distance metric is based on electrical distance taking into account the impedance of all transmission lines of the network. @@ -80,8 +80,8 @@ PyPSA-Eur 0.5.0 (27th July 2022) * Add configuration option to implement arbitrary generator attributes for conventional generation technologies. -* Add option to set CO2 emission prices through `{opts}` wildcard: `Ep`, - e.g. `Ep180`, will set the EUR/tCO2 price. +* Add option to set CO2 emission prices through ``{opts}`` wildcard: ``Ep``, + e.g. ``Ep180``, will set the EUR/tCO2 price. **Changes** @@ -102,7 +102,7 @@ PyPSA-Eur 0.5.0 (27th July 2022) * The inclusion of renewable carriers is now specified in the config entry ``renewable_carriers``. Before this was done by commenting/uncommenting - sub-sections in the `renewable` config section. + sub-sections in the ``renewable`` config section. * Now, all carriers that should be extendable have to be listed in the config entry ``extendable_carriers``. Before, renewable carriers were always set to From eb72d8aaadc5450ac244d0542789b101f2e9a6e8 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Wed, 27 Jul 2022 13:08:12 +0200 Subject: [PATCH 3/4] add release 0.5 envs/environment.fixed.yaml --- envs/environment.fixed.yaml | 387 +++++++++++++++++++----------------- 1 file changed, 208 insertions(+), 179 deletions(-) diff --git a/envs/environment.fixed.yaml b/envs/environment.fixed.yaml index b025b9a3..ee6a5035 100644 --- a/envs/environment.fixed.yaml +++ b/envs/environment.fixed.yaml @@ -5,280 +5,308 @@ name: pypsa-eur channels: - bioconda + - http://conda.anaconda.org/gurobi - conda-forge - defaults dependencies: - _libgcc_mutex=0.1 - _openmp_mutex=4.5 - - affine=2.3.0 - - alsa-lib=1.2.3 - - amply=0.1.4 + - affine=2.3.1 + - alsa-lib=1.2.3.2 + - amply=0.1.5 - appdirs=1.4.4 - - atlite=0.2.5 - - attrs=21.2.0 + - asttokens=2.0.5 + - atlite=0.2.7 + - attrs=21.4.0 - backcall=0.2.0 - backports=1.0 - backports.functools_lru_cache=1.6.4 - - beautifulsoup4=4.10.0 - - blosc=1.21.0 - - bokeh=2.3.3 + - beautifulsoup4=4.11.1 + - blosc=1.21.1 + - bokeh=2.4.3 - boost-cpp=1.74.0 - - bottleneck=1.3.2 + - bottleneck=1.3.5 + - branca=0.5.0 + - brotli=1.0.9 + - brotli-bin=1.0.9 - brotlipy=0.7.0 - bzip2=1.0.8 - - c-ares=1.17.2 - - ca-certificates=2021.5.30 + - c-ares=1.18.1 + - ca-certificates=2022.6.15 - cairo=1.16.0 - - cartopy=0.19.0.post1 + - cartopy=0.20.1 - cdsapi=0.5.1 - - certifi=2021.5.30 - - cffi=1.14.6 - - cfitsio=3.470 - - cftime=1.5.0 - - chardet=4.0.0 - - charset-normalizer=2.0.0 - - click=7.1.2 + - certifi=2022.6.15 + - cffi=1.15.1 + - cfitsio=4.0.0 + - cftime=1.6.1 + - charset-normalizer=2.1.0 + - click=8.1.3 - click-plugins=1.1.1 - cligj=0.7.2 - - cloudpickle=2.0.0 - - coincbc=2.10.5 - - colorama=0.4.4 - - conda=4.10.3 - - conda-package-handling=1.7.3 - - configargparse=1.5.2 + - cloudpickle=2.1.0 + - coin-or-cbc=2.10.8 + - coin-or-cgl=0.60.6 + - coin-or-clp=1.17.7 + - coin-or-osi=0.108.7 + - coin-or-utils=2.11.6 + - coincbc=2.10.8 + - colorama=0.4.5 + - configargparse=1.5.3 - connection_pool=0.0.3 - - country_converter=0.7.3 - - cryptography=3.4.7 - - curl=7.79.0 - - cycler=0.10.0 - - cytoolz=0.11.0 - - dask=2021.3.1 - - dask-core=2021.3.1 + - country_converter=0.7.4 + - cryptography=37.0.4 + - curl=7.83.1 + - cycler=0.11.0 + - cytoolz=0.12.0 + - dask=2022.7.1 + - dask-core=2022.7.1 - datrie=0.8.2 - dbus=1.13.6 - - decorator=4.4.2 + - decorator=5.1.1 - deprecation=2.1.0 - descartes=1.1.0 - - distributed=2021.4.1 - - distro=1.5.0 - - docutils=0.17.1 - - entsoe-py=0.3.7 + - distributed=2022.7.1 + - distro=1.6.0 + - docutils=0.19 + - dpath=2.0.6 + - entsoe-py=0.5.4 - et_xmlfile=1.0.1 - - expat=2.4.1 - - filelock=3.0.12 - - fiona=1.8.18 - - fontconfig=2.13.1 + - executing=0.9.1 + - expat=2.4.8 + - filelock=3.7.1 + - fiona=1.8.20 + - folium=0.12.1.post1 + - font-ttf-dejavu-sans-mono=2.37 + - font-ttf-inconsolata=3.000 + - font-ttf-source-code-pro=2.038 + - font-ttf-ubuntu=0.83 + - fontconfig=2.14.0 + - fonts-conda-ecosystem=1 + - fonts-conda-forge=1 + - fonttools=4.34.4 - freetype=2.10.4 - freexl=1.0.6 - - fsspec=2021.8.1 - - gdal=3.2.1 + - fsspec=2022.5.0 + - gdal=3.3.3 - geographiclib=1.52 - - geopandas=0.9.0 - - geopandas-base=0.9.0 + - geojson-rewind=1.0.2 + - geopandas=0.11.1 + - geopandas-base=0.11.1 - geopy=2.2.0 - - geos=3.9.1 - - geotiff=1.6.0 + - geos=3.10.0 + - geotiff=1.7.0 - gettext=0.19.8.1 - giflib=5.2.1 - - gitdb=4.0.7 - - gitpython=3.1.23 - - glib=2.68.4 - - glib-tools=2.68.4 + - gitdb=4.0.9 + - gitpython=3.1.27 - graphite2=1.3.13 - gst-plugins-base=1.18.5 - gstreamer=1.18.5 - harfbuzz=2.9.1 - hdf4=4.2.15 - - hdf5=1.10.6 + - hdf5=1.12.1 - heapdict=1.0.1 - - icu=68.1 - - idna=3.1 - - importlib-metadata=4.8.1 + - icu=68.2 + - idna=3.3 + - importlib-metadata=4.11.4 + - importlib_resources=5.9.0 - iniconfig=1.1.1 - - ipython=7.27.0 - - ipython_genutils=0.2.0 - - jdcal=1.4.1 - - jedi=0.18.0 - - jinja2=3.0.1 - - joblib=1.0.1 - - jpeg=9d + - ipython=8.4.0 + - jedi=0.18.1 + - jinja2=3.1.2 + - joblib=1.1.0 + - jpeg=9e - json-c=0.15 - - jsonschema=3.2.0 - - jupyter_core=4.8.1 - - kealib=1.4.14 - - kiwisolver=1.3.2 - - krb5=1.19.2 + - jsonschema=4.7.2 + - jupyter_core=4.11.1 + - kealib=1.4.15 + - keyutils=1.6.1 + - kiwisolver=1.4.4 + - krb5=1.19.3 - lcms2=2.12 - ld_impl_linux-64=2.36.1 - - libarchive=3.5.1 + - lerc=3.0 - libblas=3.9.0 + - libbrotlicommon=1.0.9 + - libbrotlidec=1.0.9 + - libbrotlienc=1.0.9 - libcblas=3.9.0 - libclang=11.1.0 - - libcurl=7.79.0 + - libcurl=7.83.1 - libdap4=3.20.6 + - libdeflate=1.12 - libedit=3.1.20191231 - libev=4.33 - libevent=2.1.10 - libffi=3.4.2 - - libgcc-ng=11.2.0 - - libgdal=3.2.1 - - libgfortran-ng=11.2.0 - - libgfortran5=11.2.0 - - libglib=2.68.4 - - libgomp=11.2.0 + - libgcc-ng=12.1.0 + - libgdal=3.3.3 + - libgfortran-ng=12.1.0 + - libgfortran5=12.1.0 + - libglib=2.72.1 + - libgomp=12.1.0 - libiconv=1.16 - libkml=1.3.0 - liblapack=3.9.0 + - liblapacke=3.9.0 - libllvm11=11.1.0 - - libnetcdf=4.7.4 - - libnghttp2=1.43.0 + - libnetcdf=4.8.1 + - libnghttp2=1.47.0 + - libnsl=2.0.0 - libogg=1.3.4 - - libopenblas=0.3.17 + - libopenblas=0.3.20 - libopus=1.3.1 - libpng=1.6.37 - - libpq=13.3 + - libpq=13.5 - librttopo=1.1.0 - - libsolv=0.7.19 - libspatialindex=1.9.3 - libspatialite=5.0.1 - libssh2=1.10.0 - - libstdcxx-ng=11.2.0 - - libtiff=4.2.0 + - libstdcxx-ng=12.1.0 + - libtiff=4.4.0 - libuuid=2.32.1 - libvorbis=1.3.7 - - libwebp-base=1.2.1 + - libwebp=1.2.3 + - libwebp-base=1.2.3 - libxcb=1.13 - libxkbcommon=1.0.3 - libxml2=2.9.12 - libxslt=1.1.33 - - locket=0.2.0 - - lxml=4.6.3 + - libzip=1.9.2 + - libzlib=1.2.12 + - locket=1.0.0 + - lxml=4.8.0 + - lz4=4.0.0 - lz4-c=1.9.3 - lzo=2.10 - - mamba=0.15.3 - mapclassify=2.4.3 - - markupsafe=2.0.1 - - matplotlib=3.4.3 - - matplotlib-base=3.4.3 + - markupsafe=2.1.1 + - matplotlib=3.5.2 + - matplotlib-base=3.5.2 - matplotlib-inline=0.1.3 - - memory_profiler=0.58.0 - - mock=4.0.3 - - more-itertools=8.10.0 - - msgpack-python=1.0.2 + - memory_profiler=0.60.0 + - msgpack-python=1.0.4 - munch=2.5.0 - - mysql-common=8.0.25 - - mysql-libs=8.0.25 - - nbformat=5.1.3 - - ncurses=6.2 - - netcdf4=1.5.6 - - networkx=2.6.3 - - nspr=4.30 - - nss=3.69 - - numexpr=2.7.3 - - numpy=1.21.2 - - olefile=0.46 + - munkres=1.1.4 + - mysql-common=8.0.29 + - mysql-libs=8.0.29 + - nbformat=5.4.0 + - ncurses=6.3 + - netcdf4=1.6.0 + - networkx=2.8.5 + - nomkl=1.0 + - nspr=4.32 + - nss=3.78 + - numexpr=2.8.3 + - numpy=1.23.1 - openjdk=11.0.9.1 - openjpeg=2.4.0 - - openpyxl=3.0.8 - - openssl=1.1.1l - - packaging=21.0 - - pandas=1.2.5 - - parso=0.8.2 + - openpyxl=3.0.9 + - openssl=1.1.1q + - packaging=21.3 + - pandas=1.4.3 + - parso=0.8.3 - partd=1.2.0 - - patsy=0.5.1 + - patsy=0.5.2 - pcre=8.45 - pexpect=4.8.0 - pickleshare=0.7.5 - - pillow=8.2.0 - - pip=21.2.4 + - pillow=9.2.0 + - pip=22.2 - pixman=0.40.0 + - plac=1.3.5 - pluggy=1.0.0 - ply=3.11 - - poppler=0.89.0 + - poppler=21.09.0 - poppler-data=0.4.11 - - postgresql=13.3 - - powerplantmatching=0.4.8 - - progressbar2=3.53.1 - - proj=7.2.0 - - prompt-toolkit=3.0.20 - - psutil=5.8.0 + - postgresql=13.5 + - powerplantmatching=0.5.3 + - progressbar2=4.0.0 + - proj=8.1.1 + - prompt-toolkit=3.0.30 + - psutil=5.9.1 - pthread-stubs=0.4 - ptyprocess=0.7.0 - - pulp=2.5.0 - - py=1.10.0 - - pycosat=0.6.3 + - pulp=2.6.0 + - pure_eval=0.2.2 + - py=1.11.0 - pycountry=20.7.3 - - pycparser=2.20 - - pygments=2.10.0 - - pyomo=6.1.2 - - pyopenssl=20.0.1 - - pyparsing=2.4.7 - - pyproj=3.1.0 - - pypsa=0.18.0 + - pycparser=2.21 + - pygments=2.12.0 + - pyomo=6.4.1 + - pyopenssl=22.0.0 + - pyparsing=3.0.9 + - pyproj=3.2.1 + - pypsa=0.20.0 - pyqt=5.12.3 - pyqt-impl=5.12.3 - pyqt5-sip=4.19.18 - pyqtchart=5.12 - pyqtwebengine=5.12.1 - - pyrsistent=0.17.3 - - pyshp=2.1.3 + - pyrsistent=0.18.1 + - pyshp=2.3.0 - pysocks=1.7.1 - - pytables=3.6.1 - - pytest=6.2.5 - - python=3.9.7 + - pytables=3.7.0 + - pytest=7.1.2 + - python=3.9.13 - python-dateutil=2.8.2 - - python-utils=2.5.6 + - python-fastjsonschema=2.16.1 + - python-utils=3.3.3 - python_abi=3.9 - - pytz=2021.1 - - pyyaml=5.4.1 + - pytz=2022.1 + - pyxlsb=1.0.9 + - pyyaml=6.0 - qt=5.12.9 - - rasterio=1.2.6 + - rasterio=1.2.9 - ratelimiter=1.2.0 - - readline=8.1 - - reproc=14.2.3 - - reproc-cpp=14.2.3 - - requests=2.26.0 - - rtree=0.9.7 - - ruamel_yaml=0.15.80 - - scikit-learn=0.24.2 - - scipy=1.7.1 + - readline=8.1.2 + - requests=2.28.1 + - retry=0.9.2 + - rtree=1.0.0 + - scikit-learn=1.1.1 + - scipy=1.8.1 - seaborn=0.11.2 - seaborn-base=0.11.2 - - setuptools=58.0.4 - - setuptools-scm=6.3.2 - - setuptools_scm=6.3.2 - - shapely=1.7.1 + - setuptools=63.2.0 + - setuptools-scm=7.0.5 + - setuptools_scm=7.0.5 + - shapely=1.8.0 - six=1.16.0 - - smart_open=5.2.1 + - smart_open=6.0.0 - smmap=3.0.5 - - snakemake-minimal=6.8.0 + - snakemake-minimal=7.9.0 + - snappy=1.1.9 - snuggs=1.4.7 - sortedcontainers=2.4.0 - - soupsieve=2.0.1 - - sqlite=3.36.0 - - statsmodels=0.12.2 + - soupsieve=2.3.2.post1 + - sqlite=3.39.2 + - stack_data=0.3.0 + - statsmodels=0.13.2 - stopit=1.1.2 - tabula-py=2.2.0 - - tabulate=0.8.9 + - tabulate=0.8.10 - tblib=1.7.0 - - threadpoolctl=2.2.0 - - tiledb=2.2.9 - - tk=8.6.11 - - toml=0.10.2 - - tomli=1.2.1 - - toolz=0.11.1 - - toposort=1.6 + - threadpoolctl=3.1.0 + - tiledb=2.3.4 + - tk=8.6.12 + - tomli=2.0.1 + - toolz=0.12.0 + - toposort=1.7 - tornado=6.1 - - tqdm=4.62.3 - - traitlets=5.1.0 - - typing_extensions=3.10.0.2 - - tzcode=2021a - - tzdata=2021a - - urllib3=1.26.6 + - tqdm=4.64.0 + - traitlets=5.3.0 + - typing-extensions=4.3.0 + - typing_extensions=4.3.0 + - tzcode=2022a + - tzdata=2022a + - unicodedata2=14.0.0 + - unidecode=1.3.4 + - urllib3=1.26.11 - wcwidth=0.2.5 - - wheel=0.37.0 - - wrapt=1.12.1 - - xarray=0.19.0 + - wheel=0.37.1 + - wrapt=1.14.1 + - xarray=2022.6.0 - xerces-c=3.2.3 - xlrd=2.0.1 - xorg-fixesproto=5.0 @@ -298,14 +326,15 @@ dependencies: - xorg-renderproto=0.11.1 - xorg-xextproto=7.3.0 - xorg-xproto=7.0.31 + - xyzservices=2022.6.0 - xz=5.2.5 - yaml=0.2.5 - - zict=2.0.0 - - zipp=3.5.0 - - zlib=1.2.11 - - zstd=1.4.9 + - yte=1.5.1 + - zict=2.2.0 + - zipp=3.8.0 + - zlib=1.2.12 + - zstd=1.5.2 - pip: - countrycode==0.2 - - sklearn==0.0 - - tsam==1.1.1 - - vresutils==0.3.1 + - tsam==2.1.0 + - vresutils==0.3.1 \ No newline at end of file From df6d74a087a08ab1393a757bcdcd587099351617 Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Wed, 27 Jul 2022 13:12:52 +0200 Subject: [PATCH 4/4] add release docs where to change versions --- CITATION.cff | 2 +- doc/release_notes.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index a28562fd..089c924f 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -6,7 +6,7 @@ cff-version: 1.1.0 message: "If you use this package, please cite the corresponding manuscript in Energy Strategy Reviews." title: "PyPSA-Eur: An open optimisation model of the European transmission system" repository: https://github.com/pypsa/pypsa-eur -version: 0.4.0 +version: 0.5.0 license: MIT journal: Energy Strategy Reviews doi: 10.1016/j.esr.2018.08.012 diff --git a/doc/release_notes.rst b/doc/release_notes.rst index 1633ac90..04c41a81 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -502,7 +502,7 @@ Release Process ``conda env export -n pypsa-eur -f envs/environment.fixed.yaml --no-builds`` from an up-to-date `pypsa-eur` environment. -* Update version number in ``doc/conf.py`` and ``*config.*.yaml``. +* Update version number in ``doc/conf.py``, ``CITATION.cff`` and ``*config.*.yaml``. * Open, review and merge pull request for branch ``release-v0.x.x``. Make sure to close issues and PRs or the release milestone with it (e.g. closes #X).