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
.- scenario_info: ScenarioInfo
Information about a scenario used to construct a file name. Specifically, the file name
scenario_info.path.csv
is used. Seepath
.
- 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
.- scenario_info: ScenarioInfo
Information about a scenario used to construct a file name. Specifically, the file name
scenario_info.path.csv
is used. Seepath
.
- 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.
- 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 fromiam_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: