message_ix_models.model.bmt.utils.subtract_material_demand

message_ix_models.model.bmt.utils.subtract_material_demand(scenario: Scenario, info: ScenarioInfo, sturm_r: DataFrame, sturm_c: DataFrame, method: str = 'bm_subtraction', generate_vetting_csv: bool = True, vetting_output_path: str = 'material_demand_subtraction_vetting.csv') DataFrame[source]

Subtract inter-sector material demand from existing demands in scenario.

This function provides different approaches for subtracting inter-sector material demand from the original material demand, due to BM (material inputs for residential and commercial building construction), PM (material inputs for power capacity), IM (material inputs for infrastructures), TM (material inputs for new vehicles) links.

Parameters:
  • scenario (message_ix.Scenario) – The scenario to modify

  • info (ScenarioInfo) – Scenario information

  • sturm_r (pd.DataFrame) – Residential STURM data

  • sturm_c (pd.DataFrame) – Commercial STURM data

  • method (str, optional) –

    Method to use for subtraction:

    • ”bm_subtraction”: default, substract entire trajectory

    • ”im_subtraction”: substract base year and rerun material demand projection

    • ”pm_subtraction”: to be determined (currently treated as additional demand)

    • ”tm_subtraction”: to be determined

  • generate_vetting_csv (bool, optional) – Whether to generate a CSV file showing subtraction details (default: True)

  • vetting_output_path (str, optional) – Path for the vetting CSV file (default: “material_demand_subtraction_vetting.csv”)

Returns:

Modified demand data with material demand subtracted

Return type:

pd.DataFrame