Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor and clean up FE demand calculations #468

Merged
merged 15 commits into from
Feb 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading