diff --git a/config.yml b/config.yml index 648c2d1..c9f6fc0 100644 --- a/config.yml +++ b/config.yml @@ -54,8 +54,20 @@ weo_2023: mpp_ats_raw_path: "mpp_ats-20240227" mpp_ats_raw_filename: "2022-08-12 - MPP ATS - RPK and GHG intensity.xlsx" +weo_2024_hybrid_in_ev: + weo_2024_raw_path: "weo_2024/WEO2024 extended data" + weo_2024_ext_data_regions_raw_filename: "WEO2024_Extended_Data_Regions.csv" + weo_2024_ext_data_world_raw_filename: "WEO2024_Extended_Data_World.csv" + weo_2024_fig_chptr_3_raw_filename: 'WEO2024_Figures_Chapter_03.xlsx' + iea_global_ev_raw_filename: "electric-vehicle-sales-by-region-and-scenario-2030-and-2035.xlsx" + mpp_ats_raw_path: "mpp_ats-20240227" + mpp_ats_raw_filename: "2022-08-12 - MPP ATS - RPK and GHG intensity.xlsx" + 2022Q4: inherits: [geco_2022, isf_2021, weo_2022] 2023Q4: inherits: [geco_2023, isf_2023, weo_2023] + +2024Q4: + inherits: [weo_2024_hybrid_in_ev] diff --git a/main.R b/main.R index a0f26d0..2df7c08 100644 --- a/main.R +++ b/main.R @@ -15,7 +15,6 @@ if (fs::dir_exists(scenario_preparation_inputs_path)) { stop() } - scenario_preparation_outputs_path <- Sys.getenv( "SCENARIO_PREPARATION_OUTPUTS_PATH", "./outputs" diff --git a/process_scenario_weo_2024_hybrid_in_ev.R b/process_scenario_weo_2024_hybrid_in_ev.R new file mode 100644 index 0000000..eb29908 --- /dev/null +++ b/process_scenario_weo_2024_hybrid_in_ev.R @@ -0,0 +1,126 @@ +logger::log_info("WEO 2024: Setting WEO 2024 config.") + +weo_2024_raw_path <- config[["weo_2024_raw_path"]] +weo_2024_ext_data_regions_raw_filename <- config[["weo_2024_ext_data_regions_raw_filename"]] +weo_2024_ext_data_world_raw_filename <- config[["weo_2024_ext_data_world_raw_filename"]] +iea_global_ev_2024_raw_filename <- config[["iea_global_ev_raw_filename"]] +weo_2024_fig_chptr_3_raw_filename <- config[["weo_2024_fig_chptr_3_raw_filename"]] +mpp_ats_raw_path <- config[["mpp_ats_raw_path"]] +mpp_ats_raw_filename <- config[["mpp_ats_raw_filename"]] + +logger::log_info("WEO 2024: Setting WEO 2024 paths.") + +weo_2024_raw_full_path <- + file.path( + scenario_preparation_inputs_path, + weo_2024_raw_path + ) + +weo_2024_ext_data_regions_raw_full_filepath <- + file.path( + weo_2024_raw_full_path, + weo_2024_ext_data_regions_raw_filename + ) + +weo_2024_ext_data_world_raw_full_filepath <- + file.path( + weo_2024_raw_full_path, + weo_2024_ext_data_world_raw_filename + ) + +iea_global_ev_2024_raw_full_filepath <- + file.path( + weo_2024_raw_full_path, + iea_global_ev_2024_raw_filename + ) + +weo_2024_fig_chptr_3_raw_full_filepath <- + file.path( + weo_2024_raw_full_path, + weo_2024_fig_chptr_3_raw_filename + ) + +mpp_ats_raw_full_path <- + file.path( + scenario_preparation_inputs_path, + mpp_ats_raw_path + ) + +mpp_ats_raw_full_filepath <- + file.path( + mpp_ats_raw_full_path, + mpp_ats_raw_filename + ) + +logger::log_info("WEO 2024: Checking that WEO 2024 filepaths exist.") + +stopifnot(fs::file_exists(weo_2024_ext_data_regions_raw_full_filepath)) +stopifnot(fs::file_exists(weo_2024_ext_data_world_raw_full_filepath)) +stopifnot(fs::file_exists(weo_2024_fig_chptr_3_raw_full_filepath)) +stopifnot(fs::file_exists(iea_global_ev_2024_raw_full_filepath)) +stopifnot(fs::file_exists(mpp_ats_raw_full_filepath)) + +logger::log_info("WEO 2024: Loading WEO 2024 raw data.") + +weo_2024_ext_data_regions_raw <- + readr::read_csv( + file = weo_2024_ext_data_regions_raw_full_filepath, + show_col_types = FALSE + ) + +weo_2024_ext_data_world_raw <- + readr::read_csv( + file = weo_2024_ext_data_world_raw_full_filepath, + show_col_types = FALSE + ) + +weo_2024_fig_chptr_3_raw <- + tidyxl::xlsx_cells( + path = weo_2024_fig_chptr_3_raw_full_filepath + ) + +iea_global_ev_2024_raw <- + readxl::read_xlsx( + path = iea_global_ev_2024_raw_full_filepath, + sheet = "electric-vehicle-sales-by-regio" + ) + +iea_sales_share_ev <- + readxl::read_xlsx( + path = iea_global_ev_2024_raw_full_filepath, + sheet = "electric vehicle share-ev" + ) + +mpp_ats_raw <- + tidyxl::xlsx_cells( + path = mpp_ats_raw_full_filepath + ) + +logger::log_info("WEO 2024: Processing WEO 2024 data.") + +weo_2024 <- + pacta.scenario.data.preparation::prepare_weo_2024_hybrid_in_ev_scenario( + weo_2024_ext_data_regions_raw = weo_2024_ext_data_regions_raw, + weo_2024_ext_data_world_raw = weo_2024_ext_data_world_raw, + weo_2024_fig_chptr_3_raw = weo_2024_fig_chptr_3_raw, + iea_global_ev_2024_raw = iea_global_ev_2024_raw, + iea_sales_share_ev = iea_sales_share_ev, + mpp_ats_raw = mpp_ats_raw + ) + +if (pacta.data.validation::validate_intermediate_scenario_output(weo_2024)) { + logger::log_info("WEO 2024: WEO 2024 data is valid.") + + output_path <- fs::path(scenario_preparation_outputs_path, "weo_2024_hybrid_in_ev.csv") + + readr::write_csv( + x = weo_2024, + file = output_path + ) + + logger::log_info("WEO 2024: WEO 2024 data saved to {output_path}.") + +} else { + logger::log_error("WEO 2024 data is not valid.") + stop() +}