PyPSA / PyPSA/powerplantmatching
Rerunning with `extend_by_vres` results extreme overcapacity
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 227
- Forks
- 74
- Avg merge
- 6d 17h
- Merged PRs (30d)
- 4
Description
Version Checks (indicate both or one)
-
I have confirmed this bug exists on the lastest release of powerplantmatching.
-
I have confirmed this bug exists on the current
masterbranch of powerplantmatching.
Issue Description
Re-generating the collection with the extend_by_vres option produces a very high number of installed powerplants, particularly for PV and Wind.
The image below uses the default configuration (Europe). Wind is quite extreme.
For PV, I suspect the cause might be due mismatches in the coding of some technologies. Notice PV, Pv, Photovoltaics and Photovoltaics ground.
Reproducible Example
# Took 1h on my computer
import powerplantmatching as ppm
collection = ppm.collection.powerplants(
update=True,
extend_by_vres=True,
fill_geopositions=True
)
stats = ppm.data.Capacity_stats()
ppm.plot.fueltype_totals_bar([collection, stats])
Expected Behavior
Two suggestions:
- A schema should be used to validate that the processed datasets conform to a given shape before they are passed to the matching algorithm. I suggest pandera.
- Consider adding some logic that 'trims' excessive capacities (when compared to annual country totals), as an optional callable function for further post-processing.
Installed Versions
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the reproducible call to ppm.collection.powerplants(update=True, extend_by_vres=True, fill_geopositions=True), then inspect how extend_by_vres processes PV and wind technologies before matching. Compare the resulting capacities with ppm.data.Capacity_stats() and the fuel-type totals plot. Done means rerunning the example no longer produces extreme overcapacity and the behavior is covered by a regression test.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100