diff --git a/modules/Saving/Saving.R b/modules/Saving/Saving.R index 7d0520c239faaffeddcd4fe479b6c2a3fbe771cd..fc9fe4eebd0d51f1b33a9a397a566d424215d99c 100644 --- a/modules/Saving/Saving.R +++ b/modules/Saving/Saving.R @@ -44,8 +44,8 @@ Saving <- function(recipe, data, # Separate ensemble correlation from the rest of the metrics, as it has one # extra dimension "ensemble" and must be saved to a different file - if ("corr" %in% names(skill_metrics)) { - corr_metric_names <- grep("^corr", names(skill_metrics)) + if ("corr_individual_members" %in% names(skill_metrics)) { + corr_metric_names <- grep("^corr_individual_members", names(skill_metrics)) corr_metrics <- skill_metrics[corr_metric_names] skill_metrics <- skill_metrics[-corr_metric_names] if (length(skill_metrics) == 0) { diff --git a/modules/Skill/Skill.R b/modules/Skill/Skill.R index fd27ba75d46dd19710d0506345e4e32a4c9439e8..2b3fb1de0c4b234db1da9b7f00a02bb2eb2c956f 100644 --- a/modules/Skill/Skill.R +++ b/modules/Skill/Skill.R @@ -77,7 +77,7 @@ Skill <- function(recipe, data, agg = 'global') { Fair <- F } # Whether to compute correlation for the ensemble mean or for each member - if (metric == 'corr') { + if (metric == 'corr_individual_members') { memb <- T } else if (metric == 'enscorr') { memb <- F @@ -208,7 +208,7 @@ Skill <- function(recipe, data, agg = 'global') { skill_metrics[[ metric ]] <- skill$biasSS skill_metrics[[ paste0(metric, "_significance") ]] <- skill$sign # Ensemble mean correlation - } else if (metric %in% c('enscorr', 'corr')) { + } else if (metric %in% c('enscorr', 'corr_individual_members')) { ## TODO: Return significance ## TODO: Implement option for Kendall and Spearman methods? skill <- s2dv::Corr(data$hcst$data, data$obs$data, @@ -315,7 +315,7 @@ Skill <- function(recipe, data, agg = 'global') { "/outputs/Skill/") # Separate 'corr' from the rest of the metrics because of extra 'ensemble' dim if (recipe$Analysis$Workflow$Skill$save == 'all') { - corr_metric_names <- grep("^corr", names(skill_metrics)) + corr_metric_names <- grep("^corr_individual_members", names(skill_metrics)) if (length(corr_metric_names) == 0) { save_metrics(recipe = recipe, skill = skill_metrics, data_cube = data$hcst, agg = agg) diff --git a/tests/recipes/recipe-decadal_monthly_3.yml b/tests/recipes/recipe-decadal_monthly_3.yml index fc42cd2d85261399547a90d124d32439344d4b8d..f7ab5fc1a565092d042a9535ed6c72020072f026 100644 --- a/tests/recipes/recipe-decadal_monthly_3.yml +++ b/tests/recipes/recipe-decadal_monthly_3.yml @@ -37,7 +37,7 @@ Analysis: method: 'evmos' save: 'none' Skill: - metric: BSS10 Corr + metric: BSS10 Corr_Individual_Members save: 'none' Probabilities: percentiles: [[1/3, 2/3]] diff --git a/tests/recipes/recipe-seasonal_downscaling.yml b/tests/recipes/recipe-seasonal_downscaling.yml index 1a2a3110cf2414b5c2d3052b0c8be4a1b39a3a35..dc41adc2800030da41a69503bcc0747e94112dce 100644 --- a/tests/recipes/recipe-seasonal_downscaling.yml +++ b/tests/recipes/recipe-seasonal_downscaling.yml @@ -29,7 +29,7 @@ Analysis: cross_validation: save: 'none' Calibration: - method: 'none' + method: 'raw' save: 'none' Skill: metric: BSS10 CRPSS RPSS mean_bias @@ -44,7 +44,7 @@ Analysis: log_reg_method: nanalogs: 3 target_grid: /esarchive/recon/ecmwf/era5/daily_mean/tas_f1h/tas_199301.nc - save: 'none' + save: 'all' Output_format: S2S4E Run: Loglevel: INFO diff --git a/tests/recipes/recipe-seasonal_monthly_1.yml b/tests/recipes/recipe-seasonal_monthly_1.yml index 0edf4795764bf101cd3bd67de17e66065fc8602a..99acb16cb8dc6d61dc0f388678db297c936ee98d 100644 --- a/tests/recipes/recipe-seasonal_monthly_1.yml +++ b/tests/recipes/recipe-seasonal_monthly_1.yml @@ -36,7 +36,7 @@ Analysis: method: mse_min save: 'all' Skill: - metric: RPSS CRPSS EnsCorr Corr Enscorr_specs + metric: RPSS CRPSS EnsCorr Corr_individual_members Enscorr_specs save: 'all' Probabilities: percentiles: [[1/3, 2/3], [1/10, 9/10]] diff --git a/tests/testthat/test-decadal_monthly_3.R b/tests/testthat/test-decadal_monthly_3.R index d1b42fd5c763b5f35863afca1695aee3fbbd13ee..3cdc826aa4231a2a3dc51a68a1cc4068451b732a 100644 --- a/tests/testthat/test-decadal_monthly_3.R +++ b/tests/testthat/test-decadal_monthly_3.R @@ -133,7 +133,8 @@ TRUE ) expect_equal( names(skill_metrics), -c("bss10", "bss10_significance", "corr", "corr_significance") +c("bss10", "bss10_significance", + "corr_individual_members", "corr_individual_members_significance") ) expect_equal( class(skill_metrics[[1]]), @@ -157,7 +158,7 @@ any(as.vector(skill_metrics$bss10_significance)), FALSE ) expect_equal( -as.vector(skill_metrics$corr[2, , , 1, 2]), +as.vector(skill_metrics$corr_individual_members[2, , , 1, 2]), c(-0.2015265, 0.4635463, -0.1019575), tolerance = 0.0001 ) diff --git a/tests/testthat/test-seasonal_monthly.R b/tests/testthat/test-seasonal_monthly.R index d112acf9a9187bb073de5c1c84778f4d5f74ae8a..d9b7b3c3857f4d79df127f4be135c25c0b77818c 100644 --- a/tests/testthat/test-seasonal_monthly.R +++ b/tests/testthat/test-seasonal_monthly.R @@ -185,7 +185,8 @@ TRUE expect_equal( names(skill_metrics), c("rpss", "rpss_significance", "crpss", "crpss_significance", "enscorr", - "enscorr_significance", "corr", "corr_significance", "enscorr_specs") + "enscorr_significance", "corr_individual_members", "corr_individual_members_significance", + "enscorr_specs") ) expect_equal( class(skill_metrics$rpss),