diff --git a/example_scripts/execute_NAO.R b/example_scripts/execute_NAO.R index 3ec3586fdd5fdb9f45e79ae7231f35e54a7702de..a33dfd3d6ccc3b77698e84b0838cadaf0259e6d6 100644 --- a/example_scripts/execute_NAO.R +++ b/example_scripts/execute_NAO.R @@ -15,16 +15,11 @@ source("modules/Anomalies/Anomalies.R") recipe_file <- "recipes/examples/NAO_recipe.yml" recipe <- prepare_outputs(recipe_file) -#for (smonth in 1:12) { - data <- load_datasets(recipe) - gc() - data <- compute_anomalies(recipe, data) -# data <- readRDS("../Test_NAOmodule.RDS") +data <- Loading(recipe) +data <- Anomalies(recipe, data) source("modules/Indices/Indices.R") - nao_s2dv <- Indices(data = data, recipe = recipe) +nao_s2dv <- Indices(data = data, recipe = recipe) source("modules/Skill/Skill.R") - # todo parameter agg to get it from the nao_s2dv? - skill_metrics <- compute_skill_metrics(recipe = recipe, data = nao_s2dv, - agg = 'region') +skill_metrics <- Skill(recipe = recipe, data = nao_s2dv, agg = 'region') diff --git a/modules/Indices/R/compute_nao.R b/modules/Indices/R/compute_nao.R index bdf2bb858fea35ac7f3b0b349345d3697f404523..b109fdae1757c8ce5b8afbf421749c0035eb3e13 100644 --- a/modules/Indices/R/compute_nao.R +++ b/modules/Indices/R/compute_nao.R @@ -96,24 +96,26 @@ compute_nao <- function(data, recipe, obsproj, plot_ts, plot_sp, data = nao$exp, varName = "nao", metadata = list( - region = list(name = "NAO region", - lats_range = paste0(range(lats)), - lons_range = paste0(range(lons))), + region = list(name = "region", + long_name = "NAO region", + lats_range = paste(range(lats), collapse = ", "), + lons_range = paste(range(lons), collapse = ", ")), time = data$hcst$attrs$Variable$metadata$time, nao = list(units = 'adim', - longname = 'North Atlantic Oscillation')), + long_name = 'North Atlantic Oscillation')), Dates = hcst_dates, Dataset = recipe$Analysis$Datasets$System$name), obs = s2dv_cube( data = nao$obs, varName = "nao", metadata = list( - region = list(name = "NAO region", - lats_range = paste0(range(lats)), - lons_range = paste0(range(lons))), + region = list(name = "region", + long_name = "NAO region", + lats_range = paste(range(lats), collapse = ", "), + lons_range = paste(range(lons), collapse = ", ")), time = data$obs$attrs$Variable$metadata$time, nao = list(units = 'adim', - longname = 'North Atlantic Oscillation')), + long_name = 'North Atlantic Oscillation')), Dates = data$obs$attrs$Dates, Dataset = recipe$Analysis$Datasets$Reference$name)) if (recipe$Analysis$Workflow$Indices$NAO$save == 'all') { diff --git a/modules/Indices/R/compute_nino.R b/modules/Indices/R/compute_nino.R index b47d9ee238a582d894ae1872b9a94bbf4464dc36..4ecbea5bf5d777f57ddc61319bf64fbcf56132be 100644 --- a/modules/Indices/R/compute_nino.R +++ b/modules/Indices/R/compute_nino.R @@ -82,24 +82,26 @@ compute_nino <- function(data, recipe, region, standardised = TRUE, data = nino_hcst, varName = nino_name, metadata = list( - region = list(name = paste("Nino", region_name, "region"), - lats_range = paste(region[3:4]), - lons_range = paste(region[1:2])), + region = list(name = "region", + long_name = paste("Nino", region_name, "region"), + lats_range = paste(region[3], region[4], collapse = ", "), + lons_range = paste(region[1], region[1], collapse = ", ")), time = data$hcst$attrs$Variable$metadata$time, nino = list(units = var_units, - longname = paste("El Niño", region_name, "Index"))), + long_name = paste("El Niño", region_name, "Index"))), Dates = hcst_dates, Dataset = recipe$Analysis$Datasets$System$name), obs = s2dv_cube( data = nino_obs, varName = nino_name, metadata = list( - region = list(name = paste("Nino", region_name, "region"), - lats_range = paste(region[3:4]), - lons_range = paste(region[1:2])), + region = list(name = "region", + long_name = paste("Nino", region_name, "region"), + lats_range = paste(region[3], region[4], collapse = ", "), + lons_range = paste(region[1], region[1], collapse = ", ")), time = data$obs$attrs$Variable$metadata$time, nino = list(units = var_units, - longname = paste("El Niño", region_name, "Index"))), + long_name = paste("El Niño", region_name, "Index"))), Dates = data$obs$attrs$Dates, Dataset = recipe$Analysis$Datasets$Reference$name)) diff --git a/modules/Saving/R/save_metrics.R b/modules/Saving/R/save_metrics.R index 8269634fb9c185236e70efaec53f2b7c2831587e..800004d7d99908bd9c741948af704188ff5e87f3 100644 --- a/modules/Saving/R/save_metrics.R +++ b/modules/Saving/R/save_metrics.R @@ -152,9 +152,8 @@ save_metrics <- function(recipe, ArrayToNc(append(country, time, subset_metric), outfile) } else if (tolower(agg) == "region") { region <- array(1:dim(metrics[[1]])['region'], c(dim(metrics[[1]])['region'])) - # TODO: check metadata when more than 1 region is store in the data array - metadata <- list(region = list(long_name = data_cube$attrs$Variable$metadata$region$name)) - attr(region, 'variables') <- metadata + ## TODO: check metadata when more than 1 region is store in the data array + attr(region, 'variables') <- data_cube$attrs$Variable$metadata['region'] vars <- list(region, time) vars <- c(vars, subset_metric) ArrayToNc(vars, outfile)