Improved Global Warming Potential
Project description
igwp - Improved Global Warming Potential (IGWP)
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:
-
is based on the findings in this paper: Cain, M., Lynch, J., Allen, M.R., Fuglestedt, D.J. & Macey, A.H. (2019). Improved calculation of warming- equivalent emissions for short-lived climate pollutants. npj Climate and Atmospheric Science. 2(29). Retrieved from https://www.nature.com/articles/s41612-019-0086-4
-
inspired by: https://gitlab.ouce.ox.ac.uk/OMP_climate_pollutants/co2-warming-equivalence/
-
and uses the simple emissions-based impulse response and carbon cycle model FaIR: https://github.com/OMS-NetZero/FAIR
The maths
{% raw %} $$IGWP = GWP_H * (r * \frac{\Delta E_{SLCP}}{\Delta t} * H + s * E_{SLCP})$$ {% endraw %}
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
With pip
:
pip install igwp
With conda
:
conda instal -c hydrocomputing 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]
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
$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]
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
$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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.