#############################################################################
# Script to aggregate all results for one parameter combination
# Runs in parallel on cluster - one job per combination
#############################################################################
source("libs_scripts.r")

# Get parameters from environment variables (for cluster execution)
roiLocation <- Sys.getenv("location")
tmp_rho_k <- as.numeric(Sys.getenv("rho_K"))
tt <- as.logical(as.integer(Sys.getenv("School_Term")))
tmp_sig <- as.numeric(Sys.getenv("sigma_betas_val"))
True_climate <- as.numeric(Sys.getenv("True_e_Te"))

# Import rate
import <- 1e-5 

# Average reporting rate
tmp_rho_mean <- 0.5

# Parameters ----
n_samples <- 50 

sims_tot <- data.frame();
sims_reg_tot <- data.frame(); 

for(id in 1:n_samples){
  rdata_path <- paste("Results/R_sims_Te", True_climate, "_RH", True_climate,
        "_sigma", tmp_sig, "_",
        ifelse(tmp_rho_mean != 0, paste("rho_mean", tmp_rho_mean, "_", sep=""), ""),
        roiLocation, "_",
        sprintf("_rho_k%s", gsub("\\.", "-", as.character(tmp_rho_k))),
        sprintf("_import_%s", as.character(import)),
        ifelse(tt == TRUE, "_School-Forced", ""),
        "/results_", as.character(id), ".RData", sep = "")
  
  if(file.exists(rdata_path)){
    load(rdata_path)
    tmp <- sims_all |> mutate(.id = id)
    sims_tot <- rbind(sims_tot, tmp)
    tmp_reg <- sim_reg |> mutate(.id = id)
    sims_reg_tot <- rbind(sims_reg_tot, tmp_reg)
    
    if(id %% 10 == 0) cat("  Loaded", id, "samples\n")
  } else {
    cat("  WARNING: File not found:", rdata_path, "\n")
  }
}

my_path <- paste("Results/R_sims_Te",
                final_pars[1,"True.e_Te"], "_RH", final_pars[1,"True.e_RH"],
                "_",
                "sigma", final_pars[1,"sigma_beta"],
                "_",
                "rho_mean", final_pars[1, "rho_mean"],
                "_",
                gsub(",.*$", "", climate[1,1]), "_",
                sprintf("_rho_k%s", gsub("\\.", "-", as.character(final_pars[1, "rho_k"]))),
                sprintf("_import_%s", as.character(import)),
                ifelse(tt == TRUE, "_School-Forced", ""),
                sep = "")

saveRDS(sims_tot, file = paste(my_path, "/", "sims_tot.rds", sep = ""))
saveRDS(final_pars, file = paste(my_path, "/", "final_pars.rds", sep = ""))
saveRDS(sims_reg_tot, file = paste(my_path, "/", "sims_reg_tot.rds", sep = ""))