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

Calibration run 2023/2024 #45

Open
wants to merge 12 commits into
base: form_energy_storage_dev
Choose a base branch
from

Conversation

virio-andreyana
Copy link

Changes proposed in this Pull Request

The validation automatically compares historical data and the optimized model of:

  • the total power generated from oil, nuclear, lignite, geothermal, coal, biomass, solar, run of river, onshore win, offshore wind, hydro and gas.
  • the deviation of generation in a time series.
  • the average electricity price in a given year for each country
  • the average electricity price in a time series
  • a time series of electricity traded between countries. and its deviation.

The challenge now is, can PyPSA-EUR run for the year 2023?

@virio-andreyana virio-andreyana marked this pull request as ready for review December 16, 2024 08:56
Copy link

@tgilon tgilon left a comment

Choose a reason for hiding this comment

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

Thanks for this PR @virio-andreyana ! I have made a few comments in the code. As we discussed, I have in mind a scaling problem with the generated graphs. I can't suggest a source for the bug based on the code in the PR.

# 0.63 * 0.6 = 0.378
electricity:
max_hours:
Copy link

Choose a reason for hiding this comment

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

I don't think it makes sense to include this in the scenario

onwind:
cutout: europe-2023-sarah3-era5
#correction_factor: 0.93
Copy link

Choose a reason for hiding this comment

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

Correction factor is used for onwind in PyPSA-Ariadne

district_heating:
progress:
2023: 0.15 #Rough estimate. 70M/448M population uses district heating https://iifiir.org/en/news/state-of-play-of-district-heating-and-cooling-in-europe
Copy link

Choose a reason for hiding this comment

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

This may be reduced a bit, using PyPSA-ariadne

@@ -58,23 +61,39 @@
colors["Offshore Wind"] = colors["Offshore Wind (AC)"]
colors["Gas"] = colors["Combined-Cycle Gas"]
colors["Hydro"] = colors["Reservoir & Dam"]
colors["geothermal"] = '#ba91b1'
colors["biomass"] = '#baa741'
Copy link

Choose a reason for hiding this comment

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

Would be better to have them in the configuration file

@@ -2170,7 +2170,7 @@ def add_fuel_cell_cars(n, p_set, fuel_cell_share, temperature):
suffix=" land transport fuel cell",
bus=spatial.h2.nodes,
carrier="land transport fuel cell",
p_set=profile,
p_set=profile.loc[n.snapshots],
Copy link

Choose a reason for hiding this comment

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

Why is this ?

Copy link
Author

Choose a reason for hiding this comment

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

Sometimes the snapshots and the profile data are not aligned. If you looked at def add_EVs() they did this snapshot filter already, so its just applying to other transport technologies

@@ -11,6 +11,16 @@ CROSS_BORDER_PLOTS = ["trade_time_series", "cross_border_bar"]
PRICES_PLOTS = ["price_bar", "price_line"]


if config["foresight"] == "myopic" or config["foresight"] == "overnight":
Copy link

Choose a reason for hiding this comment

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

Suggested change
if config["foresight"] == "myopic" or config["foresight"] == "overnight":
if config["foresight"] in ["myopic", "overnight"]:

@@ -207,9 +207,9 @@ def approximate_missing_eia_stats(eia_stats, runoff_fn, countries):
norm_year = config_hydro.get("eia_norm_year")
missing_years = contained_years.difference(eia_stats.index)
if norm_year:
eia_stats.loc[contained_years] = eia_stats.loc[norm_year]
eia_stats.loc[contained_years[0]] = eia_stats.loc[norm_year]
Copy link

Choose a reason for hiding this comment

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

Why is this ?

Copy link
Author

Choose a reason for hiding this comment

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

Ideally this should not have to be done. but because 2023 is not within the existing EIA hydro statistics, it keeps getting error unless I do this.

Drawbacks: Not being able to model longer than 1 year. Suggestion is very appreciated!

H2_retrofit: true

main-calibration-run:
Copy link

Choose a reason for hiding this comment

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

I would expect more changes in term of techs : no dac, no DSM for EV, no V2G, no TES, no SMR CC

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.

3 participants