From d8a6cfc4783ebb4aa8b999086334a6eead2b7517 Mon Sep 17 00:00:00 2001 From: orichters Date: Tue, 6 Feb 2024 09:51:20 +0100 Subject: [PATCH] if path_gdx_refpolicycost empty, report 0 --- .buildlibrary | 2 +- CITATION.cff | 4 ++-- DESCRIPTION | 4 ++-- R/convGDX2MIF.R | 37 ++++++++++++++++++++++--------------- README.md | 6 +++--- 5 files changed, 30 insertions(+), 23 deletions(-) diff --git a/.buildlibrary b/.buildlibrary index 3604a038..7694be48 100644 --- a/.buildlibrary +++ b/.buildlibrary @@ -1,4 +1,4 @@ -ValidationKey: '223858140' +ValidationKey: '223889229' 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 aa111b87..338797c4 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.133.0 -date-released: '2024-02-05' +version: 1.133.1 +date-released: '2024-02-06' abstract: Contains the REMIND-specific routines for data and model output manipulation. authors: - family-names: Rodrigues diff --git a/DESCRIPTION b/DESCRIPTION index 5e6800ba..3849a07b 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Type: Package Package: remind2 Title: The REMIND R package (2nd generation) -Version: 1.133.0 -Date: 2024-02-05 +Version: 1.133.1 +Date: 2024-02-06 Authors@R: c( person("Renato", "Rodrigues", , "renato.rodrigues@pik-potsdam.de", role = c("aut", "cre")), person("Lavinia", "Baumstark", role = "aut"), diff --git a/R/convGDX2MIF.R b/R/convGDX2MIF.R index 7152170b..4048a894 100644 --- a/R/convGDX2MIF.R +++ b/R/convGDX2MIF.R @@ -86,23 +86,30 @@ convGDX2MIF <- function(gdx, gdx_ref = NULL, file = NULL, scenario = "default", output <- mbind(output,reportCrossVariables(gdx,output,regionSubsetList,t)[,t,]) # Report policy costs, if possible and sensible - if(!is.null(gdx_refpolicycost)) { - if (file.exists(gdx_refpolicycost)) { - gdp_scen <- try(readGDX(gdx,"cm_GDPscen",react ="error"),silent=T) - gdp_scen_ref <- try(readGDX(gdx_refpolicycost,"cm_GDPscen",react = "error"),silent=T) - if(!inherits(gdp_scen,"try-error") && !inherits(gdp_scen_ref,"try-error")){ - if(gdp_scen[1]==gdp_scen_ref[1]){ - message("running reportPolicyCosts, comparing to ", basename(dirname(gdx_refpolicycost)), "/", basename(gdx_refpolicycost), "...") - output <- mbind(output,reportPolicyCosts(gdx,gdx_refpolicycost,regionSubsetList,t)[,t,]) - } else { - warning(paste0("The GDP scenario differs from that of the reference run. Did not execute 'reportPolicyCosts'! If a policy costs reporting is desired, please use the 'policyCosts' output.R script.")) - } + if (!is.null(gdx_refpolicycost)) { + gdx_refpolicycost <- gdx + message("gdx_refpolicycost not defined, report 0 everywhere.") + } + if (file.exists(gdx_refpolicycost)) { + gdp_scen <- try(readGDX(gdx, "cm_GDPscen", react = "error"), silent = TRUE) + gdp_scen_ref <- try(readGDX(gdx_refpolicycost, "cm_GDPscen", react = "error"), silent = TRUE) + if (! inherits(gdp_scen, "try-error") && ! inherits(gdp_scen_ref, "try-error")) { + if (gdp_scen[1] == gdp_scen_ref[1]) { + file_refpolicycost <- paste0(basename(dirname(gdx_refpolicycost)), "/", basename(gdx_refpolicycost)) + message("running reportPolicyCosts, comparing to ", file_refpolicycost, "...") + output <- mbind(output, reportPolicyCosts(gdx, gdx_refpolicycost, regionSubsetList, t)[,t,]) } else { - warning(paste0("A comparison of the GDP scenarios between this run and its reference run wasn't possible (old remind version). Therefore to avoid reporting unsensible policy costs, 'reportPolicyCosts' was not executed. If a policy costs reporting is required, please use the 'policyCosts' output.R script.")) + warning("The GDP scenario differs from that of the reference run. Did not execute 'reportPolicyCosts'! ", + "If a policy costs reporting is desired, please use the 'policyCosts' output.R script.") } } else { - warning(paste0("File ",gdx_refpolicycost," not found. Did not execute 'reportPolicyCosts'! If a policy costs reporting is desired, please use the 'policyCosts' output.R script.")) + warning("A comparison of the GDP scenarios between this run and its reference run wasn't possible (old remind version). ", + "Therefore to avoid reporting unsensible policy costs, 'reportPolicyCosts' was not executed. ", + "If a policy costs reporting is required, please use the 'policyCosts' output.R script.") } + } else { + warning(paste0("File ", gdx_refpolicycost, " not found. Did not execute 'reportPolicyCosts'! ", + "If a policy costs reporting is desired, please use the 'policyCosts' output.R script.")) } # reporting of SDP variables @@ -128,7 +135,7 @@ convGDX2MIF <- function(gdx, gdx_ref = NULL, file = NULL, scenario = "default", capture.output( sumChecks <- checkSummations( - mifFile = output, outputDirectory = NULL, + mifFile = output, dataDumpFile = NULL, outputDirectory = NULL, summationsFile = "extractVariableGroups", absDiff = 1.5e-8, relDiff = 1e-8, roundDiff = TRUE ) %>% @@ -137,7 +144,7 @@ convGDX2MIF <- function(gdx, gdx_ref = NULL, file = NULL, scenario = "default", .reportSummationErrors() capture.output(sumChecks <- checkSummations( - mifFile = output, outputDirectory = NULL, + mifFile = output, dataDumpFile = NULL, outputDirectory = NULL, summationsFile = system.file('extdata/additional_summation_checks.csv', package = 'remind2'), absDiff = 1.5e-8, relDiff = 1e-8, roundDiff = TRUE) %>% diff --git a/README.md b/README.md index aa8c2838..70dfaeb0 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # The REMIND R package (2nd generation) -R package **remind2**, version **1.133.0** +R package **remind2**, version **1.133.1** [![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, Duerrwaechter J, 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, Weigmann P (2024). _remind2: The REMIND R package (2nd generation)_. R package version 1.133.1, . 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 Jakob Duerrwaechter 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 and Pascal Weigmann}, year = {2024}, - note = {R package version 1.133.0}, + note = {R package version 1.133.1}, url = {https://github.com/pik-piam/remind2}, } ```