Skip to content
Snippets Groups Projects
Commit 84001769 authored by Alois Dirnaichner's avatar Alois Dirnaichner
Browse files

This bundles a number of refactoring changes:

- remove *explicit* flags for vintages and learning, essentially
switching those to TRUE by default.
- save and load RDS files to a subfolder in the output directory to
not clutter the output dir too much.
- add and group all RDS file save that are related to reporting.
parent 245b2e05
No related branches found
No related tags found
1 merge request!79EDGE-T Validation Output - Fix
...@@ -68,7 +68,7 @@ if (EDGE_scenario == "Conservative_liquids") { ...@@ -68,7 +68,7 @@ if (EDGE_scenario == "Conservative_liquids") {
endogeff <<- EDGEscenarios[options== "endogeff", switch] endogeff <<- EDGEscenarios[options== "endogeff", switch]
enhancedtech <<- EDGEscenarios[options== "enhancedtech", switch] enhancedtech <<- EDGEscenarios[options== "enhancedtech", switch]
rebates_febates <<- EDGEscenarios[options== "rebates_febates", switch] ##NB THEY ARE ONLY IN PSI! ONLY WORKING IN EUROPE rebates_febates <<- EDGEscenarios[options== "rebates_febates", switch] ##NB THEY ARE ONLY IN PSI! ONLY WORKING IN EUROPE
savetmpinput <<- opt$reporting
smartlifestyle <<- EDGEscenarios[options== "smartlifestyle", switch] smartlifestyle <<- EDGEscenarios[options== "smartlifestyle", switch]
...@@ -96,27 +96,22 @@ int_dat = inputdata$int_dat ...@@ -96,27 +96,22 @@ int_dat = inputdata$int_dat
nonfuel_costs = inputdata$nonfuel_costs nonfuel_costs = inputdata$nonfuel_costs
price_nonmot = inputdata$price_nonmot price_nonmot = inputdata$price_nonmot
## add learning optional
setlearning = TRUE
## add optional vintages
addvintages = TRUE
## optional average of prices ## optional average of prices
average_prices = FALSE average_prices = FALSE
## inconvenience costs instead of preference factors ## inconvenience costs instead of preference factors
inconvenience = TRUE inconvenience = TRUE
if (setlearning | addvintages){ ES_demand = readREMINDdemand(gdx, REMIND2ISO_MAPPING, EDGE2teESmap, REMINDyears)
ES_demand = readREMINDdemand(gdx, REMIND2ISO_MAPPING, EDGE2teESmap, REMINDyears) ## select from total demand only the passenger sm
## select from total demand only the passenger sm ES_demand = ES_demand[sector == "trn_pass",]
ES_demand = ES_demand[sector == "trn_pass",]
}
if (setlearning & file.exists("demand_previousiter.RDS")) {
if (file.exists("demand_previousiter.RDS")) {
## load previous iteration number of cars ## load previous iteration number of cars
demand_BEVtmp = readRDS("demand_BEV.RDS") demand_BEVtmp = readRDS(datapath("demand_BEV.RDS"))
## load previous iteration demand ## load previous iteration demand
ES_demandpr = readRDS("demand_previousiter.RDS") ES_demandpr = readRDS(datapath("demand_previousiter.RDS"))
## calculate non fuel costs and ## calculate non fuel costs and
nonfuel_costs = applylearning(gdx,REMINDmapping,EDGE2teESmap, demand_BEVtmp, ES_demandpr) nonfuel_costs = applylearning(gdx,REMINDmapping,EDGE2teESmap, demand_BEVtmp, ES_demandpr)
saveRDS(nonfuel_costs, "nonfuel_costs_learning.RDS") saveRDS(nonfuel_costs, "nonfuel_costs_learning.RDS")
...@@ -142,13 +137,13 @@ iter <- as.vector(gdxrrw::rgdx(gdx, list(name="o_iterationNumber"))$val) ...@@ -142,13 +137,13 @@ iter <- as.vector(gdxrrw::rgdx(gdx, list(name="o_iterationNumber"))$val)
REMIND_prices[, iternum := iter] REMIND_prices[, iternum := iter]
## save REMIND prices (before dampening) ## save REMIND prices (before dampening)
saveRDS(REMIND_prices, paste0("REMINDprices", iter, ".RDS")) saveRDS(REMIND_prices, datapath(paste0("REMINDprices", iter, ".RDS")))
if(average_prices){ if(average_prices){
if(max(unique(REMIND_prices$iternum)) >= 20 & max(unique(REMIND_prices$iternum)) <= 30){ if(max(unique(REMIND_prices$iternum)) >= 20 & max(unique(REMIND_prices$iternum)) <= 30){
old_prices <- readRDS(pfile) old_prices <- readRDS(datapath(pfile))
all_prices <- rbind(old_prices, REMIND_prices) all_prices <- rbind(old_prices, REMIND_prices)
setkeyv(all_prices, keys) setkeyv(all_prices, keys)
## apply moving avg ## apply moving avg
...@@ -158,10 +153,10 @@ if(average_prices){ ...@@ -158,10 +153,10 @@ if(average_prices){
}else{ }else{
all_prices <- REMIND_prices all_prices <- REMIND_prices
} }
saveRDS(all_prices, pfile) saveRDS(all_prices, datapath(pfile))
## save REMIND prices (after dampening) ## save REMIND prices (after dampening)
saveRDS(REMIND_prices,paste0("REMINDpricesDampened", iter, ".RDS")) saveRDS(REMIND_prices, datapath(paste0("REMINDpricesDampened", iter, ".RDS")))
} }
...@@ -197,48 +192,68 @@ shares <- logit_data[["share_list"]] ## shares of alternatives for each level of ...@@ -197,48 +192,68 @@ shares <- logit_data[["share_list"]] ## shares of alternatives for each level of
mj_km_data <- logit_data[["mj_km_data"]] ## energy intensity at a technology level mj_km_data <- logit_data[["mj_km_data"]] ## energy intensity at a technology level
prices <- logit_data[["prices_list"]] ## prices at each level of the logit function, 1990USD/pkm prices <- logit_data[["prices_list"]] ## prices at each level of the logit function, 1990USD/pkm
if(addvintages){
## calculate vintages (new shares, prices, intensity) ## calculate vintages (new shares, prices, intensity)
vintages = calcVint(shares = shares, vintages = calcVint(shares = shares,
totdem_regr = ES_demand, totdem_regr = ES_demand,
prices = prices, prices = prices,
mj_km_data = mj_km_data, mj_km_data = mj_km_data,
years = REMINDyears) years = REMINDyears)
shares$FV_shares = vintages[["shares"]]$FV_shares shares$FV_shares = vintages[["shares"]]$FV_shares
prices = vintages[["prices"]] prices = vintages[["prices"]]
mj_km_data = vintages[["mj_km_data"]] mj_km_data = vintages[["mj_km_data"]]
}
## use logit to calculate shares and intensities (on tech level) ## use logit to calculate shares and intensities (on tech level)
EDGE2CESmap <- fread(mapspath("mapping_CESnodes_EDGE.csv")) EDGE2CESmap <- fread(mapspath("mapping_CESnodes_EDGE.csv"))
shares_intensity_demand <- shares_intensity_and_demand( shares_intensity_demand <- shares_intensity_and_demand(
logit_shares=shares, logit_shares=shares,
MJ_km_base=mj_km_data, MJ_km_base=mj_km_data,
EDGE2CESmap=EDGE2CESmap, EDGE2CESmap=EDGE2CESmap,
REMINDyears=REMINDyears, REMINDyears=REMINDyears,
scenario=scenario, scenario=scenario,
REMIND2ISO_MAPPING=REMIND2ISO_MAPPING) REMIND2ISO_MAPPING=REMIND2ISO_MAPPING,
demand_input = if (opt$reporting) ES_demand)
demByTech <- shares_intensity_demand[["demand"]] ##in [-] demByTech <- shares_intensity_demand[["demand"]] ##in [-]
intensity <- shares_intensity_demand[["demandI"]] ##in million pkm/EJ intensity <- shares_intensity_demand[["demandI"]] ##in million pkm/EJ
norm_demand <- shares_intensity_demand$demandF_plot_pkm ## total demand is 1, required for costs norm_demand <- shares_intensity_demand$demandF_plot_pkm ## total demand is 1, required for costs
if (setlearning) { if (opt$reporting) {
demand_BEV=calc_num_vehicles( norm_dem_BEV = norm_demand[technology == "BEV" & ## battery vehicles saveRDS(vintages, file=datapath("vintages.RDS"))
subsector_L1 == "trn_pass_road_LDV_4W", ## only 4wheelers
c("iso", "year", "sector", "vehicle_type", "demand_F") ], saveRDS(logit_data$share_list, file = datapath("share_newvehicles.RDS"))
ES_demand = ES_demand) saveRDS(logit_data$EF_shares, file = datapath("EF_shares.RDS"))
saveRDS(logit_data$mj_km_data, file = datapath("mj_km_data.RDS"))
## save number of vehicles for next iteration saveRDS(nonfuel_costs, file=datapath("nonfuel_costs.RDS"))
saveRDS(demand_BEV, "demand_BEV.RDS") saveRDS(logit_data$inconv_cost, file=datapath("inco_costs.RDS"))
## save the demand for next iteration renaming the column
setnames(ES_demand, old ="demand", new = "demandpr") saveRDS(shares_intensity_and_demand$demandF_plot_EJ,
saveRDS(ES_demand, "demand_previousiter.RDS") file=datapath("demandF_plot_EJ.RDS"))
saveRDS(shares_intensity_and_demand$demandF_plot_pkm,
file=datapath("demandF_plot_pkm.RDS"))
} }
demand_BEV=calc_num_vehicles(
norm_dem_BEV = norm_demand[
technology == "BEV" & ## battery vehicles
subsector_L1 == "trn_pass_road_LDV_4W", ## only 4wheelers
c("iso", "year", "sector", "vehicle_type", "demand_F") ],
ES_demand = ES_demand)
## save number of vehicles for next iteration
saveRDS(demand_BEV, datapath("demand_BEV.RDS"))
## save the demand for next iteration renaming the column
setnames(ES_demand, old ="demand", new = "demandpr")
saveRDS(ES_demand, datapath("demand_previousiter.RDS"))
## use logit to calculate costs ## use logit to calculate costs
budget <- calculate_capCosts( budget <- calculate_capCosts(
base_price=prices$base, base_price=prices$base,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment