diff --git a/conf/archive.yml b/conf/archive.yml index d10a3f44287857100d0316ade46d7d33d3ac525a..0b643ae92d93bf55306b59c815c8daeddb8a3598 100644 --- a/conf/archive.yml +++ b/conf/archive.yml @@ -5,19 +5,23 @@ esarchive: name: "ECMWF SEAS5" institution: "European Centre for Medium-Range Weather Forecasts" src: "exp/ecmwf/system5c3s/" - daily: {"tasmin":"/", "tasmax":"/"} - daily_mean: {"tas":"_f6h/", "rsds":"_s0-24h/", - "prlr":"_s0-24h/", "sfcWind":"_f6h/", - "ta300":"_f12h/", "ta500":"_f12h/", "ta850":"_f12h/", - "g300":"_f12h/", "g500":"_f12h/", "g850":"_f12h/", - "tdps":"_f6h/", "hurs":"_f6h/"} - monthly_mean: {"tas":"_f6h/", "rsds":"_s0-24h/", - "prlr":"_s0-24h/", "sfcWind":"_f6h/", - "tasmin":"_f24h/", "tasmax":"_f24h/", - "ta300":"_f12h/", "ta500":"_f12h/", "ta850":"_f12h/", - "g300":"_f12h/", "g500":"_f12h/", "g850":"_f12h/", - "tdps":"_f6h/", "psl":"_f6h/", "tos":"_f6h/", - "hurs":"_f6h/"} + daily_mean: {"tas":"daily_mean/tas_f6h/", "rsds":"daily/rsds_s0-24h/", + "prlr":"daily/prlr_s0-24h/", "tasmin":"daily/tasmin/", + "tasmax":"daily/tasmax/", "sfcWind":"daily_mean/sfcWind_f6h/", + "ta300":"daily_mean/ta300_f12h/", "ta500":"daily_mean/ta500_f12h/", + "ta850":"daily_mean/ta850_f12h/", "g300":"daily_mean/g300_f12h/", + "g500":"daily_mean/g500_f12h/", "g850":"daily_mean/g850_f12h/", + "tdps":"daily_mean/tdps_f6h/", "hurs":"daily_mean/hurs_f6h/"} + monthly_mean: {"tas":"monthly_mean/tas_f6h/", "rsds":"monthly_mean/rsds_s0-24h/", + "prlr":"monthly_mean/prlr_s0-24h/", + "sfcWind":"monthly_mean/sfcWind_f6h/", + "tasmin":"monthly_mean/tasmin_f24h/", + "tasmax":"monthly_mean/tasmax_f24h/", + "ta300":"monthly_mean/ta300_f12h/", "ta500":"monthly_mean/ta500_f12h/", + "ta850":"monthly_mean/ta850_f12h/", "g300":"monthly_mean/g300_f12h/", + "g500":"monthly_mean/g500_f12h/", "g850":"monthly_mean/g500_f12h/", + "tdps":"monthly_mean/tdps_f6h/", "psl":"monthly_mean/psl_f6h/", + "tos":"monthly_mean/tos_f6h/"} nmember: fcst: 51 hcst: 25 @@ -28,13 +32,15 @@ esarchive: name: "ECMWF SEAS5 (v5.1)" institution: "European Centre for Medium-Range Weather Forecasts" src: "exp/ecmwf/system51c3s/" - daily_mean: {"tas":"_f6h/", "prlr":"_s0-24h/", "sfcWind":"_f6h/", - "uas":"_f6h/", "vas":"_f6h/", "psl":"_f6h/", - "tdps":"_f6h/"} - monthly_mean: {"tas":"_f6h/", "rsds":"_s0-24h/", "prlr":"_s0-24h/", - "sfcWind":"_f6h/", "tasmin":"_f24h/", "tasmax":"_f24h/", - "uas":"_f6h/", "vas":"_f6h/", "psl":"_f6h/", - "tdps":"_f6h/"} + daily_mean: {"tas":"daily_mean/tas_f6h/", "prlr":"daily/prlr_s0-24h/", + "sfcWind":"daily_mean/sfcWind_f6h/", + "uas":"daily_mean/uas_f6h/", "vas":"daily_mean/vas_f6h/", + "psl":"daily_mean/psl_f6h/", "tdps":"daily_mean/tdps_f6h/"} + monthly_mean: {"tas":"monthly_mean/tas_f6h/", "rsds":"monthly_mean/rsds_s0-24h/", + "prlr":"monthly_mean/prlr_s0-24h/", "sfcWind":"monthly_mean/sfcWind_f6h/", + "tasmin":"monthly_mean/tasmin_f24h/", "tasmax":"monthly_mean/tasmax_f24h/", + "uas":"monthly_mean/uas_f6h/", "vas":"monthly_mean/vas_f6h/", + "psl":"monthly_mean/psl_f6h/", "tdps":"monthly_mean/tdps_f6h/"} nmember: fcst: 51 hcst: 25 @@ -45,9 +51,9 @@ esarchive: name: "Meteo-France System 7" institution: "European Centre for Medium-Range Weather Forecasts" src: "exp/meteofrance/system7c3s/" - monthly_mean: {"tas":"_f6h/", "g500":"_f12h/", - "prlr":"_f24h/", "sfcWind": "_f6h/", - "tasmax":"_f6h/", "tasmin": "_f6h/"} + monthly_mean: {"tas":"monthly_mean/tas_f6h/", "g500":"monthly_mean/g500_f12h/", + "prlr":"monthly_mean/prlr_f24h/", "sfcWind": "monthly_mean/sfcWind_f6h/", + "tasmax":"monthly_mean/tasmax_f6h/", "tasmin": "monthly_mean/tasmin_f6h/"} nmember: fcst: 51 hcst: 25 @@ -58,9 +64,9 @@ esarchive: name: "DWD GCFS 2.1" institution: "European Centre for Medium-Range Weather Forecasts" src: "exp/dwd/system21_m1/" - monthly_mean: {"tas":"_f6h/", "prlr":"_f24h/", - "g500":"_f12h/", "sfcWind":"_f6h/", - "tasmin":"_f24h/", "tasmax":"_f24h/"} + monthly_mean: {"tas":"monthly_mean/tas_f6h/", "prlr":"monthly_mean/prlr_f24h/", + "g500":"monthly_mean/g500_f12h/", "sfcWind":"monthly_mean/sfcWind_f6h/", + "tasmin":"monthly_mean/tasmin_f24h/", "tasmax":"monthly_mean/tasmax_f24h/"} nmember: fcst: 50 hcst: 30 @@ -71,9 +77,9 @@ esarchive: name: "CMCC-SPS3.5" institution: "European Centre for Medium-Range Weather Forecasts" src: "exp/cmcc/system35c3s/" - monthly_mean: {"tas":"_f6h/", "g500":"_f12h/", - "prlr":"_f24h/", "sfcWind": "_f6h/", - "tasmax":"_f24h/", "tasmin":"_f24h"} + monthly_mean: {"tas":"monthly_mean/tas_f6h/", "prlr":"monthly_mean/prlr_f24h/", + "g500":"monthly_mean/g500_f12h/", "sfcWind":"monthly_mean/sfcWind_f6h/", + "tasmin":"monthly_mean/tasmin_f24h/", "tasmax":"monthly_mean/tasmax_f24h/"} nmember: fcst: 50 hcst: 40 @@ -84,8 +90,8 @@ esarchive: name: "JMA System 2" institution: "European Centre for Medium-Range Weather Forecasts" src: "exp/jma/system2c3s/" - monthly_mean: {"tas":"_f6h/", "prlr":"_f6h/", - "tasmax":"_f6h/", "tasmin":"_f6h/"} + monthly_mean: {"tas":"monthly_mean/tas_f6h/", "prlr":"monthly_mean/prlr_f6h/", + "tasmax":"monthly_mean/tasmax_f6h/", "tasmin":"monthly_mean/tasmin_f6h/"} nmember: fcst: 10 hcst: 10 @@ -96,8 +102,8 @@ esarchive: name: "ECCC CanCM4i" institution: "European Centre for Medium-Range Weather Forecasts" src: "exp/eccc/eccc1/" - monthly_mean: {"tas":"_f6h/", "prlr":"_f6h/", - "tasmax":"_f6h/", "tasmin":"_f6h/"} + monthly_mean: {"tas":"monthly_mean/tas_f6h/", "prlr":"monthly_mean/prlr_f6h/", + "tasmax":"monthly_mean/tasmax_f6h/", "tasmin":"monthly_mean/tasmin_f6h/"} nmember: fcst: 10 hcst: 10 @@ -108,8 +114,8 @@ esarchive: name: "UK MetOffice GloSea 6 (v6.0)" institution: "European Centre for Medium-Range Weather Forecasts" src: "exp/ukmo/glosea6_system600-c3s/" - monthly_mean: {"tas":"_f6h/", "tasmin":"_f24h/", - "tasmax":"_f24h/", "prlr":"_f24h/"} + monthly_mean: {"tas":"monthly_mean/tas_f6h/", "tasmin":"monthly_mean/tasmin_f24h/", + "tasmax":"monthly_mean/tasmax_f24h/", "prlr":"monthly_mean/prlr_f24h/"} nmember: fcst: 62 hcst: 28 @@ -120,8 +126,8 @@ esarchive: name: "NCEP CFSv2" institution: "NOAA NCEP" #? src: "exp/ncep/cfs-v2/" - monthly_mean: {"tas":"_f6h/", "prlr":"_f6h/", - "tasmax":"_f6h/", "tasmin":"_f6h/"} + monthly_mean: {"tas":"monthly_mean/tas_f6h/", "prlr":"monthly_mean/prlr_f6h/", + "tasmax":"monthly_mean/tasmax_f6h/", "tasmin":"monthly_mean/tasmin_f6h/"} nmember: fcst: 20 hcst: 20 @@ -133,91 +139,95 @@ esarchive: name: "ERA5" institution: "European Centre for Medium-Range Weather Forecasts" src: "recon/ecmwf/era5/" - daily_mean: {"tas":"_f1h-r1440x721cds/", - "rsds":"_f1h-r1440x721cds/", - "prlr":"_f1h-r1440x721cds/", - "g300":"_f1h-r1440x721cds/", - "g500":"_f1h-r1440x721cds/", - "g850":"_f1h-r1440x721cds/", - "sfcWind":"_f1h-r1440x721cds/", - "tasmax":"_f1h-r1440x721cds/", - "tasmin":"_f1h-r1440x721cds/", - "ta300":"_f1h-r1440x721cds/", - "ta500":"_f1h-r1440x721cds/", - "ta850":"_f1h-r1440x721cds/", - "hurs":"_f1h-r1440x721cds/"} - monthly_mean: {"tas":"_f1h-r1440x721cds/", - "psl":"_f1h-r1440x721cds/", - "prlr":"_f1h-r1440x721cds/", - "rsds":"_f1h-r1440x721cds/", - "g300":"_f1h-r1440x721cds/", - "g500":"_f1h-r1440x721cds/", - "g850":"_f1h-r1440x721cds/", - "sfcWind":"_f1h-r1440x721cds/", - "tasmax":"_f1h-r1440x721cds/", - "tasmin":"_f1h-r1440x721cds/", - "ta300":"_f1h-r1440x721cds/", - "ta500":"_f1h-r1440x721cds/", - "ta850":"_f1h-r1440x721cds/", - "tos":"_f1h-r1440x721cds/"} + daily_mean: {"tas":"daily_mean/tas_f1h-r1440x721cds/", + "rsds":"daily_mean/rsds_f1h-r1440x721cds/", + "prlr":"daily_mean/prlr_f1h-r1440x721cds/", + "g300":"daily_mean/g300_f1h-r1440x721cds/", + "g500":"daily_mean/g500_f1h-r1440x721cds/", + "g850":"daily_mean/g850_f1h-r1440x721cds/", + "sfcWind":"daily_mean/sfcWind_f1h-r1440x721cds/", + "tasmax":"daily/tasmax_f1h-r1440x721cds/", + "tasmin":"daily/tasmin_f1h-r1440x721cds/", + "ta300":"daily_mean/ta300_f1h-r1440x721cds/", + "ta500":"daily_mean/ta500_f1h-r1440x721cds/", + "ta850":"daily_mean/ta850_f1h-r1440x721cds/", + "hurs":"daily_mean/hurs_f1h-r1440x721cds/"} + monthly_mean: {"tas":"monthly_mean/tas_f1h-r1440x721cds/", + "psl":"monthly_mean/psl_f1h-r1440x721cds/", + "prlr":"monthly_mean/prlr_f1h-r1440x721cds/", + "rsds":"monthly_mean/rsds_f1h-r1440x721cds/", + "g300":"monthly_mean/g300_f1h-r1440x721cds/", + "g500":"monthly_mean/g500_f1h-r1440x721cds/", + "g850":"monthly_mean/g850_f1h-r1440x721cds/", + "sfcWind":"monthly_mean/sfcWind_f1h-r1440x721cds/", + "tasmax":"monthly_mean/tasmax_f1h-r1440x721cds/", + "tasmin":"monthly_mean/tasmin_f1h-r1440x721cds/", + "ta300":"montly_mean/ta300_f1h-r1440x721cds/", + "ta500":"monthly_mean/ta500_f1h-r1440x721cds/", + "ta850":"monthly_mean/ta850_f1h-r1440x721cds/", + "tos":"monthly_mean/tos_f1h-r1440x721cds/"} calendar: "standard" reference_grid: "/esarchive/recon/ecmwf/era5/monthly_mean/tas_f1h-r1440x721cds/tas_201805.nc" ERA5-Land: name: "ERA5-Land" institution: "European Centre for Medium-Range Weather Forecasts" src: "recon/ecmwf/era5land/" - daily_mean: {"tas":"_f1h/", "rsds":"_f1h/", - "prlr":"_f1h/", "sfcWind":"_f1h/"} - monthly_mean: {"tas":"_f1h/","tasmin":"_f24h/", - "tasmax":"_f24h/", "prlr":"_f1h/", - "sfcWind":"_f1h/", "rsds":"_f1h/", - "tdps":"_f1h/"} + daily_mean: {"tas":"daily_mean/tas_f1h/", "rsds":"daily_mean/rsds_f1h/", + "prlr":"daily_mean/prlr_f1h/", "sfcWind":"daily_mean/sfcWind_f1h/", + "tasmin":"daily/tasmin/", "tasmax":"daily/tasmax/"} + monthly_mean: {"tas":"monthly_mean/tas_f1h/","tasmin":"monthly_mean/tasmin_f24h/", + "tasmax":"monthly_mean/tasmax_f24h/", "prlr":"monthly_mean/prlr_f1h/", + "sfcWind":"monthly_mean/sfcWind_f1h/", "rsds":"monthly_mean/rsds_f1h/", + "tdps":"monthly_mean/tdps_f1h/"} calendar: "proleptic_gregorian" reference_grid: "/esarchive/recon/ecmwf/era5land/daily_mean/tas_f1h/tas_201805.nc" UERRA: name: "ECMWF UERRA" institution: "European Centre for Medium-Range Weather Forecasts" src: "recon/ecmwf/uerra_mescan/" - daily_mean: {"tas":"_f6h/"} - monthly_mean: {"tas":"_f6h/"} + daily_mean: {"tas":"daily_mean/tas_f6h/"} + monthly_mean: {"tas":"monthly_mean/tas_f6h/"} calendar: "proleptic_gregorian" reference_grid: "/esarchive/recon/ecmwf/uerra_mescan/daily_mean/tas_f6h/tas_201805.nc" CERRA: name: "ECMWF CERRA" institution: "European Centre for Medium-Range Weather Forecasts" src: "recon/ecmwf/cerra/" - daily: {"tasmax":"-r2631x1113/", "tasmin":"-r2631x1113/"} - daily_mean: {"hurs":"_f3h-r2631x1113/", "ps":"_f3h-r2631x1113/", "sfcWind":"_f3h-r2631x1113/", - "tas":"_f3h-r2631x1113/", "winddir":"_f3h-r2631x1113/"} - monthly_mean: {"hurs":"_f3h-r2631x1113/", "ps":"_f3h-r2631x1113/", "sfcWind":"_f3h-r2631x1113/", - "tas":"_f3h-r2631x1113/", "winddir":"_f3h-r2631x1113/","tasmin":"_f24h-r2631x1113/","tasmax":"_f24h-r2631x1113/"} + daily_mean: {"hurs":"daily_mean/hurs_f3h-r2631x1113/", "ps":"daily_mean/ps_f3h-r2631x1113/", + "sfcWind":"daily_mean/sfcWind_f3h-r2631x1113/", + "tas":"daily_mean/tas_f3h-r2631x1113/", "winddir":"daily_mean/tas_f3h-r2631x1113/"} + monthly_mean: {"hurs":"monthly_mean/hurs_f3h-r2631x1113/", "ps":"monthly_mean/ps_f3h-r2631x1113/", + "sfcWind":"monthly_mean/sfcWind_f3h-r2631x1113/", + "tas":"monthly_mean/tas_f3h-r2631x1113/", + "winddir":"monthly_mean/winddir_f3h-r2631x1113/", + "tasmin":"monthly_mean/tasmin_f24h-r2631x1113/", + "tasmax":"monthly_mean/tasmax_f24h-r2631x1113/"} calendar: "proleptic_gregorian" reference_grid: "/esarchive/recon/ecmwf/cerra/monthly_mean/tas_f3h-r2631x1113/tas_200506.nc" CERRA-Land: name: "ECMWF CERRA-Land" institution: "European Centre for Medium-Range Weather Forecasts" src: "recon/ecmwf/cerraland/" - daily_mean: {"prlr":"_f6h-r2631x1113/"} - monthly_mean: {"prlr":"_f6h-r2631x1113/"} + daily_mean: {"prlr":"daily_mean/prlr_f6h-r2631x1113/"} + monthly_mean: {"prlr":"monthly_mean/prlr_f6h-r2631x1113/"} calendar: "proleptic_gregorian" reference_grid: "/esarchive/recon/ecmwf/cerraland/monthly_mean/prlr_f6h-r2631x1113/prlr_200412.nc" HadCRUT5: name: "HadCRUT5" institution: "Met Office" src: "obs/ukmo/hadcrut_v5.0_analysis/" - monthly_mean: {"tasanomaly":"/"} + monthly_mean: {"tasanomaly":"monthly_mean/tasanomaly/"} calendar: "proleptic_gregorian" reference_grid: "/esarchive/obs/ukmo/hadcrut_v5.0_analysis/monthly_mean/tasanomaly/tasanomaly_202001.nc" BEST: name: "BEST" institution: "European Centre for Medium-Range Weather Forecasts" src: "obs/berkeleyearth/berkeleyearth/" - daily_mean: {"tas":"/"} - monthly_mean: {"tas":"/"} + daily_mean: {"tas":"daily_mean/tas/"} + monthly_mean: {"tas":"monthly_mean/tas/"} calendar: "proleptic_gregorian" reference_grid: "/esarchive/obs/berkeleyearth/berkeleyearth/monthly_mean/tas/tas_201805.nc" - mars: src: "/esarchive/scratch/aho/tmp/GRIB/" #"/mars/" System: diff --git a/modules/Calibration/Calibration.R b/modules/Calibration/Calibration.R index f4b40afa932c0100490c008564680de00278db04..989d9b94519ee298dc6d76a3ecaf254f71927aaa 100644 --- a/modules/Calibration/Calibration.R +++ b/modules/Calibration/Calibration.R @@ -110,8 +110,7 @@ Calibration <- function(recipe, data) { fcst_calibrated <- NULL } } - } else if ((recipe$Analysis$Variables$freq == "daily_mean") || - (recipe$Analysis$Variables$freq == "daily")) { + } else if (recipe$Analysis$Variables$freq %in% c("daily", "daily_mean")) { # Daily data calibration using Quantile Mapping if (!(method %in% c("qmap"))) { error(recipe$Run$logger, diff --git a/modules/Loading/R/load_seasonal.R b/modules/Loading/R/load_seasonal.R index 4e0c5387c39959409cb93516375eef390b23003a..f2534ac7b88d5ecf267dbeaf749e0212bb604184 100644 --- a/modules/Loading/R/load_seasonal.R +++ b/modules/Loading/R/load_seasonal.R @@ -67,21 +67,23 @@ load_seasonal <- function(recipe) { ## accum <- FALSE ##} + if (store.freq %in% c("daily", "daily_mean")) { + frequency <- "daily_mean" + } else if (store.freq == "monthly_mean") { + frequency <- "monthly_mean" + } var_dir_obs <- reference_descrip[[store.freq]][variable] var_dir_exp <- exp_descrip[[store.freq]][variable] # ----------- - obs.path <- paste0(archive$src, - obs.dir, store.freq, "/$var$", "$var_dir$", - "/$var$_$file_date$.nc") + obs.path <- paste0(archive$src, obs.dir, "$var_dir$", + "$var$_$file_date$.nc") - hcst.path <- paste0(archive$src, - hcst.dir, store.freq, "/$var$", "$var_dir$", + hcst.path <- paste0(archive$src, hcst.dir, "$var_dir$", "$var$_$file_date$.nc") - fcst.path <- paste0(archive$src, - hcst.dir, store.freq, "/$var$", "$var_dir$", - "/$var$_$file_date$.nc") + fcst.path <- paste0(archive$src, hcst.dir, "$var_dir$", + "$var$_$file_date$.nc") # Define regrid parameters: #------------------------------------------------------------------- diff --git a/modules/Visualization/R/plot_ensemble_mean.R b/modules/Visualization/R/plot_ensemble_mean.R index a74091868cb5d70efe90d5e871e077204a130ff5..3d00742dd4de5443c9cafddd13a7990ffafc1dd4 100644 --- a/modules/Visualization/R/plot_ensemble_mean.R +++ b/modules/Visualization/R/plot_ensemble_mean.R @@ -1,7 +1,7 @@ plot_ensemble_mean <- function(recipe, fcst, mask = NULL, dots = NULL, outdir, output_conf) { ## TODO: Add 'anomaly' to plot title # Abort if frequency is daily - if (recipe$Analysis$Variables$freq == "daily_mean") { + if (recipe$Analysis$Variables$freq %in% c("daily", "daily_mean")) { stop("Visualization functions not yet implemented for daily data.") } latitude <- fcst$coords$lat diff --git a/modules/Visualization/R/plot_most_likely_terciles_map.R b/modules/Visualization/R/plot_most_likely_terciles_map.R index 66006ed1beb881fd8e91cb5ded073ee98e43e957..abd08f7b4a636898fd4d3c87d154c6eb6d80f83c 100644 --- a/modules/Visualization/R/plot_most_likely_terciles_map.R +++ b/modules/Visualization/R/plot_most_likely_terciles_map.R @@ -20,7 +20,7 @@ plot_most_likely_terciles <- function(recipe, ## TODO: Add 'anomaly' to plot title # Abort if frequency is daily - if (recipe$Analysis$Variables$freq == "daily_mean") { + if (recipe$Analysis$Variables$freq %in% c("daily", "daily_mean")) { stop("Visualization functions not yet implemented for daily data.") } diff --git a/modules/Visualization/R/plot_skill_metrics.R b/modules/Visualization/R/plot_skill_metrics.R index 96496fb4e66ddf22eb354cd209be53928ce38873..2698d499b13f58dff2eabacbaacb7614eb214298 100644 --- a/modules/Visualization/R/plot_skill_metrics.R +++ b/modules/Visualization/R/plot_skill_metrics.R @@ -10,7 +10,7 @@ plot_skill_metrics <- function(recipe, data_cube, skill_metrics, # significance: T/F, whether to display the significance dots in the plots # Abort if frequency is daily - if (recipe$Analysis$Variables$freq == "daily_mean") { + if (recipe$Analysis$Variables$freq %in% c("daily", "daily_mean")) { error(recipe$Run$logger, "Visualization functions not yet implemented for daily data.") stop() diff --git a/tools/data_summary.R b/tools/data_summary.R index e3de9711011442d51deb9465b67ea6f0c3d50cf6..b76101bac4bba40b1a26ff2cdea1c1c16bae9580 100644 --- a/tools/data_summary.R +++ b/tools/data_summary.R @@ -10,8 +10,7 @@ data_summary <- function(data_cube, recipe) { object_name <- deparse(substitute(data_cube)) if (recipe$Analysis$Variables$freq == "monthly_mean") { date_format <- "%b %Y" - } else if ((recipe$Analysis$Variables$freq == "daily_mean") || - (recipe$Analysis$Variables$freq == "daily")) { + } else if (recipe$Analysis$Variables$freq %in% c("daily", "daily_mean")) { date_format <- "%b %d %Y" } months <- unique(format(as.Date(data_cube$attrs$Dates), format = '%B'))