diff --git a/.buildlibrary b/.buildlibrary index ab59d10c..571a122b 100644 --- a/.buildlibrary +++ b/.buildlibrary @@ -1,4 +1,4 @@ -ValidationKey: '219194888' +ValidationKey: '219284520' AcceptedWarnings: - 'Warning: package ''.*'' was built under R version' - 'Warning: namespace ''.*'' is not available and has been replaced' diff --git a/CITATION.cff b/CITATION.cff index ce07950b..4059f861 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: 'remind2: The REMIND R package (2nd generation)' -version: 1.117.6 -date-released: '2023-09-13' +version: 1.118.0 +date-released: '2023-09-14' abstract: Contains the REMIND-specific routines for data and model output manipulation. authors: - family-names: Rodrigues diff --git a/DESCRIPTION b/DESCRIPTION index f4ccaa59..d46b21c5 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Type: Package Package: remind2 Title: The REMIND R package (2nd generation) -Version: 1.117.6 -Date: 2023-09-13 +Version: 1.118.0 +Date: 2023-09-14 Authors@R: c( person("Renato", "Rodrigues", , "renato.rodrigues@pik-potsdam.de", role = c("aut", "cre")), person("Lavinia", "Baumstark", role = "aut"), @@ -62,7 +62,7 @@ Imports: madrat, mip (>= 0.139.1), openxlsx, - piamInterfaces (>= 0.0.102), + piamInterfaces (>= 0.1.2), plotly, quitte, readr, diff --git a/NAMESPACE b/NAMESPACE index 2aa77789..9ab877f3 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -250,6 +250,7 @@ importFrom(openxlsx,createStyle) importFrom(openxlsx,createWorkbook) importFrom(openxlsx,saveWorkbook) importFrom(openxlsx,writeData) +importFrom(piamInterfaces,checkSummations) importFrom(plotly,config) importFrom(plotly,ggplotly) importFrom(plotly,hide_legend) diff --git a/R/convGDX2MIF.R b/R/convGDX2MIF.R index 9c604168..34f16176 100644 --- a/R/convGDX2MIF.R +++ b/R/convGDX2MIF.R @@ -19,9 +19,12 @@ #' \dontrun{convGDX2MIF(gdx,gdx_refpolicycost,file="REMIND_generic_default.csv",scenario="default")} #' #' @export +#' @importFrom dplyr %>% bind_rows filter #' @importFrom gdx readGDX #' @importFrom magclass mbind write.report +#' @importFrom piamInterfaces checkSummations #' @importFrom utils write.csv + convGDX2MIF <- function(gdx, gdx_ref = NULL, file = NULL, scenario = "default", t = c(seq(2005, 2060, 5), seq(2070, 2110, 10), 2130, 2150), gdx_refpolicycost = gdx_ref) { @@ -117,11 +120,31 @@ convGDX2MIF <- function(gdx, gdx_ref = NULL, file = NULL, scenario = "default", checkVariableNames(getNames(output, dim = 3)) - sumChecks <- piamInterfaces::checkSummations( + .reportSummationErrors <- function(msg) { + if (!any(grepl('All summation checks were fine', msg))) + message(paste(msg, collapse = '\n')) + } + + capture.output( + sumChecks <- checkSummations( + mifFile = output, outputDirectory = NULL, + summationsFile = "extractVariableGroups", + absDiff = 1.5e-8, relDiff = 1e-8, roundDiff = TRUE + ) %>% + filter(abs(.data$diff) >= 1.5e-8), + type = 'message') %>% + .reportSummationErrors() + + capture.output(sumChecks <- checkSummations( mifFile = output, outputDirectory = NULL, - summationsFile = "extractVariableGroups", - absDiff = 1.5e-8, relDiff = 1e-8, roundDiff = TRUE - ) %>% filter(abs(!!sym("diff")) >= 1.5e-8) + summationsFile = system.file('extdata/additional_summation_checks.csv', + package = 'remind2'), + absDiff = 1.5e-8, relDiff = 1e-8, roundDiff = TRUE) %>% + filter(abs(.data$diff) >= 1.5e-8) %>% + bind_rows(sumChecks), + type = 'message' + ) %>% + .reportSummationErrors() # either write the *.mif or return the magpie object if (!is.null(file)) { diff --git a/README.md b/README.md index 1ecaf09e..f21c5d31 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # The REMIND R package (2nd generation) -R package **remind2**, version **1.117.6** +R package **remind2**, version **1.118.0** [![CRAN status](https://www.r-pkg.org/badges/version/remind2)](https://cran.r-project.org/package=remind2) [![R build status](https://github.com/pik-piam/remind2/workflows/check/badge.svg)](https://github.com/pik-piam/remind2/actions) [![codecov](https://codecov.io/gh/pik-piam/remind2/branch/master/graph/badge.svg)](https://app.codecov.io/gh/pik-piam/remind2) [![r-universe](https://pik-piam.r-universe.dev/badges/remind2)](https://pik-piam.r-universe.dev/builds) @@ -49,7 +49,7 @@ In case of questions / problems please contact Renato Rodrigues . +Rodrigues R, Baumstark L, Benke F, Dietrich J, Dirnaichner A, Führlich P, Giannousakis A, Hasse R, Hilaire J, Klein D, Koch J, Kowalczyk K, Levesque A, Malik A, Merfort A, Merfort L, Morena-Leiva S, Pehl M, Pietzcker R, Rauner S, Richters O, Rottoli M, Schötz C, Schreyer F, Siala K, Sörgel B, Spahr M, Strefler J, Verpoort P (2023). _remind2: The REMIND R package (2nd generation)_. R package version 1.118.0, . A BibTeX entry for LaTeX users is @@ -58,7 +58,7 @@ A BibTeX entry for LaTeX users is title = {remind2: The REMIND R package (2nd generation)}, author = {Renato Rodrigues and Lavinia Baumstark and Falk Benke and Jan Philipp Dietrich and Alois Dirnaichner and Pascal Führlich and Anastasis Giannousakis and Robin Hasse and Jérome Hilaire and David Klein and Johannes Koch and Katarzyna Kowalczyk and Antoine Levesque and Aman Malik and Anne Merfort and Leon Merfort and Simón Morena-Leiva and Michaja Pehl and Robert Pietzcker and Sebastian Rauner and Oliver Richters and Marianna Rottoli and Christof Schötz and Felix Schreyer and Kais Siala and Björn Sörgel and Mike Spahr and Jessica Strefler and Philipp Verpoort}, year = {2023}, - note = {R package version 1.117.6}, + note = {R package version 1.118.0}, url = {https://github.com/pik-piam/remind2}, } ``` diff --git a/inst/extdata/additional_summation_checks.csv b/inst/extdata/additional_summation_checks.csv new file mode 100644 index 00000000..7620bedf --- /dev/null +++ b/inst/extdata/additional_summation_checks.csv @@ -0,0 +1,11 @@ +parent; child; factor + +# total FE primary steel production +FE|Industry|Steel|++|Primary; FE|Industry|Steel|+|Solids; 1 +FE|Industry|Steel|++|Primary; FE|Industry|Steel|+|Liquids; 1 +FE|Industry|Steel|++|Primary; FE|Industry|Steel|+|Gases; 1 +FE|Industry|Steel|++|Primary; FE|Industry|Steel|+|Hydrogen; 1 +FE|Industry|Steel|++|Primary; FE|Industry|Steel|Primary|Electricity; 1 + +# total FE secondary steel production +FE|Industry|Steel|++|Secondary; FE|Industry|Steel|Secondary|Electricity; 1