MESSAGEix-Materials (model.material)

Description

This module adds material stock and flow accounting in MESSAGEix-GLOBIOM. The implementation currently includes four key energy/emission-intensive material industries: Iron&Steel, Aluminum, Cement, and Chemicals.

Code reference

Note

See also PR #130/the archived branch materials-migrate for a distinct version of material. That earlier PR was superseded by PR #188, but contains the 1.0.0 version of MESSAGEix-Materials, which was used for the first submission of [120]. The model structure is almost identical to the default model that was added by PR #188. Compared to PR #188 this version differs particularly in the following areas:

  • Older base year calibration of “other industries” using outdated IEA EWEB data.

  • Material demands computed in R through rpy2, instead of Python implementation.

  • Less accurate regional allocation/aggregation of base year demands for cement and steel.

  • No use of tools.costs.

Data preparation

These scripts are used to prepare and read the data into the model. They can be turned on and off individually under DATA_FUNCTIONS in __init__.py.

message_ix_models.model.material.data_aluminum.gen_data_alu_ts(data: DataFrame, nodes: list) Dict[str, DataFrame][source]

Generates time variable parameter data for aluminum sector :param data: time variable data from input file :type data: pd.DataFrame :param nodes: regions of model :type nodes: list

Returns:

key-value pairs of parameter names and parameter data

Return type:

pd.DataFrame

message_ix_models.model.material.data_aluminum.gen_data_aluminum(scenario: Scenario, dry_run: bool = False) dict[str, pandas.core.frame.DataFrame][source]
Parameters:
  • scenario (message_ix.Scenario) – Scenario instance to build aluminum model on

  • dry_run (bool) – not implemented

Returns:

dict with MESSAGEix parameters as keys and parametrization as values stored in pd.DataFrame

Return type:

dict[pd.DataFrame]

message_ix_models.model.material.data_aluminum.read_data_aluminum(scenario: ~message_ix.core.Scenario) -> (<class 'pandas.core.frame.DataFrame'>, <class 'pandas.core.frame.DataFrame'>, <class 'pandas.core.frame.DataFrame'>)[source]

Read and clean data from aluminum_techno_economic.xlsx.

Parameters:

scenario (message_ix.Scenario) – Scenario instance to build aluminum on

Returns:

returns aluminum data in three separate groups time indepenendent parameters, relation parameters and time dependent parameters

Return type:

tuple of three pd.DataFrames

message_ix_models.model.material.data_steel.gen_data_steel(scenario: Scenario, dry_run: bool = False)[source]

Generate data for materials representation of steel industry.

message_ix_models.model.material.data_cement.gen_data_cement(scenario: Scenario, dry_run: bool = False) dict[str, pandas.core.frame.DataFrame][source]

Generate data for materials representation of cement industry.

message_ix_models.model.material.data_petro.read_data_petrochemicals(scenario: Scenario) DataFrame[source]

Read and clean data from petrochemicals_techno_economic.xlsx.

message_ix_models.model.material.data_power_sector.gen_data_power_sector(scenario: Scenario, dry_run: bool = False) dict[str, pandas.core.frame.DataFrame][source]

Generate data for materials representation of power industry.

message_ix_models.model.material.data_generic.read_data_generic(scenario: ~message_ix.core.Scenario) -> (<class 'pandas.core.frame.DataFrame'>, <class 'pandas.core.frame.DataFrame'>)[source]

Read and clean data from generic_furnace_boiler_techno_economic.xlsx.

message_ix_models.model.material.data_ammonia_new.read_demand() dict[str, pandas.core.frame.DataFrame][source]

Read and clean data from CD-Links SSP2 N-fertilizer demand.Global.xlsx.

message_ix_models.model.material.data_methanol.broadcast_nodes(df_bc_node: DataFrame, df_final: DataFrame, node_cols: List[str], node_cols_codes: Dict[str, Series], i: int) DataFrame[source]

Broadcast nodes that were stored in pivoted row

Parameters:
  • df_bc_node (pd.DataFrame) –

  • df_final (pd.DataFrame) –

  • node_cols (List[str]) –

  • node_cols_codes (Dict[str, pd.Series]) –

  • i (int) –

message_ix_models.model.material.data_methanol.broadcast_years(df_bc_node: DataFrame, yr_col_out: List[str], yr_cols_codes: Dict[str, List[str]], col: str) DataFrame[source]

Broadcast years that were stored in pivoted row :param df_bc_node: :type df_bc_node: pd.DataFrame :param yr_col_out: :type yr_col_out: List[str] :param yr_cols_codes: :type yr_cols_codes: ict[str, List[str]] :param col: :type col: str

message_ix_models.model.material.data_methanol.gen_data_methanol(scenario: Scenario) Dict[str, DataFrame][source]

Generates data for methanol industry model

Parameters:

scenario (Scenario) –

message_ix_models.model.material.data_methanol.unpivot_input_data(df: DataFrame, par_name: str) DataFrame[source]

Unpivot data that is already contains columns for respective MESSAGEix parameter :param df: DataFrame containing parameter data with year and node values pivoted :type df: pd.DataFrame :param par_name: name of MESSAGEix parameter :type par_name: str

Build and Solve the model from CLI

Note: To include material stocks from power sector message_ix should be the following version from source: https://github.com/iiasa/message_ix/tree/material_stock

Use mix-models materials-ix {SSP} build to add the material implementation on top of existing standard global (R12) scenarios, also giving the base scenario and indicating the relevant data location, e.g.:

mix-models \
    --url="ixmp://ixmp_dev/MESSAGEix-GLOBIOM 1.1-R12/baseline_DEFAULT#21" \
    --local-data "./data" material-ix SSP2 build --tag test --nodes R12

The output scenario name will be baseline_DEFAULT_test. An additional tag --tag can be used to add an additional suffix to the new scenario name. The mode option --mode has two different inputs ‘by_url’ (by default) or ‘by_copy’. The first one uses the provided --url to add the materials implementation on top of the scenario from the url. This is the default option. The latter is used to create a 2 degree mitigation scenario with materials by copying carbon prices to the scenario that is specified by --scenario_name:

mix-models --url="ixmp://ixmp_dev/MESSAGEix-Materials/scenario_name" material-ix \
 build --tag test --mode by_copy

This command line only builds the scenario but does not solve it. To solve the scenario, use mix-models materials-ix solve, giving the scenario name, e.g.:

mix-models --url="ixmp://ixmp_dev/MESSAGEix-Materials/scenario_name" material-ix \
 SSP2 solve --add_calibration False --add_macro False

The solve command has the --add_calibration option to add MACRO calibration to a baseline scenario with a valid calibration file specified with --macro-file. The --add_macro option determines whether the scenario should be solved with MESSAGE or MESSAGE-MACRO. MESSAGEix-Materials provides one calibration file that is only compatible with scenarios with first model year 2025 and the common model structure of a MESSAGEix-GLOBIOM scenario. To first calibrate the scenario and then solve that scenario with MACRO both options should be set to :any`True`.

It is also possible to shift the first model year and solve a clone with shifted years with --shift_model_year. If --shift_model_year is set together with the macro options the model year will be shifted before the MACRO calibration.

All three options are False by default.

Reporting

The reporting generates specific variables related to materials, mainly Production and Final Energy. The resulting reporting file is generated under message_ix_models/data/material/reporting_output with the name “New_Reporting_MESSAGEix-Materials_scenario_name.xlsx”. More detailed variables related to the whole energy system and emissions are not included in this reporting.

Reporting is executed by the following command:

mix-models --url="ixmp://ixmp_dev/MESSAGEix-Materials/scenario_name" \
    --local-data "./data" material-ix SSP2 report

To remove any existing timeseries in the scenario the following command can be used:

mix-models --url="ixmp://ixmp_dev/MESSAGEix-Materials/scenario_name" material-ix \
    SSP2 report --remove_ts True

Data, metadata, and configuration

Binary/raw data files

The code relies on the following input files, stored in data/material/:

Cement

CEMENT.BvR2010.xlsx

Historical cement demand data

Global_cement_MESSAGE.xlsx

Techno-economic parametrization data for cement sector combined (R12)

demand_cement.yaml

Base year demand data

Aluminum

demand_aluminum.xlsx

Historical aluminum demand data

aluminum_trade_data.csv

Data retrieved from IAI MFA model and used for trade calibration

aluminum_techno_economic.xlsx

Techno-economic parametrization data for aluminum sector

demand_aluminum.yaml

Base year aluminum demand data

Iron and Steel

STEEL_database_2012.xlsx

Historical steel demand data

Global_steel_MESSAGE.xlsx

Techno-economic parametrization data for steel sector combined (R12)

worldsteel_steel_trade.xlsx

Historical data from worldsteel Association

demand_steel.yaml

Base year steel demand data

Chemicals

nh3_fertilizer_demand.xlsx

Nitrogen fertilizer demand

fert_techno_economic.xlsx

Techno-economic parameters for NH3 production technologies

cost_conv_nh3.xlsx

Regional cost convergence settings for NH3 production technologies over time

methanol demand.xlsx

Methanol demand

methanol_sensitivity_pars.xlsx

Methanol sensitivity parameters

methanol_techno_economic.xlsx

Techno-economic parameters for methanol production technologies

petrochemicals_techno_economic.xls

Techno-economic parameters for refinery and high-value chemicals production technologies

steam_cracking_hist_act.csv

Steam cracker historical activities in R12 regions

steam_cracking_hist_new_cap.csv

Steam cracker historical capacities in R12 regions

ammonia/demand_NH3.yaml

Ammonia demand in each R12 region in year 2020

petrochemicals/demand_HVC.yaml

HVC demand in each R12 region in year 2020

methanol/demand_methanol.yaml

Methanol demand in each R12 region in year 2020

/methanol/results_material_SHAPE_comm.csv

Commercial sector data from MESSAGEix-Buidings SHAPE scenario used to get wood demands from buildings to estimate resin demands

/methanol/results_material_SHAPE_resid.csv

Residential sector data from MESSAGEix-Buidings SHAPE scenario used to get wood demands from buildings to estimate resin demands

/methanol/results_material_SSP2_comm.csv

Commercial sector data from MESSAGEix-Buidings SSP2 scenario used to get wood demands from buildings to estimate resin demands

/methanol/results_material_SSP2_resid.csv

Residential sector data from MESSAGEix-Buidings SSP2 scenario used to get wood demands from buildings to estimate resin demands

Power sector

NTNU_LCA_coefficients.xlsx

Material intensity (and other) coefficients for power plants based on lifecycle assessment (LCA) data from the THEMIS database, compiled in the ADVANCE project.

MESSAGE_global_model_technologies.xlsx

Technology list of global MESSAGEix-GLOBIOM model with mapping to LCA technology dataset.

LCA_region_mapping.xlsx

Region mapping of global 11-regional MESSAGEix-GLOBIOM model to regions of THEMIS LCA dataset.

LCA_commodity_mapping.xlsx

Commodity mapping (for materials) of global 11-regional MESSAGEix-GLOBIOM model to commodities of THEMIS LCA dataset.

Buildings

buildings/LED_LED_report_IAMC_sensitivity_R12.csv

Data from MESSAGEix-Buidings LED scenarios used to get steel/cement/aluminum demands from buildings

buildings/report_IRP_SSP2_BL_comm_R12.csv

Commerical sector data from MESSAGEix-Buidings used to get steel/cement/aluminum demands from buildings

buildings/report_IRP_SSP2_BL_resid_R12.csv

Residential sector data from MESSAGEix-Buidings used to get steel/cement/aluminum demands from buildings

Other

generic_furnace_boiler_techno_economic.xlsx

Techno-economic parametrization data for generic furnace technologies

iamc_db ENGAGE baseline GDP PPP.xlsx

SSP GDP projection used for material demand projections

MESSAGEix-Materials_final_energy_industry.xlsx

Final energy values to calibrate base year values for industries

residual_industry_2019.xlsx

Final energy values to calculate the residual industry demand

SSP_UE_dyn_input.xlsx

Calibration file for industry end-use energy demands

SSP_UE_dyn_input_all.xlsx

Calibration file for end-use energy demands

iea_mappings/all_technologies.csv

Mapping of MESSAGEix-GLOBIOM technologies to IEA EWEB flows and products

iea_mappings/chemicals.csv

Mapping of MESSAGEix-GLOBIOM industry technologies to IEA EWEB products of chemical sector flows

iea_mappings/industry.csv

Mapping of MESSAGEix-GLOBIOM industry technologies to IEA EWEB products of industry sector flows not covered by MESSAGEix-Materials

other/mer_to_ppp_default.csv

Default conversion factors for GDP MER to PPP used in MESSAGEix-GLOBIOM SSP2 scenarios. Used to create demand projections for steel/cement/aluminum/chemicals if GDP_PPP data is not in scenario

material/set.yaml

# Set configuration for the MESSAGE-Materials model

# For each set in the MESSAGEix framework, the group contains:
# - 'require': elements that must be present for the model to be set up.
# - 'remove': elements to remove.
# - 'add': elements to add.

common:
  node:
    add:
    - R12_GLB

  technology:
    add:
    - extract__freshwater_supply

  commodity:
    require:
    - coal
    - gas
    - electr
    - ethanol
    - methanol
    - fueloil
    - lightoil
    - hydrogen
    - lh2
    - d_heat
    - biomass
    add:
    - water
    - fresh_water_supply

  level:
    require:
    - primary
    - secondary
    - useful
    - final
    - water_supply
    - export
    - import

# Not used at the moment
# maybe to be used in updated legacy reporting
#  type_tec:
#    add:
#    - industry

  mode:
    add:
    - M1
    - M2

  emission:
    add:
    - CO2
    - CH4
    - N2O
    - NOx
    - SO2
    - PM2p5 # Just add there since it is already in Shaohui's data
    - CF4
    - CO2_industry
    - CO2_transport
    - CO2_transformation

  year:
    require:
    - 1980
    - 1990
    - 1995
    - 2000
    - 2005
    - 2010
    - 2015

  unit:
    add:
    - t/kW
    - Mt
    - Mt/yr
    - USD/kW

generic:
  commodity:
    add:
    - ht_heat
    - lt_heat

  level:
    add:
    - useful_steel
    - useful_cement
    - useful_aluminum
    - useful_refining
    - useful_petro
    - useful_resins

  technology:
    add:
    - furnace_foil_steel
    - furnace_loil_steel
    - furnace_biomass_steel
    - furnace_ethanol_steel
    - furnace_methanol_steel
    - furnace_gas_steel
    - furnace_coal_steel
    - furnace_elec_steel
    - furnace_h2_steel
    - hp_gas_steel
    - hp_elec_steel
    - fc_h2_steel
    - solar_steel
    - dheat_steel
    - furnace_foil_cement
    - furnace_loil_cement
    - furnace_biomass_cement
    - furnace_ethanol_cement
    - furnace_methanol_cement
    - furnace_gas_cement
    - furnace_coal_cement
    - furnace_elec_cement
    - furnace_h2_cement
    - hp_gas_cement
    - hp_elec_cement
    - fc_h2_cement
    - solar_cement
    - dheat_cement
    - furnace_coal_aluminum
    - furnace_foil_aluminum
    - furnace_loil_aluminum
    - furnace_ethanol_aluminum
    - furnace_biomass_aluminum
    - furnace_methanol_aluminum
    - furnace_gas_aluminum
    - furnace_elec_aluminum
    - furnace_h2_aluminum
    - hp_gas_aluminum
    - hp_elec_aluminum
    - fc_h2_aluminum
    - solar_aluminum
    - dheat_aluminum
    - furnace_coke_petro
    - furnace_coal_petro
    - furnace_foil_petro
    - furnace_loil_petro
    - furnace_ethanol_petro
    - furnace_biomass_petro
    - furnace_methanol_petro
    - furnace_gas_petro
    - furnace_elec_petro
    - furnace_h2_petro
    - hp_gas_petro
    - hp_elec_petro
    - fc_h2_petro
    - solar_petro
    - dheat_petro
    - furnace_coke_refining
    - furnace_coal_refining
    - furnace_foil_refining
    - furnace_loil_refining
    - furnace_ethanol_refining
    - furnace_biomass_refining
    - furnace_methanol_refining
    - furnace_gas_refining
    - furnace_elec_refining
    - furnace_h2_refining
    - hp_gas_refining
    - hp_elec_refining
    - fc_h2_refining
    - solar_refining
    - dheat_refining
    - furnace_coal_resins
    - furnace_foil_resins
    - furnace_loil_resins
    - furnace_ethanol_resins
    - furnace_biomass_resins
    - furnace_methanol_resins
    - furnace_gas_resins
    - furnace_elec_resins
    - furnace_h2_resins
    - hp_gas_resins
    - hp_elec_resins
    - fc_h2_resins
    - solar_resins
    - dheat_resins

  mode:
    add:
    - low_temp
    - high_temp

petro_chemicals:
  commodity:
    require:
    - crudeoil
    add:
    - HVC
    - naphtha
    - kerosene
    - diesel
    - atm_residue
    - refinery_gas
    - atm_gasoil
    - atm_residue
    - vacuum_gasoil
    - vacuum_residue
    - gasoline
    - heavy_foil
    - light_foil
    - propylene
    - pet_coke
    - ethane
    - propane
    - ethylene
    - BTX
    remove:
    - i_feed

  level:
    require:
    - secondary
    - final
    add:
    - pre_intermediate
    - desulfurized
    - intermediate
    - secondary_material
    - final_material
    - demand

  balance_equality:
    add:
      - ["lightoil", "import"]
      - ["lightoil", "export"]
      - ["fueloil", "import"]
      - ["fueloil", "export"]

  mode:
    add:
    - atm_gasoil
    - vacuum_gasoil
    - naphtha
    - kerosene
    - diesel
    - cracking_gasoline
    - cracking_loil
    - ethane
    - propane
    - light_foil
    - refinery_gas
    - refinery_gas_int
    - heavy_foil
    - pet_coke
    - atm_residue
    - vacuum_residue
    - gasoline
    - ethylene
    - propylene
    - BTX

  technology:
    add:
    - atm_distillation_ref
    - vacuum_distillation_ref
    - hydrotreating_ref
    - catalytic_cracking_ref
    - visbreaker_ref
    - coking_ref
    - catalytic_reforming_ref
    - hydro_cracking_ref
    - steam_cracker_petro
    - ethanol_to_ethylene_petro
    - agg_ref
    - gas_processing_petro
    - trade_petro
    - import_petro
    - export_petro
    - feedstock_t/d
    - production_HVC
    remove:
    # Any representation of refinery.
    - ref_hil
    - ref_lol
    - coal_fs
    - coal_fs
    - ethanol_fs
    - gas_fs
    - foil_fs
    - loil_fs
    - methanol_fs

  shares:
    add:
    - steam_cracker

steel:
  mode:
    add:
    - M3
    - M4

  commodity:
    add:
    - steel
    - pig_iron
    - pig_iron_dummy
    - charcoal
    - sponge_iron
    - sinter_iron
    - pellet_iron
    - ore_iron
    - limestone_iron
    - coke_iron
    - slag_iron
    - co_gas
    - bf_gas
    - off_gas

  level:
    add:
    - new_scrap
    - old_scrap_1
    - old_scrap_2
    - old_scrap_3
    - primary_material
    - secondary_material
    - tertiary_material
    - final_material
    - useful_material
    - waste_material
    - product
    - demand
    - dummy_emission
    - end_of_life
    - dummy_end_of_life
    - dummy_ccs

  technology:
    add:
    - cokeoven_steel
    - sinter_steel
    - pellet_steel
    - bf_steel
    - bf_ccs_steel
    - dri_steel
    - dri_gas_steel
    - dri_gas_ccs_steel
    - dri_h2_steel
    - sr_steel
    - bof_steel
    - eaf_steel
    - prep_secondary_steel_1
    - prep_secondary_steel_2
    - prep_secondary_steel_3
    - finishing_steel
    - manuf_steel
    - scrap_recovery_steel
    - DUMMY_ore_supply
    - DUMMY_limestone_supply_steel
    - DUMMY_coal_supply
    - DUMMY_gas_supply
    - trade_steel
    - import_steel
    - export_steel
    - other_EOL_steel
    - total_EOL_steel
    - bf_biomass_steel
    - prod_charcoal_steel

  relation:
    add:
      - minimum_recycling_steel
      - max_global_recycling_steel
      - max_regional_recycling_steel

  balance_equality:
    add:
      - ["steel","old_scrap_1"]
      - ["steel","old_scrap_2"]
      - ["steel","old_scrap_3"]
      - ["steel","end_of_life"]
      - ["steel","product"]
      - ["steel","new_scrap"]
      - ["steel","useful_material"]
      - ["steel","final_material"]

  addon:
    add:
      - bf_ccs_steel
      - dri_gas_ccs_steel
      - dri_gas_steel
      - dri_h2_steel

  type_addon:
    add:
      - bf_ccs_steel_addon
      - dri_gas_ccs_steel_addon
      - dri_steel_addon

  map_tec_addon:
    add:
      - [bf_steel, bf_ccs_steel_addon]
      - [dri_gas_steel, dri_gas_ccs_steel_addon]
      - [dri_steel, dri_steel_addon]

  cat_addon:
    add:
      - [bf_ccs_steel_addon, bf_ccs_steel]
      - [dri_gas_ccs_steel_addon, dri_gas_ccs_steel]
      - [dri_steel_addon, dri_gas_steel]
      - [dri_steel_addon, dri_h2_steel]

cement:
  commodity:
    add:
    - cement
    - clinker_cement
    - raw_meal_cement
    - limestone_cement

  level:
    add:
    - primary_material
    - secondary_material
    - tertiary_material
    - final_material
    - useful_material
    - demand
    - dummy_end_of_life
    - end_of_life

  technology:
    add:
    - raw_meal_prep_cement
    - clinker_dry_cement
    - clinker_wet_cement
    - clinker_dry_ccs_cement
    - clinker_wet_ccs_cement
    - grinding_ballmill_cement
    - grinding_vertmill_cement
    - DUMMY_limestone_supply_cement
    - total_EOL_cement
    - other_EOL_cement
    - scrap_recovery_cement

    remove:
    - cement_co2scr
    - cement_CO2

  relation:
    remove:
    - cement_pro
    - cement_scrub_lim

  balance_equality:
    add:
      - ["cement","end_of_life"]

  addon:
    add:
    - clinker_dry_ccs_cement
    - clinker_wet_ccs_cement

  type_addon:
    add:
    - wet_ccs_cement
    - dry_ccs_cement

  map_tec_addon:
    add:
    - [clinker_dry_cement, dry_ccs_cement]
    - [clinker_wet_cement, wet_ccs_cement]

  cat_addon:
    add:
    - [dry_ccs_cement, clinker_dry_ccs_cement]
    - [wet_ccs_cement, clinker_wet_ccs_cement]

aluminum:
  commodity:
    add:
    - aluminum
    - bauxite
    - alumina

  level:
    add:
    - new_scrap
    - old_scrap_1
    - old_scrap_2
    - old_scrap_3
    - useful_aluminum
    - final_material
    - useful_material
    - product
    - secondary_material
    - primary_material
    - demand
    - end_of_life
    - dummy_end_of_life_1
    - dummy_end_of_life_2
    - dummy_end_of_life_3


  technology:
    add:
    - refining_aluminum
    - soderberg_aluminum
    - prebake_aluminum
    - secondary_aluminum
    - prep_secondary_aluminum_1
    - prep_secondary_aluminum_2
    - prep_secondary_aluminum_3
    - finishing_aluminum
    - manuf_aluminum
    - scrap_recovery_aluminum_1
    - scrap_recovery_aluminum_2
    - scrap_recovery_aluminum_3
    - DUMMY_bauxite_supply
    - trade_aluminum
    - import_aluminum
    - export_aluminum
    - other_EOL_aluminum
    - total_EOL_aluminum

  relation:
    add:
      - minimum_recycling_aluminum
      - maximum_recycling_aluminum

  balance_equality:
    add:
      - ["aluminum","old_scrap_1"]
      - ["aluminum","old_scrap_2"]
      - ["aluminum","old_scrap_3"]
      - ["aluminum","end_of_life"]
      - ["aluminum","product"]
      - ["aluminum","new_scrap"]

fertilizer:
  commodity:
    require:
    - electr
    add:
    - NH3
    - Fertilizer Use|Nitrogen
    - wastewater
  level:
    add:
    - secondary_material
    - final_material
    - wastewater
  technology:
    require:
    - h2_bio_ccs  # Reference for vent-to-storage ratio
    add:
    - biomass_NH3
    - electr_NH3
    - gas_NH3
    - coal_NH3
    - fueloil_NH3
    - NH3_to_N_fertil
    - trade_NFert
    - export_NFert
    - import_NFert
    - trade_NH3
    - export_NH3
    - import_NH3
    - residual_NH3
    - biomass_NH3_ccs
    - gas_NH3_ccs
    - coal_NH3_ccs
    - fueloil_NH3_ccs
  relation:
    add:
      - NH3_trd_cap
      - NFert_trd_cap

methanol:
  commodity:
    require:
    - electr
    - biomass
    - hydrogen
    - d_heat
    add:
    - methanol
    - ht_heat
    - formaldehyde
    - ethylene
    - propylene
    - fcoh_resin

  level:
    add:
    - final_material
    - secondary_material
    - primary_material
    - export_fs
    - import_fs

  mode:
    add:
    - feedstock
    - fuel
    - ethanol

  technology:
    add:
    - meth_bio
    - meth_bio_ccs
    - meth_h2
    - meth_t_d_material
    - MTO_petro
    - CH2O_synth
    - CH2O_to_resin
    - meth_coal
    - meth_coal_ccs
    - meth_ng
    - meth_ng_ccs
    - meth_t_d
    - meth_bal
    - meth_trd
    - meth_exp
    - meth_imp
    remove:
    - sp_meth_I
    - meth_rc
    - meth_ic_trp
    - meth_fc_trp
    - meth_i
    - meth_coal
    - meth_coal_ccs
    - meth_ng
    - meth_ng_ccs
    - meth_t_d
    - meth_bal
    - meth_trd
    - meth_exp
    - meth_imp

  addon:
    add:
      - meth_h2

  type_addon:
    add:
      - methanol_synthesis_addon

  map_tec_addon:
    add:
      - [h2_elec, methanol_synthesis_addon]

  cat_addon:
    add:
      - [methanol_synthesis_addon, meth_h2]

  relation:
    add:
      - CO2_PtX_trans_disp_split
      - meth_exp_tot

  balance_equality:
    add:
    - ["methanol","export"]
    - ["methanol","export_fs"]
    - ["methanol","import"]
    - ["methanol","import_fs"]
    - ["methanol","final"]

  emission:
    add:
    - BCA
    - CO
    - HFC
    - OCA
    - NH3
    - SF6
    - VOC

buildings:
  level:
    add:
    - service

  commodity:
    add:
    - floor_area

  technology:
    add:
    - buildings

power_sector:
  unit:
    add:
      - t/kW

# NB this codelist added by #125

# iron-steel:
#   name: Iron and Steel
#   description: Iron is a chemical element with the symbol Fe, while steel is an alloy of iron and carbon and, sometimes, other elements. Measured as the total mass of material.
#   unit: Mt
#
# non-ferrous:
#   name: Non-ferrous metals
#   description: Metals and alloys which do not contain iron. Measured as the total mass of material.
#   unit: Mt
#
# aluminum:
#   name: Aluminum
#   description: Aluminum (or aluminium) is a chemical element with the symbol Al. Measured as the total mass of material.
#   unit: Mt
#   parent: non-ferrous
#
# copper:
#   name: Copper
#   description: Copper is a chemical element with the symbol Cu. Measured as the total mass of material.
#   unit: Mt
#   parent: non-ferrous
#
# minerals:
#   name: Minerals
#   description: Non-metallic minerals are minerals that have no metallic luster, break easily and include, e.g., sand, limestone, marble, clay and salt. Measured as the FE-equivalent mass of material using LCA midpoint characterization factors.
#   unit: MtFe-eq
#
# cement:
#   name: Cement
#   description: Cement is a binder used for construction that sets, hardens, and adheres to other materials to bind them together. Measured as the total mass of material.
#   unit: Mt
#   parent: minerals
#
# chemicals:
#   name: Chemicals
#   description: Industrial chemicals that form the basis of many products. Measured as the total mass of material.
#   unit: Mt
#
# ethylene:
#   name: Ethylene
#   description: Ethylene is a hydrocarbon with the formula C2H4. Measured as the total mass of material.
#   unit: Mt
#   parent: chemicals
#
# ammonia:
#   name: Ammonia
#   description: Ammonia is a compound of nitrogen and hydrogen with the formula NH3. Measured as the total mass of material.
#   unit: Mt
#   parent: chemicals
#
# paper-pulp:
#   name: Paper and pulp for paper
#   description: Pulp is a lignocellulosic fibrous material prepared by chemically or mechanically separating cellulose fibers and the raw material for making paper. Measured as the total mass of material.
#   unit: Mt

Release notes

This is the list of changes to MESSAGEix-Materials between each release.

Version 1.1.0