Emissions data (model.emissions)

model.emissions contains codes for working with emissions data, including policies on emissions.

In general, models created with message_ix_models:

  • Use tonnes of carbon equivalent (“t C”) as units for mass of emissions.

  • Use “USD / t C” as units for price of emissions. Because (as of 2022-07-20) iam_units treats “USD” as an alias for “USD_2005”, this is implicitly USD_2005 / t C.

message_ix_models.model.emissions.add_tax_emission(scen: Scenario, price: float, conversion_factor: float | None = None, drate_parameter='drate') None[source]

Add a global CO₂ price to scen.

A carbon price is implemented on node=“World” by populating the MESSAGEix parameter tax_emission, starting from the first model year and covering the entire model horizon. The tax has an annual growth rate equal to the discount rate.

The other dimensions of tax_emission are filled with type_emission=“TCE” and type_tec=“all”.

  • scen (message_ix.Scenario) –

  • price (float) – Price in the first model year, in USD / tonne CO₂.

  • conversion_factor (float, optional) – Factor for converting price into the model’s internal emissions units, currently USD / tonne carbon. Optional: a default value is retrieved from iam_units.

  • drate_parameter (str; one of "drate" or "interestrate") – Name of the parameter to use for the growth rate of the carbon price.

message_ix_models.model.emissions.get_emission_factors(units: str | None = None) AttrSeries[source]

Return carbon emission factors.

Values are from the file message_ix_models/data/ipcc/1996_v3_t1-2.csv, in turn from IPCC (see Table 1-2 on page 1.6); these are the same that appear on the “Emissions from energy” page of the MESSAGEix-GLOBIOM documentation.

The fuel dimension and names in the source are mapped to a \(c\) (“commodity”) dimension and labels from commodity.yaml, using the ipcc-1996-name annotations appearing in the latter. A value for “methanol” that appears in the MESSAGEix-GLOBIOM docs table but not in the source is appended.


unit (str, optional) –

Expression for units of the returned quantity. Tested values include:

  • “tC / TJ”, source units (default),

  • “t CO2 / TJ”, and

  • “t C / kWa”, internal units in MESSAGEix-GLOBIOM, for instance for “relation_activity” entries for emissions relations.


with 1 dimension (\(c\)).

Return type:


message_ix_models.model.emissions.split_species(unit_expr: str) Tuple[str, str | None][source]

Split unit_expr to an expression without a unit mention, and maybe species.