A Global Warming Potential model with improved support for short-lived climate pollutions (SLCPs).

Why an improved version

The Global Warming Potential (GWP) is a commonly used, simple model to "normalize" the warming impact of different climate pollutants to $CO_2$ equivalents. This approach works well for long-lived climate pollutants (LLCPs) but fails for short-lived climate pollutants (SLCPs). The improved version IGWP accounts much better for impacts of SLCPs.

Scientific background

This project:

The maths

$$IGWP = GWP_H * (r * \frac{\Delta E_{SLCP}}{\Delta t} * H + s * E_{SLCP})$$

with:

  • $IGWP$ - Improved Global Warming Potential
  • $GWP_H$ - Global Warming Potential for period $H$ (e.g. $GWP_{100}$ for 100 years)
  • $H$ time-horizon (commonly 100 years)
  • $r$ - flow term faction, found to be 0.75 with linear regression
  • $s$ - stock term fraction, found to be 0.25 with linear regression, condition: $r + s = 1$
  • $\Delta E_{SLCP}$ - change of rate of short-lived climate pollutant
  • ${\Delta t}$ - time difference for $\Delta E_{SLCP}$, typical value: 20 years
  • $E_{SLCP}$ emission short-lived climate pollutant for investigated year

Install

pip install igwp

Plot all results

This plots shows the differences between GWP, GWP*, and IGWP.

from igwp.core import get_emission_data_paths, make_gwps_improved
from igwp.plotting import plot_all

rcp_scenarios = get_emission_data_paths()

plot_all(rcp_scenarios, make_df=make_gwps_improved)

This plot reproduces the Fig.1 in the paper descriobung IGWP (although with this name, https://www.nature.com/articles/s41612-019-0086-4).

Show some values

The results for the emissions based on GWP, GWP*, and IGWP for scenario RCP 2.6 for the years 2000 through 2020:

from igwp.core import make_gwps_improved

paths = get_emission_data_paths()

df26 = make_gwps_improved(file_name=paths['RCP 2.6'])
df26.loc[2000:2020]
$CH_4$ GWP $CH_4$ GWP* $CH_4$ IGWP
Years
2000 8.405793 -0.896435 1.429122
2001 8.495458 -0.924463 1.430517
2002 8.584206 -0.957068 1.428251
2003 8.672059 -0.994154 1.422399
2004 8.759072 -1.035440 1.413188
2005 8.845276 -1.080772 1.400740
2006 8.961719 -0.974904 1.509252
2007 9.077956 -0.870071 1.616936
2008 9.193784 -0.767278 1.722987
2009 9.309613 -0.664485 1.829040
2010 9.425441 -0.561693 1.935091
2011 9.201847 -1.113669 1.465210
2012 8.978253 -1.665646 0.995329
2013 8.754659 -2.217622 0.525448
2014 8.531065 -2.769599 0.055567
2015 8.307471 -3.321576 -0.414314
2016 8.083877 -3.873554 -0.884196
2017 7.860283 -4.425530 -1.354077
2018 7.636689 -4.977507 -1.823958
2019 7.413095 -5.529483 -2.293839
2020 7.189501 -6.081460 -2.763720

Add emissions for some years and see effects

Let's assume very strong increases of $CH_4$ emissions for the years 2005 through 2007 and see what impact ths has on the three different models. (Units of additional emssions are Gt $CH_4$ / yr).

import pandas as pd 

additional_emssions = pd.Series([0.1, 0.5, 0.2], index=[2005, 2006, 2007])
additional_emssions.name = 'CH_4 [Gt/yr]'
additional_emssions.index.name = 'Year'
additional_emssions
Year
2005    0.1
2006    0.5
2007    0.2
Name: CH_4 [Gt/yr], dtype: float64
df26 = make_gwps_improved(file_name=paths['RCP 2.6'], additional_emssions=additional_emssions)
df26.loc[2000:2010]
$CH_4$ GWP $CH_4$ GWP* $CH_4$ IGWP
Years
2000 8.405793 -0.896435 1.429122
2001 8.495458 -0.924463 1.430517
2002 8.584206 -0.957068 1.428251
2003 8.672059 -0.994154 1.422399
2004 8.759072 -1.035440 1.413188
2005 11.645276 12.919228 12.600740
2006 22.961719 69.025096 57.509252
2007 14.677956 27.129929 24.016936
2008 9.193784 -0.767278 1.722987
2009 9.309613 -0.664485 1.829040
2010 9.425441 -0.561693 1.935091

Notice the different impacts of this $CH_4$ "flush" on these GWP models.