ProjectDrawdown / solutions

The mission of Project Drawdown is to help the world reach “Drawdown”— the point in the future when levels of greenhouse gases in the atmosphere stop climbing and start to steadily decline, thereby stopping catastrophic climate change — as quickly, safely, and equitably as possible.
https://www.drawdown.org/
Other
212 stars 92 forks source link

FaIR fractional temperature impacts #15

Open DentonGentry opened 4 years ago

DentonGentry commented 4 years ago

FaIR is Finite Amplitude Impulse Response, a method of modelling a complex system as a series of responses to input impulses. For our purpose, FaIR refers to OMS-NetZero/FAIR, a climate feedback model implemented in Python.

We implemented support in the Drawdown solutions to use FaIR to compute temperature impacts of the emissions reduction from the solution. This support is in model/fairutil.py.

We've learned a lot since this implementation. Of particular relevance: FaIR is non-linear. The peak temperature and time spent at elevated temperature are both factors in the FaIR model. Therefore the impact of, say, 5 gigatons of CO2 reduction is not the same as the incremental impact of 5 more gigatons as part of a 50 gigaton reduction. The 50 gigaton reduction has a larger impact on reducing temperature, as feedbacks within the climate further reduce temperature.

All of this is a way of saying that looking at a single solution in isolation is not a good way to estimate temperature impacts. model/fairutil.py should be re-implemented to:

  1. Store PDS1 and PDS2 emissions reduction impacts of all solutions in data/.csv
  2. Compute the fractional impact of this solution:
    1. Read in the emissions impact of all solutions except the one currently being modeled
    2. add in the emissions impact of the one we're currently modeling
    3. compute the overall temperature reduction from the sum of all solutions
    4. compute the fraction, of emissions reductions of this one solution divided by the sum of all solutions
    5. graph the temperature reduction of this solution as a fraction of the reduction of all solutions, which will be somewhat larger (and somewhat more accurate) than what we do now of looking only at the one solution in isolation.
DentonGentry commented 4 years ago

Some additional info:

I need to get the spreadsheet tracking emission results across all solutions checked in to the opensource codebase before it will really be possible to work on this issue.

DentonGentry commented 4 years ago

Still trying to get a spreadsheet tracking emission results across all solutions checked in to the opensource codebase.

klemag commented 4 years ago

@DentonGentry I'd be keen to work on this one, did you get a chance to check the spreadsheet in / if the issue is related to confidential data maybe we can start with a dummy version?

DentonGentry commented 4 years ago

I did check, the head of research isn't ready to release the emissions results for the Drawdown 2020 solution models yet but there is a way to proceed using the emissions results from the earlier versions of the model as a stand-in. That can be found in data/overview.

soln_results.csv maps solution name to CO2-equivalent gigatons, and solutions.csv maps solution name to the directory where the implementation lives and to the name of the Sector like Energy or Land Use. The Sector names in The Drawdown Review (released 3/2020) are different, but I don't think that will matter for this.

There is code in ui/charts.py which can be used as an example of opening those two files and joining them by name.

Adding the Gtons for all solutions would give a total for all solutions together, to be able to use it with FaIR. However as a number of the solution/* implementations have already been updated for the 2020 results, the CO2eq emissions produced by code will no longer match the result from soln_results.csv. I think it will still work for this purpose and allow development to proceed.

DentonGentry commented 3 years ago

The UI previously had temperature graphs for each solution, but did so as described in the original comment: each solution was modeled entirely separately, for example a 5 Gton reduction from baseline.

Once the support is in model/fairutil.py to handle fractional temperature reduction, this is the commit which removed the graphs: https://github.com/ProjectDrawdown/solutions/commit/645937e9da0f815218727af759b5f8df6094cab3

Reverting this commit would be a basis to work from in implementing new graphs.