implement national CO2 emissions reduction targets#1842
implement national CO2 emissions reduction targets#1842ebbekyhl wants to merge 2 commits intoPyPSA:masterfrom
Conversation
for more information, see https://pre-commit.ci
fneum
left a comment
There was a problem hiding this comment.
In general, I agree that this functionality would be great to have. Three thoughts on this:
-
At the moment, the constraint has many hard-coded elements (e.g. checking for ports of links to "co2 atmosphere" explicitly). This will be hard to maintain in the long run. This could be a prime use case for using the
n.optimize.expressions.energy_balance(bus_carrier='co2 atmosphere')module which mirrors sums built inn.statistics.energy_balance()just as linopy expressions. It should also be straightforward to filter by buses of a particular country. Potentially, @FabianHofmann and @lkstrp can give a hint here. -
How are cross-border flows of carbon accounted for? How do you deal with buses that contain carbon but are only resolved at system-level (i.e. EU buses). Here, one could also look at PyPSA-DE which also implemented national CO2 budgets (but is equally longer than necessary).
- The constraint could get the
countryas a dimension.
Once this is resolved, some work would need to be spent on documenting the feature.
|
Hi @ebbekyhl, over at PyPSA-AT we also needed national CO2 budgets and implemented it recently in AGGM-AG/pypsa-at#30. It's a simplified version of the PyPSA-DE constraint. I did not know about the |
|
It's a great idea to have national emissions budgets directly in PyPSA-Eur. Let me share a few points from our experience at PyPSA-DE. One tricky part, which the constraint in PyPSA-DE tries to address, is the ability to account for e-fuel/carbon trade. If a country imports a lot of e-/biofuels the emissions from burning them will show up in its emissions balance. If the national budget does not take into account, that will create a counter-incentive to importing e-/biofuels. That is especially tricky if the gas pipeline network is activate, because in the gas links the fossil and the renewable gas gets mixed up, which means it's challenging to track its carbon content. Maybe there could be several modes for the national budget, which differ in how they treat e-fuel imports. |
Changes proposed in this Pull Request
I have seen more and more PyPSA-Eur studies including national targets for CO2 emissions reductions. Some use approaches that might be unhandy to implement in the master branch. But with Linopy this can be done relatively easy, with a small addition to the config file and the solve_network script. Maybe something to consider?
I tested this for UK, and it does the job. I have only tested it for a myopic optimization - needs to be tested for other foresight modes.
Checklist
envs/environment.yaml.config/config.default.yaml.doc/configtables/*.csv.doc/data_sources.rst.doc/release_notes.rstis added.