Set parameter Username
Academic license - for non-commercial use only - expires 2026-02-17
The flag 'directory' used in rule all is only valid for outputs, not inputs.
The flag 'directory' used in rule all is only valid for outputs, not inputs.
Assuming unrestricted shared filesystem usage.
host: staff-net-cx-2784.intern.ethz.ch
Building DAG of jobs...
Using shell: /bin/bash
Provided cores: 10
Rules claiming more threads will be scaled down.
Conda environments: ignored
Job stats:
job count
---------------------- -------
prepare_sector_network 1
total 1
Select jobs to execute...
Execute 1 jobs...
[Mon Jul 28 17:02:03 2025]
localrule prepare_sector_network:
input: resources/profile_2_offwind-ac.nc, resources/profile_2_offwind-dc.nc, resources/profile_2_offwind-float.nc, resources/gas_network_base_s_2.csv, resources/gas_input_locations_s_2.geojson,
resources/gas_input_locations_s_2_simplified.csv, resources/snapshot_weightings_base_s_2_elec__Co2L0-730H.csv, resources/biomass_transport_costs.csv, resources/co2_sequestration_potential_base_s_2.csv, resources/networks/base_s_2_elec_.nc, data/eurostat/Balances-April2023, resources/pop_weighted_energy_totals_s_2.csv, resources/pop_weighted_heat_totals_s_2.csv, resources/shipping_demand_s_2.csv, resources/transport_demand_s_2.csv, resources/transport_data_s_2.csv, resources/avail_profile_s_2.csv, resources/dsm_profile_s_2.csv, resources/co2_totals.csv, data/bundle/eea/UNFCCC_v23.csv, resources/biomass_potentials_s_2_2050.csv, resources/costs_2050.csv, resources/salt_cavern_potentials_s_2.csv, resources/busmap_base_s.csv, resources/busmap_base_s_2.csv, resources/pop_layout_base_s_2.csv, resources/industrial_energy_demand_base_s_2_2050.csv, resources/hourly_heat_demand_total_base_s_2.nc, resources/industrial_production_base_s_2_2050.csv, resources/district_heat_share_base_s_2_2050.csv, resources/heating_efficiencies.csv, resources/temp_soil_total_base_s_2.nc, resources/temp_air_total_base_s_2.nc, resources/cop_profiles_base_s_2_2050.nc, resources/ptes_e_max_pu_profiles_base_s_2_2050.nc, resources/solar_thermal_total_base_s_2.nc, resources/solar_rooftop_potentials_s_2.csv, resources/direct_heat_source_utilisation_profiles_base_s_2_2050.nc output: resources/networks/base_s_2__Co2L0-730H_2050.nc
log: logs/prepare_sector_network_base_s_2__Co2L0-730H_2050.log
jobid: 0
benchmark: benchmarks/prepare_sector_network/base_s_2__Co2L0-730H_2050
reason: Missing output files: resources/networks/base_s_2__Co2L0-730H_2050.nc
wildcards: clusters=2, opts=, sector_opts=Co2L0-730H, planning_horizons=2050
resources: tmpdir=/var/folders/cd/3symzw7d0833vd8qj4shbrl80000gp/T, mem_mb=2000, mem_mib=1908
WARNING:pypsa.network.io:Importing network from PyPSA version v0.0.0 while current version is v0.35.1. Read the release notes at https://pypsa.readthedocs.io/en/latest/release_notes.html to prepare
your network for import. INFO:pypsa.network.io:Imported network '' has buses, carriers, generators, lines, links, loads, storage_units, stores
INFO:scripts.add_electricity:Overwriting marginal_cost with:
solar 0.010
onwind 0.015
offwind 0.015
hydro 0.000
H2 0.000
electrolysis 0.000
fuel cell 0.000
battery 0.000
battery inverter 0.000
home battery storage 0.000
water tank charger 0.030
central water pit charger 0.025
dtype: float64
INFO:__main__:Removing buses with carrier ['H2', 'battery']
INFO:__main__:Removing links with carrier ['H2 electrolysis', 'H2 fuel cell', 'battery charger', 'battery discharger']
INFO:__main__:Removing generators with carrier ['CCGT', 'OCGT', 'biomass', 'coal', 'lignite', 'nuclear', 'oil']
INFO:__main__:Removing storage_units with carrier ['hydro']
INFO:__main__:Removing stores with carrier ['H2', 'battery']
INFO:__main__:Added connection cost of 6561-7164 Eur/MW/a to offwind-ac
INFO:__main__:Added connection cost of 14825-27587 Eur/MW/a to offwind-dc
INFO:__main__:Added connection cost of 8539-40836 Eur/MW/a to offwind-float
INFO:__main__:Adding electricity generation
INFO:__main__:Add hydrogen storage
INFO:__main__:Adding hydrogen fuel cell for re-electrification.
INFO:__main__:Adding hydrogen turbine for re-electrification. Assuming OCGT technology costs.
INFO:__main__:Add hydrogen underground storage
INFO:__main__:Add natural gas infrastructure, incl. LNG terminals, production, storage and entry-points.
ERROR:root:Uncaught exception
Traceback (most recent call last):
File "/Users/jopeel/Documents/Code/Development/preferred-systems/preferred-energy-systems/pypsa-eur/.snakemake/scripts/tmp_acg3o3g.prepare_sector_network.py", line 6253, in <module>
add_storage_and_grids(
File "/Users/jopeel/Documents/Code/Development/preferred-systems/preferred-energy-systems/pypsa-eur/.snakemake/scripts/tmp_acg3o3g.prepare_sector_network.py", line 2004, in add_storage_and_grids
complement_edges["length"] = complement_edges.apply(
~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/Users/jopeel/miniconda3/envs/pypsa-eur/lib/python3.12/site-packages/pandas/core/frame.py", line 4306, in __setitem__
self._set_item_frame_value(key, value)
File "/Users/jopeel/miniconda3/envs/pypsa-eur/lib/python3.12/site-packages/pandas/core/frame.py", line 4464, in _set_item_frame_value
raise ValueError(
ValueError: Cannot set a DataFrame with multiple columns to the single column length
RuleException:
CalledProcessError in file "/Users/jopeel/Documents/Code/Development/preferred-systems/preferred-energy-systems/pypsa-eur/rules/build_sector.smk", line 1443:
Command 'set -euo pipefail; /Users/jopeel/miniconda3/envs/pypsa-eur/bin/python3.12 /Users/jopeel/Documents/Code/Development/preferred-systems/preferred-energy-systems/pypsa-eur/.snakemake/scripts/t
mp_acg3o3g.prepare_sector_network.py' returned non-zero exit status 1. [Mon Jul 28 17:02:07 2025]
Error in rule prepare_sector_network:
message: None
jobid: 0
input: resources/profile_2_offwind-ac.nc, resources/profile_2_offwind-dc.nc, resources/profile_2_offwind-float.nc, resources/gas_network_base_s_2.csv, resources/gas_input_locations_s_2.geojson,
resources/gas_input_locations_s_2_simplified.csv, resources/snapshot_weightings_base_s_2_elec__Co2L0-730H.csv, resources/biomass_transport_costs.csv, resources/co2_sequestration_potential_base_s_2.csv, resources/networks/base_s_2_elec_.nc, data/eurostat/Balances-April2023, resources/pop_weighted_energy_totals_s_2.csv, resources/pop_weighted_heat_totals_s_2.csv, resources/shipping_demand_s_2.csv, resources/transport_demand_s_2.csv, resources/transport_data_s_2.csv, resources/avail_profile_s_2.csv, resources/dsm_profile_s_2.csv, resources/co2_totals.csv, data/bundle/eea/UNFCCC_v23.csv, resources/biomass_potentials_s_2_2050.csv, resources/costs_2050.csv, resources/salt_cavern_potentials_s_2.csv, resources/busmap_base_s.csv, resources/busmap_base_s_2.csv, resources/pop_layout_base_s_2.csv, resources/industrial_energy_demand_base_s_2_2050.csv, resources/hourly_heat_demand_total_base_s_2.nc, resources/industrial_production_base_s_2_2050.csv, resources/district_heat_share_base_s_2_2050.csv, resources/heating_efficiencies.csv, resources/temp_soil_total_base_s_2.nc, resources/temp_air_total_base_s_2.nc, resources/cop_profiles_base_s_2_2050.nc, resources/ptes_e_max_pu_profiles_base_s_2_2050.nc, resources/solar_thermal_total_base_s_2.nc, resources/solar_rooftop_potentials_s_2.csv, resources/direct_heat_source_utilisation_profiles_base_s_2_2050.nc output: resources/networks/base_s_2__Co2L0-730H_2050.nc
log: logs/prepare_sector_network_base_s_2__Co2L0-730H_2050.log (check log file(s) for error details)
Shutting down, this might take some time.
Exiting because a job execution failed. Look below for error messages
[Mon Jul 28 17:02:07 2025]
Error in rule prepare_sector_network:
message: None
jobid: 0
input: resources/profile_2_offwind-ac.nc, resources/profile_2_offwind-dc.nc, resources/profile_2_offwind-float.nc, resources/gas_network_base_s_2.csv, resources/gas_input_locations_s_2.geojson,
resources/gas_input_locations_s_2_simplified.csv, resources/snapshot_weightings_base_s_2_elec__Co2L0-730H.csv, resources/biomass_transport_costs.csv, resources/co2_sequestration_potential_base_s_2.csv, resources/networks/base_s_2_elec_.nc, data/eurostat/Balances-April2023, resources/pop_weighted_energy_totals_s_2.csv, resources/pop_weighted_heat_totals_s_2.csv, resources/shipping_demand_s_2.csv, resources/transport_demand_s_2.csv, resources/transport_data_s_2.csv, resources/avail_profile_s_2.csv, resources/dsm_profile_s_2.csv, resources/co2_totals.csv, data/bundle/eea/UNFCCC_v23.csv, resources/biomass_potentials_s_2_2050.csv, resources/costs_2050.csv, resources/salt_cavern_potentials_s_2.csv, resources/busmap_base_s.csv, resources/busmap_base_s_2.csv, resources/pop_layout_base_s_2.csv, resources/industrial_energy_demand_base_s_2_2050.csv, resources/hourly_heat_demand_total_base_s_2.nc, resources/industrial_production_base_s_2_2050.csv, resources/district_heat_share_base_s_2_2050.csv, resources/heating_efficiencies.csv, resources/temp_soil_total_base_s_2.nc, resources/temp_air_total_base_s_2.nc, resources/cop_profiles_base_s_2_2050.nc, resources/ptes_e_max_pu_profiles_base_s_2_2050.nc, resources/solar_thermal_total_base_s_2.nc, resources/solar_rooftop_potentials_s_2.csv, resources/direct_heat_source_utilisation_profiles_base_s_2_2050.nc output: resources/networks/base_s_2__Co2L0-730H_2050.nc
log: logs/prepare_sector_network_base_s_2__Co2L0-730H_2050.log (check log file(s) for error details)
Complete log(s): /Users/jopeel/Documents/Code/Development/preferred-systems/preferred-energy-systems/pypsa-eur/.snakemake/log/2025-07-28T170158.079321.snakemake.log
WorkflowError:
At least one job did not complete successfully.
Version Checks (indicate both or one)
I have confirmed this bug exists on the lastest release of PyPSA-Eur.
I have confirmed this bug exists on the current
masterbranch of PyPSA-Eur.Issue Description
When running the sector-coupled pypsa-eur with few nodes, there is a high risk of this error. It occurs under rule
prepare_sector_networkwithinprepare_sector_network.pyin functionadd_storage_and_grids. The error line iscomplement_edges["length"] = complement_edges.apply(, axis=1, args=(n,))and the error message is
ValueError: Cannot set a DataFrame with multiple columns to the single column length.The cause is that the previous line,
complement_edges = pd.DataFrame(complement(G).edges, columns=["bus0", "bus1"]),will return an empty dataframe for
complement_edgesif all the nodes of the network are already connected by existing gas lines. This is becausecomplement(G)returns the complement graph ofG, and ifGalready has all of its nodes connected by edges, the complement will have all the nodes, but no edges.The fix should be to only "add candidates for new gas pipelines to achieve full connectivity" if the complement of
Gactually contains any edges.The full error report is as follows.
Details
Reproducible Example
Expected Behavior
Successful creation of file
resources/networks/base_s_2__Co2L0-730H_2050.ncwithout error.Installed Versions
Details
name: pypsa-eur channels: - bioconda - conda-forge - http://conda.anaconda.org/gurobi - https://conda.anaconda.org/gurobi - defaults - https://repo.anaconda.com/pkgs/main - https://repo.anaconda.com/pkgs/r dependencies: - _python_abi3_support=1.0=hd8ed1ab_2 - adwaita-icon-theme=48.1=unix_0 - affine=2.4.0=pyhd8ed1ab_1 - ampl-asl=1.0.0=h286801f_2 - amply=0.1.6=pyhd8ed1ab_1 - anyio=4.9.0=pyh29332c3_0 - appdirs=1.4.4=pyhd8ed1ab_1 - appnope=0.1.4=pyhd8ed1ab_1 - argon2-cffi=25.1.0=pyhd8ed1ab_0 - argon2-cffi-bindings=21.2.0=py312h024a12e_5 - argparse-dataclass=2.0.0=pyhd8ed1ab_0 - arrow=1.3.0=pyhd8ed1ab_1 - astroid=3.3.10=py312h81bd7bf_0 - asttokens=3.0.0=pyhd8ed1ab_1 - async-lru=2.0.5=pyh29332c3_0 - atk-1.0=2.38.0=hd03087b_2 - atlite=0.4.1=pyhd8ed1ab_0 - attrs=25.3.0=pyh71513ae_0 - aws-c-auth=0.9.0=hb5b73c5_15 - aws-c-cal=0.9.2=h03444cf_0 - aws-c-common=0.12.3=h5505292_0 - aws-c-compression=0.3.1=hca07070_5 - aws-c-event-stream=0.5.5=h40449bf_0 - aws-c-http=0.10.2=hb5bd760_2 - aws-c-io=0.20.1=hf355ecc_0 - aws-c-mqtt=0.13.1=h923d298_3 - aws-c-s3=0.8.3=h78ecdd8_0 - aws-c-sdkutils=0.2.4=hca07070_0 - aws-checksums=0.2.7=hca07070_1 - aws-crt-cpp=0.32.10=h19250b4_2 - aws-sdk-cpp=1.11.510=h3a747ed_13 - azure-core-cpp=1.14.0=hd50102c_0 - azure-identity-cpp=1.10.0=hc602bab_0 - azure-storage-blobs-cpp=12.13.0=h7585a09_1 - azure-storage-common-cpp=12.8.0=h9ca1f76_1 - azure-storage-files-datalake-cpp=12.12.0=hcdd55da_1 - babel=2.17.0=pyhd8ed1ab_0 - beautifulsoup4=4.13.4=pyha770c72_0 - bleach=6.2.0=pyh29332c3_4 - bleach-with-css=6.2.0=h82add2a_4 - blinker=1.9.0=pyhff2d567_0 - blosc=1.21.6=h7dd00d9_1 - bokeh=3.7.3=pyhd8ed1ab_0 - bottleneck=1.5.0=py312he0011b7_0 - branca=0.8.1=pyhd8ed1ab_0 - brotli=1.1.0=h5505292_3 - brotli-bin=1.1.0=h5505292_3 - brotli-python=1.1.0=py312hd8f9ff3_3 - bzip2=1.0.8=h99b78c6_7 - c-ares=1.34.5=h5505292_0 - c-blosc2=2.19.0=h9cbb436_0 - ca-certificates=2025.6.15=hbd8a1cb_0 - cached-property=1.5.2=hd8ed1ab_1 - cached_property=1.5.2=pyha770c72_1 - cairo=1.18.4=h6a3b0d2_0 - cartopy=0.24.0=py312hcd31e36_0 - cdsapi=0.7.6=pyhd8ed1ab_0 - certifi=2025.6.15=pyhd8ed1ab_0 - cffi=1.17.1=py312h0fad829_0 - cfgv=3.3.1=pyhd8ed1ab_1 - cftime=1.6.4=py312h755e627_1 - charset-normalizer=3.4.2=pyhd8ed1ab_0 - click=8.2.1=pyh707e725_0 - click-plugins=1.1.1.2=pyhd8ed1ab_0 - cligj=0.7.2=pyhd8ed1ab_2 - cloudpickle=3.1.1=pyhd8ed1ab_0 - coin-or-cbc=2.10.12=h8ec3750_2 - coin-or-cgl=0.60.9=h7ef17a8_4 - coin-or-clp=1.17.10=h73553b4_1 - coin-or-osi=0.108.11=h1c7c69d_4 - coin-or-utils=2.11.12=h38baedf_2 - colorama=0.4.6=pyhd8ed1ab_1 - comm=0.2.2=pyhd8ed1ab_1 - conda-inject=1.3.2=pyhd8ed1ab_0 - configargparse=1.7.1=pyhe01879c_0 - connection_pool=0.0.3=pyhd3deb0d_0 - contourpy=1.3.2=py312hb23fbb9_0 - country_converter=1.2=pyhd8ed1ab_0 - cppad=20250000.2=h286801f_0 - cpython=3.12.11=py312hd8ed1ab_0 - cryptography=45.0.5=py312hf9bd80e_0 - cycler=0.12.1=pyhd8ed1ab_1 - cytoolz=1.0.1=py312hea69d52_0 - dask=2025.5.1=pyhd8ed1ab_0 - dask-core=2025.5.1=pyhd8ed1ab_0 - debugpy=1.8.14=py312hd8f9ff3_0 - decorator=5.2.1=pyhd8ed1ab_0 - defusedxml=0.7.1=pyhd8ed1ab_0 - deprecation=2.1.0=pyh9f0ad1d_0 - descartes=1.1.0=pyhd8ed1ab_5 - dill=0.4.0=pyhd8ed1ab_0 - distlib=0.3.9=pyhd8ed1ab_1 - distributed=2025.5.1=pyhd8ed1ab_0 - docutils=0.21.2=pyhd8ed1ab_1 - dpath=2.2.0=pyha770c72_0 - ecmwf-datastores-client=0.2.0=pyhd8ed1ab_0 - entsoe-py=0.7.0=pyhd8ed1ab_0 - epoxy=1.5.10=h1c322ee_1 - et_xmlfile=2.0.0=pyhd8ed1ab_1 - exceptiongroup=1.3.0=pyhd8ed1ab_0 - executing=2.2.0=pyhd8ed1ab_0 - filelock=3.18.0=pyhd8ed1ab_0 - fiona=1.10.1=py312hfd5e53c_3 - folium=0.20.0=pyhd8ed1ab_0 - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 - font-ttf-inconsolata=3.000=h77eed37_0 - font-ttf-source-code-pro=2.038=h77eed37_0 - font-ttf-ubuntu=0.83=h77eed37_3 - fontconfig=2.15.0=h1383a14_1 - fonts-conda-ecosystem=1=0 - fonts-conda-forge=1=0 - fonttools=4.58.5=py312h998013c_0 - fqdn=1.5.1=pyhd8ed1ab_1 - freetype=2.13.3=hce30654_1 - freexl=2.0.0=h3ab3353_2 - fribidi=1.0.10=h27ca646_0 - fsspec=2025.5.1=pyhd8ed1ab_0 - gdk-pixbuf=2.42.12=h7ddc832_0 - geographiclib=2.0=pyhd8ed1ab_1 - geojson=3.2.0=pyhd8ed1ab_0 - geopandas=1.1.1=pyhd8ed1ab_0 - geopandas-base=1.1.1=pyha770c72_0 - geopy=2.4.1=pyhd8ed1ab_2 - geos=3.13.1=hc9a1286_0 - geotiff=1.7.4=h1d7e6e1_2 - gflags=2.2.2=hf9b8971_1005 - giflib=5.2.2=h93a5062_0 - gitdb=4.0.12=pyhd8ed1ab_0 - gitpython=3.1.44=pyhff2d567_0 - glib-tools=2.84.2=h1dc7a0c_0 - glog=0.7.1=heb240a5_0 - glpk=5.0=h6d7a090_0 - gmp=6.3.0=h7bae524_2 - graphite2=1.3.14=h286801f_0 - graphviz=13.1.0=haeab78c_0 - gtk3=3.24.43=h07173f4_5 - gts=0.7.6=he42f4ea_4 - h11=0.16.0=pyhd8ed1ab_0 - h2=4.2.0=pyhd8ed1ab_0 - harfbuzz=11.2.1=hab40de2_0 - hdf4=4.2.15=h2ee6834_7 - hdf5=1.14.6=nompi_ha698983_101 - hicolor-icon-theme=0.17=hce30654_2 - highspy=1.11.0=np20py312h4049357_0 - hpack=4.1.0=pyhd8ed1ab_0 - httpcore=1.0.9=pyh29332c3_0 - httpx=0.28.1=pyhd8ed1ab_0 - humanfriendly=10.0=pyh707e725_8 - hyperframe=6.1.0=pyhd8ed1ab_0 - icu=75.1=hfee45f7_0 - identify=2.6.12=pyhd8ed1ab_0 - idna=3.10=pyhd8ed1ab_1 - immutables=0.21=py312hea69d52_1 - importlib-metadata=8.7.0=pyhe01879c_1 - importlib_resources=6.5.2=pyhd8ed1ab_0 - iniconfig=2.0.0=pyhd8ed1ab_1 - ipopt=3.14.17=h945cc1c_2 - ipykernel=6.29.5=pyh57ce528_0 - ipython=9.4.0=pyhfa0c392_0 - ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0 - ipywidgets=8.1.7=pyhd8ed1ab_0 - isoduration=20.11.0=pyhd8ed1ab_1 - isort=6.0.1=pyhd8ed1ab_1 - jedi=0.19.2=pyhd8ed1ab_1 - jinja2=3.1.6=pyhd8ed1ab_0 - joblib=1.5.1=pyhd8ed1ab_0 - jpype1=1.5.2=py312hb23fbb9_0 - json-c=0.18=he4178ee_0 - json5=0.12.0=pyhd8ed1ab_0 - jsonpointer=3.0.0=py312h81bd7bf_1 - jsonschema=4.24.0=pyhd8ed1ab_0 - jsonschema-specifications=2025.4.1=pyh29332c3_0 - jsonschema-with-format-nongpl=4.24.0=hd8ed1ab_0 - jupyter=1.1.1=pyhd8ed1ab_1 - jupyter-lsp=2.2.5=pyhe01879c_2 - jupyter_client=8.6.3=pyhd8ed1ab_1 - jupyter_console=6.6.3=pyhd8ed1ab_1 - jupyter_core=5.8.1=pyh31011fe_0 - jupyter_events=0.12.0=pyh29332c3_0 - jupyter_server=2.16.0=pyhe01879c_0 - jupyter_server_terminals=0.5.3=pyhd8ed1ab_1 - jupyterlab=4.4.4=pyhd8ed1ab_0 - jupyterlab_pygments=0.3.0=pyhd8ed1ab_2 - jupyterlab_server=2.27.3=pyhd8ed1ab_1 - jupyterlab_widgets=3.0.15=pyhd8ed1ab_0 - kiwisolver=1.4.8=py312hb23fbb9_1 - krb5=1.21.3=h237132a_0 - lcms2=2.17=h7eeda09_0 - lerc=4.0.0=hd64df32_1 - libabseil=20250127.1=cxx17_h07bc746_0 - libaec=1.1.4=h51d1e36_0 - libarchive=3.8.1=gpl_h46e8061_100 - libarrow=20.0.0=hd5f8272_8_cpu - libarrow-acero=20.0.0=hf07054f_8_cpu - libarrow-dataset=20.0.0=hf07054f_8_cpu - libarrow-substrait=20.0.0=he749cb8_8_cpu - libblas=3.9.0=32_h10e41b3_openblas - libbrotlicommon=1.1.0=h5505292_3 - libbrotlidec=1.1.0=h5505292_3 - libbrotlienc=1.1.0=h5505292_3 - libcblas=3.9.0=32_hb3479ef_openblas - libcrc32c=1.1.2=hbdafb3b_0 - libcurl=8.14.1=h73640d1_0 - libcxx=20.1.7=ha82da77_0 - libdeflate=1.24=h5773f1b_0 - libedit=3.1.20250104=pl5321hafb1f1b_0 - libev=4.33=h93a5062_2 - libevent=2.1.12=h2757513_1 - libexpat=2.7.0=h286801f_0 - libffi=3.4.6=h1da3d7d_1 - libfreetype=2.13.3=hce30654_1 - libfreetype6=2.13.3=h1d14073_1 - libgd=2.3.3=hb2c3a21_11 - libgdal-core=3.10.3=h976ba99_11 - libgdal-hdf4=3.10.3=h6769f21_11 - libgdal-hdf5=3.10.3=haed1158_11 - libgdal-netcdf=3.10.3=hf10a186_11 - libgfortran=5.0.0=14_2_0_h6c33f7e_103 - libgfortran5=14.2.0=h6c33f7e_103 - libglib=2.84.2=hbec27ea_0 - libgoogle-cloud=2.36.0=h9484b08_1 - libgoogle-cloud-storage=2.36.0=h7081f7f_1 - libgrpc=1.71.0=h857da87_1 - libhwloc=2.11.2=default_hbce5d74_1001 - libiconv=1.18=hfe07756_1 - libintl=0.25.1=h493aca8_0 - libjpeg-turbo=3.1.0=h5505292_0 - libkml=1.3.0=he250239_1021 - liblapack=3.9.0=32_hc9a63f6_openblas - liblapacke=3.9.0=32_hbb7bcf8_openblas - liblzma=5.8.1=h39f12f2_2 - libnetcdf=4.9.2=nompi_h3352478_117 - libnghttp2=1.64.0=h6d7220d_0 - libopenblas=0.3.30=openmp_hf332438_0 - libopentelemetry-cpp=1.21.0=h0181452_0 - libopentelemetry-cpp-headers=1.21.0=hce30654_0 - libparquet=20.0.0=h636d7b7_8_cpu - libpng=1.6.50=h3783ad8_0 - libprotobuf=5.29.3=hccd9074_1 - libre2-11=2025.06.26=hd41c47c_0 - librsvg=2.58.4=h266df6f_3 - librttopo=1.1.0=h26cc057_18 - libscotch=7.0.6=he56f69b_1 - libsodium=1.0.20=h99b78c6_0 - libspatialite=5.1.0=hea0a7cd_14 - libsqlite=3.50.2=h6fb428d_0 - libssh2=1.11.1=h1590b86_0 - libthrift=0.21.0=h64651cc_0 - libtiff=4.7.0=h2f21f7c_5 - libutf8proc=2.10.0=h74a6958_0 - libwebp-base=1.5.0=h2471fea_0 - libxcb=1.17.0=hdb1d25a_0 - libxml2=2.13.8=h52572c6_0 - libxslt=1.1.39=h223e5b9_0 - libzip=1.11.2=h1336266_0 - libzlib=1.3.1=h8359307_2 - linopy=0.5.5=pyhd8ed1ab_0 - llvm-openmp=20.1.7=hdb05f8b_0 - locket=1.0.0=pyhd8ed1ab_0 - lxml=6.0.0=py312hc2c121e_0 - lz4=4.4.4=py312hf263c89_0 - lz4-c=1.10.0=h286801f_1 - lzo=2.10=h93a5062_1001 - mapclassify=2.9.0=pyhd8ed1ab_0 - markupsafe=3.0.2=py312h998013c_1 - matplotlib=3.10.3=py312h1f38498_0 - matplotlib-base=3.10.3=py312hdbc7e53_0 - matplotlib-inline=0.1.7=pyhd8ed1ab_1 - mccabe=0.7.0=pyhd8ed1ab_1 - memory_profiler=0.61.0=pyhd8ed1ab_1 - metis=5.1.0=h15f6cfe_1007 - minizip=4.0.10=hff1a8ea_0 - mistune=3.1.3=pyh29332c3_0 - mpfr=4.2.1=hb693164_3 - msgpack-python=1.1.1=py312hb23fbb9_0 - multiurl=0.3.5=pyhd8ed1ab_0 - mumps-include=5.7.3=h8c5b6c6_10 - mumps-seq=5.7.3=h390d176_10 - munkres=1.1.4=pyhd8ed1ab_1 - narwhals=1.45.0=pyhe01879c_0 - nbclient=0.10.2=pyhd8ed1ab_0 - nbconvert-core=7.16.6=pyh29332c3_0 - nbformat=5.10.4=pyhd8ed1ab_1 - ncurses=6.5=h5e97a16_3 - nest-asyncio=1.6.0=pyhd8ed1ab_1 - netcdf4=1.7.2=nompi_py312h3abf214_102 - networkx=3.5=pyhe01879c_0 - nlohmann_json=3.12.0=ha1acc90_0 - nodeenv=1.9.1=pyhd8ed1ab_1 - notebook=7.4.4=pyhd8ed1ab_0 - notebook-shim=0.2.4=pyhd8ed1ab_1 - numexpr=2.10.2=py312hbbbb429_0 - numpy=1.26.4=py312h8442bc7_0 - oauthlib=3.3.1=pyhd8ed1ab_0 - openjpeg=2.5.3=h8a3d83b_0 - openpyxl=3.1.5=py312hf6e0af7_1 - openssl=3.5.1=h81ee809_0 - orc=2.1.2=hd90e43c_0 - overrides=7.7.0=pyhd8ed1ab_1 - packaging=25.0=pyh29332c3_1 - pandas=2.3.0=py312hcb1e3ce_0 - pandocfilters=1.5.0=pyhd8ed1ab_0 - pango=1.56.4=h875632e_0 - parso=0.8.4=pyhd8ed1ab_1 - partd=1.4.2=pyhd8ed1ab_0 - patsy=1.0.1=pyhd8ed1ab_1 - pcre2=10.45=ha881caa_0 - pexpect=4.9.0=pyhd8ed1ab_1 - pickleshare=0.7.5=pyhd8ed1ab_1004 - pillow=11.3.0=py312h50aef2c_0 - pip=25.1.1=pyh8b19718_0 - pixman=0.46.2=h2f9eb0b_0 - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_2 - plac=1.4.5=pyhd8ed1ab_0 - platformdirs=4.3.8=pyhe01879c_0 - plotly=6.2.0=pyhd8ed1ab_0 - pluggy=1.6.0=pyhd8ed1ab_0 - polars=1.31.0=default_h56a14c1_0 - polars-default=1.31.0=py39h6da47c3_0 - powerplantmatching=0.7.1=pyhd8ed1ab_0 - pre-commit=4.2.0=pyha770c72_0 - progressbar2=4.5.0=pyhd8ed1ab_1 - proj=9.6.2=h1318a7e_0 - prometheus-cpp=1.3.0=h0967b3e_0 - prometheus_client=0.22.1=pyhd8ed1ab_0 - prompt-toolkit=3.0.51=pyha770c72_0 - prompt_toolkit=3.0.51=hd8ed1ab_0 - psutil=7.0.0=py312hea69d52_0 - pthread-stubs=0.4=hd74edd7_1002 - ptyprocess=0.7.0=pyhd8ed1ab_1 - pulp=2.8.0=py312h38bd297_2 - pure_eval=0.2.3=pyhd8ed1ab_1 - py-cpuinfo=9.0.0=pyhd8ed1ab_1 - pyarrow=20.0.0=py312h1f38498_0 - pyarrow-core=20.0.0=py312hc40f475_0_cpu - pycountry=24.6.1=pyhd8ed1ab_0 - pycparser=2.22=pyh29332c3_1 - pygments=2.19.2=pyhd8ed1ab_0 - pyjwt=2.10.1=pyhd8ed1ab_0 - pylint=3.3.7=pyhe01879c_0 - pyobjc-core=11.1=py312h4c66426_0 - pyobjc-framework-cocoa=11.1=py312hb9d441b_0 - pyogrio=0.11.0=py312hfd5e53c_0 - pyparsing=3.2.3=pyhd8ed1ab_1 - pyproj=3.7.1=py312h237c406_1 - pypsa=0.35.1=pyhd8ed1ab_0 - pyscipopt=5.5.0=py312hd8f9ff3_0 - pyshp=2.3.1=pyhd8ed1ab_1 - pysocks=1.7.1=pyha55dd90_7 - pytables=3.10.2=py312h599e418_6 - pytest=8.4.1=pyhd8ed1ab_0 - python=3.12.11=hc22306f_0_cpython - python-dateutil=2.9.0.post0=pyhe01879c_2 - python-fastjsonschema=2.21.1=pyhd8ed1ab_0 - python-gil=3.12.11=hd8ed1ab_0 - python-json-logger=2.0.7=pyhd8ed1ab_0 - python-tzdata=2025.2=pyhd8ed1ab_0 - python-utils=3.9.1=pyhff2d567_1 - python_abi=3.12=7_cp312 - pytz=2025.2=pyhd8ed1ab_0 - pyxlsb=1.0.10=pyhd8ed1ab_0 - pyyaml=6.0.2=py312h998013c_2 - pyzmq=27.0.0=py312hf4875e0_0 - qhull=2020.2=h420ef59_5 - rasterio=1.4.3=py312h4623290_1 - re2=2025.06.26=h6589ca4_0 - readline=8.2=h1d1bf99_2 - referencing=0.36.2=pyh29332c3_0 - requests=2.32.4=pyhd8ed1ab_0 - requests-oauthlib=1.4.0=pyhd8ed1ab_0 - reretry=0.11.8=pyhd8ed1ab_1 - rfc3339-validator=0.1.4=pyhd8ed1ab_1 - rfc3986-validator=0.1.1=pyh9f0ad1d_0 - rioxarray=0.19.0=pyhd8ed1ab_0 - rpds-py=0.26.0=py312hd3c0895_0 - ruff=0.12.2=h412e174_0 - scikit-learn=1.7.0=py312h39203ce_1 - scip=9.2.2=hdf0ad90_2 - scipy=1.15.2=py312h99a188d_0 - seaborn=0.13.2=hd8ed1ab_3 - seaborn-base=0.13.2=pyhd8ed1ab_3 - send2trash=1.8.3=pyh31c8845_1 - setuptools=80.9.0=pyhff2d567_0 - shapely=2.0.7=py312hf733f26_1 - six=1.17.0=pyhd8ed1ab_0 - smart_open=7.3.0=pyhe01879c_0 - smmap=5.0.2=pyhd8ed1ab_0 - snakemake-executor-plugin-cluster-generic=1.0.9=pyhdfd78af_0 - snakemake-executor-plugin-slurm=1.4.0=pyhdfd78af_0 - snakemake-executor-plugin-slurm-jobstep=0.3.0=pyhdfd78af_0 - snakemake-interface-common=1.20.1=pyhdfd78af_0 - snakemake-interface-executor-plugins=9.3.7=pyhdfd78af_0 - snakemake-interface-logger-plugins=1.2.3=pyhdfd78af_0 - snakemake-interface-report-plugins=1.1.0=pyhdfd78af_0 - snakemake-interface-storage-plugins=4.2.1=pyhdfd78af_0 - snakemake-minimal=9.7.1=pyhdfd78af_0 - snakemake-storage-plugin-http=0.3.0=pyhdfd78af_0 - snappy=1.2.1=h98b9ce2_1 - sniffio=1.3.1=pyhd8ed1ab_1 - snuggs=1.4.7=pyhd8ed1ab_2 - sortedcontainers=2.4.0=pyhd8ed1ab_1 - soupsieve=2.7=pyhd8ed1ab_0 - sqlite=3.50.2=hc23dd5f_0 - stack_data=0.6.3=pyhd8ed1ab_1 - statsmodels=0.14.4=py312hcde60ef_2 - tabulate=0.9.0=pyhd8ed1ab_2 - tbb=2022.1.0=h9541205_0 - tblib=3.1.0=pyhd8ed1ab_0 - terminado=0.18.1=pyh31c8845_0 - threadpoolctl=3.6.0=pyhecae5ae_0 - throttler=1.2.2=pyhd8ed1ab_0 - tinycss2=1.4.0=pyhd8ed1ab_0 - tk=8.6.13=h892fb3f_2 - tomli=2.2.1=pyhd8ed1ab_1 - tomlkit=0.13.3=pyha770c72_0 - toolz=1.0.0=pyhd8ed1ab_1 - tornado=6.5.1=py312hea69d52_0 - tqdm=4.67.1=pyhd8ed1ab_1 - traitlets=5.14.3=pyhd8ed1ab_1 - types-python-dateutil=2.9.0.20250516=pyhd8ed1ab_0 - typing-extensions=4.14.1=h4440ef1_0 - typing_extensions=4.14.1=pyhe01879c_0 - typing_utils=0.1.0=pyhd8ed1ab_1 - tzdata=2025b=h78e105d_0 - ukkonen=1.0.1=py312h6142ec9_5 - unicodedata2=16.0.0=py312hea69d52_0 - unidecode=1.3.8=pyh29332c3_1 - uri-template=1.3.0=pyhd8ed1ab_1 - uriparser=0.9.8=h00cdb27_0 - urllib3=2.5.0=pyhd8ed1ab_0 - validators=0.35.0=pyhd8ed1ab_0 - virtualenv=20.31.2=pyhd8ed1ab_0 - wcwidth=0.2.13=pyhd8ed1ab_1 - webcolors=24.11.1=pyhd8ed1ab_0 - webencodings=0.5.1=pyhd8ed1ab_3 - websocket-client=1.8.0=pyhd8ed1ab_1 - wheel=0.45.1=pyhd8ed1ab_1 - widgetsnbextension=4.0.14=pyhd8ed1ab_0 - wrapt=1.17.2=py312hea69d52_0 - xarray=2025.6.1=pyhd8ed1ab_1 - xerces-c=3.2.5=h92fc2f4_2 - xlrd=2.0.1=pyhd8ed1ab_3 - xorg-libxau=1.0.12=h5505292_0 - xorg-libxdmcp=1.1.5=hd74edd7_0 - xyzservices=2025.4.0=pyhd8ed1ab_0 - yaml=0.2.5=h3422bc3_2 - yte=1.8.1=pyha770c72_0 - zeromq=4.3.5=hc1bb282_7 - zict=3.0.0=pyhd8ed1ab_1 - zipp=3.23.0=pyhd8ed1ab_0 - zlib=1.3.1=h8359307_2 - zlib-ng=2.2.4=h13dfb9a_0 - zstandard=0.23.0=py312hea69d52_2 - zstd=1.5.7=h6491c7d_2 - pip: - gurobipy==12.0.2 - ply==3.11 - pyomo==6.9.2 - tsam==2.3.9