From 5cd35aa3699cdc661ebb145c84cc36e7f433f067 Mon Sep 17 00:00:00 2001 From: nperez Date: Tue, 30 Jun 2020 20:09:25 +0200 Subject: [PATCH 1/6] Persistence plot size --- vignettes/WeatherRegimes_vignette.Rmd | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/vignettes/WeatherRegimes_vignette.Rmd b/vignettes/WeatherRegimes_vignette.Rmd index 47d78aee..2b7b6128 100644 --- a/vignettes/WeatherRegimes_vignette.Rmd +++ b/vignettes/WeatherRegimes_vignette.Rmd @@ -121,8 +121,7 @@ PlotTriangles4Categories(freq_obs, toptitle = 'Persistence', ``` - - + ### 7- Weather regimes in the predictions -- GitLab From aad899f10cfa2b61831e2e7eb83614cdeaa3485c Mon Sep 17 00:00:00 2001 From: nperez Date: Tue, 30 Jun 2020 20:32:31 +0200 Subject: [PATCH 2/6] Fix accents and markdown suggest --- DESCRIPTION | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index f481e5fe..92c36476 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -3,7 +3,7 @@ Title: Assessing Skill of Climate Forecasts on Seasonal-to-Decadal Timescales Version: 3.1.0 Authors@R: c( - person("Núria", "Pérez-Zanón", , "nuria.perez@bsc.es", role = c("aut", "cre"), comment = c(ORCID = "0000-0001-8568-3071")), + person("Nuria", "Perez-Zanon", , "nuria.perez@bsc.es", role = c("aut", "cre"), comment = c(ORCID = "0000-0001-8568-3071")), person("Louis-Philippe", "Caron", , "louis-philippe.caron@bsc.es", role = "aut", comment = c(ORCID = "0000-0001-5221-0147")), person("Carmen", "Alvarez-Castro", , "carmen.alvarez-castro@cmcc.it", role = "aut"), person("Jost", "von Hardenberg", , email = c("j.vonhardenberg@isac.cnr.it", "jost.hardenberg@polito.it"), role = "aut", comment = c(ORCID = "0000-0002-5312-8070")), @@ -71,6 +71,7 @@ Suggests: zeallot, testthat, knitr, + markdown, rmarkdown VignetteBuilder: knitr License: Apache License 2.0 -- GitLab From d8a9e7c2f581d39dfd7dc38b30b04649df3e94ae Mon Sep 17 00:00:00 2001 From: nperez Date: Tue, 30 Jun 2020 21:04:41 +0200 Subject: [PATCH 3/6] commit avoiding long examples to run --- R/CST_EnsClustering.R | 6 ++++-- R/CST_RegimesAssign.R | 4 ++++ R/CST_WeatherRegimes.R | 4 ++++ man/CST_EnsClustering.Rd | 4 ++-- man/CST_RegimesAssign.Rd | 2 ++ man/CST_WeatherRegimes.Rd | 2 ++ man/EnsClustering.Rd | 2 ++ man/RegimesAssign.Rd | 2 ++ man/WeatherRegimes.Rd | 2 ++ 9 files changed, 24 insertions(+), 4 deletions(-) diff --git a/R/CST_EnsClustering.R b/R/CST_EnsClustering.R index 53bf013a..f0624d3e 100644 --- a/R/CST_EnsClustering.R +++ b/R/CST_EnsClustering.R @@ -78,7 +78,7 @@ #' res <- CST_EnsClustering(exp, numclus = 3, #' cluster_dim = c("member", "dataset", "sdate")) #' iclus = res$cluster[2, 1, 3] -#'\donttest{ +#'\dontrun{ #' print(paste("Cluster of 2. member, 1. dataset, 3. sdate:", iclus)) #' print(paste("Frequency (numerosity) of cluster (", iclus, ") :", res$freq[iclus])) #' library(s2dverification) @@ -88,7 +88,7 @@ #'} #' # Example 2: Cluster on members retaining 4 EOFs during #' # preliminary dimensional reduction -#'\donttest{ +#'\dontrun{ #' res <- CST_EnsClustering(exp, numclus = 3, numpcs = 4, cluster_dim = "member") #' # Example 3: Cluster on members, retain 80% of variance during #' # preliminary dimensional reduction @@ -161,9 +161,11 @@ CST_EnsClustering <- function(exp, time_moment = "mean", numclus = NULL, #' \code{$lat} (selected longitudes of output fields). #' #' @examples +#'\dontrun{ #' exp <- lonlat_data$exp #' res <- EnsClustering(exp$data, exp$lat, exp$lon, numclus = 3, #' cluster_dim = c("member", "dataset", "sdate")) +#'} #'@export EnsClustering <- function(data, lat, lon, time_moment = "mean", numclus = NULL, diff --git a/R/CST_RegimesAssign.R b/R/CST_RegimesAssign.R index b0817a71..580cf1e5 100644 --- a/R/CST_RegimesAssign.R +++ b/R/CST_RegimesAssign.R @@ -31,9 +31,11 @@ #'@import multiApply #'@importFrom ClimProjDiags Subset #'@examples +#'\dontrun{ #'regimes <- CST_WeatherRegimes(data = lonlat_data$obs, EOFs = FALSE, ncenters = 4) #'res1 <- CST_RegimesAssign(data = lonlat_data$exp, ref_maps = regimes, composite = FALSE) #'res2 <- CST_RegimesAssign(data = lonlat_data$exp, ref_maps = regimes, composite = TRUE) +#'} #'@export #' @@ -105,10 +107,12 @@ CST_RegimesAssign <- function(data, ref_maps, #'@import multiApply #'@importFrom ClimProjDiags Subset #'@examples +#'\dontrun{ #'regimes <- WeatherRegime(data = lonlat_data$obs$data, lat = lonlat_data$obs$lat, #' EOFs = FALSE, ncenters = 4)$composite #'res1 <- RegimesAssign(data = lonlat_data$exp$data, ref_maps = drop(regimes), #' lat = lonlat_data$exp$lat, composite = FALSE) +#'} #'@export RegimesAssign <- function(data, ref_maps, lat, method = "distance", composite = FALSE, diff --git a/R/CST_WeatherRegimes.R b/R/CST_WeatherRegimes.R index f4495a29..72ab3987 100644 --- a/R/CST_WeatherRegimes.R +++ b/R/CST_WeatherRegimes.R @@ -37,8 +37,10 @@ #'@import s2dverification #'@import multiApply #'@examples +#'\dontrun{ #'res1 <- CST_WeatherRegimes(data = lonlat_data$obs, EOFs = FALSE, ncenters = 4) #'res2 <- CST_WeatherRegimes(data = lonlat_data$obs, EOFs = TRUE, ncenters = 3) +#'} #'@export #' CST_WeatherRegimes <- function(data, ncenters = NULL, @@ -110,8 +112,10 @@ CST_WeatherRegimes <- function(data, ncenters = NULL, #'@import s2dverification #'@import multiApply #'@examples +#'\dontrun{ #'res <- WeatherRegime(data = lonlat_data$obs$data, lat = lonlat_data$obs$lat, #' EOFs = FALSE, ncenters = 4) +#'} #'@export WeatherRegime <- function(data, ncenters = NULL, diff --git a/man/CST_EnsClustering.Rd b/man/CST_EnsClustering.Rd index 6ee79b7c..c68af505 100644 --- a/man/CST_EnsClustering.Rd +++ b/man/CST_EnsClustering.Rd @@ -104,7 +104,7 @@ exp <- lonlat_data$exp res <- CST_EnsClustering(exp, numclus = 3, cluster_dim = c("member", "dataset", "sdate")) iclus = res$cluster[2, 1, 3] -\donttest{ +\dontrun{ print(paste("Cluster of 2. member, 1. dataset, 3. sdate:", iclus)) print(paste("Frequency (numerosity) of cluster (", iclus, ") :", res$freq[iclus])) library(s2dverification) @@ -114,7 +114,7 @@ PlotEquiMap(res$repr_field[iclus, , ], exp$lon, exp$lat, } # Example 2: Cluster on members retaining 4 EOFs during # preliminary dimensional reduction -\donttest{ +\dontrun{ res <- CST_EnsClustering(exp, numclus = 3, numpcs = 4, cluster_dim = "member") # Example 3: Cluster on members, retain 80\% of variance during # preliminary dimensional reduction diff --git a/man/CST_RegimesAssign.Rd b/man/CST_RegimesAssign.Rd index 22b762b2..43df97c4 100644 --- a/man/CST_RegimesAssign.Rd +++ b/man/CST_RegimesAssign.Rd @@ -43,10 +43,12 @@ for which the minimum Eucledian distance (method=’distance’) or highest spat (method=‘ACC’) is obtained. } \examples{ +\dontrun{ regimes <- CST_WeatherRegimes(data = lonlat_data$obs, EOFs = FALSE, ncenters = 4) res1 <- CST_RegimesAssign(data = lonlat_data$exp, ref_maps = regimes, composite = FALSE) res2 <- CST_RegimesAssign(data = lonlat_data$exp, ref_maps = regimes, composite = TRUE) } +} \references{ Torralba, V. (2019) Seasonal climate prediction for the wind energy sector: methods and tools for the development of a climate service. Thesis. Available online: \url{https://eprints.ucm.es/56841/} diff --git a/man/CST_WeatherRegimes.Rd b/man/CST_WeatherRegimes.Rd index a840c595..a243a76a 100644 --- a/man/CST_WeatherRegimes.Rd +++ b/man/CST_WeatherRegimes.Rd @@ -54,9 +54,11 @@ The cluster analysis can be performed with the traditional k-means or those meth included in the hclust (stats package). } \examples{ +\dontrun{ res1 <- CST_WeatherRegimes(data = lonlat_data$obs, EOFs = FALSE, ncenters = 4) res2 <- CST_WeatherRegimes(data = lonlat_data$obs, EOFs = TRUE, ncenters = 3) } +} \references{ Cortesi, N., V., Torralba, N., González-Reviriego, A., Soret, and F.J., Doblas-Reyes (2019). Characterization of European wind speed variability using weather regimes. Climate Dynamics,53, diff --git a/man/EnsClustering.Rd b/man/EnsClustering.Rd index 30d81f87..986c6d4d 100644 --- a/man/EnsClustering.Rd +++ b/man/EnsClustering.Rd @@ -67,10 +67,12 @@ and returns a number of scenarios, with representative members for each of them. The clustering is performed in a reduced EOF space. } \examples{ +\dontrun{ exp <- lonlat_data$exp res <- EnsClustering(exp$data, exp$lat, exp$lon, numclus = 3, cluster_dim = c("member", "dataset", "sdate")) } +} \author{ Federico Fabiano - ISAC-CNR, \email{f.fabiano@isac.cnr.it} diff --git a/man/RegimesAssign.Rd b/man/RegimesAssign.Rd index d578e5b2..c145e8ef 100644 --- a/man/RegimesAssign.Rd +++ b/man/RegimesAssign.Rd @@ -46,10 +46,12 @@ for which the minimum Eucledian distance (method=’distance’) or highest spat (method=‘ACC’) is obtained. } \examples{ +\dontrun{ regimes <- WeatherRegime(data = lonlat_data$obs$data, lat = lonlat_data$obs$lat, EOFs = FALSE, ncenters = 4)$composite res1 <- RegimesAssign(data = lonlat_data$exp$data, ref_maps = drop(regimes), lat = lonlat_data$exp$lat, composite = FALSE) +} } \references{ Torralba, V. (2019) Seasonal climate prediction for the wind energy sector: methods and tools for the development of a climate service. Thesis. Available online: \url{https://eprints.ucm.es/56841/} diff --git a/man/WeatherRegimes.Rd b/man/WeatherRegimes.Rd index 812585ce..3f77841e 100644 --- a/man/WeatherRegimes.Rd +++ b/man/WeatherRegimes.Rd @@ -61,9 +61,11 @@ The cluster analysis can be performed with the traditional k-means or those meth included in the hclust (stats package). } \examples{ +\dontrun{ res <- WeatherRegime(data = lonlat_data$obs$data, lat = lonlat_data$obs$lat, EOFs = FALSE, ncenters = 4) } +} \references{ Cortesi, N., V., Torralba, N., González-Reviriego, A., Soret, and F.J., Doblas-Reyes (2019). Characterization of European wind speed variability using weather regimes. Climate Dynamics,53, -- GitLab From f5addc95f5b288cc7055053c664a02b65a685aeb Mon Sep 17 00:00:00 2001 From: nperez Date: Wed, 1 Jul 2020 10:29:05 +0200 Subject: [PATCH 4/6] Timelapse running examples --- R/CST_EnsClustering.R | 9 +++++---- man/CST_EnsClustering.Rd | 7 ++++--- man/EnsClustering.Rd | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/R/CST_EnsClustering.R b/R/CST_EnsClustering.R index f0624d3e..93a34d9f 100644 --- a/R/CST_EnsClustering.R +++ b/R/CST_EnsClustering.R @@ -73,22 +73,23 @@ #' \code{$lon} (selected longitudes of output fields), #' \code{$lat} (selected longitudes of output fields). #' @examples +#'\donttest{ #' exp <- lonlat_data$exp #' # Example 1: Cluster on all start dates, members and models #' res <- CST_EnsClustering(exp, numclus = 3, #' cluster_dim = c("member", "dataset", "sdate")) #' iclus = res$cluster[2, 1, 3] -#'\dontrun{ +#' #' print(paste("Cluster of 2. member, 1. dataset, 3. sdate:", iclus)) #' print(paste("Frequency (numerosity) of cluster (", iclus, ") :", res$freq[iclus])) #' library(s2dverification) #' PlotEquiMap(res$repr_field[iclus, , ], exp$lon, exp$lat, #' filled.continents = FALSE, #' toptitle = paste("Representative field of cluster", iclus)) -#'} +#' #' # Example 2: Cluster on members retaining 4 EOFs during #' # preliminary dimensional reduction -#'\dontrun{ +#' #' res <- CST_EnsClustering(exp, numclus = 3, numpcs = 4, cluster_dim = "member") #' # Example 3: Cluster on members, retain 80% of variance during #' # preliminary dimensional reduction @@ -161,7 +162,7 @@ CST_EnsClustering <- function(exp, time_moment = "mean", numclus = NULL, #' \code{$lat} (selected longitudes of output fields). #' #' @examples -#'\dontrun{ +#'\donttest{ #' exp <- lonlat_data$exp #' res <- EnsClustering(exp$data, exp$lat, exp$lon, numclus = 3, #' cluster_dim = c("member", "dataset", "sdate")) diff --git a/man/CST_EnsClustering.Rd b/man/CST_EnsClustering.Rd index c68af505..a7ca4a9c 100644 --- a/man/CST_EnsClustering.Rd +++ b/man/CST_EnsClustering.Rd @@ -99,22 +99,23 @@ the maximum distance between a member in a cluster and the cluster centroid deviation for each cluster (i.e. how much the cluster is compact). } \examples{ +\donttest{ exp <- lonlat_data$exp # Example 1: Cluster on all start dates, members and models res <- CST_EnsClustering(exp, numclus = 3, cluster_dim = c("member", "dataset", "sdate")) iclus = res$cluster[2, 1, 3] -\dontrun{ + print(paste("Cluster of 2. member, 1. dataset, 3. sdate:", iclus)) print(paste("Frequency (numerosity) of cluster (", iclus, ") :", res$freq[iclus])) library(s2dverification) PlotEquiMap(res$repr_field[iclus, , ], exp$lon, exp$lat, filled.continents = FALSE, toptitle = paste("Representative field of cluster", iclus)) -} + # Example 2: Cluster on members retaining 4 EOFs during # preliminary dimensional reduction -\dontrun{ + res <- CST_EnsClustering(exp, numclus = 3, numpcs = 4, cluster_dim = "member") # Example 3: Cluster on members, retain 80\% of variance during # preliminary dimensional reduction diff --git a/man/EnsClustering.Rd b/man/EnsClustering.Rd index 986c6d4d..510fc168 100644 --- a/man/EnsClustering.Rd +++ b/man/EnsClustering.Rd @@ -67,7 +67,7 @@ and returns a number of scenarios, with representative members for each of them. The clustering is performed in a reduced EOF space. } \examples{ -\dontrun{ +\donttest{ exp <- lonlat_data$exp res <- EnsClustering(exp$data, exp$lat, exp$lon, numclus = 3, cluster_dim = c("member", "dataset", "sdate")) -- GitLab From 007c12d99c60dfc98f77ad2b4b3b1a2cf1d58d56 Mon Sep 17 00:00:00 2001 From: nperez Date: Wed, 1 Jul 2020 10:54:52 +0200 Subject: [PATCH 5/6] subtitle fixed in vignette --- vignettes/WeatherRegimes_vignette.Rmd | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vignettes/WeatherRegimes_vignette.Rmd b/vignettes/WeatherRegimes_vignette.Rmd index 2b7b6128..97a4a10a 100644 --- a/vignettes/WeatherRegimes_vignette.Rmd +++ b/vignettes/WeatherRegimes_vignette.Rmd @@ -45,10 +45,12 @@ c(exp, obs) %<-% CST_Load(var = 'psl', exp = 'system4_m1', lonmin = 274.5, lonmax = 45, output = 'lonlat') ``` + Notice that you need the files to be stored locally in your computer or server with correct configuration file. If you are interested into run this vignette, contact nuria.perez at bsc.es to get a data sample. The objects returned by `CST_Load()` are s2v_cube class. They contains among others, the array with the requested data. + ```r > dim(exp$data) dataset member sdate ftime lat lon @@ -58,7 +60,8 @@ dataset member sdate ftime lat lon 1 1 20 31 77 186 ``` -## #3- Daily anomalies based on a smoothed climatology) + +### 3- Daily anomalies based on a smoothed climatology) The weather regimes classification is based on daily anomalies, which have been computed by following these steps: -- GitLab From 38ae20c5519222a8360c3242964fd08f2f15f305 Mon Sep 17 00:00:00 2001 From: nperez Date: Wed, 1 Jul 2020 10:59:22 +0200 Subject: [PATCH 6/6] Fix in WR argument name --- vignettes/WeatherRegimes_vignette.Rmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vignettes/WeatherRegimes_vignette.Rmd b/vignettes/WeatherRegimes_vignette.Rmd index 97a4a10a..62e4883d 100644 --- a/vignettes/WeatherRegimes_vignette.Rmd +++ b/vignettes/WeatherRegimes_vignette.Rmd @@ -80,7 +80,7 @@ from the stats R package. In this example we have made different assumptions: fo ```r -WR_obs <- CST_WeatherRegimes(data = ano_obs, EOFS = FALSE, ncenters = 4) +WR_obs <- CST_WeatherRegimes(data = ano_obs, EOFs = FALSE, ncenters = 4) ``` -- GitLab