From 2eb159af7ca5605d9c786360a7b59e56c09a679c Mon Sep 17 00:00:00 2001 From: Fabian Neumann Date: Wed, 13 Mar 2024 13:40:23 +0100 Subject: [PATCH] idees eurostat rescaling also for period 1990-1999 --- scripts/build_energy_totals.py | 76 +++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 34 deletions(-) diff --git a/scripts/build_energy_totals.py b/scripts/build_energy_totals.py index 368d7206..1b36ec1b 100644 --- a/scripts/build_energy_totals.py +++ b/scripts/build_energy_totals.py @@ -856,44 +856,52 @@ def rescale_idees_from_eurostat( ] for country in idees_countries: - slicer_target = idx[country, 2016:2021, :, :] - slicer_source = idx[country, 2015, :, :] - for sector, mapping in mappings.items(): - sector_ratio = ratio.loc[ - (country, slice(None), slice(None), sector) - ].droplevel("lvl2") + filling_years = [(2015, slice(2016, 2021)), (2000, slice(1990, 1999))] - energy.loc[slicer_target, mapping["total"]] = cartesian( - sector_ratio.loc[2016:2021, "total"], - energy.loc[slicer_source, mapping["total"]].squeeze(), - ).values - energy.loc[slicer_target, mapping["elec"]] = cartesian( - sector_ratio.loc[2016:2021, "ele"], - energy.loc[slicer_source, mapping["elec"]].squeeze(), + for source_year, target_years in filling_years: + + slicer_source = idx[country, source_year, :, :] + slicer_target = idx[country, target_years, :, :] + + for sector, mapping in mappings.items(): + sector_ratio = ratio.loc[ + (country, slice(None), slice(None), sector) + ].droplevel("lvl2") + + energy.loc[slicer_target, mapping["total"]] = cartesian( + sector_ratio.loc[target_years, "total"], + energy.loc[slicer_source, mapping["total"]].squeeze(axis=0), + ).values + energy.loc[slicer_target, mapping["elec"]] = cartesian( + sector_ratio.loc[target_years, "ele"], + energy.loc[slicer_source, mapping["elec"]].squeeze(axis=0), + ).values + + level_drops = ["country", "lvl2", "lvl3"] + + slicer = idx[country, :, :, "Domestic aviation"] + avi_d = ratio.loc[slicer, "total"].droplevel(level_drops) + + slicer = idx[country, :, :, "International aviation"] + avi_i = ratio.loc[slicer, "total"].droplevel(level_drops) + + slicer = idx[country, :, :, "Domestic Navigation"] + nav = ratio.loc[slicer, "total"].droplevel(level_drops) + + energy.loc[slicer_target, avia_inter] = cartesian( + avi_i.loc[target_years], + energy.loc[slicer_source, avia_inter].squeeze(axis=0), ).values - level_drops = ["country", "lvl2", "lvl3"] + energy.loc[slicer_target, avia_domestic] = cartesian( + avi_d.loc[target_years], + energy.loc[slicer_source, avia_domestic].squeeze(axis=0), + ).values - slicer = idx[country, :, :, "Domestic aviation"] - avi_d = ratio.loc[slicer, "total"].droplevel(level_drops) - - slicer = idx[country, :, :, "International aviation"] - avi_i = ratio.loc[slicer, "total"].droplevel(level_drops) - - slicer = idx[country, :, :, "Domestic Navigation"] - nav = ratio.loc[slicer, "total"].droplevel(level_drops) - - energy.loc[slicer_target, avia_inter] = cartesian( - avi_i.loc[2016:2021], energy.loc[slicer_source, avia_inter].squeeze() - ).values - - energy.loc[slicer_target, avia_domestic] = cartesian( - avi_d.loc[2016:2021], energy.loc[slicer_source, avia_domestic].squeeze() - ).values - - energy.loc[slicer_target, navigation] = cartesian( - nav.loc[2016:2021], energy.loc[slicer_source, navigation] - ).values + energy.loc[slicer_target, navigation] = cartesian( + nav.loc[target_years], + energy.loc[slicer_source, navigation].squeeze(axis=0), + ).values return energy