Skip to content

Commit

Permalink
always run checkVariableNames on convGDX2Mmif
Browse files Browse the repository at this point in the history
  • Loading branch information
orichters committed Sep 5, 2023
1 parent 65397ee commit 5280147
Show file tree
Hide file tree
Showing 10 changed files with 65 additions and 23 deletions.
2 changes: 1 addition & 1 deletion .buildlibrary
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ValidationKey: '218811405'
ValidationKey: '218987850'
AcceptedWarnings:
- 'Warning: package ''.*'' was built under R version'
- 'Warning: namespace ''.*'' is not available and has been replaced'
Expand Down
2 changes: 1 addition & 1 deletion CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ 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.116.1
version: 1.117.0
date-released: '2023-09-05'
abstract: Contains the REMIND-specific routines for data and model output manipulation.
authors:
Expand Down
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Type: Package
Package: remind2
Title: The REMIND R package (2nd generation)
Version: 1.116.1
Version: 1.117.0
Date: 2023-09-05
Authors@R: c(
person("Renato", "Rodrigues", , "[email protected]", role = c("aut", "cre")),
Expand Down
1 change: 1 addition & 0 deletions NAMESPACE
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export(calcPrice)
export(calcTimeSeriesStats)
export(calc_CES_marginals)
export(calc_regionSubset_sums)
export(checkVariableNames)
export(checkVsCalibData)
export(colorScenConf)
export(compareCalibrationTargets)
Expand Down
25 changes: 25 additions & 0 deletions R/checkVariableNames.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#' checkVariablesNames checks remind2 reporting on inconsistency in variable names
#'
#' Pass a vector of variable names including the units. Get warnings if inconsistencies are found
#' for the reporting
#' @param vars vector with variable names and units such as "PE (EJ)"
#' @author Oliver Richters
#' @export
checkVariableNames <- function(vars) {

barspace <- grep("[\\| ]{2}|^[\\| ]|[\\| ]$", vars, value = TRUE)
if (length(barspace) > 0) {
warning("These variable names have wrong bars and spaces: ", paste(barspace, collapse = ", "))
}

NAvar <- grep("[\\|\\( ]NA[\\|\\) ]|^NA", vars, value = TRUE)
NAvar <- NAvar[! grepl("^Services and Products\\|Transport\\|non-LDV\\|S", NAvar)] # unit NA, but ok, see issue #408
if (length(NAvar) > 0) {
warning("These variables and units contain NA: ", paste(NAvar, collapse = ", "))
}

noUnit <- grep(" \\(.*\\)$", vars, value = TRUE, invert = TRUE)
if (length(noUnit) > 0) {
warning("These variables have no units: ", paste(noUnit, collapse = ", "))
}
}
2 changes: 2 additions & 0 deletions R/convGDX2MIF.R
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,8 @@ convGDX2MIF <- function(gdx, gdx_ref = NULL, file = NULL, scenario = "default",
output <- add_dimension(output,dim=3.1,add = "model",nm = "REMIND")
output <- add_dimension(output,dim=3.1,add = "scenario",nm = scenario)

checkVariableNames(getNames(output, dim = 3))

sumChecks <- piamInterfaces::checkSummations(
mifFile = output, outputDirectory = NULL,
summationsFile = "extractVariableGroups",
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# The REMIND R package (2nd generation)

R package **remind2**, version **1.116.1**
R package **remind2**, version **1.117.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)

Expand Down Expand Up @@ -49,7 +49,7 @@ In case of questions / problems please contact Renato Rodrigues <renato.rodrigue

To cite package **remind2** in publications use:

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.116.1, <https://github.com/pik-piam/remind2>.
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.117.0, <URL: https://github.com/pik-piam/remind2>.

A BibTeX entry for LaTeX users is

Expand All @@ -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.116.1},
note = {R package version 1.117.0},
url = {https://github.com/pik-piam/remind2},
}
```
18 changes: 18 additions & 0 deletions man/checkVariableNames.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions tests/testthat/test-checkVariableNames.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
test_that("checkVariableNames works", {
fine <- c("PE (EJ)", "PE (NA/yr)", "FE|What (yr)", "FE|Electricity (EJ/yr)")
for (v in fine) {
expect_no_warning(checkVariableNames(v))
}
wrong <- c("PE", "PE| (EJ)", "PE||Elec (EJ)", "PE||Elec", "PE (EJ)", "PE (NA)",
"NA|PE (EJ)", "PE|NA|What (EJ)", " PE (EJ)", "PE (EJ) ")
for (v in wrong) {
w <- capture_warnings(checkVariableNames(v))
expect_true(length(w) > 0)
}
})
18 changes: 1 addition & 17 deletions tests/testthat/test-convGDX2mif.R
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,6 @@
library(dplyr)
library(gdx)

checkVariableNames <- function(out) {

barspace <- grep("[\\| ]{2}", getNames(out, dim = 3), value = TRUE)

if (length(barspace) > 0) {
warning("These variable names have wrong bars and spaces: ", paste(barspace, collapse = ", "))
}

NAvar <- grep("[\\|\\( ]NA[\\|\\) ]|^NA", getNames(out, dim = 3), value = TRUE)
NAvar <- NAvar[! grepl("^Services and Products\\|Transport\\|non-LDV\\|S", NAvar)] # unit NA, but ok, see issue #408
if (length(NAvar) > 0) {
warning("These variables and units contain NA: ", paste(NAvar, collapse = ", "))
}
}


test_that("Test if REMIND reporting is produced as it should and check data integrity", {
skip_if_not(as.logical(gdxrrw::igdx(silent = TRUE)), "gdxrrw is not initialized properly")

Expand Down Expand Up @@ -80,7 +64,7 @@ test_that("Test if REMIND reporting is produced as it should and check data inte
message("Running convGDX2MIF(", gdxPath, ")...")
mifContent <- convGDX2MIF(gdxPath, gdx_refpolicycost = gdxPath)

checkVariableNames(mifContent)
expect_no_warning(checkVariableNames(getNames(mifContent, dim = 3)))

magclass::write.report(
x = magclass::collapseNames(mifContent),
Expand Down

0 comments on commit 5280147

Please sign in to comment.