Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate tyndp 2020 #626

Draft
wants to merge 45 commits into
base: master
Choose a base branch
from
Draft

Conversation

grecht
Copy link

@grecht grecht commented Mar 12, 2023

Related to #57 .

Changes proposed in this Pull Request

  • Added the option to include projects from the TYNDP 2020.
  • Commissioning dates are included. Every non-TYNDP asset gets assigned the commissioning date 1970-01-01.
  • The new configuration options include a possibility to set the desired project status and ignore selected projects.

In an external repository "tyndp_to_pypsa", coordinates were added to the TYNDP projects by hand based on asset names, the rudimentary maps on the TYNDP website, and OpenStreetMap. The data is converted there to the gridextract format so that it can be imported seamlessly into PyPSA-Eur. It is already split into asset type and "new" or "upgraded" based on the latest gridextract and links_tyndp.csv - but this means every time this data changes, the TYNDP files in data/tyndp2020 would have to be rebuilt using tyndp_to_pypsa.

To test this, follow the usual config file workflow (remember to set include: true in the TYNDP2020 options).
I have not tested this beyond building the base network (see plot at bottom).

Checklist

  • I tested my contribution locally and it seems to work fine.
  • Code and workflow changes are sufficiently documented.
  • Changes in configuration options are added in all of config.default.yaml, config.tutorial.yaml, and test/config.test1.yaml.
  • Check how capacities overall have changed as @martacki did here
  • The TYNDP project status is thrown away, and instead under_construction=True is set in order to conform to the current format. Does this make sense?
  • Is the way asset updates are applied problematic? In the current state when e.g. a line's capacity is upgraded, its voltage is updated but as it is a TYNDP project, under_construction=True is set. I do not know the implications of this, but the updated asset might not remain usable until the commissioning date of the update.
  • It is unclear how to represent consecutive upgrades of the same asset: Right now, the "best" upgrade is taken, but this is also the latest with a more uncertain status. Probably does not occur often, but I did not check.
  • Changes in configuration options are also documented in doc/configtables/*.csv and line references are adjusted in doc/configuration.rst and doc/tutorial.rst.
  • A note for the release notes doc/release_notes.rst is amended in the format of previous release notes.

base_network

@martacki martacki self-requested a review April 25, 2023 13:22
@martacki martacki self-assigned this Apr 25, 2023
@martacki martacki requested a review from pz-max April 25, 2023 13:23
Copy link
Collaborator

@pz-max pz-max left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI is failing at the moment. Probably the test config needs adjustments.
Please test locally and add suggested fix.

config/config.default.yaml Show resolved Hide resolved
@@ -257,6 +257,13 @@ conventional:
nuclear:
p_max_pu: "data/nuclear_p_max_pu.csv" # float of file name

TYNDP2020:
include: false
allowed_statuses: ['in_permitting', 'under_construction'] # 'planned_not_yet_permitting', 'under_consideration'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

better -> allowed_status

upg_lines,
upg_links,
config,
):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe add here the README tyndp as docstring

@martacki
Copy link
Member

martacki commented Apr 25, 2023

CI should be passing now 🥳

problem: s_nom=0 \forall TYNDP lines.
if we assume num_parallel=1 for all TYNDP lines, and type=Al/St 240/40 4-bundle 380.0, then the additional build TWkm capacity is 10.94953991945518, i.e. 3-4% more than the existing grid. These assumptions are currently not part of the PR.

Wasnt TYNDP more like 25%, or did that include HVDC links? (we only consider lines here) @FabianHofmann @nworbmot

@martacki
Copy link
Member

martacki commented Jun 1, 2023

Quick update (probably mostly for my future self):
I tried running the whole workflow now, but resulting in non-intuitive behaviour, e.g. network can now be clustered to 42 nodes (not 37), where Germany and France now have 3 nodes (instead of 1), despite all nodes belonging to the same synchronous zone, which is strange.
norway NO now has 4 synchronous zones (instead of 1), and some additional buses that are not being aggregated but remain disconnected from the network (at a 42 node resolution), similarly for Sweden SE (2 synchronous zones now). Regardless, the aggregation connects all nodes and puts the extra 4 nodes to Germany DE and France FR, from my understanding.
The last additional nodes goes to Corsica/Sardinia, which from the algorithm perspective works as intended (because there are no links to be simplified). However, I believe that there is some errors with the new TYNDP links connecting the isles. In this case, the TYNDP states that the existing link is being upgraded, but there are 2 new links in this PR, while the existing ones are all being kept.
new links: TYNDP2020_29 + TYNDP2020_30

@p-glaum
Copy link
Contributor

p-glaum commented Nov 3, 2023

Here are some results from the validation runs comparing networks with and without tyndp2020 projects:
capacity
capacity_diff
congestion_rent
cost
cost_diff

@p-glaum
Copy link
Contributor

p-glaum commented Dec 15, 2023

There was one mistake in the line filtering which kicked out many tyndp lines in the base_network script, which @martacki is fixing.
Below, we compare the pypsa-eur grid with tyndp 2020 to the project map from tyndp. There are still lines missing when comparing to tyndp 2020, but most of them are considered in this PR.
Next to ToDo is to rerun the pypsa-eur workflow and do the plots from above again.
map_plot
https://tyndp2020-project-platform.azurewebsites.net/projectsheets

@fneum
Copy link
Member

fneum commented Jan 5, 2024

@martacki @p-glaum, what was the latest status for this PR? Do you think this is ready to be merged?

@p-glaum
Copy link
Contributor

p-glaum commented Jan 5, 2024

not yet, still need to do some runs on the cluster to validate this PR

@p-glaum
Copy link
Contributor

p-glaum commented Jan 31, 2024

Hi @grecht,
could you maybe also give me contributor rights that I can make adjustments to your code? Then I do not always have to ask @martacki.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants