Understanding the naming conventions¶
Here we discuss the different naming conventions used in gcages and associated communities. We identify the similarities and differences between these conventions.
As you read, keep in mind that this is just gcages' view.
Others may have different interpretations of the naming conventions
and different views of the conventions used in other communities.
As a result, you may have to write your own, custom,
functions to convert between naming conventions.
Nonetheless, we hope that the conversion tools provided
will save you at least some time by covering common use cases.
Imports¶
import traceback
from functools import partial
import numpy as np
import pandas as pd
import pandas_indexing # noqa: F401
import pandas_openscm
import gcages.exceptions
from gcages.databases import EMISSIONS_VARIABLES
from gcages.renaming import (
SupportedNamingConventions,
convert_variable_name,
rename_variables,
)
# Register the openscm accessor
# (pix does this on import (a side-effect pattern pandas-openscm tries to avoid),
# so there is no equivalent line)
pandas_openscm.register_pandas_accessors("openscm")
Converting between naming conventions¶
The convert_variable_name function
makes it trivial to move between naming conventions.
The API is very simple.
convert_variable_name(
"Emissions|CO2|Fossil",
from_convention=SupportedNamingConventions.GCAGES,
to_convention=SupportedNamingConventions.IAMC,
)
'Emissions|CO2|Energy and Industrial Processes'
The supported naming conventions are shown below. At present, we have the naming conventions used in:
gcages- OpenSCM-Runner
- the IAMC community, e.g. the IPCC AR6 database
- RCMIP (rcmip.org), as used in e.g. https://rcmip-protocols-au.s3-ap-southeast-2.amazonaws.com/v5.1.0/rcmip-emissions-annual-means-v5-1-0.csv
- the infilling database used in AR6 for CFCs (which is somehow different from all the rest)
[v.name for v in SupportedNamingConventions]
['GCAGES', 'AR6_CFC_INFILLING_DB', 'IAMC', 'CMIP7_SCENARIOMIP', 'OPENSCM_RUNNER', 'RCMIP']
Conversions between any of these naming conventions is possible
convert_variable_name(
"Emissions|CO2|Energy and Industrial Processes",
from_convention=SupportedNamingConventions.IAMC,
to_convention=SupportedNamingConventions.GCAGES,
)
'Emissions|CO2|Fossil'
convert_variable_name(
"Emissions|CO2|Energy and Industrial Processes",
from_convention=SupportedNamingConventions.IAMC,
to_convention=SupportedNamingConventions.OPENSCM_RUNNER,
)
'Emissions|CO2|MAGICC Fossil and Industrial'
convert_variable_name(
"Emissions|CO2|Energy and Industrial Processes",
from_convention=SupportedNamingConventions.IAMC,
to_convention=SupportedNamingConventions.RCMIP,
)
'Emissions|CO2|MAGICC Fossil and Industrial'
convert_variable_name(
"Emissions|CO2|Energy and Industrial Processes",
from_convention=SupportedNamingConventions.IAMC,
to_convention=SupportedNamingConventions.AR6_CFC_INFILLING_DB,
)
'Emissions|CO2|Energy and Industrial Processes'
convert_variable_name(
"Emissions|CO2|Fossil",
from_convention=SupportedNamingConventions.GCAGES,
to_convention=SupportedNamingConventions.OPENSCM_RUNNER,
)
'Emissions|CO2|MAGICC Fossil and Industrial'
convert_variable_name(
"Emissions|CO2|MAGICC AFOLU",
from_convention=SupportedNamingConventions.OPENSCM_RUNNER,
to_convention=SupportedNamingConventions.GCAGES,
)
'Emissions|CO2|Biosphere'
convert_variable_name(
"Emissions|CO2|MAGICC AFOLU",
from_convention=SupportedNamingConventions.OPENSCM_RUNNER,
to_convention=SupportedNamingConventions.IAMC,
)
'Emissions|CO2|AFOLU'
Errors¶
If you try and convert a name that is not recognised,
you will receive an gcages.exceptions.UnrecognisedValueError,
which also shows close values
and the full list of known values.
try:
convert_variable_name(
"Emissions|NMVOC",
from_convention=SupportedNamingConventions.OPENSCM_RUNNER,
to_convention=SupportedNamingConventions.GCAGES,
)
except gcages.exceptions.UnrecognisedValueError:
traceback.print_exc(limit=0)
gcages.exceptions.UnrecognisedValueError: 'Emissions|NMVOC' is not a recognised value for the openscm_runner naming convention. Did you mean 'Emissions|VOC' or 'Emissions|OC' or 'Emissions|NOx'? The full list of known values is: ['Emissions|BC', 'Emissions|C2F6', 'Emissions|C3F8', 'Emissions|C4F10', 'Emissions|C5F12', 'Emissions|C6F14', 'Emissions|C7F16', 'Emissions|C8F18', 'Emissions|CCl4', 'Emissions|CF4', 'Emissions|CFC11', 'Emissions|CFC113', 'Emissions|CFC114', 'Emissions|CFC115', 'Emissions|CFC12', 'Emissions|CH2Cl2', 'Emissions|CH3Br', 'Emissions|CH3CCl3', 'Emissions|CH3Cl', 'Emissions|CH4', 'Emissions|CHCl3', 'Emissions|CO', 'Emissions|CO2', 'Emissions|CO2|MAGICC AFOLU', 'Emissions|CO2|MAGICC Fossil and Industrial', 'Emissions|HCFC141b', 'Emissions|HCFC142b', 'Emissions|HCFC22', 'Emissions|HFC125', 'Emissions|HFC134a', 'Emissions|HFC143a', 'Emissions|HFC152a', 'Emissions|HFC227ea', 'Emissions|HFC23', 'Emissions|HFC236fa', 'Emissions|HFC245fa', 'Emissions|HFC32', 'Emissions|HFC365mfc', 'Emissions|HFC4310mee', 'Emissions|Halon1202', 'Emissions|Halon1211', 'Emissions|Halon1301', 'Emissions|Halon2402', 'Emissions|N2O', 'Emissions|NF3', 'Emissions|NH3', 'Emissions|NOx', 'Emissions|OC', 'Emissions|SF6', 'Emissions|SO2F2', 'Emissions|Sulfur', 'Emissions|VOC', 'Emissions|cC4F8']
try:
convert_variable_name(
"Emissions|junk",
from_convention=SupportedNamingConventions.OPENSCM_RUNNER,
to_convention=SupportedNamingConventions.GCAGES,
)
except gcages.exceptions.UnrecognisedValueError:
traceback.print_exc(limit=0)
gcages.exceptions.UnrecognisedValueError: 'Emissions|junk' is not a recognised value for the openscm_runner naming convention. Did you mean 'Emissions|OC' or 'Emissions|CO' or 'Emissions|BC'? The full list of known values is: ['Emissions|BC', 'Emissions|C2F6', 'Emissions|C3F8', 'Emissions|C4F10', 'Emissions|C5F12', 'Emissions|C6F14', 'Emissions|C7F16', 'Emissions|C8F18', 'Emissions|CCl4', 'Emissions|CF4', 'Emissions|CFC11', 'Emissions|CFC113', 'Emissions|CFC114', 'Emissions|CFC115', 'Emissions|CFC12', 'Emissions|CH2Cl2', 'Emissions|CH3Br', 'Emissions|CH3CCl3', 'Emissions|CH3Cl', 'Emissions|CH4', 'Emissions|CHCl3', 'Emissions|CO', 'Emissions|CO2', 'Emissions|CO2|MAGICC AFOLU', 'Emissions|CO2|MAGICC Fossil and Industrial', 'Emissions|HCFC141b', 'Emissions|HCFC142b', 'Emissions|HCFC22', 'Emissions|HFC125', 'Emissions|HFC134a', 'Emissions|HFC143a', 'Emissions|HFC152a', 'Emissions|HFC227ea', 'Emissions|HFC23', 'Emissions|HFC236fa', 'Emissions|HFC245fa', 'Emissions|HFC32', 'Emissions|HFC365mfc', 'Emissions|HFC4310mee', 'Emissions|Halon1202', 'Emissions|Halon1211', 'Emissions|Halon1301', 'Emissions|Halon2402', 'Emissions|N2O', 'Emissions|NF3', 'Emissions|NH3', 'Emissions|NOx', 'Emissions|OC', 'Emissions|SF6', 'Emissions|SO2F2', 'Emissions|Sulfur', 'Emissions|VOC', 'Emissions|cC4F8']
Applying to pandas¶
You can obviously apply these functions to pandas DataFrame's.
As a convenience, we provide rename_variables.
start = pd.DataFrame(
np.arange(12).reshape((4, 3)),
columns=[2010, 2020, 2030],
index=pd.MultiIndex.from_tuples(
[
("sa", "Emissions|CO2|Fossil", "Mt CO2/yr"),
("sa", "Emissions|CO2|Biosphere", "Mt CO2/yr"),
("sa", "Emissions|SOx", "Mt S/yr"),
("sa", "Emissions|NMVOC", "Mt VOC/yr"),
],
names=["scenario", "variable", "unit"],
),
)
start
| 2010 | 2020 | 2030 | |||
|---|---|---|---|---|---|
| scenario | variable | unit | |||
| sa | Emissions|CO2|Fossil | Mt CO2/yr | 0 | 1 | 2 |
| Emissions|CO2|Biosphere | Mt CO2/yr | 3 | 4 | 5 | |
| Emissions|SOx | Mt S/yr | 6 | 7 | 8 | |
| Emissions|NMVOC | Mt VOC/yr | 9 | 10 | 11 |
rename_variables(
start,
from_convention=SupportedNamingConventions.GCAGES,
to_convention=SupportedNamingConventions.IAMC,
)
| 2010 | 2020 | 2030 | |||
|---|---|---|---|---|---|
| scenario | variable | unit | |||
| sa | Emissions|CO2|Energy and Industrial Processes | Mt CO2/yr | 0 | 1 | 2 |
| Emissions|CO2|AFOLU | Mt CO2/yr | 3 | 4 | 5 | |
| Emissions|Sulfur | Mt S/yr | 6 | 7 | 8 | |
| Emissions|VOC | Mt VOC/yr | 9 | 10 | 11 |
The functions here can also be combined with other packages like pandas-indexing or pandas-openscm, to make data manipulation and conversion straightforward and flexible.
convert_gcages_variable_to_iamc = partial(
convert_variable_name,
from_convention=SupportedNamingConventions.GCAGES,
to_convention=SupportedNamingConventions.IAMC,
)
start.openscm.update_index_levels(
{"variable": convert_gcages_variable_to_iamc, "scenario": {"sa": "scenario a"}}
)
| 2010 | 2020 | 2030 | |||
|---|---|---|---|---|---|
| scenario | variable | unit | |||
| scenario a | Emissions|CO2|Energy and Industrial Processes | Mt CO2/yr | 0 | 1 | 2 |
| Emissions|CO2|AFOLU | Mt CO2/yr | 3 | 4 | 5 | |
| Emissions|Sulfur | Mt S/yr | 6 | 7 | 8 | |
| Emissions|VOC | Mt VOC/yr | 9 | 10 | 11 |
start.pix.assign(
variable=start.index.pix.project("variable").map(convert_gcages_variable_to_iamc),
scenario="scenario a",
)
| 2010 | 2020 | 2030 | |||
|---|---|---|---|---|---|
| scenario | variable | unit | |||
| scenario a | Emissions|CO2|Energy and Industrial Processes | Mt CO2/yr | 0 | 1 | 2 |
| Emissions|CO2|AFOLU | Mt CO2/yr | 3 | 4 | 5 | |
| Emissions|Sulfur | Mt S/yr | 6 | 7 | 8 | |
| Emissions|VOC | Mt VOC/yr | 9 | 10 | 11 |
The 'database'¶
gcages comes with a 'database'
(in quotes because it's not really a (relational) database
like is used in web development, it's just a pandas DataFrame,
although it serves the same purpose and has the same shape/behaviour).
This database stores the mapping between the naming conventions
used in different communites.
# The database in full
EMISSIONS_VARIABLES
| gcages | openscm_runner | iamc | cmip7_scenariomip | rcmip | ar6_cfc_infilling_db | |
|---|---|---|---|---|---|---|
| 0 | Emissions|BC | Emissions|BC | Emissions|BC | Emissions|BC | Emissions|BC | Emissions|BC |
| 1 | Emissions|C2F6 | Emissions|C2F6 | Emissions|PFC|C2F6 | Emissions|C2F6 | Emissions|F-Gases|PFC|C2F6 | Emissions|PFC|C2F6 |
| 2 | Emissions|C3F8 | Emissions|C3F8 | Emissions|PFC|C3F8 | Emissions|C3F8 | Emissions|F-Gases|PFC|C3F8 | Emissions|PFC|C3F8 |
| 3 | Emissions|C4F10 | Emissions|C4F10 | Emissions|PFC|C4F10 | Emissions|C4F10 | Emissions|F-Gases|PFC|C4F10 | Emissions|PFC|C4F10 |
| 4 | Emissions|C5F12 | Emissions|C5F12 | Emissions|PFC|C5F12 | Emissions|C5F12 | Emissions|F-Gases|PFC|C5F12 | Emissions|PFC|C5F12 |
| 5 | Emissions|C6F14 | Emissions|C6F14 | Emissions|PFC|C6F14 | Emissions|C6F14 | Emissions|F-Gases|PFC|C6F14 | Emissions|PFC|C6F14 |
| 6 | Emissions|C7F16 | Emissions|C7F16 | Emissions|PFC|C7F16 | Emissions|C7F16 | Emissions|F-Gases|PFC|C7F16 | Emissions|PFC|C7F16 |
| 7 | Emissions|C8F18 | Emissions|C8F18 | Emissions|PFC|C8F18 | Emissions|C8F18 | Emissions|F-Gases|PFC|C8F18 | Emissions|PFC|C8F18 |
| 8 | Emissions|CF4 | Emissions|CF4 | Emissions|PFC|CF4 | Emissions|CF4 | Emissions|F-Gases|PFC|CF4 | Emissions|PFC|CF4 |
| 9 | Emissions|CH4 | Emissions|CH4 | Emissions|CH4 | Emissions|CH4 | Emissions|CH4 | Emissions|CH4 |
| 10 | Emissions|CO | Emissions|CO | Emissions|CO | Emissions|CO | Emissions|CO | Emissions|CO |
| 11 | Emissions|CO2 | Emissions|CO2 | Emissions|CO2 | Emissions|CO2 | Emissions|CO2 | Emissions|CO2 |
| 12 | Emissions|CO2|Biosphere | Emissions|CO2|MAGICC AFOLU | Emissions|CO2|AFOLU | Emissions|CO2|AFOLU | Emissions|CO2|MAGICC AFOLU | Emissions|CO2|AFOLU |
| 13 | Emissions|CO2|Fossil | Emissions|CO2|MAGICC Fossil and Industrial | Emissions|CO2|Energy and Industrial Processes | Emissions|CO2|Energy and Industrial Processes | Emissions|CO2|MAGICC Fossil and Industrial | Emissions|CO2|Energy and Industrial Processes |
| 14 | Emissions|HFC125 | Emissions|HFC125 | Emissions|HFC|HFC125 | Emissions|HFC|HFC125 | Emissions|F-Gases|HFC|HFC125 | Emissions|HFC|HFC125 |
| 15 | Emissions|HFC134a | Emissions|HFC134a | Emissions|HFC|HFC134a | Emissions|HFC|HFC134a | Emissions|F-Gases|HFC|HFC134a | Emissions|HFC|HFC134a |
| 16 | Emissions|HFC143a | Emissions|HFC143a | Emissions|HFC|HFC143a | Emissions|HFC|HFC143a | Emissions|F-Gases|HFC|HFC143a | Emissions|HFC|HFC143a |
| 17 | Emissions|HFC152a | Emissions|HFC152a | Emissions|HFC|HFC152a | Emissions|HFC|HFC152a | Emissions|F-Gases|HFC|HFC152a | Emissions|HFC|HFC152a |
| 18 | Emissions|HFC227ea | Emissions|HFC227ea | Emissions|HFC|HFC227ea | Emissions|HFC|HFC227ea | Emissions|F-Gases|HFC|HFC227ea | Emissions|HFC|HFC227ea |
| 19 | Emissions|HFC23 | Emissions|HFC23 | Emissions|HFC|HFC23 | Emissions|HFC|HFC23 | Emissions|F-Gases|HFC|HFC23 | Emissions|HFC|HFC23 |
| 20 | Emissions|HFC236fa | Emissions|HFC236fa | Emissions|HFC|HFC236fa | Emissions|HFC|HFC236fa | Emissions|F-Gases|HFC|HFC236fa | Emissions|HFC|HFC236fa |
| 21 | Emissions|HFC245fa | Emissions|HFC245fa | Emissions|HFC|HFC245ca | Emissions|HFC|HFC245fa | Emissions|F-Gases|HFC|HFC245fa | Emissions|HFC|HFC245fa |
| 22 | Emissions|HFC32 | Emissions|HFC32 | Emissions|HFC|HFC32 | Emissions|HFC|HFC32 | Emissions|F-Gases|HFC|HFC32 | Emissions|HFC|HFC32 |
| 23 | Emissions|HFC365mfc | Emissions|HFC365mfc | Emissions|HFC|HFC365mfc | Emissions|HFC|HFC365mfc | Emissions|F-Gases|HFC|HFC365mfc | Emissions|HFC|HFC365mfc |
| 24 | Emissions|HFC4310mee | Emissions|HFC4310mee | Emissions|HFC|HFC43-10 | Emissions|HFC|HFC43-10 | Emissions|F-Gases|HFC|HFC4310mee | Emissions|HFC|HFC43-10 |
| 25 | Emissions|CCl4 | Emissions|CCl4 | Emissions|CCl4 | Emissions|CCl4 | Emissions|Montreal Gases|CCl4 | Emissions|CCl4 |
| 26 | Emissions|CFC11 | Emissions|CFC11 | Emissions|CFC11 | Emissions|CFC11 | Emissions|Montreal Gases|CFC|CFC11 | Emissions|CFC11 |
| 27 | Emissions|CFC113 | Emissions|CFC113 | Emissions|CFC113 | Emissions|CFC113 | Emissions|Montreal Gases|CFC|CFC113 | Emissions|CFC113 |
| 28 | Emissions|CFC114 | Emissions|CFC114 | Emissions|CFC114 | Emissions|CFC114 | Emissions|Montreal Gases|CFC|CFC114 | Emissions|CFC114 |
| 29 | Emissions|CFC115 | Emissions|CFC115 | Emissions|CFC115 | Emissions|CFC115 | Emissions|Montreal Gases|CFC|CFC115 | Emissions|CFC115 |
| 30 | Emissions|CFC12 | Emissions|CFC12 | Emissions|CFC12 | Emissions|CFC12 | Emissions|Montreal Gases|CFC|CFC12 | Emissions|CFC12 |
| 31 | Emissions|CH2Cl2 | Emissions|CH2Cl2 | Emissions|CH2Cl2 | Emissions|CH2Cl2 | Emissions|Montreal Gases|CH2Cl2 | Emissions|CH2Cl2 |
| 32 | Emissions|CH3Br | Emissions|CH3Br | Emissions|CH3Br | Emissions|CH3Br | Emissions|Montreal Gases|CH3Br | Emissions|CH3Br |
| 33 | Emissions|CH3CCl3 | Emissions|CH3CCl3 | Emissions|CH3CCl3 | Emissions|CH3CCl3 | Emissions|Montreal Gases|CH3CCl3 | Emissions|CH3CCl3 |
| 34 | Emissions|CH3Cl | Emissions|CH3Cl | Emissions|CH3Cl | Emissions|CH3Cl | Emissions|Montreal Gases|CH3Cl | Emissions|CH3Cl |
| 35 | Emissions|CHCl3 | Emissions|CHCl3 | Emissions|CHCl3 | Emissions|CHCl3 | Emissions|Montreal Gases|CHCl3 | Emissions|CHCl3 |
| 36 | Emissions|HCFC141b | Emissions|HCFC141b | Emissions|HCFC141b | Emissions|HCFC141b | Emissions|Montreal Gases|HCFC141b | Emissions|HCFC141b |
| 37 | Emissions|HCFC142b | Emissions|HCFC142b | Emissions|HCFC142b | Emissions|HCFC142b | Emissions|Montreal Gases|HCFC142b | Emissions|HCFC142b |
| 38 | Emissions|HCFC22 | Emissions|HCFC22 | Emissions|HCFC22 | Emissions|HCFC22 | Emissions|Montreal Gases|HCFC22 | Emissions|HCFC22 |
| 39 | Emissions|Halon1202 | Emissions|Halon1202 | Emissions|Halon1202 | Emissions|Halon1202 | Emissions|Montreal Gases|Halon1202 | Emissions|Halon1202 |
| 40 | Emissions|Halon1211 | Emissions|Halon1211 | Emissions|Halon1211 | Emissions|Halon1211 | Emissions|Montreal Gases|Halon1211 | Emissions|Halon1211 |
| 41 | Emissions|Halon1301 | Emissions|Halon1301 | Emissions|Halon1301 | Emissions|Halon1301 | Emissions|Montreal Gases|Halon1301 | Emissions|Halon1301 |
| 42 | Emissions|Halon2402 | Emissions|Halon2402 | Emissions|Halon2402 | Emissions|Halon2402 | Emissions|Montreal Gases|Halon2402 | Emissions|Halon2402 |
| 43 | Emissions|N2O | Emissions|N2O | Emissions|N2O | Emissions|N2O | Emissions|N2O | Emissions|N2O |
| 44 | Emissions|NF3 | Emissions|NF3 | Emissions|NF3 | Emissions|NF3 | Emissions|F-Gases|NF3 | Emissions|NF3 |
| 45 | Emissions|NH3 | Emissions|NH3 | Emissions|NH3 | Emissions|NH3 | Emissions|NH3 | Emissions|NH3 |
| 46 | Emissions|NOx | Emissions|NOx | Emissions|NOx | Emissions|NOx | Emissions|NOx | Emissions|NOx |
| 47 | Emissions|OC | Emissions|OC | Emissions|OC | Emissions|OC | Emissions|OC | Emissions|OC |
| 48 | Emissions|SF6 | Emissions|SF6 | Emissions|SF6 | Emissions|SF6 | Emissions|F-Gases|SF6 | Emissions|SF6 |
| 49 | Emissions|SO2F2 | Emissions|SO2F2 | Emissions|SO2F2 | Emissions|SO2F2 | Emissions|F-Gases|SO2F2 | Emissions|SO2F2 |
| 50 | Emissions|SOx | Emissions|Sulfur | Emissions|Sulfur | Emissions|Sulfur | Emissions|Sulfur | Emissions|Sulfur |
| 51 | Emissions|NMVOC | Emissions|VOC | Emissions|VOC | Emissions|VOC | Emissions|VOC | Emissions|VOC |
| 52 | Emissions|cC4F8 | Emissions|cC4F8 | Emissions|PFC|cC4F8 | Emissions|cC4F8 | Emissions|F-Gases|PFC|cC4F8 | Emissions|PFC|cC4F8 |
The whole table above shows you the full mapping. However, it is helpful to break it down a bit to see where the differences are.
gcages vs. OpenSCM-Runner¶
The differences here are quite minor, essentially clarifying what the CO2 sub-sectors are (whether the CO2 came from fossil or biosphere reservoirs) and then clearer names for emissions of sulfates (which are not pure sulfur) and emissions of non-methane volatile organic compounds (the non-methane part is dropped in some naming conventions for some reason).
disp = EMISSIONS_VARIABLES[
EMISSIONS_VARIABLES["gcages"] != EMISSIONS_VARIABLES["openscm_runner"]
][["gcages", "openscm_runner"]]
disp
| gcages | openscm_runner | |
|---|---|---|
| 12 | Emissions|CO2|Biosphere | Emissions|CO2|MAGICC AFOLU |
| 13 | Emissions|CO2|Fossil | Emissions|CO2|MAGICC Fossil and Industrial |
| 50 | Emissions|SOx | Emissions|Sulfur |
| 51 | Emissions|NMVOC | Emissions|VOC |
gcages vs. IAMC¶
The differences here are more substantial,
affecting the majority of variables.
The IAMC convention is to include groupings within the variable name.
This is not used by gcages because they generally get in the way
and there are multiple groupings of interest, so we don't pick one in particular.
The IAMC uses groupings like:
- PFCs
- HFCs
- Montreal Gases
There is also a difference in the naming of CO2 sub-sectors,
with the gcages convention again used
for clarity of the source of the CO2,
and clearer names for emissions of sulfates (which are not pure sulfur)
and non-methane volatile organic compounds
(the non-methane part is dropped in the IAMC convention).
disp = EMISSIONS_VARIABLES[
EMISSIONS_VARIABLES["gcages"] != EMISSIONS_VARIABLES["iamc"]
][["gcages", "iamc"]]
disp
| gcages | iamc | |
|---|---|---|
| 1 | Emissions|C2F6 | Emissions|PFC|C2F6 |
| 2 | Emissions|C3F8 | Emissions|PFC|C3F8 |
| 3 | Emissions|C4F10 | Emissions|PFC|C4F10 |
| 4 | Emissions|C5F12 | Emissions|PFC|C5F12 |
| 5 | Emissions|C6F14 | Emissions|PFC|C6F14 |
| 6 | Emissions|C7F16 | Emissions|PFC|C7F16 |
| 7 | Emissions|C8F18 | Emissions|PFC|C8F18 |
| 8 | Emissions|CF4 | Emissions|PFC|CF4 |
| 12 | Emissions|CO2|Biosphere | Emissions|CO2|AFOLU |
| 13 | Emissions|CO2|Fossil | Emissions|CO2|Energy and Industrial Processes |
| 14 | Emissions|HFC125 | Emissions|HFC|HFC125 |
| 15 | Emissions|HFC134a | Emissions|HFC|HFC134a |
| 16 | Emissions|HFC143a | Emissions|HFC|HFC143a |
| 17 | Emissions|HFC152a | Emissions|HFC|HFC152a |
| 18 | Emissions|HFC227ea | Emissions|HFC|HFC227ea |
| 19 | Emissions|HFC23 | Emissions|HFC|HFC23 |
| 20 | Emissions|HFC236fa | Emissions|HFC|HFC236fa |
| 21 | Emissions|HFC245fa | Emissions|HFC|HFC245ca |
| 22 | Emissions|HFC32 | Emissions|HFC|HFC32 |
| 23 | Emissions|HFC365mfc | Emissions|HFC|HFC365mfc |
| 24 | Emissions|HFC4310mee | Emissions|HFC|HFC43-10 |
| 50 | Emissions|SOx | Emissions|Sulfur |
| 51 | Emissions|NMVOC | Emissions|VOC |
| 52 | Emissions|cC4F8 | Emissions|PFC|cC4F8 |
disp_same = EMISSIONS_VARIABLES[
EMISSIONS_VARIABLES["gcages"] == EMISSIONS_VARIABLES["iamc"]
][["gcages", "iamc"]]
disp_same
| gcages | iamc | |
|---|---|---|
| 0 | Emissions|BC | Emissions|BC |
| 9 | Emissions|CH4 | Emissions|CH4 |
| 10 | Emissions|CO | Emissions|CO |
| 11 | Emissions|CO2 | Emissions|CO2 |
| 25 | Emissions|CCl4 | Emissions|CCl4 |
| 26 | Emissions|CFC11 | Emissions|CFC11 |
| 27 | Emissions|CFC113 | Emissions|CFC113 |
| 28 | Emissions|CFC114 | Emissions|CFC114 |
| 29 | Emissions|CFC115 | Emissions|CFC115 |
| 30 | Emissions|CFC12 | Emissions|CFC12 |
| 31 | Emissions|CH2Cl2 | Emissions|CH2Cl2 |
| 32 | Emissions|CH3Br | Emissions|CH3Br |
| 33 | Emissions|CH3CCl3 | Emissions|CH3CCl3 |
| 34 | Emissions|CH3Cl | Emissions|CH3Cl |
| 35 | Emissions|CHCl3 | Emissions|CHCl3 |
| 36 | Emissions|HCFC141b | Emissions|HCFC141b |
| 37 | Emissions|HCFC142b | Emissions|HCFC142b |
| 38 | Emissions|HCFC22 | Emissions|HCFC22 |
| 39 | Emissions|Halon1202 | Emissions|Halon1202 |
| 40 | Emissions|Halon1211 | Emissions|Halon1211 |
| 41 | Emissions|Halon1301 | Emissions|Halon1301 |
| 42 | Emissions|Halon2402 | Emissions|Halon2402 |
| 43 | Emissions|N2O | Emissions|N2O |
| 44 | Emissions|NF3 | Emissions|NF3 |
| 45 | Emissions|NH3 | Emissions|NH3 |
| 46 | Emissions|NOx | Emissions|NOx |
| 47 | Emissions|OC | Emissions|OC |
| 48 | Emissions|SF6 | Emissions|SF6 |
| 49 | Emissions|SO2F2 | Emissions|SO2F2 |
gcages vs. RCMIP¶
The differences here affect almost every variable.
The RCMIP convention is to include groupings within the variable name.
This is not used by gcages because they generally get in the way
and there are multiple groupings of interest, so we don't pick one in particular.
The RCMIP convention uses highly specified groupings like:
- PFCs
- HFCs
- Montreal Gases
There is also a difference in the naming of CO2 sub-sectors,
with the gcages convention again used
for clarity of the source of the CO2,
and clearer names for emissions of sulfates (which are not pure sulfur)
and non-methane volatile organic compounds
(the non-methane part is dropped in the IAMC convention).
disp = EMISSIONS_VARIABLES[
EMISSIONS_VARIABLES["gcages"] != EMISSIONS_VARIABLES["rcmip"]
][["gcages", "rcmip"]]
disp
| gcages | rcmip | |
|---|---|---|
| 1 | Emissions|C2F6 | Emissions|F-Gases|PFC|C2F6 |
| 2 | Emissions|C3F8 | Emissions|F-Gases|PFC|C3F8 |
| 3 | Emissions|C4F10 | Emissions|F-Gases|PFC|C4F10 |
| 4 | Emissions|C5F12 | Emissions|F-Gases|PFC|C5F12 |
| 5 | Emissions|C6F14 | Emissions|F-Gases|PFC|C6F14 |
| 6 | Emissions|C7F16 | Emissions|F-Gases|PFC|C7F16 |
| 7 | Emissions|C8F18 | Emissions|F-Gases|PFC|C8F18 |
| 8 | Emissions|CF4 | Emissions|F-Gases|PFC|CF4 |
| 12 | Emissions|CO2|Biosphere | Emissions|CO2|MAGICC AFOLU |
| 13 | Emissions|CO2|Fossil | Emissions|CO2|MAGICC Fossil and Industrial |
| 14 | Emissions|HFC125 | Emissions|F-Gases|HFC|HFC125 |
| 15 | Emissions|HFC134a | Emissions|F-Gases|HFC|HFC134a |
| 16 | Emissions|HFC143a | Emissions|F-Gases|HFC|HFC143a |
| 17 | Emissions|HFC152a | Emissions|F-Gases|HFC|HFC152a |
| 18 | Emissions|HFC227ea | Emissions|F-Gases|HFC|HFC227ea |
| 19 | Emissions|HFC23 | Emissions|F-Gases|HFC|HFC23 |
| 20 | Emissions|HFC236fa | Emissions|F-Gases|HFC|HFC236fa |
| 21 | Emissions|HFC245fa | Emissions|F-Gases|HFC|HFC245fa |
| 22 | Emissions|HFC32 | Emissions|F-Gases|HFC|HFC32 |
| 23 | Emissions|HFC365mfc | Emissions|F-Gases|HFC|HFC365mfc |
| 24 | Emissions|HFC4310mee | Emissions|F-Gases|HFC|HFC4310mee |
| 25 | Emissions|CCl4 | Emissions|Montreal Gases|CCl4 |
| 26 | Emissions|CFC11 | Emissions|Montreal Gases|CFC|CFC11 |
| 27 | Emissions|CFC113 | Emissions|Montreal Gases|CFC|CFC113 |
| 28 | Emissions|CFC114 | Emissions|Montreal Gases|CFC|CFC114 |
| 29 | Emissions|CFC115 | Emissions|Montreal Gases|CFC|CFC115 |
| 30 | Emissions|CFC12 | Emissions|Montreal Gases|CFC|CFC12 |
| 31 | Emissions|CH2Cl2 | Emissions|Montreal Gases|CH2Cl2 |
| 32 | Emissions|CH3Br | Emissions|Montreal Gases|CH3Br |
| 33 | Emissions|CH3CCl3 | Emissions|Montreal Gases|CH3CCl3 |
| 34 | Emissions|CH3Cl | Emissions|Montreal Gases|CH3Cl |
| 35 | Emissions|CHCl3 | Emissions|Montreal Gases|CHCl3 |
| 36 | Emissions|HCFC141b | Emissions|Montreal Gases|HCFC141b |
| 37 | Emissions|HCFC142b | Emissions|Montreal Gases|HCFC142b |
| 38 | Emissions|HCFC22 | Emissions|Montreal Gases|HCFC22 |
| 39 | Emissions|Halon1202 | Emissions|Montreal Gases|Halon1202 |
| 40 | Emissions|Halon1211 | Emissions|Montreal Gases|Halon1211 |
| 41 | Emissions|Halon1301 | Emissions|Montreal Gases|Halon1301 |
| 42 | Emissions|Halon2402 | Emissions|Montreal Gases|Halon2402 |
| 44 | Emissions|NF3 | Emissions|F-Gases|NF3 |
| 48 | Emissions|SF6 | Emissions|F-Gases|SF6 |
| 49 | Emissions|SO2F2 | Emissions|F-Gases|SO2F2 |
| 50 | Emissions|SOx | Emissions|Sulfur |
| 51 | Emissions|NMVOC | Emissions|VOC |
| 52 | Emissions|cC4F8 | Emissions|F-Gases|PFC|cC4F8 |
disp_same = EMISSIONS_VARIABLES[
EMISSIONS_VARIABLES["gcages"] == EMISSIONS_VARIABLES["rcmip"]
][["gcages", "rcmip"]]
disp_same
| gcages | rcmip | |
|---|---|---|
| 0 | Emissions|BC | Emissions|BC |
| 9 | Emissions|CH4 | Emissions|CH4 |
| 10 | Emissions|CO | Emissions|CO |
| 11 | Emissions|CO2 | Emissions|CO2 |
| 43 | Emissions|N2O | Emissions|N2O |
| 45 | Emissions|NH3 | Emissions|NH3 |
| 46 | Emissions|NOx | Emissions|NOx |
| 47 | Emissions|OC | Emissions|OC |
gcages vs. AR6 CFC infilling database¶
The differences here are for PFCs and HFCs mostly.
The AR6 CFC infilling database convention
is to include groupings within the variable name.
This is not used by gcages because they generally get in the way
and there are multiple groupings of interest, so we don't pick one in particular.
There is also a difference in the naming of CO2 sub-sectors,
with the gcages convention again used
for clarity of the source of the CO2,
and clearer names for emissions of sulfates (which are not pure sulfur)
and non-methane volatile organic compounds
(the non-methane part is dropped in the IAMC convention).
disp = EMISSIONS_VARIABLES[
EMISSIONS_VARIABLES["gcages"] != EMISSIONS_VARIABLES["ar6_cfc_infilling_db"]
][["gcages", "ar6_cfc_infilling_db"]]
disp
| gcages | ar6_cfc_infilling_db | |
|---|---|---|
| 1 | Emissions|C2F6 | Emissions|PFC|C2F6 |
| 2 | Emissions|C3F8 | Emissions|PFC|C3F8 |
| 3 | Emissions|C4F10 | Emissions|PFC|C4F10 |
| 4 | Emissions|C5F12 | Emissions|PFC|C5F12 |
| 5 | Emissions|C6F14 | Emissions|PFC|C6F14 |
| 6 | Emissions|C7F16 | Emissions|PFC|C7F16 |
| 7 | Emissions|C8F18 | Emissions|PFC|C8F18 |
| 8 | Emissions|CF4 | Emissions|PFC|CF4 |
| 12 | Emissions|CO2|Biosphere | Emissions|CO2|AFOLU |
| 13 | Emissions|CO2|Fossil | Emissions|CO2|Energy and Industrial Processes |
| 14 | Emissions|HFC125 | Emissions|HFC|HFC125 |
| 15 | Emissions|HFC134a | Emissions|HFC|HFC134a |
| 16 | Emissions|HFC143a | Emissions|HFC|HFC143a |
| 17 | Emissions|HFC152a | Emissions|HFC|HFC152a |
| 18 | Emissions|HFC227ea | Emissions|HFC|HFC227ea |
| 19 | Emissions|HFC23 | Emissions|HFC|HFC23 |
| 20 | Emissions|HFC236fa | Emissions|HFC|HFC236fa |
| 21 | Emissions|HFC245fa | Emissions|HFC|HFC245fa |
| 22 | Emissions|HFC32 | Emissions|HFC|HFC32 |
| 23 | Emissions|HFC365mfc | Emissions|HFC|HFC365mfc |
| 24 | Emissions|HFC4310mee | Emissions|HFC|HFC43-10 |
| 50 | Emissions|SOx | Emissions|Sulfur |
| 51 | Emissions|NMVOC | Emissions|VOC |
| 52 | Emissions|cC4F8 | Emissions|PFC|cC4F8 |
disp_same = EMISSIONS_VARIABLES[
EMISSIONS_VARIABLES["gcages"] == EMISSIONS_VARIABLES["ar6_cfc_infilling_db"]
][["gcages", "ar6_cfc_infilling_db"]]
disp_same
| gcages | ar6_cfc_infilling_db | |
|---|---|---|
| 0 | Emissions|BC | Emissions|BC |
| 9 | Emissions|CH4 | Emissions|CH4 |
| 10 | Emissions|CO | Emissions|CO |
| 11 | Emissions|CO2 | Emissions|CO2 |
| 25 | Emissions|CCl4 | Emissions|CCl4 |
| 26 | Emissions|CFC11 | Emissions|CFC11 |
| 27 | Emissions|CFC113 | Emissions|CFC113 |
| 28 | Emissions|CFC114 | Emissions|CFC114 |
| 29 | Emissions|CFC115 | Emissions|CFC115 |
| 30 | Emissions|CFC12 | Emissions|CFC12 |
| 31 | Emissions|CH2Cl2 | Emissions|CH2Cl2 |
| 32 | Emissions|CH3Br | Emissions|CH3Br |
| 33 | Emissions|CH3CCl3 | Emissions|CH3CCl3 |
| 34 | Emissions|CH3Cl | Emissions|CH3Cl |
| 35 | Emissions|CHCl3 | Emissions|CHCl3 |
| 36 | Emissions|HCFC141b | Emissions|HCFC141b |
| 37 | Emissions|HCFC142b | Emissions|HCFC142b |
| 38 | Emissions|HCFC22 | Emissions|HCFC22 |
| 39 | Emissions|Halon1202 | Emissions|Halon1202 |
| 40 | Emissions|Halon1211 | Emissions|Halon1211 |
| 41 | Emissions|Halon1301 | Emissions|Halon1301 |
| 42 | Emissions|Halon2402 | Emissions|Halon2402 |
| 43 | Emissions|N2O | Emissions|N2O |
| 44 | Emissions|NF3 | Emissions|NF3 |
| 45 | Emissions|NH3 | Emissions|NH3 |
| 46 | Emissions|NOx | Emissions|NOx |
| 47 | Emissions|OC | Emissions|OC |
| 48 | Emissions|SF6 | Emissions|SF6 |
| 49 | Emissions|SO2F2 | Emissions|SO2F2 |