From 23b4f3abdd3cfe9044088bf946a80ab2272069f4 Mon Sep 17 00:00:00 2001 From: Michaja Pehl Date: Tue, 12 Sep 2023 09:03:57 +0200 Subject: [PATCH 1/2] add additional summation checks for industry FE --- DESCRIPTION | 2 +- NAMESPACE | 1 + R/convGDX2MIF.R | 31 +++++++++++++++++--- inst/extdata/additional_summation_checks.csv | 11 +++++++ 4 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 inst/extdata/additional_summation_checks.csv diff --git a/DESCRIPTION b/DESCRIPTION index f4ccaa59..8d0ef3ca 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -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/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 From c99c778f92060506bcf5422dc943651b838fc7f3 Mon Sep 17 00:00:00 2001 From: Michaja Pehl Date: Thu, 14 Sep 2023 15:08:07 +0200 Subject: [PATCH 2/2] lucode hubbub --- .buildlibrary | 2 +- CITATION.cff | 4 ++-- DESCRIPTION | 4 ++-- README.md | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) 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 8d0ef3ca..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"), 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}, } ```