diff --git a/config.default.yaml b/config.default.yaml index d3e637de6..1580b1d4d 100644 --- a/config.default.yaml +++ b/config.default.yaml @@ -595,6 +595,13 @@ sector: efficiency_heat_biomass_to_elec: 0.9 efficiency_heat_gas_to_elec: 0.9 + electricity_distribution_grid: true # adds low voltage buses and shifts AC loads, BEVs, heat pumps, and resistive heaters, micro CHPs to low voltage buses if technologies are present + solar_rooftop: true # adds distribution side customer rooftop PV (only work if electricity_distribution_grid: true) + home_battery: true # adds home batteries to low voltage buses ((only work if electricity_distribution_grid: true) + transmission_efficiency: + electricity distribution grid: + efficiency_static: 0.97 # efficiency of distribution grid (i.e. 3% loses) + dynamic_transport: enable: false # If "True", then the BEV and FCEV shares are obtained depending on the "Co2L"-wildcard (e.g. "Co2L0.70: 0.10"). If "False", then the shares are obtained depending on the "demand" wildcard and "planning_horizons" wildcard as listed below (e.g. "DF_2050: 0.08") land_transport_electric_share: diff --git a/doc/release_notes.rst b/doc/release_notes.rst index eb4437cfa..e0909d539 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -39,6 +39,8 @@ E.g. if a new rule becomes available describe how to use it `make test` and in o * Drop vrestil depenedncy `PR #1220 `__ +* Add electricity distribution grid with solar rooftop and home battery technologies `PR #1221 `__ + **Minor Changes and bug-fixing** * The default configuration for `electricity:estimate_renewable_capacities:year` was updated from 2020 to 2023. `PR #1106 `__ @@ -69,6 +71,8 @@ E.g. if a new rule becomes available describe how to use it `make test` and in o * Remove duplicate entries from hydrogen export ports `PR #1233 `_ +* Fix the environment placing a version limit to numpoly `PR #1237 `_ + PyPSA-Earth 0.4.1 ================= diff --git a/envs/environment.yaml b/envs/environment.yaml index fd285a27e..80016a883 100644 --- a/envs/environment.yaml +++ b/envs/environment.yaml @@ -32,6 +32,8 @@ dependencies: - pytables - lxml - numpy +# starting from 1.3.5 numpoly requires numpy>2.0 which leads to issues +- numpoly<=1.3.4 - pandas - geopandas>=0.11.0, <=0.14.3 - fiona<1.10.0 diff --git a/envs/linux-pinned.yaml b/envs/linux-pinned.yaml index b0ebdc850..fadd8a2fe 100644 --- a/envs/linux-pinned.yaml +++ b/envs/linux-pinned.yaml @@ -15,32 +15,32 @@ dependencies: - _openmp_mutex=4.5 - affine=2.4.0 - alsa-lib=1.2.13 -- ampl-mp=3.1.0 +- ampl-asl=1.0.0 - amply=0.1.6 -- anyio=4.6.2.post1 +- anyio=4.7.0 - appdirs=1.4.4 - argon2-cffi=23.1.0 - argon2-cffi-bindings=21.2.0 - arrow=1.3.0 -- asttokens=2.4.1 +- asttokens=3.0.0 - async-lru=2.0.4 - atk-1.0=2.38.0 -- atlite==0.3.0 +- atlite=0.3.0 - attr=2.5.1 - attrs=24.2.0 - aws-c-auth=0.8.0 -- aws-c-cal=0.8.0 -- aws-c-common=0.10.3 +- aws-c-cal=0.8.1 +- aws-c-common=0.10.5 - aws-c-compression=0.3.0 - aws-c-event-stream=0.5.0 -- aws-c-http=0.9.1 -- aws-c-io=0.15.2 +- aws-c-http=0.9.2 +- aws-c-io=0.15.3 - aws-c-mqtt=0.11.0 -- aws-c-s3=0.7.1 +- aws-c-s3=0.7.5 - aws-c-sdkutils=0.2.1 - aws-checksums=0.2.2 -- aws-crt-cpp=0.29.5 -- aws-sdk-cpp=1.11.449 +- aws-crt-cpp=0.29.7 +- aws-sdk-cpp=1.11.458 - azure-core-cpp=1.14.0 - azure-identity-cpp=1.10.0 - azure-storage-blobs-cpp=12.13.0 @@ -59,13 +59,14 @@ dependencies: - brotlicffi=1.1.0.0 - bzip2=1.0.8 - c-ares=1.34.3 -- c-blosc2=2.15.1 +- c-blosc2=2.15.2 - ca-certificates=2024.8.30 - cached-property=1.5.2 - cached_property=1.5.2 -- cairo=1.18.0 +- cairo=1.18.2 - capnproto=1.0.2 - cartopy=0.23.0 +- cdsapi=0.7.5 - certifi=2024.8.30 - cffi=1.17.1 - cfgv=3.3.1 @@ -92,23 +93,26 @@ dependencies: - country_converter=1.2 - cpp-expected=1.1.0 - cycler=0.12.1 +- cyrus-sasl=2.1.27 - cytoolz=1.0.0 -- dask=2024.11.2 -- dask-core=2024.11.2 -- dask-expr=1.1.19 +- dask=2024.12.0 +- dask-core=2024.12.0 +- dask-expr=1.1.20 +- datapi=0.1.1 - datashader=0.16.3 - datrie=0.8.2 - dbus=1.13.6 -- debugpy=1.8.9 +- debugpy=1.8.10 - decorator=5.1.1 - defusedxml=0.7.1 - deprecation=2.1.0 - descartes=1.1.0 - distlib=0.3.9 -- distributed=2024.11.2 +- distributed=2024.12.0 - docutils=0.21.2 - dpath=2.2.0 - entrypoints=0.4 +- entsoe-py=0.6.11 - et_xmlfile=2.0.0 - exceptiongroup=1.2.2 - executing=2.1.0 @@ -116,7 +120,7 @@ dependencies: - filelock=3.16.1 - fiona=1.9.6 - fmt=11.0.2 -- folium=0.18.0 +- folium=0.19.0 - font-ttf-dejavu-sans-mono=2.37 - font-ttf-inconsolata=3.000 - font-ttf-source-code-pro=2.038 @@ -124,23 +128,24 @@ dependencies: - fontconfig=2.15.0 - fonts-conda-ecosystem=1 - fonts-conda-forge=1 -- fonttools=4.55.0 +- fonttools=4.55.3 - fqdn=1.5.1 - freetype=2.12.1 - freexl=2.0.0 - fribidi=1.0.10 - fsspec=2024.10.0 - future=1.0.0 -- gdal=3.9.2 +- gdal=3.9.3 - gdk-pixbuf=2.42.12 - geographiclib=2.0 +- geojson-rewind=1.1.0 - geopandas=0.14.3 - geopandas-base=0.14.3 - geopy=2.4.1 - geos=3.13.0 - geotiff=1.7.3 -- geoviews=1.13.0 -- geoviews-core=1.13.0 +- geoviews=1.13.1 +- geoviews-core=1.13.1 - gettext=0.22.5 - gettext-tools=0.22.5 - gflags=2.2.2 @@ -167,26 +172,27 @@ dependencies: - holoviews=1.20.0 - hpack=4.0.0 - httpcore=1.0.7 -- httpx=0.27.2 +- httpx=0.28.1 - humanfriendly=10.0 - hvplot=0.11.1 - hyperframe=6.0.1 - icu=75.1 -- identify=2.6.2 +- identify=2.6.3 - idna=3.10 - importlib-metadata=8.5.0 - importlib_metadata=8.5.0 - importlib_resources=6.4.5 - inflate64=1.0.0 +- iniconfig=2.0.0 - ipopt=3.14.16 - ipykernel=6.29.5 -- ipython=8.29.0 +- ipython=8.30.0 - isoduration=20.11.0 - jedi=0.19.2 - jinja2=3.1.4 - joblib=1.4.2 - json-c=0.18 -- json5=0.9.28 +- json5=0.10.0 - jsonpointer=3.0.0 - jsonschema=4.23.0 - jsonschema-specifications=2024.10.1 @@ -197,10 +203,10 @@ dependencies: - jupyter_events=0.10.0 - jupyter_server=2.14.2 - jupyter_server_terminals=0.5.3 -- jupyterlab=4.3.1 +- jupyterlab=4.3.3 - jupyterlab_pygments=0.3.0 - jupyterlab_server=2.27.3 -- kealib=1.5.3 +- kealib=1.6.0 - keyutils=1.6.1 - kiwisolver=1.4.7 - krb5=1.21.3 @@ -210,26 +216,26 @@ dependencies: - lerc=4.0.0 - libabseil=20240722.0 - libaec=1.1.3 -- libarchive=3.7.4 -- libarrow=18.0.0 -- libarrow-acero=18.0.0 -- libarrow-dataset=18.0.0 -- libarrow-substrait=18.0.0 +- libarchive=3.7.7 +- libarrow=18.1.0 +- libarrow-acero=18.1.0 +- libarrow-dataset=18.1.0 +- libarrow-substrait=18.1.0 - libasprintf=0.22.5 - libasprintf-devel=0.22.5 - libblas=3.9.0 - libbrotlicommon=1.1.0 - libbrotlidec=1.1.0 - libbrotlienc=1.1.0 -- libcap=2.69 +- libcap=2.71 - libcblas=3.9.0 -- libclang-cpp19.1=19.1.4 -- libclang13=19.1.4 +- libclang-cpp19.1=19.1.5 +- libclang13=19.1.5 - libcrc32c=1.1.2 - libcups=2.3.3 -- libcurl=8.10.1 +- libcurl=8.11.1 - libdeflate=1.22 -- libdrm=2.4.123 +- libdrm=2.4.124 - libedit=3.1.20191231 - libegl=1.7.0 - libev=4.33 @@ -239,22 +245,22 @@ dependencies: - libflac=1.4.3 - libgcc=14.2.0 - libgcc-ng=14.2.0 -- libgcrypt=1.11.0 +- libgcrypt-lib=1.11.0 - libgd=2.3.3 -- libgdal=3.9.2 -- libgdal-core=3.9.2 -- libgdal-fits=3.9.2 -- libgdal-grib=3.9.2 -- libgdal-hdf4=3.9.2 -- libgdal-hdf5=3.9.2 -- libgdal-jp2openjpeg=3.9.2 -- libgdal-kea=3.9.2 -- libgdal-netcdf=3.9.2 -- libgdal-pdf=3.9.2 -- libgdal-pg=3.9.2 -- libgdal-postgisraster=3.9.2 -- libgdal-tiledb=3.9.2 -- libgdal-xls=3.9.2 +- libgdal=3.9.3 +- libgdal-core=3.9.3 +- libgdal-fits=3.9.3 +- libgdal-grib=3.9.3 +- libgdal-hdf4=3.9.3 +- libgdal-hdf5=3.9.3 +- libgdal-jp2openjpeg=3.9.3 +- libgdal-kea=3.9.3 +- libgdal-netcdf=3.9.3 +- libgdal-pdf=3.9.3 +- libgdal-pg=3.9.3 +- libgdal-postgisraster=3.9.3 +- libgdal-tiledb=3.9.3 +- libgdal-xls=3.9.3 - libgettextpo=0.22.5 - libgettextpo-devel=0.22.5 - libgfortran=14.2.0 @@ -265,8 +271,8 @@ dependencies: - libglvnd=1.7.0 - libglx=1.7.0 - libgomp=14.2.0 -- libgoogle-cloud=2.31.0 -- libgoogle-cloud-storage=2.31.0 +- libgoogle-cloud=2.32.0 +- libgoogle-cloud-storage=2.32.0 - libgpg-error=1.51 - libgrpc=1.67.1 - libhwloc=2.11.2 @@ -276,18 +282,21 @@ dependencies: - liblapack=3.9.0 - liblapacke=3.9.0 - libllvm14=14.0.6 -- libllvm19=19.1.4 -- libmamba=2.0.3 +- libllvm19=19.1.5 +- liblzma=5.6.3 +- liblzma-devel=5.6.3 +- libmamba=2.0.4 - libnetcdf=4.9.2 - libnghttp2=1.64.0 - libnsl=2.0.1 +- libntlm=1.4 - libogg=1.3.5 - libopenblas=0.3.28 - libopus=1.3.1 -- libparquet=18.0.0 +- libparquet=18.1.0 - libpciaccess=0.18 - libpng=1.6.44 -- libpq=16.6 +- libpq=17.2 - libprotobuf=5.28.2 - libre2-11=2024.07.02 - librsvg=2.58.4 @@ -299,14 +308,14 @@ dependencies: - libspatialindex=2.0.0 - libspatialite=5.1.0 - libspral=2024.05.08 -- libsqlite=3.47.0 +- libsqlite=3.47.2 - libssh2=1.11.1 - libstdcxx=14.2.0 - libstdcxx-ng=14.2.0 -- libsystemd0=256.7 +- libsystemd0=256.9 - libthrift=0.21.0 - libtiff=4.7.0 -- libutf8proc=2.8.0 +- libutf8proc=2.9.0 - libuuid=2.38.1 - libvorbis=1.3.7 - libwebp-base=1.4.0 @@ -323,9 +332,9 @@ dependencies: - locket=1.0.0 - lxml=5.3.0 - lz4=4.3.3 -- lz4-c=1.9.4 +- lz4-c=1.10.0 - lzo=2.10 -- mamba=2.0.3 +- mamba=2.0.4 - mapclassify=2.8.1 - markdown=3.6 - markdown-it-py=3.0.0 @@ -343,18 +352,19 @@ dependencies: - mpg123=1.32.9 - msgpack-python=1.1.0 - multipledispatch=0.6.0 +- multiurl=0.3.3 - multivolumefile=0.2.3 - mumps-include=5.7.3 - mumps-seq=5.7.3 - munkres=1.1.4 - mysql-common=9.0.1 - mysql-libs=9.0.1 -- nbclient=0.10.0 +- nbclient=0.10.1 - nbconvert-core=7.16.4 - nbformat=5.10.4 - ncurses=6.5 - nest-asyncio=1.6.0 -- netcdf4=1.7.1 +- netcdf4=1.7.2 - networkx=3.4 - nlohmann_json=3.11.3 - nodeenv=1.9.1 @@ -363,9 +373,11 @@ dependencies: - nspr=4.36 - nss=3.107 - numba=0.60.0 -- numexpr=2.10.1 +- numexpr=2.10.2 +- numpoly=1.2.14 - numpy=1.26.4 -- openjpeg=2.5.2 +- openjpeg=2.5.3 +- openldap=2.6.9 - openpyxl=3.1.5 - openssl=3.4.0 - orc=2.0.3 @@ -384,19 +396,21 @@ dependencies: - pickleshare=0.7.5 - pillow=11.0.0 - pip=24.3.1 -- pixman=0.43.2 +- pixman=0.44.2 - pkgutil-resolve-name=1.3.10 - plac=1.4.3 - platformdirs=4.3.6 +- pluggy=1.5.0 - ply=3.11 -- polars=1.14.0 -- poppler=24.08.0 +- polars=1.17.1 +- poppler=24.12.0 - poppler-data=0.4.12 -- postgresql=16.6 -- powerplantmatching==0.6.0 +- postgresql=17.2 +- powerplantmatching=0.6.0 - pre-commit=4.0.1 -- proj=9.5.0 -- prometheus_client=0.21.0 +- progressbar2=4.5.0 +- proj=9.5.1 +- prometheus_client=0.21.1 - prompt-toolkit=3.0.48 - psutil=6.1.0 - pthread-stubs=0.4 @@ -406,9 +420,10 @@ dependencies: - pure_eval=0.2.3 - py-cpuinfo=9.0.0 - py7zr=0.22.0 -- pyarrow=18.0.0 -- pyarrow-core=18.0.0 +- pyarrow=18.1.0 +- pyarrow-core=18.1.0 - pybcj=1.0.2 +- pycountry=24.6.1 - pycparser=2.22 - pycryptodomex=3.21.0 - pyct=0.5.0 @@ -425,11 +440,13 @@ dependencies: - pyshp=2.3.1 - pysocks=1.7.1 - pytables=3.10.1 -- python=3.10.15 +- pytest=8.3.4 +- python=3.10.16 - python-dateutil=2.9.0.post0 -- python-fastjsonschema=2.20.0 +- python-fastjsonschema=2.21.1 - python-json-logger=2.0.7 - python-tzdata=2024.2 +- python-utils=3.9.1 - python_abi=3.10 - pytz=2024.2 - pyviz_comms=3.0.3 @@ -449,12 +466,12 @@ dependencies: - rfc3339-validator=0.1.4 - rfc3986-validator=0.1.1 - rioxarray=0.17.0 -- rpds-py=0.21.0 +- rpds-py=0.22.3 - rtree=1.3.0 - ruamel.yaml=0.17.26 - ruamel.yaml.clib=0.2.8 - s2n=1.5.9 -- scikit-learn=1.5.2 +- scikit-learn=1.6.0 - scipy=1.14.1 - seaborn=0.13.2 - seaborn-base=0.13.2 @@ -463,7 +480,7 @@ dependencies: - shapely=2.0.6 - simdjson=3.10.1 - sip=6.7.12 -- six=1.16.0 +- six=1.17.0 - smart_open=7.0.5 - smmap=5.0.0 - snakemake-minimal=7.32.4 @@ -473,8 +490,8 @@ dependencies: - sortedcontainers=2.4.0 - soupsieve=2.5 - spdlog=1.14.1 -- sqlite=3.47.0 -- stack_data=0.6.2 +- sqlite=3.47.2 +- stack_data=0.6.3 - statsmodels=0.14.4 - stopit=1.1.2 - tabulate=0.9.0 @@ -487,13 +504,13 @@ dependencies: - tinycss2=1.4.0 - tk=8.6.13 - toml=0.10.2 -- tomli=2.1.0 +- tomli=2.2.1 - toolz=1.0.0 - toposort=1.10 -- tornado=6.4.1 -- tqdm=4.67.0 +- tornado=6.4.2 +- tqdm=4.67.1 - traitlets=5.14.3 -- types-python-dateutil=2.9.0.20241003 +- types-python-dateutil=2.9.0.20241206 - typing-extensions=4.12.2 - typing_extensions=4.12.2 - typing_utils=0.1.0 @@ -502,18 +519,19 @@ dependencies: - uc-micro-py=1.0.3 - ukkonen=1.0.1 - unicodedata2=15.1.0 -- unixodbc=2.3.12 +- unidecode=1.3.8 - uri-template=1.3.0 - uriparser=0.9.8 - urllib3=2.2.3 - validators=0.34.0 -- virtualenv=20.27.1 +- virtualenv=20.28.0 - wcwidth=0.2.13 -- webcolors=24.8.0 +- webcolors=24.11.1 - webencodings=0.5.1 - websocket-client=1.8.0 - wheel=0.45.1 -- wrapt=1.16.0 +- wrapt=1.17.0 +- xarray=2023.11.0 - xcb-util=0.4.1 - xcb-util-image=0.4.0 - xcb-util-keysyms=0.4.1 @@ -533,12 +551,13 @@ dependencies: - xorg-libxrender=0.9.11 - xorg-libxxf86vm=1.1.5 - xorg-xf86vidmodeproto=2.3.1 -- xorg-xorgproto=2024.1 - xyzservices=2024.9.0 -- xz=5.2.6 +- xz=5.6.3 +- xz-gpl-tools=5.6.3 +- xz-tools=5.6.3 - yaml=0.2.5 - yaml-cpp=0.8.0 -- yte=1.5.4 +- yte=1.5.5 - zeromq=4.3.5 - zict=3.0.0 - zipfile-deflate64=0.2.0 @@ -548,23 +567,11 @@ dependencies: - zstandard=0.23.0 - zstd=1.5.6 - pip: - - cads-api-client==1.5.4 - - cdsapi==0.7.4 - chaospy==4.3.17 - - countrycode==0.4.0 - earth-osm==2.2 - - entsoe-py==0.6.16 - - fake-useragent==1.5.1 + - fake-useragent==2.0.3 - googledrivedownloader==0.4 - highspy==1.8.1 - - multiurl==0.3.3 - - numpoly==1.3.4 - - progressbar2==4.5.0 - - protobuf==5.28.3 - - pycountry==24.6.1 - - python-utils==3.9.0 + - protobuf==5.29.1 - tsam==2.3.6 - - unidecode==1.3.8 - - git+https://github.com/FRESNA/vresutils@master - - xarray==2024.11.0 prefix: /usr/share/miniconda/envs/pypsa-earth diff --git a/envs/macos-pinned.yaml b/envs/macos-pinned.yaml index d2ce9c15a..96e4a8c09 100644 --- a/envs/macos-pinned.yaml +++ b/envs/macos-pinned.yaml @@ -12,32 +12,32 @@ channels: - https://repo.anaconda.com/pkgs/r dependencies: - affine=2.4.0 -- ampl-mp=3.1.0 +- ampl-asl=1.0.0 - amply=0.1.6 -- anyio=4.6.2.post1 +- anyio=4.7.0 - appdirs=1.4.4 - appnope=0.1.4 - argon2-cffi=23.1.0 - argon2-cffi-bindings=21.2.0 - arrow=1.3.0 -- asttokens=2.4.1 +- asttokens=3.0.0 - async-lru=2.0.4 - atk-1.0=2.38.0 -- atlite==0.3.0 +- atlite=0.3.0 - attrs=24.2.0 - aws-c-auth=0.8.0 -- aws-c-cal=0.8.0 -- aws-c-common=0.10.3 +- aws-c-cal=0.8.1 +- aws-c-common=0.10.5 - aws-c-compression=0.3.0 - aws-c-event-stream=0.5.0 -- aws-c-http=0.9.1 -- aws-c-io=0.15.2 +- aws-c-http=0.9.2 +- aws-c-io=0.15.3 - aws-c-mqtt=0.11.0 -- aws-c-s3=0.7.1 +- aws-c-s3=0.7.5 - aws-c-sdkutils=0.2.1 - aws-checksums=0.2.2 -- aws-crt-cpp=0.29.5 -- aws-sdk-cpp=1.11.449 +- aws-crt-cpp=0.29.7 +- aws-sdk-cpp=1.11.458 - azure-core-cpp=1.14.0 - azure-identity-cpp=1.10.0 - azure-storage-blobs-cpp=12.13.0 @@ -56,13 +56,14 @@ dependencies: - brotlicffi=1.1.0.0 - bzip2=1.0.8 - c-ares=1.34.3 -- c-blosc2=2.15.1 +- c-blosc2=2.15.2 - ca-certificates=2024.8.30 - cached-property=1.5.2 - cached_property=1.5.2 -- cairo=1.18.0 +- cairo=1.18.2 - capnproto=1.0.2 - cartopy=0.23.0 +- cdsapi=0.7.5 - certifi=2024.8.30 - cffi=1.17.1 - cfgv=3.3.1 @@ -91,28 +92,30 @@ dependencies: - cycler=0.12.1 - cyrus-sasl=2.1.27 - cytoolz=1.0.0 -- dask=2024.11.2 -- dask-core=2024.11.2 -- dask-expr=1.1.19 +- dask=2024.12.0 +- dask-core=2024.12.0 +- dask-expr=1.1.20 +- datapi=0.1.1 - datashader=0.16.3 - datrie=0.8.2 -- debugpy=1.8.9 +- debugpy=1.8.10 - decorator=5.1.1 - defusedxml=0.7.1 - deprecation=2.1.0 - descartes=1.1.0 - distlib=0.3.9 -- distributed=2024.11.2 +- distributed=2024.12.0 - docutils=0.21.2 - dpath=2.2.0 - entrypoints=0.4 +- entsoe-py=0.6.11 - et_xmlfile=2.0.0 - exceptiongroup=1.2.2 - executing=2.1.0 - filelock=3.16.1 - fiona=1.9.6 - fmt=11.0.2 -- folium=0.18.0 +- folium=0.19.0 - font-ttf-dejavu-sans-mono=2.37 - font-ttf-inconsolata=3.000 - font-ttf-source-code-pro=2.038 @@ -120,7 +123,7 @@ dependencies: - fontconfig=2.15.0 - fonts-conda-ecosystem=1 - fonts-conda-forge=1 -- fonttools=4.55.0 +- fonttools=4.55.3 - fqdn=1.5.1 - freetype=2.12.1 - freexl=2.0.0 @@ -130,13 +133,14 @@ dependencies: - gdal=3.9.3 - gdk-pixbuf=2.42.12 - geographiclib=2.0 +- geojson-rewind=1.1.0 - geopandas=0.14.3 - geopandas-base=0.14.3 - geopy=2.4.1 - geos=3.13.0 - geotiff=1.7.3 -- geoviews=1.13.0 -- geoviews-core=1.13.0 +- geoviews=1.13.1 +- geoviews-core=1.13.1 - gflags=2.2.2 - giflib=5.2.2 - gitdb=4.0.11 @@ -157,26 +161,27 @@ dependencies: - holoviews=1.20.0 - hpack=4.0.0 - httpcore=1.0.7 -- httpx=0.27.2 +- httpx=0.28.1 - humanfriendly=10.0 - hvplot=0.11.1 - hyperframe=6.0.1 - icu=75.1 -- identify=2.6.2 +- identify=2.6.3 - idna=3.10 - importlib-metadata=8.5.0 - importlib_metadata=8.5.0 - importlib_resources=6.4.5 - inflate64=1.0.0 +- iniconfig=2.0.0 - ipopt=3.14.16 - ipykernel=6.29.5 -- ipython=8.29.0 +- ipython=8.30.0 - isoduration=20.11.0 - jedi=0.19.2 - jinja2=3.1.4 - joblib=1.4.2 - json-c=0.18 -- json5=0.9.28 +- json5=0.10.0 - jsonpointer=3.0.0 - jsonschema=4.23.0 - jsonschema-specifications=2024.10.1 @@ -187,29 +192,29 @@ dependencies: - jupyter_events=0.10.0 - jupyter_server=2.14.2 - jupyter_server_terminals=0.5.3 -- jupyterlab=4.3.1 +- jupyterlab=4.3.3 - jupyterlab_pygments=0.3.0 - jupyterlab_server=2.27.3 -- kealib=1.5.3 +- kealib=1.6.0 - kiwisolver=1.4.7 - krb5=1.21.3 - lcms2=2.16 - lerc=4.0.0 - libabseil=20240722.0 - libaec=1.1.3 -- libarchive=3.7.4 -- libarrow=18.0.0 -- libarrow-acero=18.0.0 -- libarrow-dataset=18.0.0 -- libarrow-substrait=18.0.0 +- libarchive=3.7.7 +- libarrow=18.1.0 +- libarrow-acero=18.1.0 +- libarrow-dataset=18.1.0 +- libarrow-substrait=18.1.0 - libblas=3.9.0 - libbrotlicommon=1.1.0 - libbrotlidec=1.1.0 - libbrotlienc=1.1.0 - libcblas=3.9.0 - libcrc32c=1.1.2 -- libcurl=8.10.1 -- libcxx=19.1.4 +- libcurl=8.11.1 +- libcxx=19.1.5 - libdeflate=1.22 - libedit=3.1.20191231 - libev=4.33 @@ -234,8 +239,8 @@ dependencies: - libgfortran=5.0.0 - libgfortran5=13.2.0 - libglib=2.82.2 -- libgoogle-cloud=2.31.0 -- libgoogle-cloud-storage=2.31.0 +- libgoogle-cloud=2.32.0 +- libgoogle-cloud-storage=2.32.0 - libgrpc=1.67.1 - libiconv=1.17 - libintl=0.22.5 @@ -244,12 +249,13 @@ dependencies: - liblapack=3.9.0 - liblapacke=3.9.0 - libllvm14=14.0.6 -- libmamba=2.0.3 +- liblzma=5.6.3 +- libmamba=2.0.4 - libnetcdf=4.9.2 - libnghttp2=1.64.0 - libntlm=1.4 - libopenblas=0.3.28 -- libparquet=18.0.0 +- libparquet=18.1.0 - libpng=1.6.44 - libpq=17.2 - libprotobuf=5.28.2 @@ -261,11 +267,11 @@ dependencies: - libsolv=0.7.30 - libspatialindex=2.0.0 - libspatialite=5.1.0 -- libsqlite=3.47.0 +- libsqlite=3.47.2 - libssh2=1.11.1 - libthrift=0.21.0 - libtiff=4.7.0 -- libutf8proc=2.8.0 +- libutf8proc=2.9.0 - libwebp-base=1.4.0 - libxcb=1.17.0 - libxml2=2.13.5 @@ -274,14 +280,14 @@ dependencies: - libzlib=1.3.1 - linkify-it-py=2.0.3 - linopy=0.3.11 -- llvm-openmp=19.1.4 +- llvm-openmp=19.1.5 - llvmlite=0.43.0 - locket=1.0.0 - lxml=5.3.0 - lz4=4.3.3 -- lz4-c=1.9.4 +- lz4-c=1.10.0 - lzo=2.10 -- mamba=2.0.3 +- mamba=2.0.4 - mapclassify=2.8.1 - markdown=3.6 - markdown-it-py=3.0.0 @@ -298,16 +304,17 @@ dependencies: - mistune=3.0.2 - msgpack-python=1.1.0 - multipledispatch=0.6.0 +- multiurl=0.3.3 - multivolumefile=0.2.3 - mumps-include=5.7.3 - mumps-seq=5.7.3 - munkres=1.1.4 -- nbclient=0.10.0 +- nbclient=0.10.1 - nbconvert-core=7.16.4 - nbformat=5.10.4 - ncurses=6.5 - nest-asyncio=1.6.0 -- netcdf4=1.7.1 +- netcdf4=1.7.2 - networkx=3.4 - nlohmann_json=3.11.3 - nodeenv=1.9.1 @@ -315,10 +322,11 @@ dependencies: - nspr=4.36 - nss=3.107 - numba=0.60.0 -- numexpr=2.10.1 +- numexpr=2.10.2 +- numpoly=1.2.14 - numpy=1.26.4 -- openjpeg=2.5.2 -- openldap=2.6.8 +- openjpeg=2.5.3 +- openldap=2.6.9 - openpyxl=3.1.5 - openssl=3.4.0 - orc=2.0.3 @@ -337,19 +345,21 @@ dependencies: - pickleshare=0.7.5 - pillow=11.0.0 - pip=24.3.1 -- pixman=0.43.4 +- pixman=0.44.2 - pkgutil-resolve-name=1.3.10 - plac=1.4.3 - platformdirs=4.3.6 +- pluggy=1.5.0 - ply=3.11 -- polars=1.14.0 -- poppler=24.08.0 +- polars=1.17.1 +- poppler=24.12.0 - poppler-data=0.4.12 - postgresql=17.2 -- powerplantmatching==0.6.0 +- powerplantmatching=0.6.0 - pre-commit=4.0.1 -- proj=9.5.0 -- prometheus_client=0.21.0 +- progressbar2=4.5.0 +- proj=9.5.1 +- prometheus_client=0.21.1 - prompt-toolkit=3.0.48 - psutil=6.1.0 - pthread-stubs=0.4 @@ -358,16 +368,17 @@ dependencies: - pure_eval=0.2.3 - py-cpuinfo=9.0.0 - py7zr=0.22.0 -- pyarrow=18.0.0 -- pyarrow-core=18.0.0 +- pyarrow=18.1.0 +- pyarrow-core=18.1.0 - pybcj=1.0.2 +- pycountry=24.6.1 - pycparser=2.22 - pycryptodomex=3.21.0 - pyct=0.5.0 - pydoe2=1.3.0 - pygments=2.18.0 -- pyobjc-core=10.3.1 -- pyobjc-framework-cocoa=10.3.1 +- pyobjc-core=10.3.2 +- pyobjc-framework-cocoa=10.3.2 - pyogrio=0.10.0 - pyomo=6.8.2 - pyparsing=3.2.0 @@ -377,11 +388,13 @@ dependencies: - pyshp=2.3.1 - pysocks=1.7.1 - pytables=3.10.1 -- python=3.10.15 +- pytest=8.3.4 +- python=3.10.16 - python-dateutil=2.9.0.post0 -- python-fastjsonschema=2.20.0 +- python-fastjsonschema=2.21.1 - python-json-logger=2.0.7 - python-tzdata=2024.2 +- python-utils=3.9.1 - python_abi=3.10 - pytz=2024.2 - pyviz_comms=3.0.3 @@ -400,11 +413,11 @@ dependencies: - rfc3339-validator=0.1.4 - rfc3986-validator=0.1.1 - rioxarray=0.17.0 -- rpds-py=0.21.0 +- rpds-py=0.22.3 - rtree=1.3.0 - ruamel.yaml=0.17.26 - ruamel.yaml.clib=0.2.8 -- scikit-learn=1.5.2 +- scikit-learn=1.6.0 - scipy=1.14.1 - seaborn=0.13.2 - seaborn-base=0.13.2 @@ -412,7 +425,7 @@ dependencies: - setuptools=75.6.0 - shapely=2.0.6 - simdjson=3.10.1 -- six=1.16.0 +- six=1.17.0 - smart_open=7.0.5 - smmap=5.0.0 - snakemake-minimal=7.32.4 @@ -422,8 +435,8 @@ dependencies: - sortedcontainers=2.4.0 - soupsieve=2.5 - spdlog=1.14.1 -- sqlite=3.47.0 -- stack_data=0.6.2 +- sqlite=3.47.2 +- stack_data=0.6.3 - statsmodels=0.14.4 - stopit=1.1.2 - tabulate=0.9.0 @@ -435,13 +448,13 @@ dependencies: - tiledb=2.26.2 - tinycss2=1.4.0 - tk=8.6.13 -- tomli=2.1.0 +- tomli=2.2.1 - toolz=1.0.0 - toposort=1.10 -- tornado=6.4.1 -- tqdm=4.67.0 +- tornado=6.4.2 +- tqdm=4.67.1 - traitlets=5.14.3 -- types-python-dateutil=2.9.0.20241003 +- types-python-dateutil=2.9.0.20241206 - typing-extensions=4.12.2 - typing_extensions=4.12.2 - typing_utils=0.1.0 @@ -450,27 +463,27 @@ dependencies: - uc-micro-py=1.0.3 - ukkonen=1.0.1 - unicodedata2=15.1.0 -- unixodbc=2.3.12 +- unidecode=1.3.8 - uri-template=1.3.0 - uriparser=0.9.8 - urllib3=2.2.3 - validators=0.34.0 -- virtualenv=20.27.1 +- virtualenv=20.28.0 - wcwidth=0.2.13 -- webcolors=24.8.0 +- webcolors=24.11.1 - webencodings=0.5.1 - websocket-client=1.8.0 - wheel=0.45.1 -- wrapt=1.16.0 +- wrapt=1.17.0 +- xarray=2023.11.0 - xerces-c=3.2.5 - xlrd=2.0.1 - xorg-libxau=1.0.11 - xorg-libxdmcp=1.1.5 - xyzservices=2024.9.0 -- xz=5.2.6 - yaml=0.2.5 - yaml-cpp=0.8.0 -- yte=1.5.4 +- yte=1.5.5 - zeromq=4.3.5 - zict=3.0.0 - zipfile-deflate64=0.2.0 @@ -480,23 +493,11 @@ dependencies: - zstandard=0.23.0 - zstd=1.5.6 - pip: - - cads-api-client==1.5.4 - - cdsapi==0.7.4 - chaospy==4.3.17 - - countrycode==0.4.0 - earth-osm==2.2 - - entsoe-py==0.6.16 - - fake-useragent==1.5.1 + - fake-useragent==2.0.3 - googledrivedownloader==0.4 - highspy==1.8.1 - - multiurl==0.3.3 - - numpoly==1.3.4 - - progressbar2==4.5.0 - - protobuf==5.28.3 - - pycountry==24.6.1 - - python-utils==3.9.0 + - protobuf==5.29.1 - tsam==2.3.6 - - unidecode==1.3.8 - - git+https://github.com/FRESNA/vresutils@master - - xarray==2024.11.0 prefix: /Users/runner/miniconda3/envs/pypsa-earth diff --git a/envs/windows-pinned.yaml b/envs/windows-pinned.yaml index ab01b32da..ca45bea29 100644 --- a/envs/windows-pinned.yaml +++ b/envs/windows-pinned.yaml @@ -15,28 +15,28 @@ dependencies: - _openmp_mutex=4.5 - affine=2.4.0 - amply=0.1.6 -- anyio=4.6.2.post1 +- anyio=4.7.0 - appdirs=1.4.4 - argon2-cffi=23.1.0 - argon2-cffi-bindings=21.2.0 - arrow=1.3.0 -- asttokens=2.4.1 +- asttokens=3.0.0 - async-lru=2.0.4 -- atlite==0.3.0 +- atlite=0.3.0 - attrs=24.2.0 - aws-c-auth=0.8.0 -- aws-c-cal=0.8.0 -- aws-c-common=0.10.3 +- aws-c-cal=0.8.1 +- aws-c-common=0.10.5 - aws-c-compression=0.3.0 - aws-c-event-stream=0.5.0 -- aws-c-http=0.9.1 -- aws-c-io=0.15.2 +- aws-c-http=0.9.2 +- aws-c-io=0.15.3 - aws-c-mqtt=0.11.0 -- aws-c-s3=0.7.1 +- aws-c-s3=0.7.5 - aws-c-sdkutils=0.2.1 - aws-checksums=0.2.2 -- aws-crt-cpp=0.29.5 -- aws-sdk-cpp=1.11.449 +- aws-crt-cpp=0.29.7 +- aws-sdk-cpp=1.11.458 - azure-core-cpp=1.14.0 - azure-identity-cpp=1.10.0 - azure-storage-blobs-cpp=12.13.0 @@ -54,13 +54,14 @@ dependencies: - brotlicffi=1.1.0.0 - bzip2=1.0.8 - c-ares=1.34.3 -- c-blosc2=2.15.1 +- c-blosc2=2.15.2 - ca-certificates=2024.8.30 - cached-property=1.5.2 - cached_property=1.5.2 -- cairo=1.18.0 +- cairo=1.18.2 - capnproto=1.0.2 - cartopy=0.23.0 +- cdsapi=0.7.5 - certifi=2024.8.30 - cffi=1.17.1 - cfgv=3.3.1 @@ -80,31 +81,33 @@ dependencies: - contourpy=1.3.1 - country_converter=1.2 - cpp-expected=1.1.0 -- cpython=3.10.15 +- cpython=3.10.16 - cycler=0.12.1 - cytoolz=1.0.0 -- dask=2024.11.2 -- dask-core=2024.11.2 -- dask-expr=1.1.19 +- dask=2024.12.0 +- dask-core=2024.12.0 +- dask-expr=1.1.20 +- datapi=0.1.1 - datashader=0.16.3 - datrie=0.8.2 -- debugpy=1.8.9 +- debugpy=1.8.10 - decorator=5.1.1 - defusedxml=0.7.1 - deprecation=2.1.0 - descartes=1.1.0 - distlib=0.3.9 -- distributed=2024.11.2 +- distributed=2024.12.0 - docutils=0.21.2 - dpath=2.2.0 - entrypoints=0.4 +- entsoe-py=0.6.11 - et_xmlfile=2.0.0 - exceptiongroup=1.2.2 - executing=2.1.0 - filelock=3.16.1 - fiona=1.9.6 - fmt=11.0.2 -- folium=0.18.0 +- folium=0.19.0 - font-ttf-dejavu-sans-mono=2.37 - font-ttf-inconsolata=3.000 - font-ttf-source-code-pro=2.038 @@ -112,7 +115,7 @@ dependencies: - fontconfig=2.15.0 - fonts-conda-ecosystem=1 - fonts-conda-forge=1 -- fonttools=4.55.0 +- fonttools=4.55.3 - fqdn=1.5.1 - freetype=2.12.1 - freexl=2.0.0 @@ -121,13 +124,14 @@ dependencies: - future=1.0.0 - gdal=3.9.3 - geographiclib=2.0 +- geojson-rewind=1.1.0 - geopandas=0.14.3 - geopandas-base=0.14.3 - geopy=2.4.1 - geos=3.13.0 - geotiff=1.7.3 -- geoviews=1.13.0 -- geoviews-core=1.13.0 +- geoviews=1.13.1 +- geoviews-core=1.13.1 - getopt-win32=0.1 - gitdb=4.0.11 - gitpython=3.1.43 @@ -148,25 +152,26 @@ dependencies: - holoviews=1.20.0 - hpack=4.0.0 - httpcore=1.0.7 -- httpx=0.27.2 +- httpx=0.28.1 - humanfriendly=10.0 - hvplot=0.11.1 - hyperframe=6.0.1 - icu=75.1 -- identify=2.6.2 +- identify=2.6.3 - idna=3.10 - importlib-metadata=8.5.0 - importlib_metadata=8.5.0 - importlib_resources=6.4.5 - inflate64=1.0.0 +- iniconfig=2.0.0 - ipopt=3.14.16 - ipykernel=6.29.5 -- ipython=8.29.0 +- ipython=8.30.0 - isoduration=20.11.0 - jedi=0.19.2 - jinja2=3.1.4 - joblib=1.4.2 -- json5=0.9.28 +- json5=0.10.0 - jsonpointer=3.0.0 - jsonschema=4.23.0 - jsonschema-specifications=2024.10.1 @@ -177,29 +182,29 @@ dependencies: - jupyter_events=0.10.0 - jupyter_server=2.14.2 - jupyter_server_terminals=0.5.3 -- jupyterlab=4.3.1 +- jupyterlab=4.3.3 - jupyterlab_pygments=0.3.0 - jupyterlab_server=2.27.3 -- kealib=1.5.3 +- kealib=1.6.0 - kiwisolver=1.4.7 - krb5=1.21.3 - lcms2=2.16 - lerc=4.0.0 - libabseil=20240722.0 - libaec=1.1.3 -- libarchive=3.7.4 -- libarrow=18.0.0 -- libarrow-acero=18.0.0 -- libarrow-dataset=18.0.0 -- libarrow-substrait=18.0.0 +- libarchive=3.7.7 +- libarrow=18.1.0 +- libarrow-acero=18.1.0 +- libarrow-dataset=18.1.0 +- libarrow-substrait=18.1.0 - libblas=3.9.0 - libbrotlicommon=1.1.0 - libbrotlidec=1.1.0 - libbrotlienc=1.1.0 - libcblas=3.9.0 -- libclang13=19.1.4 +- libclang13=19.1.5 - libcrc32c=1.1.2 -- libcurl=8.10.1 +- libcurl=8.11.1 - libdeflate=1.22 - libevent=2.1.12 - libexpat=2.6.4 @@ -223,8 +228,8 @@ dependencies: - libgdal-xls=3.9.3 - libglib=2.82.2 - libgomp=14.2.0 -- libgoogle-cloud=2.31.0 -- libgoogle-cloud-storage=2.31.0 +- libgoogle-cloud=2.32.0 +- libgoogle-cloud-storage=2.32.0 - libgrpc=1.67.1 - libiconv=1.17 - libintl=0.22.5 @@ -232,11 +237,12 @@ dependencies: - libjpeg-turbo=3.0.0 - libkml=1.3.0 - liblapack=3.9.0 -- libmamba=2.0.3 +- liblzma=5.6.3 +- libmamba=2.0.4 - libnetcdf=4.9.2 - libogg=1.3.5 - libopenblas=0.3.28 -- libparquet=18.0.0 +- libparquet=18.1.0 - libpng=1.6.44 - libpq=17.2 - libprotobuf=5.28.2 @@ -246,11 +252,11 @@ dependencies: - libsolv=0.7.30 - libspatialindex=2.0.0 - libspatialite=5.1.0 -- libsqlite=3.47.0 +- libsqlite=3.47.2 - libssh2=1.11.1 - libthrift=0.21.0 - libtiff=4.7.0 -- libutf8proc=2.8.0 +- libutf8proc=2.9.0 - libvorbis=1.3.7 - libwebp-base=1.4.0 - libwinpthread=12.0.0.r4.gg4f2fc60ca @@ -266,9 +272,9 @@ dependencies: - locket=1.0.0 - lxml=5.3.0 - lz4=4.3.3 -- lz4-c=1.9.4 +- lz4-c=1.10.0 - lzo=2.10 -- mamba=2.0.3 +- mamba=2.0.4 - mapclassify=2.8.1 - markdown=3.6 - markdown-it-py=3.0.0 @@ -280,27 +286,29 @@ dependencies: - mdurl=0.1.2 - memory_profiler=0.61.0 - mercantile=1.2.1 -- minizip=4.0.6 +- minizip=4.0.7 - mistune=3.0.2 - msgpack-python=1.1.0 - multipledispatch=0.6.0 +- multiurl=0.3.3 - multivolumefile=0.2.3 - mumps-seq=5.7.3 - munkres=1.1.4 -- nbclient=0.10.0 +- nbclient=0.10.1 - nbconvert-core=7.16.4 - nbformat=5.10.4 - nest-asyncio=1.6.0 -- netcdf4=1.7.1 +- netcdf4=1.7.2 - networkx=3.4 - nlohmann_json=3.11.3 - nodeenv=1.9.1 - nomkl=1.0 - notebook-shim=0.2.4 - numba=0.60.0 -- numexpr=2.10.1 +- numexpr=2.10.2 +- numpoly=1.2.14 - numpy=1.26.4 -- openjpeg=2.5.2 +- openjpeg=2.5.3 - openmp=5.0.0 - openpyxl=3.1.5 - openssl=3.4.0 @@ -319,18 +327,20 @@ dependencies: - pickleshare=0.7.5 - pillow=11.0.0 - pip=24.3.1 -- pixman=0.43.4 +- pixman=0.44.2 - pkgutil-resolve-name=1.3.10 - plac=1.4.3 - platformdirs=4.3.6 +- pluggy=1.5.0 - ply=3.11 -- poppler=24.08.0 +- poppler=24.12.0 - poppler-data=0.4.12 - postgresql=17.2 -- powerplantmatching==0.6.0 +- powerplantmatching=0.6.0 - pre-commit=4.0.1 -- proj=9.5.0 -- prometheus_client=0.21.0 +- progressbar2=4.5.0 +- proj=9.5.1 +- prometheus_client=0.21.1 - prompt-toolkit=3.0.48 - psutil=6.1.0 - pthread-stubs=0.4 @@ -338,9 +348,10 @@ dependencies: - pure_eval=0.2.3 - py-cpuinfo=9.0.0 - py7zr=0.22.0 -- pyarrow=18.0.0 -- pyarrow-core=18.0.0 +- pyarrow=18.1.0 +- pyarrow-core=18.1.0 - pybcj=1.0.2 +- pycountry=24.6.1 - pycparser=2.22 - pycryptodomex=3.21.0 - pyct=0.5.0 @@ -358,11 +369,13 @@ dependencies: - pyshp=2.3.1 - pysocks=1.7.1 - pytables=3.10.1 -- python=3.10.15 +- pytest=8.3.4 +- python=3.10.16 - python-dateutil=2.9.0.post0 -- python-fastjsonschema=2.20.0 +- python-fastjsonschema=2.21.1 - python-json-logger=2.0.7 - python-tzdata=2024.2 +- python-utils=3.9.1 - python_abi=3.10 - pytz=2024.2 - pyviz_comms=3.0.3 @@ -383,11 +396,11 @@ dependencies: - rfc3339-validator=0.1.4 - rfc3986-validator=0.1.1 - rioxarray=0.17.0 -- rpds-py=0.21.0 +- rpds-py=0.22.3 - rtree=1.3.0 - ruamel.yaml=0.17.26 - ruamel.yaml.clib=0.2.8 -- scikit-learn=1.5.2 +- scikit-learn=1.6.0 - scipy=1.14.1 - seaborn=0.13.2 - seaborn-base=0.13.2 @@ -396,7 +409,7 @@ dependencies: - shapely=2.0.6 - simdjson=3.10.1 - sip=6.7.12 -- six=1.16.0 +- six=1.17.0 - smart_open=7.0.5 - smmap=5.0.0 - snakemake-minimal=7.32.4 @@ -406,8 +419,8 @@ dependencies: - sortedcontainers=2.4.0 - soupsieve=2.5 - spdlog=1.14.1 -- sqlite=3.47.0 -- stack_data=0.6.2 +- sqlite=3.47.2 +- stack_data=0.6.3 - statsmodels=0.14.4 - stopit=1.1.2 - tabulate=0.9.0 @@ -420,13 +433,13 @@ dependencies: - tinycss2=1.4.0 - tk=8.6.13 - toml=0.10.2 -- tomli=2.1.0 +- tomli=2.2.1 - toolz=1.0.0 - toposort=1.10 -- tornado=6.4.1 -- tqdm=4.67.0 +- tornado=6.4.2 +- tqdm=4.67.1 - traitlets=5.14.3 -- types-python-dateutil=2.9.0.20241003 +- types-python-dateutil=2.9.0.20241206 - typing-extensions=4.12.2 - typing_extensions=4.12.2 - typing_utils=0.1.0 @@ -435,22 +448,24 @@ dependencies: - ucrt=10.0.22621.0 - ukkonen=1.0.1 - unicodedata2=15.1.0 +- unidecode=1.3.8 - uri-template=1.3.0 - uriparser=0.9.8 - urllib3=2.2.3 - validators=0.34.0 - vc=14.3 - vc14_runtime=14.42.34433 -- virtualenv=20.27.1 +- virtualenv=20.28.0 - vs2015_runtime=14.42.34433 - wcwidth=0.2.13 -- webcolors=24.8.0 +- webcolors=24.11.1 - webencodings=0.5.1 - websocket-client=1.8.0 - wheel=0.45.1 - win_inet_pton=1.1.0 - winpty=0.4.3 -- wrapt=1.16.0 +- wrapt=1.17.0 +- xarray=2023.11.0 - xerces-c=3.2.5 - xlrd=2.0.1 - xorg-libice=1.1.1 @@ -461,12 +476,10 @@ dependencies: - xorg-libxext=1.3.6 - xorg-libxpm=3.5.17 - xorg-libxt=1.3.1 -- xorg-xorgproto=2024.1 - xyzservices=2024.9.0 -- xz=5.2.6 - yaml=0.2.5 - yaml-cpp=0.8.0 -- yte=1.5.4 +- yte=1.5.5 - zeromq=4.3.5 - zict=3.0.0 - zipfile-deflate64=0.2.0 @@ -476,24 +489,12 @@ dependencies: - zstandard=0.23.0 - zstd=1.5.6 - pip: - - cads-api-client==1.5.4 - - cdsapi==0.7.4 - chaospy==4.3.17 - - countrycode==0.4.0 - earth-osm==2.2 - - entsoe-py==0.6.16 - - fake-useragent==1.5.1 + - fake-useragent==2.0.3 - googledrivedownloader==0.4 - highspy==1.8.1 - - multiurl==0.3.3 - - numpoly==1.3.4 - - polars==1.14.0 - - progressbar2==4.5.0 - - protobuf==5.28.3 - - pycountry==24.6.1 - - python-utils==3.9.0 + - polars==1.17.1 + - protobuf==5.29.1 - tsam==2.3.6 - - unidecode==1.3.8 - - git+https://github.com/FRESNA/vresutils@master - - xarray==2024.11.0 prefix: C:\Miniconda\envs\pypsa-earth diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 01ab70a7b..df8e7b48b 100644 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -2629,6 +2629,141 @@ def add_residential(n, costs): ) +def add_electricity_distribution_grid(n, costs): + logger.info("Adding electricity distribution network") + nodes = pop_layout.index + + n.madd( + "Bus", + nodes + " low voltage", + location=nodes, + carrier="low voltage", + unit="MWh_el", + ) + + n.madd( + "Link", + nodes + " electricity distribution grid", + bus0=nodes, + bus1=nodes + " low voltage", + p_nom_extendable=True, + p_min_pu=-1, + carrier="electricity distribution grid", + efficiency=1, + lifetime=costs.at["electricity distribution grid", "lifetime"], + capital_cost=costs.at["electricity distribution grid", "fixed"], + ) + + # deduct distribution losses from electricity demand as these are included in total load + # https://nbviewer.org/github/Open-Power-System-Data/datapackage_timeseries/blob/2020-10-06/main.ipynb + if ( + efficiency := options["transmission_efficiency"] + .get("electricity distribution grid", {}) + .get("efficiency_static") + ): + logger.info( + f"Deducting distribution losses from electricity demand: {np.around(100*(1-efficiency), decimals=2)}%" + ) + n.loads_t.p_set.loc[:, n.loads.carrier == "AC"] *= efficiency + + # move AC loads to low voltage buses + ac_loads = n.loads.index[n.loads.carrier == "AC"] + n.loads.loc[ac_loads, "bus"] += " low voltage" + + # move industry, rail transport, agriculture and services electricity to low voltage + loads = n.loads.index[n.loads.carrier.str.contains("electricity")] + n.loads.loc[loads, "bus"] += " low voltage" + + bevs = n.links.index[n.links.carrier == "BEV charger"] + n.links.loc[bevs, "bus0"] += " low voltage" + + v2gs = n.links.index[n.links.carrier == "V2G"] + n.links.loc[v2gs, "bus1"] += " low voltage" + + hps = n.links.index[n.links.carrier.str.contains("heat pump")] + n.links.loc[hps, "bus0"] += " low voltage" + + rh = n.links.index[n.links.carrier.str.contains("resistive heater")] + n.links.loc[rh, "bus0"] += " low voltage" + + mchp = n.links.index[n.links.carrier.str.contains("micro gas")] + n.links.loc[mchp, "bus1"] += " low voltage" + + if options.get("solar_rooftop", False): + logger.info("Adding solar rooftop technology") + # set existing solar to cost of utility cost rather the 50-50 rooftop-utility + solar = n.generators.index[n.generators.carrier == "solar"] + n.generators.loc[solar, "capital_cost"] = costs.at["solar-utility", "fixed"] + pop_solar = pop_layout.total.rename(index=lambda x: x + " solar") + + # add max solar rooftop potential assuming 0.1 kW/m2 and 20 m2/person, + # i.e. 2 kW/person (population data is in thousands of people) so we get MW + potential = 0.1 * 20 * pop_solar + + n.madd( + "Generator", + solar, + suffix=" rooftop", + bus=n.generators.loc[solar, "bus"] + " low voltage", + carrier="solar rooftop", + p_nom_extendable=True, + p_nom_max=potential.loc[solar], + marginal_cost=n.generators.loc[solar, "marginal_cost"], + capital_cost=costs.at["solar-rooftop", "fixed"], + efficiency=n.generators.loc[solar, "efficiency"], + p_max_pu=n.generators_t.p_max_pu[solar], + lifetime=costs.at["solar-rooftop", "lifetime"], + ) + + if options.get("home_battery", False): + logger.info("Adding home battery technology") + n.add("Carrier", "home battery") + + n.madd( + "Bus", + nodes + " home battery", + location=nodes, + carrier="home battery", + unit="MWh_el", + ) + + n.madd( + "Store", + nodes + " home battery", + bus=nodes + " home battery", + location=nodes, + e_cyclic=True, + e_nom_extendable=True, + carrier="home battery", + capital_cost=costs.at["home battery storage", "fixed"], + lifetime=costs.at["battery storage", "lifetime"], + ) + + n.madd( + "Link", + nodes + " home battery charger", + bus0=nodes + " low voltage", + bus1=nodes + " home battery", + carrier="home battery charger", + efficiency=costs.at["battery inverter", "efficiency"] ** 0.5, + capital_cost=costs.at["home battery inverter", "fixed"], + p_nom_extendable=True, + lifetime=costs.at["battery inverter", "lifetime"], + ) + + n.madd( + "Link", + nodes + " home battery discharger", + bus0=nodes + " home battery", + bus1=nodes + " low voltage", + carrier="home battery discharger", + efficiency=costs.at["battery inverter", "efficiency"] ** 0.5, + marginal_cost=options["marginal_cost_storage"], + p_nom_extendable=True, + lifetime=costs.at["battery inverter", "lifetime"], + ) + + # def add_co2limit(n, Nyears=1.0, limit=0.0): # print("Adding CO2 budget limit as per unit of 1990 levels of", limit) @@ -2950,6 +3085,9 @@ def remove_carrier_related_components(n, carriers_to_drop): add_residential(n, costs) add_services(n, costs) + if options.get("electricity_distribution_grid", False): + add_electricity_distribution_grid(n, costs) + sopts = snakemake.wildcards.sopts.split("-") for o in sopts: