-
Notifications
You must be signed in to change notification settings - Fork 251
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
Keep existing conventional generation in sector network #1366
base: master
Are you sure you want to change the base?
Conversation
Validator ReportI am the Validator. Download all artifacts here. General Files comparison
NRMSE: Normalized (combined-min-max) Root Mean Square Error Model Metrics Comparing |
fossils = ["coal", "gas", "oil", "lignite", "uranium"] | ||
if options["fossil_fuels"] and carrier in fossils: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fossils = ["coal", "gas", "oil", "lignite", "uranium"] | |
if options["fossil_fuels"] and carrier in fossils: | |
fossils = ["coal", "gas", "oil", "lignite"] | |
if (options["fossil_fuels"] and carrier in fossils) or (carrier == "uranium"): |
As uranium
is not a fossil fuel, this would be less misleading.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
p_max_pu=( | ||
0.7 if carrier == "uranium" else 1 | ||
), # be conservative for nuclear (maintenance or unplanned shut downs) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For consistency, it would be good to use this value in add_existing_baseyear
as well.
pypsa-eur/scripts/add_existing_baseyear.py
Lines 319 to 337 in 728eacf
if generator != "urban central solid biomass CHP": | |
n.add( | |
"Link", | |
new_capacity.index, | |
suffix=name_suffix, | |
bus0=bus0, | |
bus1=new_capacity.index, | |
bus2="co2 atmosphere", | |
carrier=generator, | |
marginal_cost=costs.at[generator, "efficiency"] | |
* costs.at[generator, "VOM"], # NB: VOM is per MWel | |
capital_cost=costs.at[generator, "efficiency"] | |
* costs.at[generator, "fixed"], # NB: fixed cost is per MWel | |
p_nom=new_capacity / costs.at[generator, "efficiency"], | |
efficiency=costs.at[generator, "efficiency"], | |
efficiency2=costs.at[carrier[generator], "CO2 intensity"], | |
build_year=grouping_year, | |
lifetime=lifetime_assets.loc[new_capacity.index], | |
) |
It would be even better to use the country specific values from data/nuclear_p_max_pu.csv.
@@ -4538,6 +4590,17 @@ def add_enhanced_geothermal(n, egs_potentials, egs_overlap, costs): | |||
) | |||
pop_weighted_energy_totals.update(pop_weighted_heat_totals) | |||
|
|||
if options.get("keep_existing_capacities", False): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if options.get("keep_existing_capacities", False): | |
if options.get("keep_existing_capacities", False) and snakemake.params.foresight not in ["myopic", "perfect"]: |
It would make sense to limit this functionality to overnight, as for myopic and perfect optimization existing caps are added later on. fyi @martacki
@@ -4551,7 +4614,7 @@ def add_enhanced_geothermal(n, egs_potentials, egs_overlap, costs): | |||
|
|||
spatial = define_spatial(pop_layout.index, options) | |||
|
|||
if snakemake.params.foresight in ["myopic", "perfect"]: | |||
if snakemake.params.foresight in ["overnight", "myopic", "perfect"]: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are these not all the cases, i.e. we could leave the if condition out completely now?
Closes # (if applicable).
Changes proposed in this Pull Request
The sector coupled network currently removes existing conventional generators. This PR adds them back (in the traditional sectoral setup with EU Generators + Links)
Checklist
envs/environment.yaml
.config/config.default.yaml
.doc/configtables/*.csv
.doc/data_sources.rst
.doc/release_notes.rst
is added.