Gas emissions shares

These derived variables report each gas’s CO2-equivalent emissions as a percentage of emissions from all gases in the same economic activity or total. They cover sector inputs and outputs, household and government purchases, individual and combined sector totals, household and government totals, regions and the world.

The definitions are opt in and are available in the modified Python G-Cubed 5.0.2.0 source for build 200 models with the required gas-indexed emissions rows. Check the installed package catalogue when using an older installation. Gas, sector, good and region members come from the selected model’s native sets. The source emissions already use CO2-equivalent quantities, so these calculations use them directly.

Variables and scopes

Prefix Emissions scope and source Ordered output sets
EMSISHARE Sector input emissions for each purchased good, EMSI gases,sec_std,goods_oc,regions
EMSOSHARE Sector output emissions, EMSO gases,sec_std,regions
EMHISHARE Household emissions for each purchased good, EMHI gases,goods_oc,regions
EMGISHARE Government emissions for each purchased good, EMGI gases,goods_oc,regions
EMSTSHARE Total emissions of each sector, EMST gases,sec_std,regions
EMSSHARE Total emissions of all sectors, EMS gases,regions
EMHSHARE Total household emissions, EMH gases,regions
EMGSHARE Total government emissions, EMG gases,regions
EMRSHARE Total regional emissions, EMR gases,regions
EMWSHARE World emissions, using physical EMR levels summed across regions gases

sec_std selects standard economic sectors; goods_oc selects the native input and consumption goods. For example, EMSISHARE(CH4,a18,g03,USA) is methane’s share of emissions associated with sector a18 using good g03 in the USA. EMSTSHARE(CH4,a18,USA) covers that sector’s total emissions, and EMWSHARE(CH4) covers the world. Use codes present in your selected model.

Levels and deviations

For an activity or regional total, the calculation is:

share(gas,scope,year) = 100 * emissions(gas,scope,year)
                          / sum_gases(emissions(gas,scope,year))

All dimensions other than gas and year stay fixed in the denominator. With a positive emissions total, the gas shares sum to 100. Aggregate definitions use their named source rows, preserving the supplied model’s emissions accounting. Use accounting-corrected projections for NAB/NABb reporting.

For the world, each gas’s published physical emissions are summed over all regions before division:

world_share(gas,year) = 100 * sum_regions(EMR(gas,region,year))
                          / sum_gases_and_regions(EMR(gas,region,year))

Here EMR is measured in published physical mmt units. Averaging regional percentages or summing GDP-normalised database values gives an incorrect world composition. World share rows have a gas dimension and no region dimension.

Levels have units percent. Deviations subtract the baseline share from the scenario share and have units percentage point deviation. A baseline share of 60% and a scenario share of 25% therefore produce a deviation of −35 percentage points. Each share is calculated using its own emissions total.

Zero emissions and required inputs

A gas with zero emissions and a positive all-gas total has a zero share. An activity or total with no emissions has undefined shares, represented by NaN; a deviation involving an undefined share is also NaN. The definitions preserve genuinely small positive emissions and changing emissions paths.

Logged-zero preparation can create positive numerical placeholders for physically absent emissions. Identifying these requires the original database and calibration year retained in the projection’s parameters, original observations at the preparation anchor, and regional GDP where needed. Ordinary saved projection objects retain this information. Keep this provenance when reusing projections; detached logged snapshots without it fail validation. The calculation preserves source projections and model inputs.

The selected source rows must be complete, finite and nonnegative, use published physical mmt units, and match the model’s native domain metadata. Missing or incompatible inputs and overflowing totals fail explicitly.

Select shares in setup and reports

Add the desired prefixes to a setup chartpack’s derivations list, then select the native gas and activity members. This setup fragment creates regional methane-share charts and a world chart containing all gases:

chartpack:
  file_name: emissions-shares.yaml
  title: Gas shares of CO2-equivalent emissions
  derivations:
    - EMRSHARE
    - EMWSHARE
  charts:
    - title: Regional methane shares
      variable_prefix: EMRSHARE
      selectors:
        - dimension: gases
          members: [CH4]
        - dimension: regions
          members: all
    - title: World emissions shares
      variable_prefix: EMWSHARE
      selectors:
        - dimension: gases
          members: all

The setup instructions enable calculation in the maintained run workflow. A standalone chartpack selects rows from supplied reporting data; its series selection alone does not enable derivations. See Generate chartpacks for the complete setup format.

From Python, construct the definitions once and use them for levels and scenario deviations:

from gcubed.derivations import create_derivations

derivations = create_derivations(["EMSTSHARE", "EMRSHARE", "EMWSHARE"])
levels = derivations.projections(baseline_projections)
changes = derivations.deviations(scenario_projections, baseline_projections)

Pass the same collection to the runner and reporting when generating complete reports, as shown in the Python recipe.