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.
Source Distribution
Built Distribution
File details
Details for the file igwp-0.0.1.tar.gz
.
File metadata
- Download URL: igwp-0.0.1.tar.gz
- Upload date:
- Size: 215.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.6.0.post20210108 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d1dc66db598011f91595e96fca968e5c9adaffbb91e5bdf2bfbe11b94876f8e |
|
MD5 | c28b95f5fb7ac14d2add1758409b2409 |
|
BLAKE2b-256 | e3b72283802c1bf2cbf6d560a571f93aa10804743a3f0ff347707ba654571269 |
File details
Details for the file igwp-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: igwp-0.0.1-py3-none-any.whl
- Upload date:
- Size: 210.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.6.0.post20210108 requests-toolbelt/0.9.1 tqdm/4.56.0 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28e8d2fd7a04e0afc422c2c33026d3c3dc6bd07f2e86fe5291c41ee8a7e9c912 |
|
MD5 | 8cd4e718e6329b78c18543a079e30e6e |
|
BLAKE2b-256 | 659f7ce12911bd71a90e8fcd766e5a97f6918cd5de5dc186b1352d990f81dd11 |