diff --git a/.buildlibrary b/.buildlibrary index 47c149df..5b56fd7e 100644 --- a/.buildlibrary +++ b/.buildlibrary @@ -1,10 +1,12 @@ -ValidationKey: '22955016' +ValidationKey: '23132480' AutocreateReadme: yes AutocreateCITATION: yes AcceptedWarnings: - 'Warning: package ''.*'' was built under R version' - 'Warning: namespace ''.*'' is not available and has been replaced' -AcceptedNotes: madrat:::getSourceFolder +AcceptedNotes: +- madrat:::getSourceFolder +- .* includes the non-default packages.* allowLinterWarnings: yes enforceVersionUpdate: yes skipCoverage: yes diff --git a/CITATION.cff b/CITATION.cff index b4d56ff5..c60e90bd 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -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: 'mrmfa: Input data generation for the REMIND MFA' -version: 1.11.2 -date-released: '2026-07-09' +version: 1.12.0 +date-released: '2026-07-20' abstract: The mrmfa packages contains data preprocessing for the REMIND MFA. authors: - family-names: Dürrwächter diff --git a/DESCRIPTION b/DESCRIPTION index 0ebcb81a..d1370278 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Type: Package Package: mrmfa Title: Input data generation for the REMIND MFA -Version: 1.11.2 -Date: 2026-07-09 +Version: 1.12.0 +Date: 2026-07-20 Authors@R: c( person("Jakob", "Dürrwächter", , "jakobdu@pik-potsdam.de", role = c("aut", "cre")), person("Bennet", "Weiss", , "bennet.weiss@pik-potsdam.de", role = "aut"), @@ -20,6 +20,7 @@ Depends: magclass (>= 6.16.1), mrdrivers (>= 4.0.0), mrcommonsenergy (>= 0.3.4), + mrindustry (>= 1.2.1), GDPuc (>= 1.3.0), Imports: glue, @@ -30,6 +31,7 @@ Imports: magrittr, purrr, quitte, + R.matlab, readr, readxl, rlang, diff --git a/NAMESPACE b/NAMESPACE index 2c45a79b..aa14ed82 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -7,6 +7,7 @@ import(madrat) import(magclass) import(mrcommonsenergy) import(mrdrivers) +import(mrindustry) importFrom(data.table,first) importFrom(dplyr,across) importFrom(dplyr,all_of) @@ -24,7 +25,18 @@ importFrom(dplyr,summarise) importFrom(dplyr,summarize) importFrom(dplyr,ungroup) importFrom(magclass,"getComment<-") +importFrom(magclass,"getItems<-") +importFrom(magclass,"getNames<-") +importFrom(magclass,add_dimension) importFrom(magclass,as.magpie) +importFrom(magclass,collapseNames) +importFrom(magclass,dimSums) +importFrom(magclass,getItems) +importFrom(magclass,getNames) +importFrom(magclass,getYears) +importFrom(magclass,mbind) +importFrom(magclass,mselect) +importFrom(magclass,setNames) importFrom(magclass,where) importFrom(magpiesets,findset) importFrom(magrittr,"%>%") diff --git a/R/calcPlGaoCabrera.R b/R/calcPlGaoCabrera.R new file mode 100644 index 00000000..667ae59b --- /dev/null +++ b/R/calcPlGaoCabrera.R @@ -0,0 +1,34 @@ +#' Gao & Cabrera-Serrenho 2025 polymer consumption in IAMC variables +#' +#' @description +#' Return total apparent polymer consumption from Gao & Cabrera-Serrenho (2025), +#' "Global Plastic MFA", at ISO3 country level. The 14 polymer groups (plastics, +#' fibres and rubber) are summed into a single total and mapped to the IAMC +#' variable \code{Material Demand|Chemicals|Plastics} in Mt/yr. Note that the +#' years 2020-2021 rely on incomplete trade data. +#' +#' @author Leonie Schweiger +#' @return Total polymer consumption (Mt/yr) +#' @seealso \code{\link{readGaoCabrera2025}}, \code{\link{calcPlPottinger}} +#' @importFrom magclass dimSums getNames<- +calcPlGaoCabrera <- function() { + x <- readSource("GaoCabrera2025") + + # sum all 14 polymers into a single total and convert kt -> Mt + x <- dimSums(x, dim = 3) / 1000 + + getNames(x) <- "Material Demand|Chemicals|Plastics" + + return(list( + x = x, + weight = NULL, + unit = "Mt/yr", + description = paste( + "Apparent polymer consumption 1978-2021 from Gao & Cabrera-Serrenho (2025),", + "total over all 14 polymer groups (incl. fibres and rubber), in the IAMC", + "variable Material Demand|Chemicals|Plastics. Years 2020-2021 rely on", + "incomplete trade data." + ), + note = "Disaggregated from 8 Gao regions to ISO3 via population weighting" + )) +} diff --git a/R/calcPlGeyer.R b/R/calcPlGeyer.R new file mode 100644 index 00000000..1c3ad683 --- /dev/null +++ b/R/calcPlGeyer.R @@ -0,0 +1,38 @@ +#' Geyer et al. 2017 global plastics production in IAMC variables +#' +#' @description +#' Return the global annual plastics production time series (1950-2015) from +#' Geyer et al. (2017), doi:10.1126/sciadv.1700782 (Table S1), reported at the +#' global level under the IAMC variables \code{Production|Chemicals|Plastics} +#' and \code{Material Demand|Chemicals|Plastics}, both in Mt/yr. The data are +#' global only and are not disaggregated to countries or regions. +#' +#' @author Leonie Schweiger +#' @return List with a global-only MagPIE object of plastics production (Mt/yr) +#' in IAMC variables and metadata in calcOutput format. +#' @seealso \code{\link{readGeyer}}, \code{\link{calcPlPottinger}}, +#' \code{\link{calcPlGaoCabrera}} +#' @importFrom magclass setNames mbind +calcPlGeyer <- function() { + x <- readSource("Geyer", subtype = "Prod_1950-2015", convert = FALSE) + + # same global figure reported under both IAMC variables (setNames overwrites + # the single source data-column name with the IAMC variable name) + out <- mbind( + setNames(x, "Production|Chemicals|Plastics"), + setNames(x, "Material Demand|Chemicals|Plastics") + ) + + return(list( + x = out, + weight = NULL, + unit = "Mt/yr", + description = paste( + "Global annual plastics production 1950-2015 from Geyer et al. (2017),", + "Table S1, reported at the global level under the IAMC variables", + "Production|Chemicals|Plastics and Material Demand|Chemicals|Plastics." + ), + isocountries = FALSE, + note = "Global only; no regional disaggregation." + )) +} diff --git a/R/calcPlIEA.R b/R/calcPlIEA.R new file mode 100644 index 00000000..b26657df --- /dev/null +++ b/R/calcPlIEA.R @@ -0,0 +1,87 @@ +#' IEA 2018 global plastics production in IAMC variables +#' +#' @description +#' Return the global annual production of key thermoplastics (1980-2050) from the +#' IEA report "The Future of Petrochemicals" (2018), Figure 4.2 (Reference +#' Technology Scenario), read via \code{readSource("IEA_Petrochem", +#' subtype = "plastics_All")}. The reported total (the source "SUM" series, in Mt) +#' is returned at the global level under the IAMC variables +#' \code{Production|Chemicals|Plastics} and \code{Material Demand|Chemicals|Plastics}. +#' The data are global only and are not disaggregated to countries or regions. +#' +#' @param subtype Character. \code{"total"} (default) returns absolute production +#' and demand in Mt/yr; \code{"perCapita"} returns demand per capita in kg/cap, +#' using Stegmann's own Population variable. +#' +#' @author Leonie Schweiger +#' @return List with a global-only MagPIE object of plastics production (Mt/yr) in +#' IAMC variables. +#' @importFrom magclass setNames mbind getItems getItems<- +calcPlIEA <- function(subtype) { + if (!subtype %in% c("total", "perCapita")) { + stop("Unknown subtype '", subtype, "'. Use 'total' or 'perCapita'.") + } + + x <- readSource("IEA_Petrochem", subtype = "plastics_All", convert = FALSE) + + # readIEA_Petrochem runs make.names() on the header row, which prefixes the + # numeric year columns with "X" (e.g. 1980 -> X1980). For the plastics subtype + # these become the temporal dimension, so normalise to proper year format. + getYears(x) <- as.integer(sub("^[Xy]", "", getYears(x))) + + # get the total production over all polymers + x <- dimSums(x, dim = 3, na.rm = TRUE) + + # same global figure reported under both IAMC variables (setNames overwrites the + # single source data-column name with the IAMC variable name) + out <- mbind( + setNames(x, "Production|Chemicals|Plastics"), + setNames(x, "Material Demand|Chemicals|Plastics") + ) + + if (subtype == "total") { + return(list( + x = out, + weight = NULL, + unit = "Mt/yr", + description = paste( + "Global production of key thermoplastics 1980-2050 from IEA 'The Future of", + "Petrochemicals' (2018), Figure 4.2 (Reference Technology Scenario), reported", + "at the global level under the IAMC variables Production|Chemicals|Plastics", + "and Material Demand|Chemicals|Plastics." + ), + isocountries = FALSE, + note = paste( + "Global only; IEA 'key thermoplastics' is a subset of all plastics", + "(excludes thermosets and other polymers)." + ) + )) + } + + popEstimates <- readSource("UN_PopDiv", subtype = "pop", subset = "estimates") + popMedium <- readSource("UN_PopDiv", subtype = "pop", subset = "medium") + getNames(popEstimates) <- NULL + getNames(popMedium) <- NULL + pop <- dimSums(mbind(popEstimates, popMedium), dim = 1) + pop <- pop[, getYears(out), ] + + out <- 1000 * out / pop # Mt / million people -> kg/cap + out[!is.finite(out)] <- NA + getItems(out, dim = 3) <- paste0(getItems(out, dim = 3), "|per capita") + getItems(out, dim = 1) <- "GLO" + + return(list( + x = out, + weight = pop, + unit = "kg/cap", + description = paste( + "Per-capita Global production of key thermoplastics 1980-2050 from IEA 'The Future of", + "Petrochemicals' (2018), Figure 4.2 (Reference Technology Scenario), reported", + "at the global level under the IAMC variables Production|Chemicals|Plastics", + "and Material Demand|Chemicals|Plastics.; population from UN WPP (estimates + medium)." + ), + isocountries = FALSE, + note = "Population-weighted; intensive variable aggregated as weighted mean." + )) + +} diff --git a/R/calcPlOECDProjection.R b/R/calcPlOECDProjection.R new file mode 100644 index 00000000..7c30103c --- /dev/null +++ b/R/calcPlOECDProjection.R @@ -0,0 +1,64 @@ +#' OECD Global Plastics Outlook 2022 projections in IAMC variables +#' +#' @description +#' Return the plastics-use projection 1980-2060) from the OECD Global Plastics Outlook 2022 +#' at ISO3 country level, mapped to IAMC variables. +#' \code{subtype = "total"} returns total plastics use as +#' \code{Material Demand|Chemicals|Plastics} (Mt/yr); \code{subtype = "perCapita"} +#' returns \code{Material Demand|Chemicals|Plastics|per capita} (kg/cap), using the +#' OECD population projection where available (2019-2060) and \code{\link{calcCoPopulation}} +#' (SSP2) for the earlier years (1980-2018). +#' +#' @param subtype Character, either "total" (plastics use, Mt/yr, summed on aggregation) or +#' "perCapita" (plastics use per capita, kg/cap, population-weighted mean on aggregation). +#' +#' @author Leonie Schweiger +#' @return List with a MagPIE object of the OECD plastics projection in IAMC variables and +#' metadata. +#' @seealso \code{\link{readOECD_Plastic}}, \code{\link{calcPlGaoCabrera}}, +#' \code{\link{calcCoPopulation}} +#' @importFrom magclass setNames getYears getNames<- +calcPlOECDProjection <- function(subtype = "total") { + # plastics use projection (Mt), ISO3, 1980-2060 + use <- setNames(readSource("OECD_Plastic", "Use_1980-2060_projection"), NULL) + + if (subtype == "total") { + getNames(use) <- "Material Demand|Chemicals|Plastics" + return(list( + x = use, + weight = NULL, + unit = "Mt/yr", + description = paste( + "Plastics use projection 1980-2060 from the OECD Global Plastics Outlook 2022." + ), + note = "Disaggregated from 15 OECD-Outlook regions to ISO3 via population weighting." + )) + } else if (subtype == "perCapita") { + # OECD population sheet (billion people), ISO3, 2019-2060 + popOECD <- setNames(readSource("OECD_Plastic", "Pop_2019-2060_projection"), NULL) + # reference population (calcCoPopulation is in inhabitants -> convert to billion people) + popRef <- setNames(calcOutput("CoPopulation", scenarios = "SSP2", aggregate = FALSE), NULL) / 1e9 + + years <- getYears(use) # 1980-2060 + pop <- popRef[, years, ] # CoPopulation for all years... + overlap <- intersect(years, getYears(popOECD)) # 2019-2060 + pop[, overlap, ] <- popOECD[, overlap, ] # ...prefer OECD source pop where available + + perCap <- use / pop # Mt / billion people = kg/cap + perCap[is.na(perCap) | is.infinite(perCap)] <- 0 + getNames(perCap) <- "Material Demand|Chemicals|Plastics|per capita" + return(list( + x = perCap, + weight = pop, + unit = "kg/cap", + description = paste( + "Per-capita plastics use projection 1980-2060 from the OECD Global Plastics", + "Outlook 2022. OECD population is used for 2019-2060 and ", + "calcCoPopulation (SSP2) for 1980-2018." + ), + note = "Population-weighted; intensive variable aggregated as weighted mean." + )) + } + + stop("Invalid subtype: ", subtype, ". Use 'total' or 'perCapita'.") +} diff --git a/R/calcPlPottinger.R b/R/calcPlPottinger.R new file mode 100644 index 00000000..4122dd77 --- /dev/null +++ b/R/calcPlPottinger.R @@ -0,0 +1,91 @@ +#' Pottinger 2024 plastics material flows in IAMC variables +#' +#' @description +#' Return the plastics material-flow data from Pottinger et al. (2024) for a +#' specified scenario (Business-as-Usual or policy variants), at ISO3 country +#' level, with the source flow columns renamed to a subset of IAMC variables. +#' All flows are in Mt/yr. +#' +#' @param subtype Character, scenario to extract (e.g., "businessAsUsual" for BAU). +#' Must match a scenario name encoded in the data dimension from readPottinger2024. +#' @param perCapita Logical. If \code{FALSE} (default), return absolute flows in +#' Mt/yr. If \code{TRUE}, return per-capita flows in kg/cap, using the same UN +#' World Population Prospects population as \code{\link{convertPottinger2024}}. +#' +#' @author Leonie Schweiger +#' @return List with a MagPIE object of plastics flows (Mt/yr, or kg/cap if +#' \code{perCapita = TRUE}) in IAMC variables and metadata in calcOutput format. +#' @seealso \code{\link{readPottinger2024}} +#' @importFrom magclass getItems getItems<- mbind getYears getNames<- +calcPlPottinger <- function(subtype = "businessAsUsual", perCapita = FALSE) { + x <- readSource("Pottinger2024") + scenarios <- getNames(x, dim=1) + variables <- getNames(x, dim=2) + + if (subtype == "all") { + x <- x + } else if (!(subtype %in% scenarios)) { + stop("Scenario '", subtype, "' not found in Pottinger2024 data. ", + "Available scenarios: ", paste(scenarios, collapse = ", ")) + } else { + x <- x[, , subtype] + } + + # map raw source flow columns to IAMC variables + iamc <- c( + totalConsumptionMt = "Material Demand|Chemicals|Plastics", + primaryProductionMt = "Production|Chemicals|Plastics|Primary", + secondaryProductionMt = "Production|Chemicals|Plastics|Secondary" + ) + + # identify which of the mapped variables are present in this scenario + keep_idx <- which(variables %in% names(iamc)) + variables_kept <- variables[keep_idx] + + if (length(keep_idx) == 0) { + stop("No mapped variables found for scenario '", subtype, "' in Pottinger2024. ", + "Expected one or more of: ", paste(names(iamc), collapse = ", ")) + } + + # subset to keep only mapped variables + x <- x[, , variables_kept] + new_names <- iamc[variables_kept] + getItems(x, dim = 3.2) <- as.vector(new_names) + + if (!perCapita) { + return(list( + x = x, + weight = NULL, + unit = "Mt/yr", + description = paste( + "Plastics material-flow pathway 2011-2050 from Pottinger et al. (2024),", + "scenario:", subtype, "in IAMC variables" + ), + note = "Disaggregated from 4 Pottinger regions to ISO3 via population weighting" + )) + } + + # per-capita: same UN World Population Prospects population as convertPottinger2024 + # (estimates through 2021 + medium variant from 2022), in millions of people + popEstimates <- readSource("UN_PopDiv", subtype = "pop", subset = "estimates") + popMedium <- readSource("UN_PopDiv", subtype = "pop", subset = "medium") + getNames(popEstimates) <- NULL + getNames(popMedium) <- NULL + pop <- mbind(popEstimates, popMedium) + pop <- pop[getItems(x, dim = 1), getYears(x), ] # ISO3 countries & Pottinger years + + x <- 1000 * x / pop # Mt / million people -> kg/cap + x[!is.finite(x)] <- NA + getItems(x, dim = 3.2) <- paste0(as.vector(new_names), "|per capita") + + return(list( + x = x, + weight = pop, + unit = "kg/cap", + description = paste( + "Per-capita plastics material-flow pathway 2011-2050 from Pottinger et al. (2024),", + "scenario:", subtype, "in IAMC variables; population from UN WPP (estimates + medium)." + ), + note = "Population-weighted; intensive variable aggregated as weighted mean." + )) +} diff --git a/R/calcPlStegmann.R b/R/calcPlStegmann.R new file mode 100644 index 00000000..935b7c6b --- /dev/null +++ b/R/calcPlStegmann.R @@ -0,0 +1,86 @@ +#' Stegmann 2022 plastics production and demand in IAMC variables +#' +#' @description +#' Return total plastics production and demand (Stegmann assumes no trade, so +#' demand = production) from Stegmann et al. (2022, PLAIA/IMAGE) at ISO3 country +#' level, for all four scenarios. The eight Plastics|Production|Sector|* +#' flows (PJ/yr) are summed to a total and converted to mass using the lower +#' heating value of plastics of 35 GJ/t (Mt/yr = PJ/yr / 35). +#' +#' @param subtype Character. \code{"total"} (default) returns absolute production +#' and demand in Mt/yr; \code{"perCapita"} returns demand per capita in kg/cap, +#' using Stegmann's own Population variable. +#' +#' @author Leonie Schweiger +#' @return List with a MagPIE object of plastics production/demand (Mt/yr, or +#' kg/cap if \code{subtype = "perCapita"}) in IAMC variables and metadata in +#' calcOutput format. +#' @seealso \code{\link[mrindustry]{readStegmann2022}} +#' @importFrom magclass getItems getItems<- getNames dimSums add_dimension +#' collapseNames mbind mselect +calcPlStegmann <- function(subtype = "total") { + if (!subtype %in% c("total", "perCapita")) { + stop("Unknown subtype '", subtype, "'. Use 'total' or 'perCapita'.") + } + + # get plastics production and population variables + x <- readSource("Stegmann2022", subtype = "PopWeighted") + # the read object carries a singleton Model and a Unit sub-dimension that is not needed downstream + x <- collapseNames(x, collapsedim = c("Model", "Unit")) + + # rename the scenario codes to readable article-equivalent labels (Overview sheet) + scenMap <- c( + "SSP2" = "Baseline (SSP2)", + "SSP2_SPA0_26I_D" = "2C", + "SSP2_SPA0_26I_D_Circular" = "2C - Circular Economy", + "SSP2_SPA0_26I_D_CBE" = "2C - Circular Bioeconomy" + ) + getItems(x, dim = "Scenario") <- unname(scenMap[getItems(x, dim = "Scenario")]) + + # total plastics production: sum the eight production-by-sector flows (PJ/yr) + # and convert energy -> mass via the 35 GJ/t lower heating value (-> Mt/yr). + sectorNames <- grep("Plastics\\|Production\\|Sector", getNames(x), value = TRUE) + totalProd <- dimSums(x[, , sectorNames], dim = 3.2) / 35 + + if (subtype == "total") { + # demand equals production (Stegmann does not consider trade) + production <- add_dimension(totalProd, dim = 3.2, add = "Variable", nm = "Production|Chemicals|Plastics") + demand <- add_dimension(totalProd, dim = 3.2, add = "Variable", nm = "Material Demand|Chemicals|Plastics") + out <- mbind(production, demand) + + return(list( + x = out, + weight = NULL, + unit = "Mt/yr", + description = paste( + "Total plastics production and demand 2005-2100 from Stegmann et al.", + "(2022, PLAIA/IMAGE), all scenarios; demand = production (no trade)." + ), + note = paste( + "Summed over 8 production sectors, PJ/yr converted to Mt/yr via 35 GJ/t;", + "disaggregated from 26 IMAGE regions to ISO3 via population weighting." + ) + )) + } + + # per-capita demand: divide by Stegmann's own regional population (million) + popNames <- grep("Population", getNames(x), value = TRUE) + stegPop <- collapseNames(x[, , popNames], collapsedim = "Variable") + perCap <- 1000 * totalProd / stegPop # Mt / million people -> kg/cap + perCap[is.na(perCap) | is.infinite(perCap)] <- 0 + + perCapVar <- "Material Demand|Chemicals|Plastics|per capita" + perCap <- add_dimension(perCap, dim = 3.2, add = "Variable", nm = perCapVar) + weight <- add_dimension(stegPop, dim = 3.2, add = "Variable", nm = perCapVar) + + return(list( + x = perCap, + weight = weight, + unit = "kg/cap", + description = paste( + "Per-capita plastics demand 2005-2100 from Stegmann et al. (2022, PLAIA/IMAGE),", + "all scenarios; population from Stegmann's own reported population." + ), + note = "Population-weighted; intensive variable aggregated as weighted mean." + )) +} diff --git a/R/convertGaoCabrera2025.R b/R/convertGaoCabrera2025.R new file mode 100644 index 00000000..c3371fcf --- /dev/null +++ b/R/convertGaoCabrera2025.R @@ -0,0 +1,44 @@ +#' Convert Gao & Cabrera-Serrenho 2025 consumption to ISO country level +#' +#' @description +#' Disaggregate the eight Gao & Cabrera-Serrenho (2025) world regions to ISO3 +#' country level. The regional kt consumption is distributed across the member +#' countries of each region proportionally to population from the UN World +#' Population Prospects (\code{readSource("UN_PopDiv", "pop", subset = "estimates")}), +#' whose "estimates" subset (1950-2021) spans the full Gao year range (1978-2021). +#' Countries not covered by the source regions are filled with 0. +#' +#' @param x MagPIE object with GaoCabrera2025 data at the eight-region resolution. +#' @return MagPIE object with the GaoCabrera2025 apparent consumption +#' disaggregated to ISO3 country level, in kt. +#' @author Leonie Schweiger +#' @seealso \code{\link{readGaoCabrera2025}} +#' @importFrom magclass getYears getNames<- +convertGaoCabrera2025 <- function(x) { + # region -> country mapping. Drop rows without an ISO3 code (historical / + # composite trade entities) and any duplicated ISO3 codes (e.g. PSE appears + # twice) so each country is assigned to exactly one region. + map <- toolGetMapping("regionmappingGaoCabrera2025.csv", type = "regional", where = "mrmfa") + map <- map[map$iso3_country_code != "" & !duplicated(map$iso3_country_code), ] + + # UN World Population Prospects population as disaggregation weight. The + # "estimates" subset covers 1950-2021, spanning all Gao years; the variant + # name in the data dimension is dropped. + pop <- readSource("UN_PopDiv", subtype = "pop", subset = "estimates") + getNames(pop) <- NULL + + # restrict weight to the mapped countries and the Gao years + pop <- pop[unique(map$iso3_country_code), getYears(x), ] + + # distribute each region's consumption across its countries proportionally to population + x <- toolAggregate(x, + rel = map, dim = 1, + from = "region", to = "iso3_country_code", + weight = pop + ) + + # complete the country set (countries outside the source regions get 0) + x <- toolCountryFill(x, fill = 0) + + return(x) +} diff --git a/R/convertOECD_Plastic.R b/R/convertOECD_Plastic.R index d16369ae..9e0bfc9c 100644 --- a/R/convertOECD_Plastic.R +++ b/R/convertOECD_Plastic.R @@ -11,7 +11,7 @@ #' a <- convertOECD_Plastic(x) #' } #' -#' @importFrom magclass where +#' @importFrom magclass where getYears #' @importFrom magpiesets findset #' @importFrom dplyr filter convertOECD_Plastic <- function(x) { @@ -82,6 +82,17 @@ convertOECD_Plastic <- function(x) { from = "OECDPlasticReg", to = "CountryCode", weight = GDP[unique(region_map$CountryCode), , ] ) + } else if (subtype %in% c("Use_1980-2060_projection", "Pop_2019-2060_projection")) { + # OECD Global Plastics Outlook 2022 projections: disaggregate the short-labelled + # OECD-Outlook regions to ISO countries using population (SSP2) weights. + pop <- calcOutput("CoPopulation", scenarios = "SSP2", aggregate = FALSE) + region_map <- toolGetMapping("regionmappingOECDPlasticProjections.csv", type = "regional", where = "mrmfa") %>% + filter(.data$OECDPlasticProjReg != "rest") + x <- toolAggregate(x, + rel = region_map, dim = 1, + from = "OECDPlasticProjReg", to = "CountryCode", + weight = pop[unique(region_map$CountryCode), getYears(x), ] + ) } else { # ------------------------------------------------------------------------- # Error handling for unsupported subtypes diff --git a/R/convertPottinger2024.R b/R/convertPottinger2024.R new file mode 100644 index 00000000..8c024fee --- /dev/null +++ b/R/convertPottinger2024.R @@ -0,0 +1,46 @@ +#' Convert Pottinger 2024 plastics data to ISO country level +#' +#' @description +#' Disaggregate the four Pottinger modelling regions (china, eu30, nafta, row) +#' to ISO3 country level. The regional Mt flows are distributed across the +#' member countries of each region proportionally to population from the UN +#' World Population Prospects (\code{readSource("UN_PopDiv", "pop", ...)}). The +#' "estimates" subset (1950-2021) covers the historical part of the series and +#' the "medium" variant projection (2022-2100) covers the future part, together +#' spanning the yearly 2011-2050 Pottinger years. Countries not covered by the +#' source regions are filled with 0. +#' +#' @param x MagPIE object with Pottinger2024 data at the four-region resolution. +#' @return MagPIE object with the Pottinger2024 data disaggregated to ISO3 +#' country level, in Mt. +#' @author Leonie Schweiger +#' @seealso \code{\link{readPottinger2024}} +#' @importFrom magclass mbind getYears getNames<- +convertPottinger2024 <- function(x) { + # region -> country mapping (every ISO3 country assigned to exactly one region) + map <- toolGetMapping("regionmappingPottinger2024.csv", type = "regional", where = "mrmfa") + + # UN World Population Prospects population as disaggregation weight: historical + # estimates (through 2021) plus the medium-variant projection (from 2022 on). + # The variant name in the data dimension is dropped so the two can be combined. + popEstimates <- readSource("UN_PopDiv", subtype = "pop", subset = "estimates") + popMedium <- readSource("UN_PopDiv", subtype = "pop", subset = "medium") + getNames(popEstimates) <- NULL + getNames(popMedium) <- NULL + pop <- mbind(popEstimates, popMedium) + + # restrict weight to the mapped countries and the yearly Pottinger years + pop <- pop[unique(map$CountryCode), getYears(x), ] + + # distribute each region's flows across its countries proportionally to population + x <- toolAggregate(x, + rel = map, dim = 1, + from = "PottingerReg", to = "CountryCode", + weight = pop + ) + + # complete the country set (countries outside the source regions get 0) + x <- toolCountryFill(x, fill = 0) + + return(x) +} diff --git a/R/fullVALIDATIONMFA.R b/R/fullVALIDATIONMFA.R new file mode 100644 index 00000000..108c9ab0 --- /dev/null +++ b/R/fullVALIDATIONMFA.R @@ -0,0 +1,131 @@ +#' Generate validation data for the REMIND MFA +#' +#' @description +#' Function that assembles a regional dataset from various sources against which +#' the MFA model results can be compared, and writes it in IAMC format to +#' \code{validation.mif}. This mirrors \code{mrremind::fullVALIDATIONREMIND}, +#' which writes \code{historical.mif} for REMIND. New sources are appended as +#' additional \code{calcOutput(..., file = valfile, append = TRUE)} blocks. +#' +#' @md +#' @param rev Unused parameter, but required by `madrat`. +#' @author Leonie Schweiger +#' @seealso +#' \code{\link[madrat]{readSource}}, \code{\link[madrat]{calcOutput}}, +#' \code{\link[madrat]{retrieveData}} +#' @examples +#' \dontrun{ +#' retrieveData("VALIDATIONMFA") +#' } +#' +fullVALIDATIONMFA <- function(rev = 0) { + + # get region mappings for aggregation ---- + # Determines all regions data should be aggregated to by examining the columns + # of the `regionmapping` and `extramappings` currently configured. + + rel <- "global" # always compute global aggregate + for (mapping in c(getConfig("regionmapping"), getConfig("extramappings"))) { + columns <- setdiff( + colnames(toolGetMapping(mapping, "regional", where = "mappingfolder")), + c("X", "CountryCode") + ) + + if (any(columns %in% rel)) { + warning( + "The following column(s) from ", mapping, + " exist in another mapping an will be ignored: ", + paste(columns[columns %in% rel], collapse = ", ") + ) + } + + rel <- unique(c(rel, columns)) + } + + columnsForAggregation <- gsub( + "RegionCode", "region", + paste(rel, collapse = "+") + ) + + # validation data ---- + valfile <- "validation.mif" + + # Pottinger 2024 plastics material flows (all scenarios) ---- + calcOutput( + type = "PlPottinger", subtype = "all", file = valfile, + aggregate = columnsForAggregation, append = FALSE, + warnNA = FALSE, try = FALSE, + writeArgs = list(model = "Pottinger et al 2024") + ) + calcOutput( + type = "PlPottinger", subtype = "all", perCapita = TRUE, file = valfile, + aggregate = columnsForAggregation, append = TRUE, + warnNA = FALSE, try = FALSE, + writeArgs = list(model = "Pottinger et al 2024") + ) + + # Gao & Cabrera-Serrenho 2025 apparent polymer consumption ---- + calcOutput( + type = "PlGaoCabrera", file = valfile, + aggregate = columnsForAggregation, append = TRUE, + warnNA = FALSE, try = FALSE, + writeArgs = list(scenario = "historical", model = "Gao & Cabrera-Serrenho 2025") + ) + + # Geyer et al. 2017 global plastics production ---- + calcOutput( + type = "PlGeyer", file = valfile, + aggregate = FALSE, append = TRUE, + warnNA = FALSE, try = FALSE, + writeArgs = list(scenario = "historical", model = "Geyer et al 2017") + ) + + # OECD Global Plastics Outlook 2022 projections ---- + calcOutput( + type = "PlOECDProjection", subtype = "total", file = valfile, + aggregate = columnsForAggregation, append = TRUE, + warnNA = FALSE, try = FALSE, + writeArgs = list(scenario = "Baseline scenario", model = "OECD Global Plastics Outlook 2022") + ) + calcOutput( + type = "PlOECDProjection", subtype = "perCapita", file = valfile, + aggregate = columnsForAggregation, append = TRUE, + warnNA = FALSE, try = FALSE, + writeArgs = list(scenario = "Baseline scenario", model = "OECD Global Plastics Outlook 2022") + ) + + # Stegmann et al. 2022 (PLAIA/IMAGE) plastics production & demand ---- + calcOutput( + type = "PlStegmann", subtype = "total", file = valfile, + aggregate = columnsForAggregation, append = TRUE, + warnNA = FALSE, try = FALSE, + writeArgs = list(model = "Stegmann et al 2022") + ) + calcOutput( + type = "PlStegmann", subtype = "perCapita", file = valfile, + aggregate = columnsForAggregation, append = TRUE, + warnNA = FALSE, try = FALSE, + writeArgs = list(model = "Stegmann et al 2022") + ) + + # IEA The Future of Petrochemicals 2018 global key-thermoplastics production ---- + calcOutput( + type = "PlIEA", subtype = "total", file = valfile, + aggregate = FALSE, append = TRUE, + warnNA = FALSE, try = FALSE, + writeArgs = list( + scenario = "Reference Technology Scenario", + model = "IEA The Future of Petrochemicals 2018" + ) + ) + calcOutput( + type = "PlIEA", subtype = "perCapita", file = valfile, + aggregate = FALSE, append = TRUE, + warnNA = FALSE, try = FALSE, + writeArgs = list( + scenario = "Reference Technology Scenario", + model = "IEA The Future of Petrochemicals 2018" + ) + ) + +} diff --git a/R/imports.R b/R/imports.R index ad497ee1..34925f21 100644 --- a/R/imports.R +++ b/R/imports.R @@ -1,4 +1,4 @@ # Generated by lucode2: do not edit by hand -#' @import madrat magclass mrdrivers mrcommonsenergy GDPuc +#' @import madrat magclass mrdrivers mrcommonsenergy mrindustry GDPuc NULL diff --git a/R/readGaoCabrera2025.R b/R/readGaoCabrera2025.R new file mode 100644 index 00000000..ef202a6e --- /dev/null +++ b/R/readGaoCabrera2025.R @@ -0,0 +1,65 @@ +#' Read Gao & Cabrera-Serrenho 2025 apparent polymer consumption +#' +#' @description +#' Read the apparent polymer consumption ("D") from Gao & Cabrera-Serrenho (2025), +#' doi:10.1016/j.resconrec.2025.108518, data from doi:10.17863/CAM.101645, +#' from the MATLAB file \code{D.mat}. D is a 1x8 cell array +#' (one cell per world region); each cell is a 14x44 matrix with rows = 14 +#' polymer groups and columns = years 1978-2021. Apparent consumption = ICIS +#' production + net trade (virgin + recycled), in kilotonnes (kt). +#' Note that, per the paper SI, the years 2020 and 2021 rely on incomplete trade +#' data and are less reliable. +#' +#' @author Leonie Schweiger +#' @return MagPIE object with apparent consumption in kt, dimensions +#' (region, year, polymer): 8 regions x 44 years x 14 polymers. +#' @seealso \code{\link[madrat]{readSource}} +#' @examples +#' \dontrun{ +#' readSource("GaoCabrera2025", convert = FALSE) +#' } +#' @importFrom magclass as.magpie +readGaoCabrera2025 <- function() { + # Region labels in the cell order of D.mat, matching the `region` column of + # regionmappingGaoCabrera2025.csv (note "and", not "&"). + regionLabels <- c( + "North America", "Latin America", "Western and Central Europe", + "Eastern Europe and Central Asia", "Africa", "Middle East", + "Northeast Asia", "South Asia and the Pacific" + ) + + # Polymer labels in matrix-row order (verified against paper text + SI Table S3). + polymerLabels <- c( + "LDPE", "LLDPE", "HDPE", "PP", "PS", "PVC", "PET", "PUR", + "Polyester fibre", "Polyamide fibre", "Other fibre (acrylic)", + "Rubbers", "Other thermoplastics", "Other thermosets" + ) + + years <- 1978:2021 # 44 columns + nReg <- length(regionLabels) # 8 + nPoly <- length(polymerLabels) # 14 + + mat <- R.matlab::readMat("D.mat") + + # mat$D is a length-8 list; each element is a length-1 list holding a 14x44 matrix. + cells <- lapply(mat$D, function(cell) { + mtx <- if (is.list(cell)) cell[[1]] else cell # unwrap the 1-element list + as.matrix(mtx) + }) + + # build a tidy long table (region, polymer, year, value in kt) + rows <- lapply(seq_len(nReg), function(m) { + data.frame( + region = regionLabels[m], + polymer = rep(polymerLabels, times = length(years)), + year = rep(years, each = nPoly), + value = as.vector(cells[[m]]), + stringsAsFactors = FALSE + ) + }) + long <- do.call(rbind, rows) + + x <- as.magpie(long, spatial = "region", temporal = "year", datacol = "value") + + return(x) +} diff --git a/R/readOECD_Plastic.R b/R/readOECD_Plastic.R index 10a75c98..68d43f94 100644 --- a/R/readOECD_Plastic.R +++ b/R/readOECD_Plastic.R @@ -10,6 +10,10 @@ #' - "Use_1990-2019_world" (plastic use in Mt, dimensions: year, application, polymer, type (primary/secondary)) #' - "WasteEOL_1990-2019_region" (plastic waste in Mt, dimensions: region, year, EOL fate, collected for recycling) #' - "WasteType_2019_region" (plastic waste in Mt, dimensions: region, application, polymer) +#' - "Use_1980-2060_projection" (OECD Global Plastics Outlook 2022 plastics use in Mt, +#' dimensions: OECD-Outlook region, year) +#' - "Pop_2019-2060_projection" (OECD Global Plastics Outlook 2022 population in billion +#' people, dimensions: OECD-Outlook region, year) #' #' @return magpie object of the OECD Plastic data #' @@ -58,6 +62,16 @@ readOECD_Plastic <- function(subtype) { sheet = "2019 WasteType", range = "A1:X1411" ), + "Use_1980-2060" = list( + file = "Plastics Projections.xlsx", + sheet = "plastics", + range = "A27:C1242" + ), + "Pop_2019-2060" = list( + file = "Plastics Projections.xlsx", + sheet = "pop", + range = "A23:C653" + ), stop("Invalid subtype combination: ", key) ) @@ -102,6 +116,10 @@ readOECD_Plastic <- function(subtype) { "Plastic type", "OBS_VALUE" ) %>% filter(.data$`Reference area` == "World"), + "Use_1980-2060_projection" = raw_df %>% + select(region = "rLab", year = "t", value = "value"), + "Pop_2019-2060_projection" = raw_df %>% + select(region = "rLab", year = "year", value = "value"), stop("Unsupported subtype: ", subtype) ) diff --git a/R/readPottinger2024.R b/R/readPottinger2024.R new file mode 100644 index 00000000..1892181d --- /dev/null +++ b/R/readPottinger2024.R @@ -0,0 +1,51 @@ +#' Read Pottinger 2024 plastics material-flow data +#' +#' @description +#' Read the global plastics material-flow dataset from Pottinger et al. (2024), +#' "science.adr3837_data_s1.csv". All scenarios (Business-as-Usual and policy +#' variants) are read. Each scenario's time series is spread across multiple rows: +#' for each scenario, rows exist for years 2011–2050 (one year per row after +#' extracting the year from the scenarioKey suffix). The global aggregate region +#' is dropped (it cannot be disaggregated to countries); the four modelling regions +#' china, eu30, nafta and row are kept. +#' All flows are in Mt (megatonnes) per year. +#' +#' @author Leonie Schweiger +#' @return MagPIE object with the raw Pottinger flow variables, dimensions +#' (regionKey, year, scenario.variable), in Mt. +#' @seealso \code{\link[madrat]{readSource}} +#' @examples +#' \dontrun{ +#' readSource("Pottinger2024", convert = FALSE) +#' } +#' @importFrom readr read_csv +#' @importFrom dplyr filter mutate select +#' @importFrom tidyr pivot_longer +#' @importFrom rlang .data +#' @importFrom magclass as.magpie +readPottinger2024 <- function() { + raw <- readr::read_csv("science.adr3837_data_s1.csv", show_col_types = FALSE) + + # keep only the four modelling regions (drop the "global" aggregate) + df <- raw %>% + filter(.data$regionKey %in% c("china", "eu30", "nafta", "row")) %>% + # extract scenario name: strip year suffix from scenarioKey + # e.g., "businessAsUsual2011" -> "businessAsUsual", "businessAsUsual" (year 2050) -> "businessAsUsual" + mutate(scenario = gsub("\\d{4}$", "", .data$scenarioKey)) %>% + # drop identifier columns; keep regionKey, year, scenario, and 20 flow cols + select(-"scenarioKey", -"scenarioDescription", -"region", -"isGlobal") + + # verify each (regionKey, year, scenario) triplet is unique + if (anyDuplicated(df[, c("regionKey", "year", "scenario")]) > 0) { + stop("Unexpected duplicate (regionKey, year, scenario) rows in Pottinger2024 data.") + } + + # reshape all flow columns into the data dimension + dfLong <- df %>% + pivot_longer(cols = -c("regionKey", "year", "scenario"), names_to = "variable", values_to = "value") %>% + select("regionKey", "year", "scenario", "variable", "value") + + x <- as.magpie(dfLong, spatial = 1, temporal = 2) + + return(x) +} diff --git a/README.md b/README.md index 0e21dc72..c3eb46cd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Input data generation for the REMIND MFA -R package **mrmfa**, version **1.11.2** +R package **mrmfa**, version **1.12.0** [![R build status](https://github.com/pik-piam/mrmfa/workflows/check/badge.svg)](https://github.com/pik-piam/mrmfa/actions) [![codecov](https://codecov.io/gh/pik-piam/mrmfa/branch/master/graph/badge.svg)](https://app.codecov.io/gh/pik-piam/mrmfa) @@ -38,7 +38,7 @@ In case of questions / problems please contact Jakob Dürrwächter . +Dürrwächter J, Weiss B, Schweiger L, Benke F, Hosak M, Zhang Q (2026). "mrmfa: Input data generation for the REMIND MFA." Version: 1.12.0, . A BibTeX entry for LaTeX users is @@ -46,9 +46,9 @@ A BibTeX entry for LaTeX users is @Misc{, title = {mrmfa: Input data generation for the REMIND MFA}, author = {Jakob Dürrwächter and Bennet Weiss and Leonie Schweiger and Falk Benke and Merlin Jo Hosak and Qianzhi Zhang}, - date = {2026-07-09}, + date = {2026-07-20}, year = {2026}, url = {https://github.com/pik-piam/mrmfa}, - note = {Version: 1.11.2}, + note = {Version: 1.12.0}, } ``` diff --git a/inst/extdata/regional/regionmappingGaoCabrera2025.csv b/inst/extdata/regional/regionmappingGaoCabrera2025.csv new file mode 100644 index 00000000..fd029224 --- /dev/null +++ b/inst/extdata/regional/regionmappingGaoCabrera2025.csv @@ -0,0 +1,272 @@ +region,country,iso3_country_code,note +North America,Canada,CAN, +North America,Saint Pierre and Miquelon,SPM, +North America,US Virgin Islands,VIR, +North America,USA,USA, +Latin America,Anguilla,AIA, +Latin America,Antigua and Barbuda,ATG, +Latin America,Argentina,ARG, +Latin America,Aruba,ABW, +Latin America,Bahamas,BHS, +Latin America,Barbados,BRB, +Latin America,Belize,BLZ, +Latin America,Bermuda,BMU, +Latin America,Bolivia (Plurinational State of),BOL, +Latin America,Bonaire,BES,"BES is the code for Bonaire, Sint Eustatius and Saba collectively; no Bonaire-only code exists, so this is an over-broad match" +Latin America,Br. Virgin Islands,VGB, +Latin America,Brazil,BRA, +Latin America,Cayman Islands,CYM, +Latin America,Chile,CHL, +Latin America,Colombia,COL, +Latin America,Costa Rica,CRI, +Latin America,Cuba,CUB, +Latin America,Curaçao,CUW, +Latin America,Dominica,DMA, +Latin America,Dominican Rep.,DOM, +Latin America,Ecuador,ECU, +Latin America,El Salvador,SLV, +Latin America,Falkland Islands (Malvinas),FLK, +Latin America,"Former Panama, excl.Canal Zone",,Historical trade category; no current ISO 3166-1 code. Present-day territory maps to Panama (PAN) +Latin America,Former Panama-CanalZone,,"Historical entity (Panama Canal Zone, dissolved 1979); formerly-used code PCZ withdrawn, no current ISO 3166-1 code" +Latin America,French Guiana,GUF, +Latin America,Grenada,GRD, +Latin America,Guadeloupe,GLP, +Latin America,Guatemala,GTM, +Latin America,Guyana,GUY, +Latin America,Haiti,HTI, +Latin America,Honduras,HND, +Latin America,Jamaica,JAM, +Latin America,Martinique,MTQ, +Latin America,Mexico,MEX, +Latin America,Montserrat,MSR, +Latin America,Neth. Antilles,,"Netherlands Antilles dissolved 2010; formerly-used code ANT (now in ISO 3166-3), no current ISO 3166-1 code" +Latin America,Neth. Antilles and Aruba,,"Composite historical label; no single ISO 3166-1 code. Components map to successor codes (e.g. ABW, CUW, SXM, BES)" +Latin America,Nicaragua,NIC, +Latin America,Panama,PAN, +Latin America,Paraguay,PRY, +Latin America,Peru,PER, +Latin America,Saint Barthelemy,BLM, +Latin America,Saint Kitts and Nevis,KNA, +Latin America,"Saint Kitts, Nevis and Anguilla",,Historical composite (dissolved 1980); no single ISO 3166-1 code. Components map to KNA and AIA +Latin America,Saint Lucia,LCA, +Latin America,Saint Maarten,SXM, +Latin America,Saint Vincent and the Grenadines,VCT, +Latin America,Suriname,SUR, +Latin America,Trinidad and Tobago,TTO, +Latin America,Turks and Caicos Islands,TCA, +Latin America,Uruguay,URY, +Latin America,Venezuela,VEN, +Latin America,Puerto Rico,PRI, +Latin America,Saint-Martin (French part),MAF, +Western and Central Europe,Albania,ALB, +Western and Central Europe,Andorra,AND, +Western and Central Europe,Austria,AUT, +Western and Central Europe,Belgium,BEL, +Western and Central Europe,Belgium-Luxembourg,,Composite historical trade label; no single ISO 3166-1 code. Components map to BEL and LUX +Western and Central Europe,Bosnia Herzegovina,BIH, +Western and Central Europe,Bulgaria,BGR, +Western and Central Europe,Croatia,HRV, +Western and Central Europe,Cyprus,CYP, +Western and Central Europe,Czechia,CZE, +Western and Central Europe,Czechoslovakia,,"Dissolved 1992; formerly-used code CSK (now in ISO 3166-3), no current ISO 3166-1 code. Successors: CZE, SVK" +Western and Central Europe,Denmark,DNK, +Western and Central Europe,Estonia,EST, +Western and Central Europe,Faeroe Islands,FRO, +Western and Central Europe,Finland,FIN, +Western and Central Europe,Former Dem. Rep. of Germany,,"East Germany, dissolved 1990; formerly-used code DDR (now in ISO 3166-3), no current ISO 3166-1 code. Territory now part of DEU" +Western and Central Europe,Former Fed. Rep. of Germany,,West Germany pre-1990; historically used DEU but listed here as a former entity. Present-day unified Germany is DEU. Left blank to avoid duplicating the Germany row +Western and Central Europe,Former Yugoslavia,,"Dissolved 1990s; formerly-used code YUG (now in ISO 3166-3), no current ISO 3166-1 code" +Western and Central Europe,France,FRA, +Western and Central Europe,Germany,DEU, +Western and Central Europe,Gibraltar,GIB, +Western and Central Europe,Greece,GRC, +Western and Central Europe,Greenland,GRL, +Western and Central Europe,Holy See (Vatican City State),VAT, +Western and Central Europe,Hungary,HUN, +Western and Central Europe,Iceland,ISL, +Western and Central Europe,Ireland,IRL, +Western and Central Europe,Italy,ITA, +Western and Central Europe,Latvia,LVA, +Western and Central Europe,Lithuania,LTU, +Western and Central Europe,Luxembourg,LUX, +Western and Central Europe,Malta,MLT, +Western and Central Europe,Montenegro,MNE, +Western and Central Europe,Netherlands,NLD, +Western and Central Europe,Norway,NOR, +Western and Central Europe,Poland,POL, +Western and Central Europe,Portugal,PRT, +Western and Central Europe,Romania,ROU, +Western and Central Europe,San Marino,SMR, +Western and Central Europe,Serbia,SRB, +Western and Central Europe,Serbia and Montenegro,,"State union dissolved 2006; formerly-used code SCG (now in ISO 3166-3), no current ISO 3166-1 code. Successors: SRB, MNE" +Western and Central Europe,Slovakia,SVK, +Western and Central Europe,Slovenia,SVN, +Western and Central Europe,Spain,ESP, +Western and Central Europe,Sweden,SWE, +Western and Central Europe,Switzerland,CHE, +Western and Central Europe,North Macedonia,MKD, +Western and Central Europe,United Kingdom,GBR, +Western and Central Europe,Channel Islands,,Not a single ISO 3166-1 entity; comprises Guernsey (GGY) and Jersey (JEY) +Western and Central Europe,Isle of Man,IMN, +Western and Central Europe,Liechtenstein,LIE, +Western and Central Europe,Monaco,MCO, +Western and Central Europe,Svalbard and Jan Mayen Islands,SJM, +Western and Central Europe,Guernsey,GGY, +Western and Central Europe,Jersey,JEY, +Western and Central Europe,Kosovo,,"No official ISO 3166-1 code assigned. The placeholder XK / XKX is user-assigned, not part of the official standard" +Eastern Europe and Central Asia,Armenia,ARM, +Eastern Europe and Central Asia,Azerbaijan,AZE, +Eastern Europe and Central Asia,Belarus,BLR, +Eastern Europe and Central Asia,Former USSR,,"Dissolved 1991; formerly-used code SUN (now in ISO 3166-3), no current ISO 3166-1 code" +Eastern Europe and Central Asia,Georgia,GEO, +Eastern Europe and Central Asia,Kazakhstan,KAZ, +Eastern Europe and Central Asia,Kyrgyzstan,KGZ, +Eastern Europe and Central Asia,Rep. of Moldova,MDA, +Eastern Europe and Central Asia,Russian Federation,RUS, +Eastern Europe and Central Asia,Tajikistan,TJK, +Eastern Europe and Central Asia,Turkmenistan,TKM, +Eastern Europe and Central Asia,Ukraine,UKR, +Eastern Europe and Central Asia,Uzbekistan,UZB, +Africa,Algeria,DZA, +Africa,Angola,AGO, +Africa,Benin,BEN, +Africa,Botswana,BWA, +Africa,Burkina Faso,BFA, +Africa,Burundi,BDI, +Africa,Cabo Verde,CPV, +Africa,Cameroon,CMR, +Africa,Central African Rep.,CAF, +Africa,Chad,TCD, +Africa,Comoros,COM, +Africa,Congo,COG, +Africa,Côte d'Ivoire,CIV, +Africa,Dem. Rep. of the Congo,COD, +Africa,Djibouti,DJI, +Africa,Egypt,EGY, +Africa,Equatorial Guinea,GNQ, +Africa,Eritrea,ERI, +Africa,Ethiopia,ETH, +Africa,Former Ethiopia,,Historical entity (Ethiopia before 1993 Eritrea secession); no distinct ISO 3166-1 code. Present-day maps to ETH +Africa,Former Rhodesia Nyas,,"Federation of Rhodesia and Nyasaland (dissolved 1963); no ISO 3166-1 code. Successors map to ZWE, ZMB, MWI" +Africa,Former Sudan,,"Sudan before 2011 South Sudan secession; no distinct ISO 3166-1 code. Successors: SDN, SSD" +Africa,Former Tanganyika,,Historical entity (united with Zanzibar in 1964 to form Tanzania); no ISO 3166-1 code. Maps to TZA +Africa,Former Zanzibar and Pemba Isd,,Historical entity (united with Tanganyika in 1964); no ISO 3166-1 code. Maps to TZA +Africa,Gabon,GAB, +Africa,Gambia,GMB, +Africa,Ghana,GHA, +Africa,Guinea,GIN, +Africa,Guinea-Bissau,GNB, +Africa,Kenya,KEN, +Africa,Lesotho,LSO, +Africa,Liberia,LBR, +Africa,Libya,LBY, +Africa,Madagascar,MDG, +Africa,Malawi,MWI, +Africa,Mali,MLI, +Africa,Mauritania,MRT, +Africa,Mauritius,MUS, +Africa,Mayotte,MYT, +Africa,Morocco,MAR, +Africa,Mozambique,MOZ, +Africa,Namibia,NAM, +Africa,Niger,NER, +Africa,Nigeria,NGA, +Africa,Réunion,REU, +Africa,Rwanda,RWA, +Africa,Saint Helena,SHN, +Africa,Sao Tome and Principe,STP, +Africa,Senegal,SEN, +Africa,Seychelles,SYC, +Africa,Sierra Leone,SLE, +Africa,Somalia,SOM, +Africa,South Africa,ZAF, +Africa,South Sudan,SSD, +Africa,Sudan,SDN, +Africa,Eswatini,SWZ, +Africa,Togo,TGO, +Africa,Tunisia,TUN, +Africa,Uganda,UGA, +Africa,United Rep. of Tanzania,TZA, +Africa,Zambia,ZMB, +Africa,Zimbabwe,ZWE, +Africa,Western Sahara,ESH, +Middle East,Bahrain,BHR, +Middle East,Former Arab Rep. of Yemen,,North Yemen before 1990 unification; no current distinct ISO 3166-1 code. Present-day unified Yemen is YEM +Middle East,Former Dem. Yemen,,"South Yemen (PDR Yemen) before 1990 unification; formerly-used code YMD (now in ISO 3166-3), no current ISO 3166-1 code. Maps to YEM" +Middle East,Iran,IRN, +Middle East,Iraq,IRQ, +Middle East,Israel,ISR, +Middle East,Jordan,JOR, +Middle East,Kuwait,KWT, +Middle East,Lebanon,LBN, +Middle East,Oman,OMN, +Middle East,Qatar,QAT, +Middle East,Saudi Arabia,SAU, +Middle East,State of Palestine,PSE, +Middle East,Syria,SYR, +Middle East,Turkey,TUR, +Middle East,United Arab Emirates,ARE, +Middle East,Yemen,YEM, +Middle East,West Bank and Gaza,PSE,Maps to State of Palestine (PSE); duplicates the State of Palestine row in this region +Northeast Asia,Mainland China,CHN, +Northeast Asia,Hong Kong SAR of China,HKG, +Northeast Asia,Macao SAR of China,MAC, +Northeast Asia,Taiwan province of China,TWN, +Northeast Asia,Dem. People's Rep. of Korea,PRK, +Northeast Asia,Japan,JPN, +Northeast Asia,Mongolia,MNG, +Northeast Asia,Other Asia nes,,"Trade-reporting aggregate ('not elsewhere specified'), not a country; no ISO 3166-1 code" +Northeast Asia,Rep. of Korea,KOR, +Northeast Asia,Ryukyu Island,,Historical entity under US administration until 1972; no distinct ISO 3166-1 code. Now part of JPN +South Asia and the Pacific,Afghanistan,AFG, +South Asia and the Pacific,Australia,AUS, +South Asia and the Pacific,Bangladesh,BGD, +South Asia and the Pacific,Bhutan,BTN, +South Asia and the Pacific,Brunei Darussalam,BRN, +South Asia and the Pacific,Cambodia,KHM, +South Asia and the Pacific,Cook Islands,COK, +South Asia and the Pacific,East and West Pakistan,,"Historical entity (Pakistan before 1971 Bangladesh independence); no distinct ISO 3166-1 code. Successors: PAK, BGD" +South Asia and the Pacific,Fiji,FJI, +South Asia and the Pacific,Former Dem. Rep. of Vietnam,,North Vietnam before 1976 reunification; no ISO 3166-1 code. Maps to VNM +South Asia and the Pacific,Former Pacific Islands,,"Trust Territory of the Pacific Islands (dissolved); no ISO 3166-1 code. Successors include FSM, MHL, PLW, MNP" +South Asia and the Pacific,Former Rep. of Vietnam,,South Vietnam before 1976 reunification; no ISO 3166-1 code. Maps to VNM +South Asia and the Pacific,French Polynesia,PYF, +South Asia and the Pacific,FS Micronesia,FSM, +South Asia and the Pacific,India,IND, +South Asia and the Pacific,"India, excl. Sikkim",,Historical subset of India (before Sikkim's 1975 accession); no distinct ISO 3166-1 code. Maps to IND +South Asia and the Pacific,Indonesia,IDN, +South Asia and the Pacific,Kiribati,KIR, +South Asia and the Pacific,Lao People's Dem. Rep.,LAO, +South Asia and the Pacific,Malaysia,MYS, +South Asia and the Pacific,Maldives,MDV, +South Asia and the Pacific,Marshall Islands,MHL, +South Asia and the Pacific,Myanmar,MMR, +South Asia and the Pacific,N. Mariana Islands,MNP, +South Asia and the Pacific,Nepal,NPL, +South Asia and the Pacific,New Caledonia,NCL, +South Asia and the Pacific,New Zealand,NZL, +South Asia and the Pacific,Pakistan,PAK, +South Asia and the Pacific,Palau,PLW, +South Asia and the Pacific,Papua New Guinea,PNG, +South Asia and the Pacific,Peninsula Malaysia,,Subnational region of Malaysia; no distinct ISO 3166-1 code. Part of MYS +South Asia and the Pacific,Philippines,PHL, +South Asia and the Pacific,Sabah,,Subnational region (state) of Malaysia; no distinct ISO 3166-1 code. Part of MYS +South Asia and the Pacific,Samoa,WSM, +South Asia and the Pacific,Sarawak,,Subnational region (state) of Malaysia; no distinct ISO 3166-1 code. Part of MYS +South Asia and the Pacific,Singapore,SGP, +South Asia and the Pacific,Solomon Islands,SLB, +South Asia and the Pacific,Sri Lanka,LKA, +South Asia and the Pacific,Thailand,THA, +South Asia and the Pacific,Timor-Leste,TLS, +South Asia and the Pacific,Tokelau,TKL, +South Asia and the Pacific,Tonga,TON, +South Asia and the Pacific,Tuvalu,TUV, +South Asia and the Pacific,Vanuatu,VUT, +South Asia and the Pacific,Viet Nam,VNM, +South Asia and the Pacific,Wallis and Futuna Islands,WLF, +South Asia and the Pacific,American Samoa,ASM, +South Asia and the Pacific,Guam,GUM, +South Asia and the Pacific,Nauru,NRU, +South Asia and the Pacific,Niue,NIU, +South Asia and the Pacific,Norfolk Island,NFK, +South Asia and the Pacific,Pitcairn,PCN, diff --git a/inst/extdata/regional/regionmappingOECDPlasticProjections.csv b/inst/extdata/regional/regionmappingOECDPlasticProjections.csv new file mode 100644 index 00000000..8ca99d1a --- /dev/null +++ b/inst/extdata/regional/regionmappingOECDPlasticProjections.csv @@ -0,0 +1,250 @@ + ,CountryCode,OECDPlasticProjReg +Aruba,ABW,Latin America +Afghanistan,AFG,Other non-OECD Asia +Angola,AGO,Other Africa +Anguilla,AIA,Latin America +Aland Islands,ALA,rest +Albania,ALB,Other Eurasia +Andorra,AND,rest +United Arab Emirates,ARE,Middle East & North Africa +Argentina,ARG,Latin America +Armenia,ARM,Other Eurasia +American Samoa,ASM,Other non-OECD Asia +Antarctica,ATA,Latin America +French Southern Territories,ATF,Other non-OECD Asia +Antigua and Barbuda,ATG,Latin America +Australia,AUS,OECD Oceania +Austria,AUT,OECD EU countries +Azerbaijan,AZE,Other Eurasia +Burundi,BDI,Other Africa +Belgium,BEL,OECD EU countries +Benin,BEN,Other Africa +"Bonaire, Sint Eustatius and Saba",BES,rest +Burkina Faso,BFA,Other Africa +Bangladesh,BGD,Other non-OECD Asia +Bulgaria,BGR,Other EU +Bahrain,BHR,Middle East & North Africa +Bahamas,BHS,Latin America +Bosnia and Herzegovina,BIH,Other Eurasia +Saint Barthelemy,BLM,Latin America +Belarus,BLR,Other Eurasia +Belize,BLZ,Latin America +Bermuda,BMU,Latin America +"Bolivia, Plurinational State of",BOL,Latin America +Brazil,BRA,Latin America +Barbados,BRB,Latin America +Brunei Darussalam,BRN,Other non-OECD Asia +Bhutan,BTN,Other non-OECD Asia +Bouvet Island,BVT,Latin America +Botswana,BWA,Other Africa +Central African Republic,CAF,Other Africa +Canada,CAN,Canada +Cocos (Keeling) Islands,CCK,Other non-OECD Asia +Switzerland,CHE,OECD Non-EU countries +Chile,CHL,Latin America +China,CHN,China +Cote d Ivoire,CIV,Other Africa +Cameroon,CMR,Other Africa +"Congo, the Democratic Republic of the",COD,Other Africa +Congo,COG,Other Africa +Cook Islands,COK,Other non-OECD Asia +Colombia,COL,Latin America +Comoros,COM,Other Africa +Cape Verde,CPV,Other Africa +Costa Rica,CRI,Latin America +Cuba,CUB,Latin America +Curacao,CUW,Latin America +Christmas Island,CXR,Other non-OECD Asia +Cayman Islands,CYM,Latin America +Cyprus,CYP,Other EU +Czech Republic,CZE,OECD EU countries +Germany,DEU,OECD EU countries +Djibouti,DJI,Other Africa +Dominica,DMA,Latin America +Denmark,DNK,OECD EU countries +Dominican Republic,DOM,Latin America +Algeria,DZA,Middle East & North Africa +Ecuador,ECU,Latin America +Egypt,EGY,Middle East & North Africa +Eritrea,ERI,Other Africa +Western Sahara,ESH,Middle East & North Africa +Spain,ESP,OECD EU countries +Estonia,EST,OECD Non-EU countries +Ethiopia,ETH,Other Africa +Finland,FIN,OECD EU countries +Fiji,FJI,Other non-OECD Asia +Falkland Islands (Malvinas),FLK,Latin America +France,FRA,OECD EU countries +Faroe Islands,FRO,rest +"Micronesia, Federated States of",FSM,rest +Gabon,GAB,Other Africa +United Kingdom,GBR,OECD EU countries +Georgia,GEO,Other Eurasia +Guernsey,GGY,rest +Ghana,GHA,Other Africa +Gibraltar,GIB,Other Eurasia +Guinea,GIN,Other Africa +Guadeloupe,GLP,Latin America +Gambia,GMB,Other Africa +Guinea-Bissau,GNB,Other Africa +Equatorial Guinea,GNQ,Other Africa +Greece,GRC,OECD EU countries +Grenada,GRD,Latin America +Greenland,GRL,rest +Guatemala,GTM,Latin America +French Guiana,GUF,Latin America +Guam,GUM,Other non-OECD Asia +Guyana,GUY,Latin America +Hong Kong,HKG,China +Heard Island and McDonald Islands,HMD,rest +Honduras,HND,Latin America +Croatia,HRV,Other EU +Haiti,HTI,Latin America +Hungary,HUN,OECD EU countries +Indonesia,IDN,Other non-OECD Asia +Isle of Man,IMN,rest +India,IND,India +British Indian Ocean Territory,IOT,Other non-OECD Asia +Ireland,IRL,OECD EU countries +"Iran, Islamic Republic of",IRN,Middle East & North Africa +Iraq,IRQ,Middle East & North Africa +Iceland,ISL,OECD Non-EU countries +Israel,ISR,Middle East & North Africa +Italy,ITA,OECD EU countries +Jamaica,JAM,Latin America +Jersey,JEY,rest +Jordan,JOR,Middle East & North Africa +Japan,JPN,OECD Asia +Kazakhstan,KAZ,Other Eurasia +Kenya,KEN,Other Africa +Kyrgyzstan,KGZ,Other Eurasia +Cambodia,KHM,Other non-OECD Asia +Kiribati,KIR,Other non-OECD Asia +Saint Kitts and Nevis,KNA,Latin America +"Korea, Republic of",KOR,OECD Asia +Kuwait,KWT,Middle East & North Africa +Lao People's Democratic Republic,LAO,Other non-OECD Asia +Lebanon,LBN,Middle East & North Africa +Liberia,LBR,Other Africa +Libya,LBY,Middle East & North Africa +Saint Lucia,LCA,Latin America +Liechtenstein,LIE,rest +Sri Lanka,LKA,Other non-OECD Asia +Lesotho,LSO,Other Africa +Lithuania,LTU,OECD Non-EU countries +Luxembourg,LUX,OECD EU countries +Latvia,LVA,OECD Non-EU countries +Macao,MAC,China +Saint Martin (French part),MAF,Latin America +Morocco,MAR,Middle East & North Africa +Monaco,MCO,rest +"Moldova, Republic of",MDA,Other Eurasia +Madagascar,MDG,Other Africa +Maldives,MDV,Other non-OECD Asia +Mexico,MEX,Other OECD America +Marshall Islands,MHL,Other non-OECD Asia +"Macedonia, the former Yugoslav Republic of",MKD,Other Eurasia +Mali,MLI,Other Africa +Malta,MLT,Other EU +Myanmar,MMR,Other non-OECD Asia +Montenegro,MNE,Other Eurasia +Mongolia,MNG,Other non-OECD Asia +Northern Mariana Islands,MNP,Other non-OECD Asia +Mozambique,MOZ,Other Africa +Mauritania,MRT,Other Africa +Montserrat,MSR,Latin America +Martinique,MTQ,Latin America +Mauritius,MUS,Other Africa +Malawi,MWI,Other Africa +Malaysia,MYS,Other non-OECD Asia +Mayotte,MYT,Other Africa +Namibia,NAM,Other Africa +New Caledonia,NCL,Other non-OECD Asia +Niger,NER,Other Africa +Norfolk Island,NFK,Other non-OECD Asia +Nigeria,NGA,Other Africa +Nicaragua,NIC,Latin America +Niue,NIU,Other non-OECD Asia +Netherlands,NLD,OECD EU countries +Norway,NOR,OECD Non-EU countries +Nepal,NPL,Other non-OECD Asia +Nauru,NRU,Other non-OECD Asia +New Zealand,NZL,OECD Oceania +Oman,OMN,Middle East & North Africa +Pakistan,PAK,Other non-OECD Asia +Panama,PAN,Latin America +Pitcairn,PCN,Other non-OECD Asia +Peru,PER,Latin America +Philippines,PHL,Other non-OECD Asia +Palau,PLW,Other non-OECD Asia +Papua New Guinea,PNG,Other non-OECD Asia +Poland,POL,OECD EU countries +Puerto Rico,PRI,Latin America +"Korea, Democratic People's Republic of",PRK,rest +Portugal,PRT,OECD EU countries +Paraguay,PRY,Latin America +"Palestine, State of",PSE,rest +French Polynesia,PYF,Other non-OECD Asia +Qatar,QAT,Middle East & North Africa +Reunion,REU,Other Africa +Romania,ROU,Other EU +Russian Federation,RUS,Other Eurasia +Rwanda,RWA,Other Africa +Saudi Arabia,SAU,Middle East & North Africa +Sudan,SDN,Other Africa +Senegal,SEN,Other Africa +Singapore,SGP,Other non-OECD Asia +South Georgia and the South Sandwich Islands,SGS,Latin America +"Saint Helena, Ascension and Tristan da Cunha",SHN,rest +Svalbard and Jan Mayen,SJM,rest +Solomon Islands,SLB,Other non-OECD Asia +Sierra Leone,SLE,Other Africa +El Salvador,SLV,Latin America +San Marino,SMR,rest +Somalia,SOM,Other Africa +Saint Pierre and Miquelon,SPM,rest +Serbia,SRB,Other Eurasia +South Sudan,SSD,Other Africa +Sao Tome and Principe,STP,Other Africa +Suriname,SUR,Latin America +Slovakia,SVK,OECD EU countries +Slovenia,SVN,OECD EU countries +Sweden,SWE,OECD EU countries +Swaziland,SWZ,Other Africa +Sint Maarten (Dutch part),SXM,Latin America +Seychelles,SYC,Other Africa +Syrian Arab Republic,SYR,Middle East & North Africa +Turks and Caicos Islands,TCA,Latin America +Chad,TCD,Other Africa +Togo,TGO,Other Africa +Thailand,THA,Other non-OECD Asia +Tajikistan,TJK,Other Eurasia +Tokelau,TKL,Other non-OECD Asia +Turkmenistan,TKM,Other Eurasia +Timor-Leste,TLS,Other non-OECD Asia +Tonga,TON,Other non-OECD Asia +Trinidad and Tobago,TTO,Latin America +Tunisia,TUN,Middle East & North Africa +Turkey,TUR,OECD Non-EU countries +Tuvalu,TUV,Other non-OECD Asia +"Taiwan, Province of China",TWN,China +"Tanzania, United Republic of",TZA,Other Africa +Uganda,UGA,Other Africa +Ukraine,UKR,Other Eurasia +United States Minor Outlying Islands,UMI,Other non-OECD Asia +Uruguay,URY,Latin America +United States,USA,USA +Uzbekistan,UZB,Other Eurasia +Holy See (Vatican City State),VAT,rest +Saint Vincent and the Grenadines,VCT,Latin America +"Venezuela, Bolivarian Republic of",VEN,Latin America +"Virgin Islands, British",VGB,rest +"Virgin Islands, U.S.",VIR,rest +Viet Nam,VNM,Other non-OECD Asia +Vanuatu,VUT,Other non-OECD Asia +Wallis and Futuna,WLF,Other non-OECD Asia +Samoa,WSM,Other non-OECD Asia +Yemen,YEM,Middle East & North Africa +South Africa,ZAF,Other Africa +Zambia,ZMB,Other Africa +Zimbabwe,ZWE,Other Africa diff --git a/inst/extdata/regional/regionmappingPottinger2024.csv b/inst/extdata/regional/regionmappingPottinger2024.csv new file mode 100644 index 00000000..a35f7426 --- /dev/null +++ b/inst/extdata/regional/regionmappingPottinger2024.csv @@ -0,0 +1,250 @@ +X,CountryCode,PottingerReg,PottingerRegionName +Afghanistan,AFG,row,Majority World (MW) +Aland Islands,ALA,row,Majority World (MW) +Albania,ALB,row,Majority World (MW) +Algeria,DZA,row,Majority World (MW) +American Samoa,ASM,row,Majority World (MW) +Andorra,AND,row,Majority World (MW) +Angola,AGO,row,Majority World (MW) +Anguilla,AIA,row,Majority World (MW) +Antarctica,ATA,row,Majority World (MW) +Antigua and Barbuda,ATG,row,Majority World (MW) +Argentina,ARG,row,Majority World (MW) +Armenia,ARM,row,Majority World (MW) +Aruba,ABW,row,Majority World (MW) +Australia,AUS,row,Majority World (MW) +Austria,AUT,eu30,Europe (EU30) +Azerbaijan,AZE,row,Majority World (MW) +Bahamas,BHS,row,Majority World (MW) +Bahrain,BHR,row,Majority World (MW) +Bangladesh,BGD,row,Majority World (MW) +Barbados,BRB,row,Majority World (MW) +Belarus,BLR,row,Majority World (MW) +Belgium,BEL,eu30,Europe (EU30) +Belize,BLZ,row,Majority World (MW) +Benin,BEN,row,Majority World (MW) +Bermuda,BMU,row,Majority World (MW) +Bhutan,BTN,row,Majority World (MW) +Bolivia (Plurinational State of),BOL,row,Majority World (MW) +Bonaire,BES,row,Majority World (MW) +Bosnia and Herzegovina,BIH,row,Majority World (MW) +Botswana,BWA,row,Majority World (MW) +Bouvet Island,BVT,row,Majority World (MW) +Brazil,BRA,row,Majority World (MW) +British Indian Ocean Territory,IOT,row,Majority World (MW) +Brunei Darussalam,BRN,row,Majority World (MW) +Bulgaria,BGR,eu30,Europe (EU30) +Burkina Faso,BFA,row,Majority World (MW) +Burundi,BDI,row,Majority World (MW) +Cambodia,KHM,row,Majority World (MW) +Cameroon,CMR,row,Majority World (MW) +Canada,CAN,nafta,North America (NA) +Cape Verde,CPV,row,Majority World (MW) +Cayman Islands,CYM,row,Majority World (MW) +Central African Republic,CAF,row,Majority World (MW) +Chad,TCD,row,Majority World (MW) +Chile,CHL,row,Majority World (MW) +China,CHN,china,China +Christmas Island,CXR,row,Majority World (MW) +Cocos (Keeling) Islands,CCK,row,Majority World (MW) +Colombia,COL,row,Majority World (MW) +Comoros,COM,row,Majority World (MW) +Congo,COG,row,Majority World (MW) +Cook Islands,COK,row,Majority World (MW) +Costa Rica,CRI,row,Majority World (MW) +Cote d Ivoire,CIV,row,Majority World (MW) +Croatia,HRV,eu30,Europe (EU30) +Cuba,CUB,row,Majority World (MW) +Curacao,CUW,row,Majority World (MW) +Cyprus,CYP,eu30,Europe (EU30) +Czech Republic,CZE,eu30,Europe (EU30) +Democratic People's Republic of Korea,PRK,row,Majority World (MW) +Democratic Republic of the Congo,COD,row,Majority World (MW) +Denmark,DNK,eu30,Europe (EU30) +Djibouti,DJI,row,Majority World (MW) +Dominica,DMA,row,Majority World (MW) +Dominican Republic,DOM,row,Majority World (MW) +Ecuador,ECU,row,Majority World (MW) +Egypt,EGY,row,Majority World (MW) +El Salvador,SLV,row,Majority World (MW) +Equatorial Guinea,GNQ,row,Majority World (MW) +Eritrea,ERI,row,Majority World (MW) +Estonia,EST,eu30,Europe (EU30) +Ethiopia,ETH,row,Majority World (MW) +Falkland Islands (Malvinas),FLK,row,Majority World (MW) +Faroe Islands,FRO,row,Majority World (MW) +Fiji,FJI,row,Majority World (MW) +Finland,FIN,eu30,Europe (EU30) +France,FRA,eu30,Europe (EU30) +French Guiana,GUF,row,Majority World (MW) +French Polynesia,PYF,row,Majority World (MW) +French Southern Territories,ATF,row,Majority World (MW) +Gabon,GAB,row,Majority World (MW) +Gambia,GMB,row,Majority World (MW) +Georgia,GEO,row,Majority World (MW) +Germany,DEU,eu30,Europe (EU30) +Ghana,GHA,row,Majority World (MW) +Gibraltar,GIB,row,Majority World (MW) +Greece,GRC,eu30,Europe (EU30) +Greenland,GRL,row,Majority World (MW) +Grenada,GRD,row,Majority World (MW) +Guadeloupe,GLP,row,Majority World (MW) +Guam,GUM,row,Majority World (MW) +Guatemala,GTM,row,Majority World (MW) +Guernsey,GGY,row,Majority World (MW) +Guinea,GIN,row,Majority World (MW) +Guinea-Bissau,GNB,row,Majority World (MW) +Guyana,GUY,row,Majority World (MW) +Haiti,HTI,row,Majority World (MW) +Heard Island and McDonald Islands,HMD,row,Majority World (MW) +Holy See (Vatican City State),VAT,row,Majority World (MW) +Honduras,HND,row,Majority World (MW) +Hong Kong,HKG,row,Majority World (MW) +Hungary,HUN,eu30,Europe (EU30) +Iceland,ISL,row,Majority World (MW) +India,IND,row,Majority World (MW) +Indonesia,IDN,row,Majority World (MW) +Iran (Islamic Republic of),IRN,row,Majority World (MW) +Iraq,IRQ,row,Majority World (MW) +Ireland,IRL,eu30,Europe (EU30) +Isle of Man,IMN,row,Majority World (MW) +Israel,ISR,row,Majority World (MW) +Italy,ITA,eu30,Europe (EU30) +Jamaica,JAM,row,Majority World (MW) +Japan,JPN,row,Majority World (MW) +Jersey,JEY,row,Majority World (MW) +Jordan,JOR,row,Majority World (MW) +Kazakhstan,KAZ,row,Majority World (MW) +Kenya,KEN,row,Majority World (MW) +Kiribati,KIR,row,Majority World (MW) +Kuwait,KWT,row,Majority World (MW) +Kyrgyzstan,KGZ,row,Majority World (MW) +Lao People's Democratic Republic,LAO,row,Majority World (MW) +Latvia,LVA,eu30,Europe (EU30) +Lebanon,LBN,row,Majority World (MW) +Lesotho,LSO,row,Majority World (MW) +Liberia,LBR,row,Majority World (MW) +Libya,LBY,row,Majority World (MW) +Liechtenstein,LIE,row,Majority World (MW) +Lithuania,LTU,eu30,Europe (EU30) +Luxembourg,LUX,eu30,Europe (EU30) +Macao,MAC,row,Majority World (MW) +Madagascar,MDG,row,Majority World (MW) +Malawi,MWI,row,Majority World (MW) +Malaysia,MYS,row,Majority World (MW) +Maldives,MDV,row,Majority World (MW) +Mali,MLI,row,Majority World (MW) +Malta,MLT,eu30,Europe (EU30) +Marshall Islands,MHL,row,Majority World (MW) +Martinique,MTQ,row,Majority World (MW) +Mauritania,MRT,row,Majority World (MW) +Mauritius,MUS,row,Majority World (MW) +Mayotte,MYT,row,Majority World (MW) +Mexico,MEX,nafta,North America (NA) +Micronesia (Fed. States of),FSM,row,Majority World (MW) +Monaco,MCO,row,Majority World (MW) +Mongolia,MNG,row,Majority World (MW) +Montenegro,MNE,row,Majority World (MW) +Montserrat,MSR,row,Majority World (MW) +Morocco,MAR,row,Majority World (MW) +Mozambique,MOZ,row,Majority World (MW) +Myanmar,MMR,row,Majority World (MW) +Namibia,NAM,row,Majority World (MW) +Nauru,NRU,row,Majority World (MW) +Nepal,NPL,row,Majority World (MW) +Netherlands,NLD,eu30,Europe (EU30) +New Caledonia,NCL,row,Majority World (MW) +New Zealand,NZL,row,Majority World (MW) +Nicaragua,NIC,row,Majority World (MW) +Niger,NER,row,Majority World (MW) +Nigeria,NGA,row,Majority World (MW) +Niue,NIU,row,Majority World (MW) +Norfolk Island,NFK,row,Majority World (MW) +North Macedonia,MKD,row,Majority World (MW) +Northern Mariana Islands,MNP,row,Majority World (MW) +Norway,NOR,eu30,Europe (EU30) +Oman,OMN,row,Majority World (MW) +Pakistan,PAK,row,Majority World (MW) +Palau,PLW,row,Majority World (MW) +Palestine,PSE,row,Majority World (MW) +Panama,PAN,row,Majority World (MW) +Papua New Guinea,PNG,row,Majority World (MW) +Paraguay,PRY,row,Majority World (MW) +Peru,PER,row,Majority World (MW) +Philippines,PHL,row,Majority World (MW) +Pitcairn,PCN,row,Majority World (MW) +Poland,POL,eu30,Europe (EU30) +Portugal,PRT,eu30,Europe (EU30) +Puerto Rico,PRI,row,Majority World (MW) +Qatar,QAT,row,Majority World (MW) +Republic of Korea,KOR,row,Majority World (MW) +Republic of Moldova,MDA,row,Majority World (MW) +Reunion,REU,row,Majority World (MW) +Romania,ROU,eu30,Europe (EU30) +Russian Federation,RUS,row,Majority World (MW) +Rwanda,RWA,row,Majority World (MW) +Saint Barthelemy,BLM,row,Majority World (MW) +Saint Helena,SHN,row,Majority World (MW) +Saint Kitts and Nevis,KNA,row,Majority World (MW) +Saint Lucia,LCA,row,Majority World (MW) +Saint Martin (French part),MAF,row,Majority World (MW) +Saint Pierre and Miquelon,SPM,row,Majority World (MW) +Saint Vincent and the Grenadines,VCT,row,Majority World (MW) +Samoa,WSM,row,Majority World (MW) +San Marino,SMR,row,Majority World (MW) +Sao Tome and Principe,STP,row,Majority World (MW) +Saudi Arabia,SAU,row,Majority World (MW) +Senegal,SEN,row,Majority World (MW) +Serbia,SRB,row,Majority World (MW) +Seychelles,SYC,row,Majority World (MW) +Sierra Leone,SLE,row,Majority World (MW) +Singapore,SGP,row,Majority World (MW) +Sint Maarten (Dutch part),SXM,row,Majority World (MW) +Slovakia,SVK,eu30,Europe (EU30) +Slovenia,SVN,eu30,Europe (EU30) +Solomon Islands,SLB,row,Majority World (MW) +Somalia,SOM,row,Majority World (MW) +South Africa,ZAF,row,Majority World (MW) +South Georgia and the South Sandwich Islands,SGS,row,Majority World (MW) +South Sudan,SSD,row,Majority World (MW) +Spain,ESP,eu30,Europe (EU30) +Sri Lanka,LKA,row,Majority World (MW) +Sudan,SDN,row,Majority World (MW) +Suriname,SUR,row,Majority World (MW) +Svalbard and Jan Mayen,SJM,row,Majority World (MW) +Swaziland,SWZ,row,Majority World (MW) +Sweden,SWE,eu30,Europe (EU30) +Switzerland,CHE,eu30,Europe (EU30) +Syrian Arab Republic,SYR,row,Majority World (MW) +Taiwan,TWN,row,Majority World (MW) +Tajikistan,TJK,row,Majority World (MW) +Thailand,THA,row,Majority World (MW) +Timor-Leste,TLS,row,Majority World (MW) +Togo,TGO,row,Majority World (MW) +Tokelau,TKL,row,Majority World (MW) +Tonga,TON,row,Majority World (MW) +Trinidad and Tobago,TTO,row,Majority World (MW) +Tunisia,TUN,row,Majority World (MW) +Turkey,TUR,row,Majority World (MW) +Turkmenistan,TKM,row,Majority World (MW) +Turks and Caicos Islands,TCA,row,Majority World (MW) +Tuvalu,TUV,row,Majority World (MW) +Uganda,UGA,row,Majority World (MW) +Ukraine,UKR,row,Majority World (MW) +United Arab Emirates,ARE,row,Majority World (MW) +United Kingdom,GBR,eu30,Europe (EU30) +United Republic of Tanzania,TZA,row,Majority World (MW) +United States Minor Outlying Islands,UMI,row,Majority World (MW) +United States of America,USA,nafta,North America (NA) +United States Virgin Islands,VIR,row,Majority World (MW) +Uruguay,URY,row,Majority World (MW) +Uzbekistan,UZB,row,Majority World (MW) +Vanuatu,VUT,row,Majority World (MW) +Venezuela (Bolivarian Republic of),VEN,row,Majority World (MW) +Viet Nam,VNM,row,Majority World (MW) +Virgin Islands (British),VGB,row,Majority World (MW) +Wallis and Futuna,WLF,row,Majority World (MW) +Western Sahara,ESH,row,Majority World (MW) +Yemen,YEM,row,Majority World (MW) +Zambia,ZMB,row,Majority World (MW) +Zimbabwe,ZWE,row,Majority World (MW) diff --git a/man/calcPlGaoCabrera.Rd b/man/calcPlGaoCabrera.Rd new file mode 100644 index 00000000..6759a958 --- /dev/null +++ b/man/calcPlGaoCabrera.Rd @@ -0,0 +1,24 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/calcPlGaoCabrera.R +\name{calcPlGaoCabrera} +\alias{calcPlGaoCabrera} +\title{Gao & Cabrera-Serrenho 2025 polymer consumption in IAMC variables} +\usage{ +calcPlGaoCabrera() +} +\value{ +Total polymer consumption (Mt/yr) +} +\description{ +Return total apparent polymer consumption from Gao & Cabrera-Serrenho (2025), +"Global Plastic MFA", at ISO3 country level. The 14 polymer groups (plastics, +fibres and rubber) are summed into a single total and mapped to the IAMC +variable \code{Material Demand|Chemicals|Plastics} in Mt/yr. Note that the +years 2020-2021 rely on incomplete trade data. +} +\seealso{ +\code{\link{readGaoCabrera2025}}, \code{\link{calcPlPottinger}} +} +\author{ +Leonie Schweiger +} diff --git a/man/calcPlGeyer.Rd b/man/calcPlGeyer.Rd new file mode 100644 index 00000000..b5aad16e --- /dev/null +++ b/man/calcPlGeyer.Rd @@ -0,0 +1,26 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/calcPlGeyer.R +\name{calcPlGeyer} +\alias{calcPlGeyer} +\title{Geyer et al. 2017 global plastics production in IAMC variables} +\usage{ +calcPlGeyer() +} +\value{ +List with a global-only MagPIE object of plastics production (Mt/yr) +in IAMC variables and metadata in calcOutput format. +} +\description{ +Return the global annual plastics production time series (1950-2015) from +Geyer et al. (2017), doi:10.1126/sciadv.1700782 (Table S1), reported at the +global level under the IAMC variables \code{Production|Chemicals|Plastics} +and \code{Material Demand|Chemicals|Plastics}, both in Mt/yr. The data are +global only and are not disaggregated to countries or regions. +} +\seealso{ +\code{\link{readGeyer}}, \code{\link{calcPlPottinger}}, +\code{\link{calcPlGaoCabrera}} +} +\author{ +Leonie Schweiger +} diff --git a/man/calcPlIEA.Rd b/man/calcPlIEA.Rd new file mode 100644 index 00000000..78b58402 --- /dev/null +++ b/man/calcPlIEA.Rd @@ -0,0 +1,29 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/calcPlIEA.R +\name{calcPlIEA} +\alias{calcPlIEA} +\title{IEA 2018 global plastics production in IAMC variables} +\usage{ +calcPlIEA(subtype) +} +\arguments{ +\item{subtype}{Character. \code{"total"} (default) returns absolute production +and demand in Mt/yr; \code{"perCapita"} returns demand per capita in kg/cap, +using Stegmann's own Population variable.} +} +\value{ +List with a global-only MagPIE object of plastics production (Mt/yr) in +IAMC variables. +} +\description{ +Return the global annual production of key thermoplastics (1980-2050) from the +IEA report "The Future of Petrochemicals" (2018), Figure 4.2 (Reference +Technology Scenario), read via \code{readSource("IEA_Petrochem", +subtype = "plastics_All")}. The reported total (the source "SUM" series, in Mt) +is returned at the global level under the IAMC variables +\code{Production|Chemicals|Plastics} and \code{Material Demand|Chemicals|Plastics}. +The data are global only and are not disaggregated to countries or regions. +} +\author{ +Leonie Schweiger +} diff --git a/man/calcPlOECDProjection.Rd b/man/calcPlOECDProjection.Rd new file mode 100644 index 00000000..f226be8b --- /dev/null +++ b/man/calcPlOECDProjection.Rd @@ -0,0 +1,32 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/calcPlOECDProjection.R +\name{calcPlOECDProjection} +\alias{calcPlOECDProjection} +\title{OECD Global Plastics Outlook 2022 projections in IAMC variables} +\usage{ +calcPlOECDProjection(subtype = "total") +} +\arguments{ +\item{subtype}{Character, either "total" (plastics use, Mt/yr, summed on aggregation) or +"perCapita" (plastics use per capita, kg/cap, population-weighted mean on aggregation).} +} +\value{ +List with a MagPIE object of the OECD plastics projection in IAMC variables and +metadata. +} +\description{ +Return the plastics-use projection 1980-2060) from the OECD Global Plastics Outlook 2022 +at ISO3 country level, mapped to IAMC variables. +\code{subtype = "total"} returns total plastics use as +\code{Material Demand|Chemicals|Plastics} (Mt/yr); \code{subtype = "perCapita"} +returns \code{Material Demand|Chemicals|Plastics|per capita} (kg/cap), using the +OECD population projection where available (2019-2060) and \code{\link{calcCoPopulation}} +(SSP2) for the earlier years (1980-2018). +} +\seealso{ +\code{\link{readOECD_Plastic}}, \code{\link{calcPlGaoCabrera}}, +\code{\link{calcCoPopulation}} +} +\author{ +Leonie Schweiger +} diff --git a/man/calcPlPottinger.Rd b/man/calcPlPottinger.Rd new file mode 100644 index 00000000..a96a46f5 --- /dev/null +++ b/man/calcPlPottinger.Rd @@ -0,0 +1,32 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/calcPlPottinger.R +\name{calcPlPottinger} +\alias{calcPlPottinger} +\title{Pottinger 2024 plastics material flows in IAMC variables} +\usage{ +calcPlPottinger(subtype = "businessAsUsual", perCapita = FALSE) +} +\arguments{ +\item{subtype}{Character, scenario to extract (e.g., "businessAsUsual" for BAU). +Must match a scenario name encoded in the data dimension from readPottinger2024.} + +\item{perCapita}{Logical. If \code{FALSE} (default), return absolute flows in +Mt/yr. If \code{TRUE}, return per-capita flows in kg/cap, using the same UN +World Population Prospects population as \code{\link{convertPottinger2024}}.} +} +\value{ +List with a MagPIE object of plastics flows (Mt/yr, or kg/cap if +\code{perCapita = TRUE}) in IAMC variables and metadata in calcOutput format. +} +\description{ +Return the plastics material-flow data from Pottinger et al. (2024) for a +specified scenario (Business-as-Usual or policy variants), at ISO3 country +level, with the source flow columns renamed to a subset of IAMC variables. +All flows are in Mt/yr. +} +\seealso{ +\code{\link{readPottinger2024}} +} +\author{ +Leonie Schweiger +} diff --git a/man/calcPlStegmann.Rd b/man/calcPlStegmann.Rd new file mode 100644 index 00000000..48944bef --- /dev/null +++ b/man/calcPlStegmann.Rd @@ -0,0 +1,31 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/calcPlStegmann.R +\name{calcPlStegmann} +\alias{calcPlStegmann} +\title{Stegmann 2022 plastics production and demand in IAMC variables} +\usage{ +calcPlStegmann(subtype = "total") +} +\arguments{ +\item{subtype}{Character. \code{"total"} (default) returns absolute production +and demand in Mt/yr; \code{"perCapita"} returns demand per capita in kg/cap, +using Stegmann's own Population variable.} +} +\value{ +List with a MagPIE object of plastics production/demand (Mt/yr, or +kg/cap if \code{subtype = "perCapita"}) in IAMC variables and metadata in +calcOutput format. +} +\description{ +Return total plastics production and demand (Stegmann assumes no trade, so +demand = production) from Stegmann et al. (2022, PLAIA/IMAGE) at ISO3 country +level, for all four scenarios. The eight Plastics|Production|Sector|* +flows (PJ/yr) are summed to a total and converted to mass using the lower +heating value of plastics of 35 GJ/t (Mt/yr = PJ/yr / 35). +} +\seealso{ +\code{\link[mrindustry]{readStegmann2022}} +} +\author{ +Leonie Schweiger +} diff --git a/man/convertGaoCabrera2025.Rd b/man/convertGaoCabrera2025.Rd new file mode 100644 index 00000000..36ce3cc3 --- /dev/null +++ b/man/convertGaoCabrera2025.Rd @@ -0,0 +1,29 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/convertGaoCabrera2025.R +\name{convertGaoCabrera2025} +\alias{convertGaoCabrera2025} +\title{Convert Gao & Cabrera-Serrenho 2025 consumption to ISO country level} +\usage{ +convertGaoCabrera2025(x) +} +\arguments{ +\item{x}{MagPIE object with GaoCabrera2025 data at the eight-region resolution.} +} +\value{ +MagPIE object with the GaoCabrera2025 apparent consumption +disaggregated to ISO3 country level, in kt. +} +\description{ +Disaggregate the eight Gao & Cabrera-Serrenho (2025) world regions to ISO3 +country level. The regional kt consumption is distributed across the member +countries of each region proportionally to population from the UN World +Population Prospects (\code{readSource("UN_PopDiv", "pop", subset = "estimates")}), +whose "estimates" subset (1950-2021) spans the full Gao year range (1978-2021). +Countries not covered by the source regions are filled with 0. +} +\seealso{ +\code{\link{readGaoCabrera2025}} +} +\author{ +Leonie Schweiger +} diff --git a/man/convertPottinger2024.Rd b/man/convertPottinger2024.Rd new file mode 100644 index 00000000..7976b987 --- /dev/null +++ b/man/convertPottinger2024.Rd @@ -0,0 +1,31 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/convertPottinger2024.R +\name{convertPottinger2024} +\alias{convertPottinger2024} +\title{Convert Pottinger 2024 plastics data to ISO country level} +\usage{ +convertPottinger2024(x) +} +\arguments{ +\item{x}{MagPIE object with Pottinger2024 data at the four-region resolution.} +} +\value{ +MagPIE object with the Pottinger2024 data disaggregated to ISO3 +country level, in Mt. +} +\description{ +Disaggregate the four Pottinger modelling regions (china, eu30, nafta, row) +to ISO3 country level. The regional Mt flows are distributed across the +member countries of each region proportionally to population from the UN +World Population Prospects (\code{readSource("UN_PopDiv", "pop", ...)}). The +"estimates" subset (1950-2021) covers the historical part of the series and +the "medium" variant projection (2022-2100) covers the future part, together +spanning the yearly 2011-2050 Pottinger years. Countries not covered by the +source regions are filled with 0. +} +\seealso{ +\code{\link{readPottinger2024}} +} +\author{ +Leonie Schweiger +} diff --git a/man/fullVALIDATIONMFA.Rd b/man/fullVALIDATIONMFA.Rd new file mode 100644 index 00000000..70b5b91e --- /dev/null +++ b/man/fullVALIDATIONMFA.Rd @@ -0,0 +1,31 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/fullVALIDATIONMFA.R +\name{fullVALIDATIONMFA} +\alias{fullVALIDATIONMFA} +\title{Generate validation data for the REMIND MFA} +\usage{ +fullVALIDATIONMFA(rev = 0) +} +\arguments{ +\item{rev}{Unused parameter, but required by \code{madrat}.} +} +\description{ +Function that assembles a regional dataset from various sources against which +the MFA model results can be compared, and writes it in IAMC format to +\code{validation.mif}. This mirrors \code{mrremind::fullVALIDATIONREMIND}, +which writes \code{historical.mif} for REMIND. New sources are appended as +additional \code{calcOutput(..., file = valfile, append = TRUE)} blocks. +} +\examples{ +\dontrun{ +retrieveData("VALIDATIONMFA") +} + +} +\seealso{ +\code{\link[madrat]{readSource}}, \code{\link[madrat]{calcOutput}}, +\code{\link[madrat]{retrieveData}} +} +\author{ +Leonie Schweiger +} diff --git a/man/readGaoCabrera2025.Rd b/man/readGaoCabrera2025.Rd new file mode 100644 index 00000000..76c10de2 --- /dev/null +++ b/man/readGaoCabrera2025.Rd @@ -0,0 +1,33 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/readGaoCabrera2025.R +\name{readGaoCabrera2025} +\alias{readGaoCabrera2025} +\title{Read Gao & Cabrera-Serrenho 2025 apparent polymer consumption} +\usage{ +readGaoCabrera2025() +} +\value{ +MagPIE object with apparent consumption in kt, dimensions +(region, year, polymer): 8 regions x 44 years x 14 polymers. +} +\description{ +Read the apparent polymer consumption ("D") from Gao & Cabrera-Serrenho (2025), +doi:10.1016/j.resconrec.2025.108518, data from doi:10.17863/CAM.101645, +from the MATLAB file \code{D.mat}. D is a 1x8 cell array +(one cell per world region); each cell is a 14x44 matrix with rows = 14 +polymer groups and columns = years 1978-2021. Apparent consumption = ICIS +production + net trade (virgin + recycled), in kilotonnes (kt). +Note that, per the paper SI, the years 2020 and 2021 rely on incomplete trade +data and are less reliable. +} +\examples{ +\dontrun{ +readSource("GaoCabrera2025", convert = FALSE) +} +} +\seealso{ +\code{\link[madrat]{readSource}} +} +\author{ +Leonie Schweiger +} diff --git a/man/readOECD_Plastic.Rd b/man/readOECD_Plastic.Rd index 62a74e8c..a442f629 100644 --- a/man/readOECD_Plastic.Rd +++ b/man/readOECD_Plastic.Rd @@ -13,7 +13,11 @@ Valid formats include: - "Use_1990-2019_region" (plastic use in Mt, dimensions: region, year) - "Use_1990-2019_world" (plastic use in Mt, dimensions: year, application, polymer, type (primary/secondary)) - "WasteEOL_1990-2019_region" (plastic waste in Mt, dimensions: region, year, EOL fate, collected for recycling) -- "WasteType_2019_region" (plastic waste in Mt, dimensions: region, application, polymer)} +- "WasteType_2019_region" (plastic waste in Mt, dimensions: region, application, polymer) +- "Use_1980-2060_projection" (OECD Global Plastics Outlook 2022 plastics use in Mt, + dimensions: OECD-Outlook region, year) +- "Pop_2019-2060_projection" (OECD Global Plastics Outlook 2022 population in billion + people, dimensions: OECD-Outlook region, year)} } \value{ magpie object of the OECD Plastic data diff --git a/man/readPottinger2024.Rd b/man/readPottinger2024.Rd new file mode 100644 index 00000000..50679858 --- /dev/null +++ b/man/readPottinger2024.Rd @@ -0,0 +1,33 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/readPottinger2024.R +\name{readPottinger2024} +\alias{readPottinger2024} +\title{Read Pottinger 2024 plastics material-flow data} +\usage{ +readPottinger2024() +} +\value{ +MagPIE object with the raw Pottinger flow variables, dimensions +(regionKey, year, scenario.variable), in Mt. +} +\description{ +Read the global plastics material-flow dataset from Pottinger et al. (2024), +"science.adr3837_data_s1.csv". All scenarios (Business-as-Usual and policy +variants) are read. Each scenario's time series is spread across multiple rows: +for each scenario, rows exist for years 2011–2050 (one year per row after +extracting the year from the scenarioKey suffix). The global aggregate region +is dropped (it cannot be disaggregated to countries); the four modelling regions +china, eu30, nafta and row are kept. +All flows are in Mt (megatonnes) per year. +} +\examples{ +\dontrun{ +readSource("Pottinger2024", convert = FALSE) +} +} +\seealso{ +\code{\link[madrat]{readSource}} +} +\author{ +Leonie Schweiger +}