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.

class message_ix_models.model.emissions.Options(aggregate: bool = False, interpolate: bool = False, measure: str = '', name: str = '', dims: tuple[str, ...] = ('n', 'y'), base_path: ~pathlib.Path = <factory>, scenario_info: ~message_ix_models.util.scenarioinfo.ScenarioInfo = <factory>)[source]

Options for PRICE_EMISSION.

aggregate: bool = False

Override parent class default of True.

base_path: Path

Path containing CSV data files. For example:

interpolate: bool = False

Override parent class default of True.

scenario_info: ScenarioInfo

Information about a scenario used to construct a file name. Specifically, the file name scenario_info.path.csv is used. See path.

class message_ix_models.model.emissions.PRICE_EMISSION(*args, **kwargs)[source]

Provider of exogenous data for PRICE_EMISSION.

class Options(aggregate: bool = False, interpolate: bool = False, measure: str = '', name: str = '', dims: tuple[str, ...] = ('n', 'y'), base_path: ~pathlib.Path = <factory>, scenario_info: ~message_ix_models.util.scenarioinfo.ScenarioInfo = <factory>)

Options for PRICE_EMISSION.

aggregate: bool = False

Override parent class default of True.

base_path: Path

Path containing CSV data files. For example:

interpolate: bool = False

Override parent class default of True.

scenario_info: ScenarioInfo

Information about a scenario used to construct a file name. Specifically, the file name scenario_info.path.csv is used. See path.

get() AnyQuantity[source]

Return the data.

Implementations in concrete classes may load data from file, retrieve from remote sources or local caches, generate data, or anything else.

The Quantity returned by this method must have dimensions corresponding to key. If the original/upstream/raw data has different dimensionality (fewer or more dimensions; different dimension IDs), a concrete class must transform these, make appropriate selections, etc.

key: Key = <PRICE_EMISSION:n-type_emission-type_tec-y:exo>

Key for the returned Quantity. This may either be set statically on a concrete subclass, or created via __init__().

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”.

Parameters:
  • 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) AnyQuantity[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.

Parameters:

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.

Returns:

with 1 dimension (\(c\)).

Return type:

Quantity

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.