pypsa-meets-earth / pypsa-earth

PyPSA-Earth: A flexible Python-based open optimisation model to study energy system futures around the world.
https://pypsa-earth.readthedocs.io/en/latest/
225 stars 177 forks source link

`pypsa>=0.25` requires upgrade of network clustering #787

Open pz-max opened 1 year ago

pz-max commented 1 year ago
          To allow in the env.yaml `pypsa>=0.25` we need to upgrade the network clustering: https://github.com/PyPSA/pypsa-eur/pull/696 (at the time of writing in a PR in PyPSA-Eur)

Originally posted by @pz-max in https://github.com/pypsa-meets-earth/pypsa-earth/issues/786#issuecomment-1636830835

ekatef commented 6 months ago

It appears that PyPSA update create some conflicts with the current PyPSA-Earth network structure. In particular, it relates to behaivour of make_consense() function applied during bus aggregation.

Now buses attributes to match are defined as using a combination of aggregation strategies with the column names of in the buses dataframe. Since n.buses contains in our case columns like bus_id or tag_area, an assertion check that all such attributes are the same across all the clustered buses, it leads to an error.

It seems to be an explanation for AssertionError: In Bus cluster bus_id, the values of attribute bus_id do not agree like reported in https://github.com/pypsa-meets-earth/pypsa-earth/issues/908 and https://github.com/pypsa-meets-earth/pypsa-earth/issues/974.

The most straightforward approach to use PyPSA>=0.25 seems to align the network structure at the clustering stage with the structure expected by PyPSA. It would be also great to document these expectations towards the structue of the network data.