From 9acc71ddc55fe4da43039c9fa61420ae5536d686 Mon Sep 17 00:00:00 2001 From: Florian Maczek Date: Mon, 25 Nov 2024 13:46:03 +0100 Subject: [PATCH] Add updated aluminum capacity calibration --- .../aluminum/aluminum_techno_economic.xlsx | 4 +- .../archived/aluminum_techno_economic.xlsx | 3 + .../smelters-with 2022 projection.xls | Bin 0 -> 321536 bytes .../model/material/data_aluminum.py | 99 +++++++++++++++++- message_ix_models/model/material/util.py | 34 ++++++ 5 files changed, 137 insertions(+), 3 deletions(-) create mode 100644 message_ix_models/data/material/aluminum/archived/aluminum_techno_economic.xlsx create mode 100644 message_ix_models/data/material/aluminum/smelters-with 2022 projection.xls diff --git a/message_ix_models/data/material/aluminum/aluminum_techno_economic.xlsx b/message_ix_models/data/material/aluminum/aluminum_techno_economic.xlsx index b6470b9033..709c29ce2d 100644 --- a/message_ix_models/data/material/aluminum/aluminum_techno_economic.xlsx +++ b/message_ix_models/data/material/aluminum/aluminum_techno_economic.xlsx @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e203bd3b535e8494767e6301fa87d11eb3d8d19de2139f27108a04bcd569f10c -size 121450 +oid sha256:2144ce3f352e6bca67ed46467dd656615abdfb8bdba8548862e32bea119f4448 +size 58799 diff --git a/message_ix_models/data/material/aluminum/archived/aluminum_techno_economic.xlsx b/message_ix_models/data/material/aluminum/archived/aluminum_techno_economic.xlsx new file mode 100644 index 0000000000..fc386bb0f0 --- /dev/null +++ b/message_ix_models/data/material/aluminum/archived/aluminum_techno_economic.xlsx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:087e3fad92e1c9fcf292ea606e3d2ccf510e773bad478a9a650a2e48661267ca +size 121353 diff --git a/message_ix_models/data/material/aluminum/smelters-with 2022 projection.xls b/message_ix_models/data/material/aluminum/smelters-with 2022 projection.xls new file mode 100644 index 0000000000000000000000000000000000000000..6434f5db6d25051311a3d5bcc753584919718825 GIT binary patch literal 321536 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�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 literal 0 HcmV?d00001 diff --git a/message_ix_models/model/material/data_aluminum.py b/message_ix_models/model/material/data_aluminum.py index c1e012867f..43f9a279fc 100644 --- a/message_ix_models/model/material/data_aluminum.py +++ b/message_ix_models/model/material/data_aluminum.py @@ -15,7 +15,13 @@ from .data_util import read_rel, read_timeseries from .material_demand import material_demand_calc -from .util import combine_df_dictionaries, get_ssp_from_context, read_config +from .util import ( + add_R12_column, + combine_df_dictionaries, + get_pycountry_iso, + get_ssp_from_context, + read_config, +) def read_data_aluminum( @@ -730,3 +736,94 @@ def gen_data_alu_trade(scenario: message_ix.Scenario) -> dict[str, pd.DataFrame] results["bound_activity_lo"].append(bound_act_net_export_chn_2025) return {par_name: pd.concat(dfs) for par_name, dfs in results.items()} + + +def gen_hist_new_cap(): + df_cap = pd.read_excel( + package_data_path("material", "aluminum", "smelters-with 2022 projection.xls"), + sheet_name="Sheet1", + skipfooter=23, + ).rename(columns={"Unnamed: 0": "Country", "Unnamed: 1": "Region"}) + df_cap.Technology = df_cap.Technology.fillna("unknown") + df_cap = df_cap[~df_cap[1995].isna()] + df_cap.Country = df_cap["Country"].ffill() + df_cap["ISO"] = df_cap.Country.apply( + lambda c: get_pycountry_iso( + c, + { + "Surinam": "SUR", + "Trinidad": "TTO", + "Quatar": "QAT", + "Turkey": "TUR", + "UAE": "ARE", + "Gernamy": "DEU", + "Azerbaydzhan": "AZE", + "Russia": "RUS", + "Tadzhikistan": "TJK", + "UK": "GBR", + "Total": "World", + "Bosnia": "BIH", + }, + ) + ) + df_cap = add_R12_column( + df_cap, file_path=package_data_path("node", "R12.yaml"), iso_column="ISO" + ) + + # generate historical_new_capacity for soderberg + df_cap_ss = df_cap[ + (df_cap.Technology.str.contains("SS") & ~(df_cap.Technology.str.contains("PB"))) + & ~(df_cap.Technology.str.contains("HAL")) + & ~(df_cap.Technology.str.contains("P")) + ] + df_cap_ss_r12 = df_cap_ss.groupby("R12").sum(numeric_only=True) + sample = df_cap_ss_r12[df_cap_ss_r12[df_cap_ss_r12.columns[-1]] != 0][ + [i for i in range(1995, 2020, 5)] + [2019] + ] + hist_new_cap_ss = compute_differences(sample, 1995) / 10**6 + hist_new_cap_ss = hist_new_cap_ss.rename(columns={2019: 2020}) + hist_new_cap_ss = ( + hist_new_cap_ss.reset_index() + .melt(id_vars="R12", var_name="year_vtg") + .assign(unit="Mt", technology="soderberg_aluminum") + .rename(columns={"R12": "node_loc"}) + ) + + # generate historical_new_capacity for prebake + df_cap_pb = df_cap.loc[df_cap.index.difference(df_cap_ss.index)] + df_cap_pb_r12 = df_cap_pb.groupby("R12").sum(numeric_only=True) + sample = df_cap_pb_r12[[i for i in range(1995, 2020, 5)] + [2019]] + hist_new_cap_pb = compute_differences(sample, 1995) / 10**6 + hist_new_cap_pb = hist_new_cap_pb.rename(columns={2019: 2020}) + hist_new_cap_pb = ( + hist_new_cap_pb.reset_index() + .melt(id_vars="R12", var_name="year_vtg") + .assign(unit="Mt", technology="prebake_aluminum") + .rename(columns={"R12": "node_loc"}) + ) + + return {"historical_new_capacity": pd.concat([hist_new_cap_ss, hist_new_cap_pb])} + + +def compute_differences(df, ref_col): + # Initialize a DataFrame to store differences + differences = df[ref_col].to_frame() + + # Start with the reference column + ref_values = df[ref_col].copy() + + for col in df.columns: + if col == ref_col: + continue # Skip the reference column + + # Compute differences + diff = df[col] - ref_values + diff[diff <= 0] = 0 # Keep only positive differences + + # Store differences + differences[col] = diff + + # Update the reference column where the current column is greater + ref_values = ref_values.where(df[col] <= ref_values, df[col]) + + return differences diff --git a/message_ix_models/model/material/util.py b/message_ix_models/model/material/util.py index 5606ea64db..f316b0c3f5 100644 --- a/message_ix_models/model/material/util.py +++ b/message_ix_models/model/material/util.py @@ -5,6 +5,7 @@ import message_ix import openpyxl as pxl import pandas as pd +import pycountry import yaml from scipy.optimize import curve_fit @@ -389,3 +390,36 @@ def path_fallback(context_or_regions: Union[Context, str], *parts) -> Path: return c raise FileNotFoundError(candidates) + + +def get_pycountry_iso(row, mis_dict): + try: + row = pycountry.countries.lookup(row).alpha_3 + except LookupError: + try: + row = mis_dict[row] + except KeyError: + print(f"{row} is not mapped to an ISO") + row = None + return row + + +def get_r12_reg(df, r12_map_inv, col_name): + try: + df = r12_map_inv[df[col_name]] + except KeyError: + df = None + return df + + +def add_R12_column(df, file_path, iso_column="COUNTRY"): + # Replace 'your_file_path.yaml' with the path to your actual YAML file + # file_path = private_data_path("node", "R12_SSP_V1.yaml") + yaml_data = read_yaml_file(file_path) + yaml_data.pop("World") + + r12_map = {k: v["child"] for k, v in yaml_data.items()} + r12_map_inv = {k: v[0] for k, v in invert_dictionary(r12_map).items()} + + df["R12"] = df.apply(lambda x: get_r12_reg(x, r12_map_inv, iso_column), axis=1) + return df