Skip to content

Commit

Permalink
Merge pull request #468 from fbenke-pik/feDemandScenFix
Browse files Browse the repository at this point in the history
refactor and clean up FE demand calculations
  • Loading branch information
fbenke-pik authored Feb 19, 2024
2 parents 7ca633d + c0f2a17 commit 4d77d22
Show file tree
Hide file tree
Showing 27 changed files with 240 additions and 581 deletions.
3 changes: 2 additions & 1 deletion .buildlibrary
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ValidationKey: '34746870'
ValidationKey: '347699371768'
AcceptedWarnings:
- 'Warning: package ''.*'' was built under R version'
- 'Warning: namespace ''.*'' is not available and has been replaced'
Expand All @@ -11,3 +11,4 @@ AcceptedNotes:
- Imports includes .* non-default packages.
AutocreateReadme: yes
allowLinterWarnings: yes
enforceVersionUpdate: yes
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ cff-version: 1.2.0
message: If you use this software, please cite it using the metadata from this file.
type: software
title: 'mrremind: MadRat REMIND Input Data Package'
version: 0.175.8
date-released: '2024-02-12'
version: 0.175.8.9001
date-released: '2024-02-15'
abstract: The mrremind packages contains data preprocessing for the REMIND model.
authors:
- family-names: Baumstark
Expand Down
4 changes: 2 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
Type: Package
Package: mrremind
Title: MadRat REMIND Input Data Package
Version: 0.175.8
Date: 2024-02-12
Version: 0.175.8.9001
Date: 2024-02-15
Authors@R: c(
person("Lavinia", "Baumstark", , "[email protected]", role = c("aut", "cre")),
person("Renato", "Rodrigues", role = "aut"),
Expand Down
30 changes: 0 additions & 30 deletions R/calcCapacityEV.R

This file was deleted.

153 changes: 70 additions & 83 deletions R/calcCapacityFactor.R
Original file line number Diff line number Diff line change
Expand Up @@ -4,135 +4,122 @@
#' @author Renato Rodrigues, Stephen Bi
#' @importFrom plyr round_any
#' @examples
#'
#' \dontrun{
#' calcOutput("CapacityFactor")
#' }
#'

calcCapacityFactor <- function(){




calcCapacityFactor <- function() {
### calculation of coal power capacity factor
GWh_2_EJ <- 3.6e-6

# Read capacity factor inputs
global <- readSource("REMIND_11Regi", subtype="capacityFactorGlobal", convert = FALSE)
global <- readSource("REMIND_11Regi", subtype = "capacityFactorGlobal", convert = FALSE)

# remove no longer used items
notUsed <- c("apcarelt", "aptrnelt", "apcarh2t", "apcarpet", "apcardit", "apcardiefft", "apcardieffH2t")
global <- global[, , notUsed, invert = TRUE]

# Set coal plant capacity factor long-term assumption to 50% (down from 60%)
global[,,"pc"] <- 0.5
global[, , "pc"] <- 0.5
# Read capacity factor rules
rules <- readSource("REMIND_11Regi", subtype="capacityFactorRules")
rules <- readSource("REMIND_11Regi", subtype = "capacityFactorRules")

# Creating new MAgPIE object to store the final capacity values
output <- new.magpie(getRegions(rules),seq(2005,2150,5),getNames(global))

output <- new.magpie(getRegions(rules), seq(2005, 2150, 5), getNames(global))

# Merging global and rules values
# Filling MagPIE object with global values
output[,,getNames(global)] <- global[,,getNames(global)]

output[, , getNames(global)] <- global[, , getNames(global)]

### Global Coal Plant Tracker Calcs ###
# Read coal capacity and generation data to derive historical capacity factor rules
# Read generation data from Energy Balances
coalgen_c <- calcOutput("IO",subtype="output",aggregate = F)[,,"pecoal.seel"]
coalgen_c <- dimSums(coalgen_c,dim=3)
map <- toolGetMapping(getConfig("regionmapping"),type="regional", where = "mappingfolder")
coalgen_R <- toolAggregate(coalgen_c,map,weight=NULL)
coalgen_c <- calcOutput("IO", subtype = "output", aggregate = FALSE)[, , "pecoal.seel"]
coalgen_c <- dimSums(coalgen_c, dim = 3)
map <- toolGetMapping(getConfig("regionmapping"), type = "regional", where = "mappingfolder")
coalgen_R <- toolAggregate(coalgen_c, map, weight = NULL)
getNames(coalgen_c) <- "pc"
getNames(coalgen_R) <- "pc"

#Read coal capacity data from GCPT
hist_cap_coal_c <- readSource("GCPT",subtype="historical",convert=F)
hist_cap_coal_R <- toolAggregate(hist_cap_coal_c,rel=map,weight=NULL)

#Calculate historical 5-year average capacity factors by country
coal_factor_c <- new.magpie(getRegions(hist_cap_coal_c),years = seq(2005, round_any(max(getYears(coalgen_c, as.integer = TRUE)), 5, f = floor)),names="pc",fill=0)
coal_factor_R <- new.magpie(getRegions(hist_cap_coal_R),years = getYears(coal_factor_c),names="pc",fill=0)
for (i in getYears(coal_factor_c,as.integer=TRUE)) {
if ((i+2) %in% getYears(coalgen_c,as.integer=TRUE)) {
coal_factor_c[,i,] <- dimSums(coalgen_c[,(i-2):(i+2),],dim=2)/(dimSums(hist_cap_coal_c[,(i-2):(i+2),],dim=2)*365*24 * GWh_2_EJ)
coal_factor_R[,i,] <- dimSums(coalgen_R[,(i-2):(i+2),],dim=2)/(dimSums(hist_cap_coal_R[,(i-2):(i+2),],dim=2)*365*24 * GWh_2_EJ)
#coal_factor_c[,i,][which(dimSums(hist_cap_coal_c[,(i-2):(i+2),],dim=2)==0)] <- 0
# If latest available data falls in year 4 of a 5-year timestep
}else if ((i+1) %in% getYears(coalgen_c,as.integer=TRUE)) {
# Read coal capacity data from GCPT
hist_cap_coal_c <- readSource("GCPT", subtype = "historical", convert = FALSE)
hist_cap_coal_R <- toolAggregate(hist_cap_coal_c, rel = map, weight = NULL)

# Calculate historical 5-year average capacity factors by country
coal_factor_c <- new.magpie(getRegions(hist_cap_coal_c), years = seq(2005, round_any(max(getYears(coalgen_c, as.integer = TRUE)), 5, f = floor)), names = "pc", fill = 0)
coal_factor_R <- new.magpie(getRegions(hist_cap_coal_R), years = getYears(coal_factor_c), names = "pc", fill = 0)
for (i in getYears(coal_factor_c, as.integer = TRUE)) {
if ((i + 2) %in% getYears(coalgen_c, as.integer = TRUE)) {
coal_factor_c[, i, ] <- dimSums(coalgen_c[, (i - 2):(i + 2), ], dim = 2) / (dimSums(hist_cap_coal_c[, (i - 2):(i + 2), ], dim = 2) * 365 * 24 * GWh_2_EJ)
coal_factor_R[, i, ] <- dimSums(coalgen_R[, (i - 2):(i + 2), ], dim = 2) / (dimSums(hist_cap_coal_R[, (i - 2):(i + 2), ], dim = 2) * 365 * 24 * GWh_2_EJ)
# If latest available data falls in year 4 of a 5-year timestep
} else if ((i + 1) %in% getYears(coalgen_c, as.integer = TRUE)) {
# Special treatment of 2020 due to COVID-19: half-weight 2020
if (i==2020) {
coal_factor_c[,i,] <- (dimSums(coalgen_c[,(i-2):(i+1),],dim=2) - 0.5 * dimSums(coalgen_c[,(i),],dim=2)) /
((dimSums(hist_cap_coal_c[,(i-2):(i+1),],dim=2) + dimSums(hist_cap_coal_c[,(i+1),],dim=2))*365*24 * GWh_2_EJ)
coal_factor_R[,i,] <- (dimSums(coalgen_R[,(i-2):(i+1),],dim=2) + dimSums(coalgen_R[,(i+1),],dim=2)) /
((dimSums(hist_cap_coal_R[,(i-2):(i+1),],dim=2) - 0.5 * dimSums(hist_cap_coal_R[,(i),],dim=2))*365*24 * GWh_2_EJ)
# For other timesteps, just use a 4-year average
}else {
coal_factor_c[,i,] <- dimSums(coalgen_c[,(i-2):(i+1),],dim=2) / (dimSums(hist_cap_coal_c[,(i-2):(i+1),],dim=2)*365*24 * GWh_2_EJ)
coal_factor_R[,i,] <- dimSums(coalgen_R[,(i-2):(i+1),],dim=2) / (dimSums(hist_cap_coal_R[,(i-2):(i+1),],dim=2)*365*24 * GWh_2_EJ)
if (i == 2020) {
coal_factor_c[, i, ] <- (dimSums(coalgen_c[, (i - 2):(i + 1), ], dim = 2) - 0.5 * dimSums(coalgen_c[, (i), ], dim = 2)) /
((dimSums(hist_cap_coal_c[, (i - 2):(i + 1), ], dim = 2) + dimSums(hist_cap_coal_c[, (i + 1), ], dim = 2)) * 365 * 24 * GWh_2_EJ)
coal_factor_R[, i, ] <- (dimSums(coalgen_R[, (i - 2):(i + 1), ], dim = 2) + dimSums(coalgen_R[, (i + 1), ], dim = 2)) /
((dimSums(hist_cap_coal_R[, (i - 2):(i + 1), ], dim = 2) - 0.5 * dimSums(hist_cap_coal_R[, (i), ], dim = 2)) * 365 * 24 * GWh_2_EJ)
# For other timesteps, just use a 4-year average
} else {
coal_factor_c[, i, ] <- dimSums(coalgen_c[, (i - 2):(i + 1), ], dim = 2) / (dimSums(hist_cap_coal_c[, (i - 2):(i + 1), ], dim = 2) * 365 * 24 * GWh_2_EJ)
coal_factor_R[, i, ] <- dimSums(coalgen_R[, (i - 2):(i + 1), ], dim = 2) / (dimSums(hist_cap_coal_R[, (i - 2):(i + 1), ], dim = 2) * 365 * 24 * GWh_2_EJ)
}
# If latest available data falls in the middle of a timestep
}else {
# If latest available data falls in the middle of a timestep
} else {
# if only data until 2020 is available, assign a double-weight to 2018 and 2019
if (i==2020) {
coal_factor_c[,i,] <- (dimSums(coalgen_c[,(i-2):i,],dim=2) + dimSums(coalgen_c[,(i-2):(i-1),],dim=2)) /
((dimSums(hist_cap_coal_c[,(i-2):i,],dim=2) + dimSums(hist_cap_coal_c[,(i-2):(i-1),],dim=2))*365*24 * GWh_2_EJ)
coal_factor_R[,i,] <- (dimSums(coalgen_R[,(i-2):i,],dim=2) + dimSums(coalgen_R[,(i-2):(i-1),],dim=2)) /
((dimSums(hist_cap_coal_R[,(i-2):i,],dim=2) + dimSums(hist_cap_coal_R[,(i-2):(i-1),],dim=2))*365*24 * GWh_2_EJ)
# For other timesteps, assign triple-weight to final year
# Valid assumption for 2015 capacity factors
}else {
coal_factor_c[,i,] <- (dimSums(coalgen_c[,(i-2):i,],dim=2) + 2*coalgen_c[,i,]) /
((dimSums(hist_cap_coal_c[,(i-2):i,],dim=2) + 2*hist_cap_coal_c[,i,])*365*24 * GWh_2_EJ)
coal_factor_R[,i,] <- (dimSums(coalgen_R[,(i-2):i,],dim=2) + 2*coalgen_R[,i,]) /
((dimSums(hist_cap_coal_R[,(i-2):i,],dim=2) + 2*hist_cap_coal_R[,i,])*365*24 * GWh_2_EJ)
if (i == 2020) {
coal_factor_c[, i, ] <- (dimSums(coalgen_c[, (i - 2):i, ], dim = 2) + dimSums(coalgen_c[, (i - 2):(i - 1), ], dim = 2)) /
((dimSums(hist_cap_coal_c[, (i - 2):i, ], dim = 2) + dimSums(hist_cap_coal_c[, (i - 2):(i - 1), ], dim = 2)) * 365 * 24 * GWh_2_EJ)
coal_factor_R[, i, ] <- (dimSums(coalgen_R[, (i - 2):i, ], dim = 2) + dimSums(coalgen_R[, (i - 2):(i - 1), ], dim = 2)) /
((dimSums(hist_cap_coal_R[, (i - 2):i, ], dim = 2) + dimSums(hist_cap_coal_R[, (i - 2):(i - 1), ], dim = 2)) * 365 * 24 * GWh_2_EJ)
# For other timesteps, assign triple-weight to final year
# Valid assumption for 2015 capacity factors
} else {
coal_factor_c[, i, ] <- (dimSums(coalgen_c[, (i - 2):i, ], dim = 2) + 2 * coalgen_c[, i, ]) /
((dimSums(hist_cap_coal_c[, (i - 2):i, ], dim = 2) + 2 * hist_cap_coal_c[, i, ]) * 365 * 24 * GWh_2_EJ)
coal_factor_R[, i, ] <- (dimSums(coalgen_R[, (i - 2):i, ], dim = 2) + 2 * coalgen_R[, i, ]) /
((dimSums(hist_cap_coal_R[, (i - 2):i, ], dim = 2) + 2 * hist_cap_coal_R[, i, ]) * 365 * 24 * GWh_2_EJ)
}
#coal_factor_c[,i,][which(hist_cap_coal_c[,i,]==0)] <- 0
}
#Replace countries without coal power with regional capacity factor.
coal_factor_c[,i,][which(!is.finite(coal_factor_c[,i,]))] <-
coal_factor_R[map$RegionCode[which(map$CountryCode %in% getRegions(coal_factor_c)[which(!is.finite(coal_factor_c[,i,]))])],i,]
# Replace countries without coal power with regional capacity factor.
coal_factor_c[, i, ][which(!is.finite(coal_factor_c[, i, ]))] <-
coal_factor_R[map$RegionCode[which(map$CountryCode %in% getRegions(coal_factor_c)[which(!is.finite(coal_factor_c[, i, ]))])], i, ]
# The derived coal capacity factors for Bosnia, Ireland and Myanmar are > 1 in some years for as yet unclear reasons.
coal_factor_c[,i,][which(coal_factor_c[,i,]>1)] <- max(coal_factor_c[,i,][which(coal_factor_c[,i,]<1)])
coal_factor_c[, i, ][which(coal_factor_c[, i, ] > 1)] <- max(coal_factor_c[, i, ][which(coal_factor_c[, i, ] < 1)])
}

#Derive coal capacity factor rule assumptions for 2020 - 2035 (linear convergence of historical trends to global default)
# Derive coal capacity factor rule assumptions for 2020 - 2035 (linear convergence of historical trends to global default)
hist_yr <- "y2015"
start_yr <- "y2020"
end_yr <- "y2030"
conv_yr <- "y2035"

coal_factor_c_years <- intersect(getYears(coal_factor_c), getYears(output))
coal_factor_c_years <- coal_factor_c_years[coal_factor_c_years < start_yr]
output[,getYears(output)[getYears(output) < start_yr],"pc"] <-
coal_factor_c[,coal_factor_c_years,]
output[, getYears(output)[getYears(output) < start_yr], "pc"] <-
coal_factor_c[, coal_factor_c_years, ]

output[,getYears(output)[which(getYears(output)>=conv_yr)],"pc"] <- global[,,"pc"]
slope <- (output[,conv_yr,'pc'] - output[,hist_yr,'pc']) / (as.numeric(gsub("y","",conv_yr)) - as.numeric(gsub("y","",hist_yr)))
for (t in getYears(output)[which(getYears(output)>=start_yr & getYears(output)<=end_yr)]) {
output[,t,"pc"] <- output[,hist_yr,"pc"] + slope * (as.numeric(gsub("y","",t)) - as.numeric(gsub("y","",hist_yr)))
output[, getYears(output)[which(getYears(output) >= conv_yr)], "pc"] <- global[, , "pc"]
slope <- (output[, conv_yr, "pc"] - output[, hist_yr, "pc"]) / (as.numeric(gsub("y", "", conv_yr)) - as.numeric(gsub("y", "", hist_yr)))
for (t in getYears(output)[which(getYears(output) >= start_yr & getYears(output) <= end_yr)]) {
output[, t, "pc"] <- output[, hist_yr, "pc"] + slope * (as.numeric(gsub("y", "", t)) - as.numeric(gsub("y", "", hist_yr)))
}

# Overwriting MAgPie object with rules values
output[getRegions(rules),getYears(rules),getNames(rules)] <- ifelse(rules[getRegions(rules),getYears(rules),getNames(rules)]!=0, rules[getRegions(rules),getYears(rules),getNames(rules)], output[getRegions(rules),getYears(rules),getNames(rules)])

# Convergence and lin.convergence functions are not working...
# output[,getYears(output)[which(getYears(output)>=hist_yr & getYears(output)<=conv_yr)],"pc"] <-
# convergence(origin=output[,getYears(output)[which(getYears(output)>=hist_yr & getYears(output)<=conv_yr)],"pc"],
# aim=as.numeric(global[,,"pc"]),start_year=start_yr,end_year=conv_yr)
# Define weight aggregation for capacity factors
# using final energy as a proxy for the existent capacity factor to weight the capacity factor aggregation (it should be changed if the information about the existent capacity factor become available in the future)

output[getRegions(rules), getYears(rules), getNames(rules)] <- ifelse(rules[getRegions(rules), getYears(rules), getNames(rules)] != 0, rules[getRegions(rules), getYears(rules), getNames(rules)], output[getRegions(rules), getYears(rules), getNames(rules)])

# change coal capacity factor in Germany to reflect observed decrease in coal electricity in recent years, note: to be checked whether necessary for other regions as well
# https://static.agora-energiewende.de/fileadmin/Projekte/2021/2020_01_Jahresauswertung_2020/200_A-EW_Jahresauswertung_2020_WEB.pdf
output["DEU",c("y2020","y2025"),"pc"] = 0.43
output["DEU",c("y2030"),"pc"] = 0.4
output["DEU", c("y2020", "y2025"), "pc"] <- 0.43
output["DEU", c("y2030"), "pc"] <- 0.4

weight <- calcOutput("FE",source="IEA",aggregate=FALSE)[,2015,"FE (EJ/yr)"]
weight <- calcOutput("FE", source = "IEA", aggregate = FALSE)[, 2015, "FE (EJ/yr)"]

# Return regions aggregation weighted by final energy
return(list(x=output, weight=weight,
unit="% of capacity",
description="Installed capacity availability - capacity factor (fraction of the year that a plant is running)"
return(list(
x = output, weight = weight,
unit = "% of capacity",
description = "Installed capacity availability - capacity factor (fraction of the year that a plant is running)"
))

}
5 changes: 0 additions & 5 deletions R/calcEDGETransport.R
Original file line number Diff line number Diff line change
Expand Up @@ -124,11 +124,6 @@ calcEDGETransport <- function(subtype = "logit_exponent") {
weight = NULL
unit = "EJ"
description = "UE demand divided by technologies for different ES on the CES level."
},
"f35_bunkers_fe" = {
weight = NULL
unit = "EJ"
description = "Bunkers FE trajectory from edge-t."
})

return(list(x = data,
Expand Down
3 changes: 2 additions & 1 deletion R/calcFE.R
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ calcFE <- function(source = "IEA", scenario_proj = "SSP2", ieaVersion = "default
colnames(map) <- gsub("io", "names_in", colnames(map))

# Give description
descript <- "IEA Final Energy Data based on 2022 version of IEA Energy Balances"
ieaYear <- if (ieaVersion == "default") 2022 else 2023
descript <- paste0("IEA Final Energy Data based on ", ieaYear, " version of IEA Energy Balances")

#------ PROCESS DATA ------------------------------------------
# select data that have names
Expand Down
13 changes: 13 additions & 0 deletions R/calcFEdemand.R
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,19 @@ calcFEdemand <- function() {
feIndustry <- calcOutput("FeDemandIndustry", warnNA = FALSE, aggregate = FALSE)
feTransport <- calcOutput("FeDemandTransport", warnNA = FALSE, aggregate = FALSE)

# duplicate scenarios ----

# add Navigate and Campaigners scenarios to industry and transport to match buildings scenarios by duplication
duplicateScens <- paste0("gdp_SSP2EU_", c("NAV_act", "NAV_ele", "NAV_tec", "NAV_lce", "NAV_all", "CAMP_weak", "CAMP_strong"))

feTransport <- mbind(feTransport, do.call(mbind, lapply(duplicateScens, function(to) {
setItems(feTransport[, , "gdp_SSP2EU"], 3.1, to)
})))

feIndustry <- mbind(feIndustry, do.call(mbind, lapply(duplicateScens, function(to) {
setItems(feIndustry[, , "gdp_SSP2EU"], 3.1, to)
})))

# add up industry and buildings contributions to stationary
stationaryItems <- c("fehes", "feh2s")
feStationary <- feIndustry[, , stationaryItems] + feBuildings[, , stationaryItems]
Expand Down
13 changes: 11 additions & 2 deletions R/calcFeDemandBuildings.R
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,27 @@ calcFeDemandBuildings <- function(subtype) {
buildings <- toolAggregateTimeSteps(buildings)
stationary <- toolAggregateTimeSteps(stationary)

# add scenarios to stationary to match buildings scenarios by duplication
duplicateScens <- paste0("SSP2EU_", c("NAV_act", "NAV_ele", "NAV_tec", "NAV_lce", "NAV_all", "CAMP_weak", "CAMP_strong"))
stationary <- mbind(stationary, do.call(mbind, lapply(duplicateScens, function(to) {
setItems(stationary[, , "SSP2EU"], 3.1, to)
})))

if (subtype == "FE") {

# drop RCP dimension (use fixed RCP)
buildings <- mselect(buildings, rcp = "fixed", collapseNames = TRUE)

} else {

# rename RCP scenarios in buildings
rcps <- paste0("rcp", gsub("p", "", getItems(buildings, "rcp")))
rcps <- gsub("rcpfixed", "none", rcps)
getItems(buildings, "rcp") <- rcps

# expand stationary to all RCP scenarios
stationary <- toolAddDimensions(x = stationary, dimVals = rcps, dimName = "rcp", dimCode = 3.2)

}

# extrapolate years missing in buildings, but existing in stationary
Expand Down Expand Up @@ -122,8 +132,7 @@ calcFeDemandBuildings <- function(subtype) {

# remove missing NAVIGATE scenarios
if (subtype %in% c("FE_buildings", "UE_buildings")) {
remind <- remind[, , grep("SSP2EU_(NAV|CAMP)_[a-z]*\\.rcp", getItems(remind, 3), value = TRUE),
invert = TRUE]
remind <- remind[, , grep("SSP2EU_(NAV|CAMP)_[a-z]*\\.rcp", getItems(remind, 3), value = TRUE), invert = TRUE]
}

# change the scenario names for consistency with REMIND sets
Expand Down
19 changes: 0 additions & 19 deletions R/calcFeDemandIndustry.R
Original file line number Diff line number Diff line change
Expand Up @@ -1605,27 +1605,8 @@ calcFeDemandIndustry <- function(use_ODYM_RECC = FALSE) {

remind <- mbind(remind, industry_subsectors_en, industry_subsectors_ue)

# ---- _ duplicate SSP2EU scenarios of industry for Navigate and Campaigners scenarios ----

industryItems <- grep("(.*i$)|chemicals|steel|otherInd|cement",
getItems(remind, 3.2), value = TRUE)
nonIndustryItems <- setdiff(getItems(remind, 3.2), industryItems)
duplScenarios <- grep("SSP2EU_(NAV|CAMP)_", getItems(remind, 3.1), value = TRUE)
nonDuplScenarios <- setdiff(getItems(remind, 3.1), duplScenarios)
remind <- mbind(
mselect(remind, scenario = nonDuplScenarios),
mselect(remind, scenario = duplScenarios, item = nonIndustryItems),
toolAddDimensions(x = mselect(remind, scenario = "gdp_SSP2EU", item = industryItems,
collapseNames = TRUE),
dimVals = c(paste0("gdp_SSP2EU_NAV_", c("act", "tec", "ele", "lce", "all")),
paste0("gdp_SSP2EU_CAMP_", c("weak", "strong"))),
dimName = "scenario",
dimCode = 3.1)
)

# ---- _ prepare output ----


return(list(
x = remind,
weight = NULL,
Expand Down
Loading

0 comments on commit 4d77d22

Please sign in to comment.