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

Flaechenziel for Onshore Wind #290

Closed
wants to merge 6 commits into from
Closed

Conversation

toniseibold
Copy link
Contributor

@toniseibold toniseibold commented Dec 2, 2024

Subject

The Bundesregierung set a target of 2 % of each federal state to be designated for onshore wind.
This PR adds a constraint for five regions to reach a Flaechenziel.
The five regions are

  • BY (lat < 50, lon > 10)
  • BW (lat < 49, lon <= 10)
  • SL, HE, RP, NW (49 <= lat < 52, lon <=10)
  • TH, SA (50 <= lat < 52, lon > 10)
  • North Germany (lat >= 52)
    image

This PR reads in the area of each bus region, adds it to one of the three regions, multiplies it with a percentage given in the config[solving][constraints][onwind_flaechenziel][percentage] and an average power density (source)[https://www.ffe.de/wp-content/uploads/2022/02/FfE-Discussion-Paper-2-der-Landesflaeche-fuer-Windenergie-ein-geeignetes-Mass.pdf].
If the target is not met yet, a constraint is added as minimum capacity for the region.

Alternatives

Flaechenziel for each bus region:

Disproportionate onshore wind capacity in bus regions that have a low electricity demand and installed capacity

Minimum onshore wind capacity and capacity per sqkm

One could also downscale the config[renewable][onwind][capacity_per_sqkm] while upping the minimum onwind target config[limits_capacity_min][Generator][onwind] which then forces the model to build onwind in less ideal areas.

Change

high resolution optimization 2020 & 2045 without post discretization

  • 5 regions with 1 % onshore wind goal
    image

high resolution optimization 2020 - 2045 with post discretization

  • wind onshore minimum 180 GW
  • cap_per_sqm 1.5
    image

Before asking for a review for this PR make sure to complete the following checklist:

  • Workflow with target rule ariadne_all completes without errors
  • The logic of export_ariadne_variables has been adapted to the changes
  • One or several figures that validate the changes in the PR have been posted as a comment
  • A brief description of the changes has been added to Changelog.md
  • The latest main has been merged into the PR
  • The config has a new prefix of the format YYYYMMDDdescriptive_title

Copy link

github-actions bot commented Dec 2, 2024

Validator Report

I am the Validator. Download all artifacts here.
I'll be back and edit this comment for each new commit.

⚠️ Config changes detected!

Results may differ due to these changes:

diff --git a/config/config.yaml b/config/config.yaml
index 713449c..a15a73c 100644
--- a/config/config.yaml
+++ b/config/config.yaml
@@ -4,7 +4,7 @@
 
 # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#run
 run:
-  prefix: 20241121-fix-missing-gas-capa
+  prefix: 20241202-adjust-onwind
 
   name:
   # - CurrentPolicies
@@ -62,7 +62,7 @@ scenario:
   ll:
   - vopt
   clusters:
-  - 27 #current options: 27, 49
+  - 49 #current options: 27, 49
   opts:
   - ''
   sector_opts:
@@ -206,38 +206,38 @@ clustering:
   # print(fw.div(fw.sum()).subtract(5e-5).round(4).to_dict().__repr__().replace(",","\n"))
   focus_weights:
   # 27 nodes: 8 for Germany, 3 for Italy, 2 each for Denmark, UK and Spain, 1 per each of other 10 "Stromnachbarn"
-    'DE': 0.2966
-    'AT': 0.0370
-    'BE': 0.0370
-    'CH': 0.0370
-    'CZ': 0.0370
-    'DK': 0.0741
-    'FR': 0.0370
-    'GB': 0.0741
-    'LU': 0.0370
-    'NL': 0.0370
-    'NO': 0.0370
-    'PL': 0.0370
-    'SE': 0.0370
-    'ES': 0.0741
-    'IT': 0.1111
+    # 'DE': 0.2966
+    # 'AT': 0.0370
+    # 'BE': 0.0370
+    # 'CH': 0.0370
+    # 'CZ': 0.0370
+    # 'DK': 0.0741
+    # 'FR': 0.0370
+    # 'GB': 0.0741
+    # 'LU': 0.0370
+    # 'NL': 0.0370
+    # 'NO': 0.0370
+    # 'PL': 0.0370
+    # 'SE': 0.0370
+    # 'ES': 0.0741
+    # 'IT': 0.1111
   # high spatial resolution: change clusters to 49
   # 49 nodes: 30 for Germany, 3 for Italy, 2 each for Denmark, UK and Spain, 1 per each of other 10 "Stromnachbarn"
-    # 'DE': 0.6124
-    # 'AT': 0.0204
-    # 'BE': 0.0204
-    # 'CH': 0.0204
-    # 'CZ': 0.0204
-    # 'DK': 0.0408
-    # 'FR': 0.0204
-    # 'GB': 0.0408
-    # 'LU': 0.0204
-    # 'NL': 0.0204
-    # 'NO': 0.0204
-    # 'PL': 0.0204
-    # 'SE': 0.0204
-    # 'ES': 0.0408
-    # 'IT': 0.0612
+    'DE': 0.6124
+    'AT': 0.0204
+    'BE': 0.0204
+    'CH': 0.0204
+    'CZ': 0.0204
+    'DK': 0.0408
+    'FR': 0.0204
+    'GB': 0.0408
+    'LU': 0.0204
+    'NL': 0.0204
+    'NO': 0.0204
+    'PL': 0.0204
+    'SE': 0.0204
+    'ES': 0.0408
+    'IT': 0.0612
   temporal:
     resolution_sector: 365H
 
@@ -432,6 +432,12 @@ solving:
         H2 pipeline retrofitted: 0.05
       fractional_last_unit_size: true
   constraints:
+    onwind_flaechenziel:
+      enable: true
+      percentage: # % of total land area
+        2035: 0.5
+        2040: 0.75
+        2045: 1.0
     limits_capacity_max:
       Generator:
         onwind:

Ariadne Variables

Comparison
NRMSE Pearson
Final Energy|Carbon Dioxide Removal|Heat 0.408 -0.279
Final Energy|Carbon Dioxide Removal 0.323 1.000
Secondary Energy|Electricity|Oil 0.263 0.841
Capacity|Electricity|Storage Converter 0.247 0.852
Capacity|Electricity|Gas|OC 0.228 0.926
Final Energy|Carbon Dioxide Removal|Electricity 0.211 1.000
Carbon Sequestration|DACCS 0.211 1.000
Price|Secondary Energy|Gases|Biomass 0.197 0.000
Investment|Energy Supply|Hydrogen|Transmission and Distribution|Endogen|Retrofitted 0.139 0.980
Length Additions|Electricity|Transmission|AC 0.135 0.926
Capacity Additions|Electricity|Transmission|AC 0.135 0.926
Investment|Energy Supply|Electricity|Solar|PV|Open Field 0.127 0.966
Capacity Additions|Methanol 0.125 0.944
Capacity Additions|Liquids 0.121 0.952
Secondary Energy|Electricity|Hydro 0.121 0.981
Capacity Additions|Liquids|Hydrogen 0.118 0.958
Investment|Energy Supply|Heat|Gas 0.113 0.990
Capacity Additions|Electricity|Solar|PV|Open Field 0.113 0.966
Investment|Energy Supply|Hydrogen|Electrolysis 0.103 0.993
Investment|Energy Supply|Hydrogen|Electricity 0.103 0.993
Investment|Energy Supply|Methanol 0.101 0.969

NRMSE: Normalized (combined-min-max) Root Mean Square Error
Pearson: Pearson correlation coefficient
Threshold: NRMSE > 0.1
Only variables reaching the threshold are shown. Find the equivalent plot for all of them below.

Plots
Main branch Feature branch
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
⚠️ Note: Only the first 20 variables are shown, but more are above the threshold. Find all of them in the artifacts.

General

Plots comparison
Main branch Feature branch
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Image not available Image not available
Files comparison
Status NRMSE MAE (norm)
csvs/prices.csv ⚠️Changed 0.002 0.09
csvs/curtailment.csv ⚠️Changed 0.000 0.10
csvs/price_statistics.csv ⚠️Changed 0.014 0.09
csvs/cumulative_cost.csv ⚠️Changed 0.000 0.10
csvs/metrics.csv ⚠️Changed 0.000 0.09
csvs/nodal_cfs.csv ✅ Almost equal 0.013 0.00
csvs/supply.csv ✅ Almost equal 0.001 0.01
csvs/nodal_supply_energy.csv ✅ Almost equal 0.000 0.01
csvs/capacities.csv ✅ Almost equal 0.000 0.01
csvs/nodal_costs.csv ✅ Almost equal 0.000 0.00
csvs/market_values.csv ✅ Almost equal 0.029 0.03
csvs/nodal_capacities.csv ✅ Almost equal 0.000 0.00
csvs/cfs.csv ✅ Almost equal 0.048 0.00
csvs/costs.csv ✅ Almost equal 0.000 0.01
csvs/supply_energy.csv ✅ Almost equal 0.000 0.02
csvs/energy.csv ✅ Almost equal 0.000 0.01
csvs/weighted_prices.csv ✅ Equal

NRMSE: Normalized (combined-min-max) Root Mean Square Error
MAE (norm): Mean Absolute Error on normalized data (min-max)
Status Threshold: MAE (norm) > 0.05 and NRMSE > 0.3

Model Metrics

Benchmarks Image not available Image not available Image not available

Comparing onwind_flaechenziel (94fcbd2) with main (496f95e).
Branch is 6 commits ahead and 0 commits behind.
Last updated on 2024-12-02 19:35:35 CET.

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

Successfully merging this pull request may close these issues.

1 participant