From c21601832b2234771043f34e03e00ca3e7dc2407 Mon Sep 17 00:00:00 2001 From: Nuria Perez Zanon Date: Thu, 29 May 2025 17:41:35 +0200 Subject: [PATCH 1/2] fix workflow when fcst not available --- modules/Crossval/Crossval_anomalies.R | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/Crossval/Crossval_anomalies.R b/modules/Crossval/Crossval_anomalies.R index fe0a2e05..04c50be1 100644 --- a/modules/Crossval/Crossval_anomalies.R +++ b/modules/Crossval/Crossval_anomalies.R @@ -328,12 +328,13 @@ Crossval_anomalies <- function(recipe, data) { save_probabilities(recipe = recipe, probs = probs_obs, data_cube = data$hcst, agg = agg, type = "obs") - if (!is.null(probs_fcst)) { + if (length(probs_fcst) > 0) { save_probabilities(recipe = recipe, probs = probs_fcst, data_cube = data$fcst, agg = agg, type = "fcst") } } + # Save ensemble mean for multimodel option: hcst_EM <- MeanDims(ano_hcst$data, 'ensemble', drop = T) # save_metrics(recipe = recipe, @@ -349,6 +350,8 @@ Crossval_anomalies <- function(recipe, data) { # Subset(fcst_EM, along = 'dat', indices = 1, drop = 'selected')), # data_cube = data$fcst, agg = agg, # module = "statistics") + } else { + fcst_EM <- NULL } return(list(hcst = ano_hcst, obs = ano_obs, fcst = data$fcst, hcst.full_val = data$hcst, obs.full_val = data$obs, -- GitLab From 22ca47b165039e67501e1b7e89f2bb5b91d25452 Mon Sep 17 00:00:00 2001 From: Nuria Perez Zanon Date: Thu, 29 May 2025 17:44:16 +0200 Subject: [PATCH 2/2] quantile na.rm to true --- modules/Crossval/Crossval_anomalies.R | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/Crossval/Crossval_anomalies.R b/modules/Crossval/Crossval_anomalies.R index 04c50be1..280850dd 100644 --- a/modules/Crossval/Crossval_anomalies.R +++ b/modules/Crossval/Crossval_anomalies.R @@ -81,14 +81,14 @@ Crossval_anomalies <- function(recipe, data) { fun = function(x, prob_lims) { lapply(prob_lims, function(ps) { as.array(quantile(as.vector(x), ps, - na.rm = na.rm))})}, + na.rm = TRUE))})}, prob_lims = list(unlist(categories)), ncores = ncores)$output1 lims_ano_obs_tr <- Apply(ano_obs_tr, target_dims = c('syear', 'ensemble'), fun = function(x, prob_lims) { lapply(prob_lims, function(ps) { as.array(quantile(as.vector(x), ps, - na.rm = na.rm))})}, + na.rm = TRUE))})}, prob_lims = list(unlist(categories)), ncores = ncores)$output1 if (tolower(recipe$Analysis$Horizon) == 'subseasonal') { @@ -176,7 +176,7 @@ Crossval_anomalies <- function(recipe, data) { fun = function(x, prob_lims) { lapply(prob_lims, function(ps) { as.array(quantile(as.vector(x), ps, - na.rm = na.rm))})}, + na.rm = TRUE))})}, output_dims = lapply(categories, function(x) {'bin'}), prob_lims = categories, ncores = ncores) @@ -190,7 +190,7 @@ Crossval_anomalies <- function(recipe, data) { fun = function(x, prob_lims) { lapply(prob_lims, function(ps) { as.array(quantile(as.vector(x), ps, - na.rm = na.rm))})}, + na.rm = TRUE))})}, output_dims = lapply(categories, function(x) {'bin'}), prob_lims = categories, ncores = ncores) -- GitLab