From 33008e11631f7cf9811fbf08b019b12459f599de Mon Sep 17 00:00:00 2001
From: Marianna Rottoli <rottoli@pik-potsdam.de>
Date: Mon, 9 Mar 2020 17:40:30 +0100
Subject: [PATCH] Iterative script adapted to inconvenience cost calculation by
 component.

---
 scripts/iterative/EDGE_transport.R | 38 +++++++++++++++++-------------
 1 file changed, 21 insertions(+), 17 deletions(-)

diff --git a/scripts/iterative/EDGE_transport.R b/scripts/iterative/EDGE_transport.R
index 1a7f4d3..a29aa81 100644
--- a/scripts/iterative/EDGE_transport.R
+++ b/scripts/iterative/EDGE_transport.R
@@ -48,15 +48,13 @@ EDGE_scenario <- cfg$gms$cm_EDGEtr_scen
 EDGEscenarios <- fread("../../modules/35_transport/edge_esm/input/EDGEscenario_description.csv")[scenario_name == EDGE_scenario]
 
 inconvenience <- EDGEscenarios[options == "inconvenience", switch]
-selfmarket_policypush <- EDGEscenarios[options == "selfmarket_policypush", switch]
-selfmarket_acceptancy <- EDGEscenarios[options == "selfmarket_acceptancy", switch]
 
 if (EDGE_scenario == "Conservative_liquids") {
-  techswitch <<- "Liquids"
+  techswitch <- "Liquids"
 } else if (EDGE_scenario %in% c("Electricity_push", "Smart_lifestyles_Electricity_push")) {
-  techswitch <<- "BEV"
+  techswitch <- "BEV"
 } else if (EDGE_scenario == "Hydrogen_push") {
-  techswitch <<- "FCEV"
+  techswitch <- "FCEV"
 } else {
   print("You selected a not allowed scenario. Scenarios allowed are: Conservative_liquids, Hydrogen_push, Electricity_push, Smart_lifestyles_Electricity_push")
   exit()
@@ -79,12 +77,15 @@ inputdata <- loadInputData(data_folder)
 
 
 vot_data = inputdata$vot_data
-sw_data = inputdata$sw_data
-inco_data = inputdata$inco_data
 logit_params = inputdata$logit_params
 int_dat = inputdata$int_dat
 nonfuel_costs = inputdata$nonfuel_costs
 price_nonmot = inputdata$price_nonmot
+pref_data = inputdata$pref_data
+
+## Moinput produces all combinations of iso-vehicle types and attributes a 0. These ghost entries have to be cleared.
+int_dat = int_dat[EJ_Mpkm_final>0]
+pref_data$FV_final_pref = merge(pref_data$FV_final_pref, unique(int_dat[, c("iso", "vehicle_type")]), by = c("iso", "vehicle_type"), all.y = TRUE)
 
 ## optional average of prices
 average_prices = FALSE
@@ -101,9 +102,13 @@ if (file.exists(datapath("demand_previousiter.RDS"))) {
   demand_BEVtmp = readRDS(datapath("demand_BEV.RDS"))
   ## load previous iteration demand
   ES_demandpr = readRDS(datapath("demand_previousiter.RDS"))
+  ## load previus iteration number of stations
+  stations = readRDS(datapath("stations.RDS"))
   ## calculate non fuel costs and
   nonfuel_costs = applylearning(gdx,REMINDmapping,EDGE2teESmap, demand_BEVtmp, ES_demandpr)
   saveRDS(nonfuel_costs, "nonfuel_costs_learning.RDS")
+} else {
+  stations = NULL
 }
 
 ## load price
@@ -158,12 +163,11 @@ if (inconvenience) {
   logit_data <- calculate_logit_inconv_endog(
     prices= REMIND_prices[tot_price > 0],
     vot_data = vot_data,
-    inco_data = inco_data,
+    pref_data = pref_data,
     logit_params = logit_params,
     intensity_data = int_dat,
     price_nonmot = price_nonmot,
-    selfmarket_policypush = selfmarket_policypush,
-    selfmarket_acceptancy = selfmarket_acceptancy)
+    stations = if (!is.null(stations)) stations)
 
 } else{
 
@@ -211,7 +215,7 @@ shares_int_dem <- shares_intensity_and_demand(
 
 demByTech <- shares_int_dem[["demand"]] ##in [-]
 intensity <- shares_int_dem[["demandI"]] ##in million pkm/EJ
-norm_demand <- shares_int_dem[["demandF_plot_pkm"]] ## total demand is 1, required for costs
+norm_demand <- shares_int_dem[["demandF_plot_EJ"]] ## total demand is 1, required for costs
 
 
 if (opt$reporting) {
@@ -229,15 +233,15 @@ if (opt$reporting) {
   quit()
 }
 
-demand_BEV=calc_num_vehicles(
-  norm_dem_BEV = norm_demand[
-    technology == "BEV" & ## battery vehicles
+num_veh_stations = calc_num_vehicles_stations(
+  norm_dem = norm_demand[
     subsector_L1 == "trn_pass_road_LDV_4W", ## only 4wheelers
-    c("iso", "year", "sector", "vehicle_type", "demand_F") ],
-  ES_demand = ES_demand)
+    c("iso", "year", "sector", "vehicle_type", "technology", "demand_F") ],
+    ES_demand_all = ES_demand_all)
 
 ## save number of vehicles for next iteration
-saveRDS(demand_BEV, datapath("demand_BEV.RDS"))
+saveRDS(num_veh_stations$BEVdem, datapath("demand_BEV.RDS"))
+saveRDS(num_veh_stations$stations, datapath("stations.RDS"))
 ## save the demand for next iteration renaming the column
 setnames(ES_demand, old ="demand", new = "demandpr")
 saveRDS(ES_demand, datapath("demand_previousiter.RDS"))
-- 
GitLab