From be041f443c192f8b42e325926312adb7eaa72afb Mon Sep 17 00:00:00 2001 From: CJ Yetman Date: Thu, 28 Nov 2024 16:17:46 +0100 Subject: [PATCH] add `prep_emissions_trajectory()` --- main.R | 92 +++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 75 insertions(+), 17 deletions(-) diff --git a/main.R b/main.R index caf419b..521fc5f 100644 --- a/main.R +++ b/main.R @@ -395,6 +395,66 @@ prep_key_bars_portfolio <- } +# ------------------------------------------------------------------------- +# prep_emissions_trajectory ------------------------------------------------------ +# based on pacta.portfolio.report:::prep_emissions_trajectory, but does not +# filter by scenario and scenario source + +prep_emissions_trajectory <- + function(equity_results_portfolio, + bonds_results_portfolio, + portfolio_name, + pacta_sectors, + year_span, + start_year + ) { + emissions_units <- + c( + Automotive = "tons of CO\U00002082 per km per cars produced", + Aviation = "tons of CO\U00002082 per passenger km per active planes", + Cement = "tons of CO\U00002082 per tons of cement", + Coal = "tons of CO\U00002082 per tons of coal", + `Oil&Gas` = "tons of CO\U00002082 per GJ", + Power = "tons of CO\U00002082 per MWh", + Steel = "tons of CO\U00002082 per tons of steel" + ) + + list(`Listed Equity` = equity_results_portfolio, + `Corporate Bonds` = bonds_results_portfolio) %>% + bind_rows(.id = "asset_class") %>% + filter(.data$portfolio_name == .env$portfolio_name) %>% + filter(.data$scenario_geography == "Global") %>% + select( + "asset_class", + "allocation", + "equity_market", + sector = "ald_sector", + "year", + plan = "plan_sec_emissions_factor", + scen = "scen_sec_emissions_factor", + "scenario", + "scenario_source" + ) %>% + distinct() %>% + filter(!is.nan(.data$plan)) %>% + pivot_longer(c("plan", "scen"), names_to = "plan") %>% + unite("name", "sector", "plan", remove = FALSE) %>% + mutate(disabled = !.data$sector %in% .env$pacta_sectors) %>% + mutate(unit = .env$emissions_units[.data$sector]) %>% + group_by(.data$asset_class) %>% + filter(!all(.data$disabled)) %>% + mutate(equity_market = case_when( + .data$equity_market == "GlobalMarket" ~ "Global Market", + .data$equity_market == "DevelopedMarket" ~ "Developed Market", + .data$equity_market == "EmergingMarket" ~ "Emerging Market", + TRUE ~ .data$equity_market) + ) %>% + filter(.data$year <= .env$start_year + .env$year_span) %>% + arrange(.data$asset_class, factor(.data$equity_market, levels = c("Global Market", "Developed Market", "Emerging Market"))) %>% + ungroup() + } + + # input and output directories ------------------------------------------------- input_dir <- "./inputs" @@ -665,23 +725,7 @@ pacta.portfolio.report:::prep_trajectory_alignment( jsonlite::write_json(path = file.path(output_dir, "data_trajectory_alignment.json")) -# data_emissions.json ---------------------------------------------------------- - -pacta.portfolio.report:::prep_emissions_trajectory( - equity_results_portfolio = equity_results_portfolio, - bonds_results_portfolio = bonds_results_portfolio, - investor_name = investor_name, - portfolio_name = portfolio_name, - select_scenario_other = select_scenario_other, - select_scenario = select_scenario, - pacta_sectors = pacta_sectors, - year_span = year_span, - start_year = start_year - ) %>% - pacta.portfolio.report:::translate_df_contents("data_emissions", dictionary) %>% - jsonlite::write_json(path = file.path(output_dir, "data_emissions.json")) - -# data_exposure_stats.json +# data_exposure_stats.json ----------------------------------------------------- prep_exposure_stats( audit_file = audit_file, @@ -731,3 +775,17 @@ prep_key_bars_portfolio( ) %>% pacta.portfolio.report:::translate_df_contents("data_key_bars_portfolio", dictionary) %>% jsonlite::write_json(path = file.path(output_dir, "data_techexposure_company_portfolio.json")) + + +# data_emissions.json ---------------------------------------------------------- + +prep_emissions_trajectory( + equity_results_portfolio = equity_results_portfolio, + bonds_results_portfolio = bonds_results_portfolio, + portfolio_name = portfolio_name, + pacta_sectors = pacta_sectors, + year_span = year_span, + start_year = start_year +) %>% + pacta.portfolio.report:::translate_df_contents("data_emissions", dictionary) %>% + jsonlite::write_json(path = file.path(output_dir, "data_emissions.json"))