rm(list=ls())
gc()
setwd("/esarchive/scratch/nperez/git/auto-s2s")

source("modules/Loading/Loading.R")
source("modules/Calibration/Calibration.R")
source("modules/Anomalies/Anomalies.R")
source("modules/Skill/Skill.R")
source("modules/Saving/Saving.R")
source("modules/Visualization/Visualization.R")
source("tools/prepare_outputs.R")

# Read recipe
#args = commandArgs(trailingOnly = TRUE)
#recipe_file <- args[1]
#recipe <- read_atomic_recipe(recipe_file)
## to test a single recipe:
 #  recipe_file <- "recipes/examples/recipe_tas_seasonal_units.yml"
 #  recipe_file <- "recipes/examples/recipe_prlr_seasonal_units.yml"

recipe <- prepare_outputs(recipe_file)

# Load datasets
data <- Loading(recipe)
# Units transformation
source("modules/Units/Units.R")
test <- Units(recipe, data)
# Calibrate datasets
data <- Calibration(recipe, test)
# Compute skill metrics 
skill_metrics <- Skill(recipe, data)
# Compute percentiles and probability bins
probabilities <- Probabilities(recipe, data)
# Export all data to netCDF
## TODO: Fix plotting
# save_data(recipe, data, skill_metrics, probabilities)
# Plot data
plot_data(recipe, data, skill_metrics, probabilities, significance = T)
