Skip to main content

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:

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)

png

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]
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.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]
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

igwp-0.0.1.tar.gz (215.7 kB view details)

Uploaded Source

Built Distribution

igwp-0.0.1-py3-none-any.whl (210.5 kB view details)

Uploaded Python 3

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

Hashes for igwp-0.0.1.tar.gz
Algorithm Hash digest
SHA256 8d1dc66db598011f91595e96fca968e5c9adaffbb91e5bdf2bfbe11b94876f8e
MD5 c28b95f5fb7ac14d2add1758409b2409
BLAKE2b-256 e3b72283802c1bf2cbf6d560a571f93aa10804743a3f0ff347707ba654571269

See more details on using hashes here.

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

Hashes for igwp-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 28e8d2fd7a04e0afc422c2c33026d3c3dc6bd07f2e86fe5291c41ee8a7e9c912
MD5 8cd4e718e6329b78c18543a079e30e6e
BLAKE2b-256 659f7ce12911bd71a90e8fcd766e5a97f6918cd5de5dc186b1352d990f81dd11

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page