OPSD EU: use energy_source_level_3 for Fueltype classification#288
OPSD EU: use energy_source_level_3 for Fueltype classification#288MaykThewessen wants to merge 2 commits into
Conversation
198a2ca to
fbec1d0
Compare
|
Follow-up data point found while cross-checking the NL slice of the matched output against operator data: Borssele 1 (nuclear) comes through at 515 MW, sourced from GEM ( Smallest fix would be one Happy to push that row onto this branch as part of this PR, or open a separate one-line follow-up — whichever you prefer. |
Use the most specific energy source classification from OPSD's three-level hierarchy. When energy_source_level_3 is set (e.g. "Biomass and biogas" for coal plants with biomass co-firing), use it instead of the top-level energy_source. Falls back through level_3 → energy_source → level_1. Closes PyPSA#286 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6a6095b to
d81c7e0
Compare
GEM (projectID G100000500496) reports Borssele 1 at 515 MW, which is the gross figure; IAEA PRIS lists 482 MWe net / 512 MWe gross and operator EPZ states ~485 MW. The matched dataset otherwise reports net capacities, so the GEM value overstated NL nuclear by ~6%. Add a capacity-only manual correction.
|
Added the Borssele 1 capacity correction I mentioned above as a single Happy to split this into its own one-line PR if you'd rather keep this one scoped purely to the |
Summary
Fueltypeenergy_source_level_3is set (e.g. "Biomass and biogas" for coal plants with biomass co-firing), prefer it over the top-levelenergy_sourcelevel_3→energy_source→level_1This is a 3-line defensive change in the OPSD EU loader. Currently
energy_source_level_3is loaded from the CSV but silently dropped by.reindex(columns=target_columns)before it can influenceFueltype.Context
The OPSD EU dataset uses a three-level energy source hierarchy. While
level_3currently only contains "Biomass and biogas" entries (156 plants across EU), this change ensures that if future OPSD releases or enriched data add co-firing flags for coal/waste plants, the information flows through toFueltypecorrectly.See also:
Test plan
OPSD()loader runs without errorspowerplantmatching.powerplants()pipeline produces valid output🤖 Generated with Claude Code