
Is chooseGCM affected by resolution?
Source:vignettes/articles/Resolution-Effect.Rmd
Resolution-Effect.Rmd
This Rmarkdown is part of the following article:
Esser, L.F., Bailly, D., Lima, M.R., Ré, R. 2024. chooseGCM: a toolkit to select General Circulation Models in R. In prep.
Introduction
chooseGCM is a solution for GCMs selection in Climate Change research. We built this Rmarkdown as a way to test the properties of the methods underlying chooseGCM. Results from each function will be presented side by side with changing resolution, allowing better comparison. Here, we have already downloaded GCMs data.
This Rmarkdown will apply different algorithms implemented in chooseGCM in different resolutions. The aim is to understand if resolution changes will affect the GCMs subset selected by algorithms. We expect that results will not change with resolution, since the increase in resolution is just an interpolation of coarser resolution. As a 30 arcsec resolution will be used, we considered just a local scale due to computational and time limitations. We also restricted the variables used to bio1 and bio12 to restrict variation included with variables selection (see the proper Rmarkdown on the effects of variable selection for more information).
# Install and open CRAN libraries
for(x in c("devtools", "geodata", "terra", "tictoc") ){
if (!require(x, character.only = TRUE)) {
install.packages(x, dependencies = TRUE)
library(x, character.only = TRUE)
}
}
# Install and open chooseGCM
if (!require("chooseGCM", character.only = TRUE)) {
devtools::install_github("luizesser/chooseGCM")
library("chooseGCM", character.only = TRUE)
}
# Install and open caretSDM
if (!require("caretSDM", character.only = TRUE)) {
devtools::install_github("luizesser/caretSDM")
library("caretSDM", character.only = TRUE)
}
Preparing data
Import study_area
For this demonstration, we will use Araucaria angustifolia, the brazilian pine, as a study case. This flagship species is a key species for the Atlantic Rainforest biodiversity hotspot. Species records were obtained from GBIF and cleaned by excluding records from outside the native region and NAs. This set of records was then used to build a shape of accessible area by merging buffers of 500 km around each record.
occ_data <- geodata::sp_occurrence("Araucaria", "angustifolia")
## 1932 records found
## 0-300-600-900-1200-1500-1800-1932
## 1932 records downloaded
occ_data <- occ_data |>
dplyr::filter(lon >= -64) |>
dplyr::filter(lon <= -33) |>
dplyr::filter(lat <= -19.5) |>
dplyr::filter(lat >= -33)
study_area <- na.omit(occ_data[,c("lon", "lat")]) |>
sf::st_as_sf(coords= c(1,2), crs = 4326) |>
sf::st_transform(crs=sf::st_crs(6933)) |>
sf::st_buffer(dist = 500000) |>
sf::st_union()
Download GCMs
To obtain GCMs data, we recommend using geodata
package,
which links directly to the WorldClim 2.1 database. We have previously
downloaded GCMs data, but an example code is supplied below.
gcms <- geodata:::.cmods
for (r in c(10, 5, 2.5)) {
for ( g in gcms ) {
geodata::cmip6_world(model = g,
ssp = "585",
time = "2081-2100",
var = "bioc",
res = r,
path = ""
)
}
}
Import GCMs
The function import_gcms
helps the user to import data in
the correct way, which is a list of GCMs. Each element of the list is a
SpatRaster
from terra
package, containing all
variables. The list should be named with GCMs names to better plot
results.
tictoc::tic()
s10 <- chooseGCM::import_gcms(path = "~/storage/WC_data/WC_data_all_gcms_10/",
gcm_names = c("ACCESS-CM2","ACCESS-ESM1-5",
"CanESM5-CanOE","CMCC-ESM2",
"CNRM-CM6-1-HR","CNRM-CM6-1",
"CNRM-ESM2-1","EC-Earth3-Veg",
"EC-Earth3-Veg-LR","FIO-ESM-2-0",
"GISS-E2-1-G","GISS-E2-1-H",
"HadGEM3-GC31-LL","INM-CM5-0",
"INM-CM4-8","IPSL-CM6A-LR",
"MIROC-ES2L","MIROC6",
"MPI-ESM1-2-LR","MPI-ESM1-2-HR",
"MRI-ESM2-0","UKESM1-0-LL"))
tictoc::toc()
## 0.171 sec elapsed
tictoc::tic()
s5 <- chooseGCM::import_gcms(path = "~/storage/WC_data/WC_data_all_gcms_5",
gcm_names = c("ACCESS-CM2","ACCESS-ESM1-5",
"CanESM5-CanOE","CMCC-ESM2",
"CNRM-CM6-1-HR","CNRM-CM6-1",
"CNRM-ESM2-1","EC-Earth3-Veg",
"EC-Earth3-Veg-LR","FIO-ESM-2-0",
"GISS-E2-1-G","GISS-E2-1-H",
"HadGEM3-GC31-LL","INM-CM5-0",
"INM-CM4-8","IPSL-CM6A-LR",
"MIROC-ES2L","MIROC6",
"MPI-ESM1-2-LR","MPI-ESM1-2-HR",
"MRI-ESM2-0","UKESM1-0-LL"))
tictoc::toc()
## 0.12 sec elapsed
tictoc::tic()
s25 <- chooseGCM::import_gcms(path = "~/storage/WC_data/WC_data_all_gcms_25",
gcm_names = c("ACCESS-CM2","ACCESS-ESM1-5",
"CanESM5-CanOE","CMCC-ESM2",
"CNRM-CM6-1-HR","CNRM-CM6-1",
"CNRM-ESM2-1","EC-Earth3-Veg",
"EC-Earth3-Veg-LR","FIO-ESM-2-0",
"GISS-E2-1-G","GISS-E2-1-H",
"HadGEM3-GC31-LL","INM-CM5-0",
"INM-CM4-8","IPSL-CM6A-LR",
"MIROC-ES2L","MIROC6",
"MPI-ESM1-2-LR","MPI-ESM1-2-HR",
"MRI-ESM2-0","UKESM1-0-LL"))
tictoc::toc()
## 0.118 sec elapsed
tictoc::tic()
s30 <- chooseGCM::import_gcms(path = "~/storage/WC_data/WC_data_all_gcms_30",
gcm_names = c("ACCESS-CM2","ACCESS-ESM1-5",
"CanESM5-CanOE","CMCC-ESM2",
"CNRM-CM6-1-HR","CNRM-CM6-1",
"CNRM-ESM2-1","EC-Earth3-Veg",
"EC-Earth3-Veg-LR","FIO-ESM-2-0",
"GISS-E2-1-G","GISS-E2-1-H",
"HadGEM3-GC31-LL","INM-CM5-0",
"INM-CM4-8","IPSL-CM6A-LR",
"MIROC-ES2L","MIROC6",
"MPI-ESM1-2-LR","MPI-ESM1-2-HR",
"MRI-ESM2-0","UKESM1-0-LL"))
tictoc::toc()
## 0.12 sec elapsed
Importing GCMs data into R had an marginal difference in time, despite the big difference in size from different files.
Applying algorithms
Hierarchical Clustering selection
tictoc::tic("Hierarchical Clustering subset s10")
mc_hclust10 <- montecarlo_gcms(s10,
var_names = c("bio1", "bio12"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "hclust")
## Warning: The `<scale>` argument of `guides()` cannot be `FALSE`. Use "none" instead as
## of ggplot2 3.3.4.
## ℹ The deprecated feature was likely used in the factoextra package.
## Please report the issue at <https://github.com/kassambara/factoextra/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
mc_hclust10
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## [1] "ACCESS-ESM1-5" "EC-Earth3-Veg-LR"
##
## $suggested_gcms$k3
## [1] "ACCESS-ESM1-5" "EC-Earth3-Veg-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k4
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "EC-Earth3-Veg-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k5
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2" "EC-Earth3-Veg-LR"
## [5] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k6
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2" "EC-Earth3-Veg-LR"
## [5] "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k7
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2" "INM-CM4-8"
## [5] "EC-Earth3-Veg-LR" "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k8
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2" "INM-CM4-8"
## [5] "EC-Earth3-Veg-LR" "GISS-E2-1-H" "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k9
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2" "INM-CM4-8"
## [5] "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H" "MPI-ESM1-2-LR"
## [9] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k10
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k11
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "MPI-ESM1-2-LR" "IPSL-CM6A-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k12
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "INM-CM5-0" "IPSL-CM6A-LR" "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k13
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
## [9] "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR" "MPI-ESM1-2-LR"
## [13] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k14
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
## [9] "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [13] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k15
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "INM-CM4-8" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR"
## [13] "MIROC-ES2L" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k16
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC-ES2L" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k17
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6" "MPI-ESM1-2-HR"
## [17] "MPI-ESM1-2-LR"
##
## $suggested_gcms$k18
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "MRI-ESM2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k19
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k20
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k21
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
## [21] "UKESM1-0-LL"
hclust_subset10 <- mc_hclust10$suggested_gcms$k5
tictoc::toc()
## Hierarchical Clustering subset s10: 14.762 sec elapsed
tictoc::tic("Hierarchical Clustering subset s5")
mc_hclust5 <- montecarlo_gcms(s5,
var_names = c("bio1", "bio12"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "hclust")
mc_hclust5
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## [1] "FIO-ESM-2-0" "EC-Earth3-Veg-LR"
##
## $suggested_gcms$k3
## [1] "FIO-ESM-2-0" "EC-Earth3-Veg-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k4
## [1] "FIO-ESM-2-0" "CanESM5-CanOE" "EC-Earth3-Veg-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k5
## [1] "ACCESS-CM2" "CanESM5-CanOE" "FIO-ESM-2-0" "EC-Earth3-Veg-LR"
## [5] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k6
## [1] "ACCESS-CM2" "CanESM5-CanOE" "FIO-ESM-2-0" "EC-Earth3-Veg-LR"
## [5] "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k7
## [1] "ACCESS-CM2" "CanESM5-CanOE" "FIO-ESM-2-0" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k8
## [1] "ACCESS-CM2" "CanESM5-CanOE" "FIO-ESM-2-0" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "GISS-E2-1-H" "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k9
## [1] "ACCESS-CM2" "CanESM5-CanOE" "FIO-ESM-2-0" "CNRM-CM6-1"
## [5] "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "GISS-E2-1-H" "MPI-ESM1-2-LR"
## [9] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k10
## [1] "ACCESS-CM2" "HadGEM3-GC31-LL" "CanESM5-CanOE" "FIO-ESM-2-0"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k11
## [1] "ACCESS-CM2" "HadGEM3-GC31-LL" "CanESM5-CanOE" "FIO-ESM-2-0"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "MPI-ESM1-2-LR" "IPSL-CM6A-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k12
## [1] "ACCESS-CM2" "HadGEM3-GC31-LL" "CanESM5-CanOE" "FIO-ESM-2-0"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "INM-CM5-0" "IPSL-CM6A-LR" "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k13
## [1] "ACCESS-CM2" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR" "MPI-ESM1-2-LR"
## [13] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k14
## [1] "ACCESS-CM2" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC6"
## [13] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k15
## [1] "ACCESS-CM2" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR"
## [13] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k16
## [1] "ACCESS-CM2" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k17
## [1] "ACCESS-CM2" "HadGEM3-GC31-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6" "MPI-ESM1-2-HR"
## [17] "MPI-ESM1-2-LR"
##
## $suggested_gcms$k18
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k19
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k20
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k21
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
## [21] "UKESM1-0-LL"
hclust_subset5 <- mc_hclust5$suggested_gcms$k5
tictoc::toc()
## Hierarchical Clustering subset s5: 27.168 sec elapsed
tictoc::tic("Hierarchical Clustering subset s25")
mc_hclust25 <- montecarlo_gcms(s25,
var_names = c("bio1", "bio12"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "hclust")
mc_hclust25
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## [1] "FIO-ESM-2-0" "CNRM-ESM2-1"
##
## $suggested_gcms$k3
## [1] "FIO-ESM-2-0" "CNRM-ESM2-1" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k4
## [1] "FIO-ESM-2-0" "CanESM5-CanOE" "CNRM-ESM2-1" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k5
## [1] "UKESM1-0-LL" "CanESM5-CanOE" "FIO-ESM-2-0" "CNRM-ESM2-1"
## [5] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k6
## [1] "UKESM1-0-LL" "CanESM5-CanOE" "FIO-ESM-2-0" "CNRM-ESM2-1"
## [5] "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k7
## [1] "UKESM1-0-LL" "CanESM5-CanOE" "FIO-ESM-2-0" "CNRM-CM6-1"
## [5] "CNRM-ESM2-1" "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k8
## [1] "UKESM1-0-LL" "CanESM5-CanOE" "FIO-ESM-2-0" "CNRM-CM6-1"
## [5] "CNRM-ESM2-1" "GISS-E2-1-G" "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k9
## [1] "UKESM1-0-LL" "CanESM5-CanOE" "FIO-ESM-2-0" "CNRM-CM6-1"
## [5] "CNRM-ESM2-1" "EC-Earth3-Veg" "GISS-E2-1-G" "MIROC-ES2L"
## [9] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k10
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "FIO-ESM-2-0"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "GISS-E2-1-G"
## [9] "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k11
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "FIO-ESM-2-0"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "GISS-E2-1-G"
## [9] "MIROC-ES2L" "IPSL-CM6A-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k12
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "FIO-ESM-2-0"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "GISS-E2-1-G"
## [9] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k13
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [13] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k14
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [13] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k15
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR"
## [13] "MIROC-ES2L" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k16
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC-ES2L" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k17
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6" "MPI-ESM1-2-HR"
## [17] "MPI-ESM1-2-LR"
##
## $suggested_gcms$k18
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "UKESM1-0-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k19
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "UKESM1-0-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k20
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "UKESM1-0-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k21
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-ESM2-1" "EC-Earth3-Veg" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
## [21] "UKESM1-0-LL"
hclust_subset25 <- mc_hclust25$suggested_gcms$k5
tictoc::toc()
## Hierarchical Clustering subset s25: 84.427 sec elapsed
tictoc::tic("Hierarchical Clustering subset s30")
mc_hclust30 <- montecarlo_gcms(s30,
var_names = c("bio1", "bio12"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "hclust")
## |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|=========================================
mc_hclust30
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## [1] "ACCESS-CM2" "EC-Earth3-Veg-LR"
##
## $suggested_gcms$k3
## [1] "ACCESS-CM2" "EC-Earth3-Veg-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k4
## [1] "ACCESS-CM2" "CanESM5-CanOE" "EC-Earth3-Veg-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k5
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "EC-Earth3-Veg-LR"
## [5] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k6
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "EC-Earth3-Veg-LR"
## [5] "GISS-E2-1-H" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k7
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "GISS-E2-1-H" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k8
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CNRM-CM6-1"
## [5] "EC-Earth3-Veg-LR" "GISS-E2-1-H" "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k9
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CNRM-CM6-1"
## [5] "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H" "MPI-ESM1-2-LR"
## [9] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k10
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k11
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "MPI-ESM1-2-LR" "IPSL-CM6A-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k12
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "GISS-E2-1-H"
## [9] "INM-CM5-0" "IPSL-CM6A-LR" "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k13
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR" "MPI-ESM1-2-LR"
## [13] "MPI-ESM1-2-HR"
##
## $suggested_gcms$k14
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC6"
## [13] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k15
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM5-0" "IPSL-CM6A-LR"
## [13] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k16
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k17
## [1] "ACCESS-CM2" "UKESM1-0-LL" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "INM-CM4-8" "INM-CM5-0"
## [13] "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6" "MPI-ESM1-2-HR"
## [17] "MPI-ESM1-2-LR"
##
## $suggested_gcms$k18
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "UKESM1-0-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k19
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR" "FIO-ESM-2-0"
## [9] "GISS-E2-1-G" "GISS-E2-1-H" "UKESM1-0-LL" "INM-CM4-8"
## [13] "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L" "MIROC6"
## [17] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k20
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "UKESM1-0-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k21
## [1] "ACCESS-CM2" "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"
## [5] "CNRM-CM6-1" "CNRM-CM6-1-HR" "EC-Earth3-Veg" "EC-Earth3-Veg-LR"
## [9] "FIO-ESM-2-0" "GISS-E2-1-G" "GISS-E2-1-H" "HadGEM3-GC31-LL"
## [13] "INM-CM4-8" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## [17] "MIROC6" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MRI-ESM2-0"
## [21] "UKESM1-0-LL"
hclust_subset30 <- mc_hclust30$suggested_gcms$k5
tictoc::toc()
## Hierarchical Clustering subset s30: 2231.414 sec elapsed
Kmeans selection
tictoc::tic("K-means Clustering subset s10")
mc_kmeans10 <- montecarlo_gcms(s10,
var_names = c("bio1", "bio12"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "kmeans")
mc_kmeans10
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## 1 2
## "CanESM5-CanOE" "CNRM-ESM2-1"
##
## $suggested_gcms$k3
## 1 2 3
## "MRI-ESM2-0" "CNRM-ESM2-1" "CanESM5-CanOE"
##
## $suggested_gcms$k4
## 1 2 3 4
## "MPI-ESM1-2-HR" "CanESM5-CanOE" "CNRM-ESM2-1" "MRI-ESM2-0"
##
## $suggested_gcms$k5
## 1 2 3 4 5
## "CanESM5-CanOE" "MRI-ESM2-0" "UKESM1-0-LL" "MPI-ESM1-2-HR" "CNRM-CM6-1"
##
## $suggested_gcms$k6
## 1 2 3 4 5
## "INM-CM4-8" "MRI-ESM2-0" "EC-Earth3-Veg" "MPI-ESM1-2-HR" "CanESM5-CanOE"
## 6
## "UKESM1-0-LL"
##
## $suggested_gcms$k7
## 1 2 3 4 5
## "UKESM1-0-LL" "MPI-ESM1-2-HR" "FIO-ESM-2-0" "CanESM5-CanOE" "INM-CM4-8"
## 6 7
## "MRI-ESM2-0" "EC-Earth3-Veg"
##
## $suggested_gcms$k8
## 1 2 3 4 5
## "GISS-E2-1-G" "FIO-ESM-2-0" "MIROC-ES2L" "CanESM5-CanOE" "UKESM1-0-LL"
## 6 7 8
## "EC-Earth3-Veg" "MPI-ESM1-2-HR" "INM-CM4-8"
##
## $suggested_gcms$k9
## 1 2 3 4 5
## "MIROC-ES2L" "UKESM1-0-LL" "CNRM-ESM2-1" "GISS-E2-1-G" "IPSL-CM6A-LR"
## 6 7 8 9
## "MPI-ESM1-2-HR" "CNRM-CM6-1" "CanESM5-CanOE" "FIO-ESM-2-0"
##
## $suggested_gcms$k10
## 1 2 3 4 5
## "UKESM1-0-LL" "GISS-E2-1-H" "FIO-ESM-2-0" "MPI-ESM1-2-HR" "CanESM5-CanOE"
## 6 7 8 9 10
## "MIROC-ES2L" "CNRM-ESM2-1" "IPSL-CM6A-LR" "GISS-E2-1-G" "CNRM-CM6-1"
##
## $suggested_gcms$k11
## 1 2 3 4 5
## "CNRM-CM6-1" "CNRM-ESM2-1" "CMCC-ESM2" "UKESM1-0-LL" "ACCESS-CM2"
## 6 7 8 9 10
## "GISS-E2-1-H" "GISS-E2-1-G" "MPI-ESM1-2-HR" "CanESM5-CanOE" "MIROC-ES2L"
## 11
## "IPSL-CM6A-LR"
##
## $suggested_gcms$k12
## 1 2 3 4 5
## "CanESM5-CanOE" "CNRM-CM6-1" "MPI-ESM1-2-HR" "CMCC-ESM2" "EC-Earth3-Veg"
## 6 7 8 9 10
## "GISS-E2-1-G" "CNRM-CM6-1-HR" "IPSL-CM6A-LR" "UKESM1-0-LL" "ACCESS-CM2"
## 11 12
## "GISS-E2-1-H" "MIROC-ES2L"
##
## $suggested_gcms$k13
## 1 2 3 4 5
## "INM-CM5-0" "EC-Earth3-Veg" "CMCC-ESM2" "MPI-ESM1-2-HR" "GISS-E2-1-H"
## 6 7 8 9 10
## "IPSL-CM6A-LR" "CanESM5-CanOE" "CNRM-CM6-1-HR" "ACCESS-CM2" "MIROC-ES2L"
## 11 12 13
## "UKESM1-0-LL" "CNRM-CM6-1" "GISS-E2-1-G"
##
## $suggested_gcms$k14
## 1 2 3 4 5
## "IPSL-CM6A-LR" "MPI-ESM1-2-HR" "CNRM-CM6-1-HR" "EC-Earth3-Veg" "ACCESS-CM2"
## 6 7 8 9 10
## "CNRM-CM6-1" "GISS-E2-1-H" "CMCC-ESM2" "MPI-ESM1-2-LR" "UKESM1-0-LL"
## 11 12 13 14
## "GISS-E2-1-G" "INM-CM5-0" "CanESM5-CanOE" "MIROC-ES2L"
##
## $suggested_gcms$k15
## 1 2 3 4 5
## "CNRM-CM6-1-HR" "MRI-ESM2-0" "EC-Earth3-Veg" "GISS-E2-1-H" "UKESM1-0-LL"
## 6 7 8 9 10
## "MPI-ESM1-2-LR" "CanESM5-CanOE" "MPI-ESM1-2-HR" "ACCESS-CM2" "CNRM-CM6-1"
## 11 12 13 14 15
## "MIROC-ES2L" "INM-CM5-0" "GISS-E2-1-G" "IPSL-CM6A-LR" "CMCC-ESM2"
##
## $suggested_gcms$k16
## 1 2 3 4 5
## "EC-Earth3-Veg" "MPI-ESM1-2-LR" "INM-CM5-0" "GISS-E2-1-G" "CMCC-ESM2"
## 6 7 8 9 10
## "GISS-E2-1-H" "CNRM-CM6-1" "IPSL-CM6A-LR" "CanESM5-CanOE" "UKESM1-0-LL"
## 11 12 13 14 15
## "CNRM-CM6-1-HR" "MPI-ESM1-2-HR" "MRI-ESM2-0" "MIROC6" "MIROC-ES2L"
## 16
## "ACCESS-CM2"
##
## $suggested_gcms$k17
## 1 2 3 4
## "MIROC-ES2L" "IPSL-CM6A-LR" "CNRM-CM6-1-HR" "GISS-E2-1-G"
## 5 6 7 8
## "MPI-ESM1-2-LR" "ACCESS-ESM1-5" "EC-Earth3-Veg" "INM-CM5-0"
## 9 10 11 12
## "MIROC6" "MPI-ESM1-2-HR" "CMCC-ESM2" "MRI-ESM2-0"
## 13 14 15 16
## "ACCESS-CM2" "CNRM-CM6-1" "HadGEM3-GC31-LL" "GISS-E2-1-H"
## 17
## "CanESM5-CanOE"
##
## $suggested_gcms$k18
## 1 2 3 4
## "CNRM-CM6-1" "GISS-E2-1-G" "INM-CM4-8" "CanESM5-CanOE"
## 5 6 7 8
## "HadGEM3-GC31-LL" "MIROC6" "ACCESS-ESM1-5" "IPSL-CM6A-LR"
## 9 10 11 12
## "INM-CM5-0" "CMCC-ESM2" "CNRM-CM6-1-HR" "MIROC-ES2L"
## 13 14 15 16
## "MRI-ESM2-0" "MPI-ESM1-2-HR" "ACCESS-CM2" "EC-Earth3-Veg"
## 17 18
## "GISS-E2-1-H" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k19
## 1 2 3 4
## "MPI-ESM1-2-HR" "INM-CM5-0" "CNRM-CM6-1" "EC-Earth3-Veg"
## 5 6 7 8
## "HadGEM3-GC31-LL" "MIROC-ES2L" "CMCC-ESM2" "GISS-E2-1-G"
## 9 10 11 12
## "CanESM5-CanOE" "MPI-ESM1-2-LR" "CNRM-CM6-1-HR" "IPSL-CM6A-LR"
## 13 14 15 16
## "GISS-E2-1-H" "ACCESS-ESM1-5" "ACCESS-CM2" "MRI-ESM2-0"
## 17 18 19
## "INM-CM4-8" "MIROC6" "EC-Earth3-Veg-LR"
##
## $suggested_gcms$k20
## 1 2 3 4
## "EC-Earth3-Veg-LR" "MPI-ESM1-2-LR" "ACCESS-ESM1-5" "INM-CM5-0"
## 5 6 7 8
## "MPI-ESM1-2-HR" "ACCESS-CM2" "CNRM-CM6-1-HR" "MIROC6"
## 9 10 11 12
## "FIO-ESM-2-0" "INM-CM4-8" "GISS-E2-1-H" "MRI-ESM2-0"
## 13 14 15 16
## "GISS-E2-1-G" "IPSL-CM6A-LR" "CNRM-CM6-1" "CanESM5-CanOE"
## 17 18 19 20
## "MIROC-ES2L" "HadGEM3-GC31-LL" "CMCC-ESM2" "EC-Earth3-Veg"
##
## $suggested_gcms$k21
## 1 2 3 4
## "IPSL-CM6A-LR" "INM-CM4-8" "MPI-ESM1-2-LR" "ACCESS-ESM1-5"
## 5 6 7 8
## "MIROC6" "MPI-ESM1-2-HR" "CNRM-CM6-1-HR" "EC-Earth3-Veg-LR"
## 9 10 11 12
## "CanESM5-CanOE" "FIO-ESM-2-0" "CNRM-ESM2-1" "INM-CM5-0"
## 13 14 15 16
## "EC-Earth3-Veg" "ACCESS-CM2" "HadGEM3-GC31-LL" "MIROC-ES2L"
## 17 18 19 20
## "CNRM-CM6-1" "MRI-ESM2-0" "GISS-E2-1-G" "CMCC-ESM2"
## 21
## "GISS-E2-1-H"
kmeans_subset10 <- mc_kmeans10$suggested_gcms$k5
tictoc::toc()
## K-means Clustering subset s10: 24.722 sec elapsed
tictoc::tic("K-means Clustering subset s5")
mc_kmeans5 <- montecarlo_gcms(s5,
var_names = c("bio1", "bio12"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "kmeans")
mc_kmeans5
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## 1 2
## "CNRM-ESM2-1" "CanESM5-CanOE"
##
## $suggested_gcms$k3
## 1 2 3
## "CanESM5-CanOE" "CNRM-ESM2-1" "MRI-ESM2-0"
##
## $suggested_gcms$k4
## 1 2 3 4
## "CNRM-ESM2-1" "MPI-ESM1-2-HR" "MRI-ESM2-0" "CanESM5-CanOE"
##
## $suggested_gcms$k5
## 1 2 3 4 5
## "CNRM-CM6-1" "UKESM1-0-LL" "CanESM5-CanOE" "MPI-ESM1-2-HR" "MRI-ESM2-0"
##
## $suggested_gcms$k6
## 1 2 3 4 5
## "MRI-ESM2-0" "CanESM5-CanOE" "INM-CM4-8" "CNRM-CM6-1-HR" "UKESM1-0-LL"
## 6
## "MPI-ESM1-2-HR"
##
## $suggested_gcms$k7
## 1 2 3 4 5
## "CNRM-CM6-1-HR" "FIO-ESM-2-0" "MPI-ESM1-2-HR" "UKESM1-0-LL" "INM-CM4-8"
## 6 7
## "MRI-ESM2-0" "CanESM5-CanOE"
##
## $suggested_gcms$k8
## 1 2 3 4 5
## "IPSL-CM6A-LR" "CanESM5-CanOE" "MPI-ESM1-2-HR" "GISS-E2-1-G" "FIO-ESM-2-0"
## 6 7 8
## "UKESM1-0-LL" "EC-Earth3-Veg" "MIROC-ES2L"
##
## $suggested_gcms$k9
## 1 2 3 4 5
## "CanESM5-CanOE" "CNRM-CM6-1" "GISS-E2-1-G" "IPSL-CM6A-LR" "MIROC-ES2L"
## 6 7 8 9
## "UKESM1-0-LL" "CNRM-ESM2-1" "FIO-ESM-2-0" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k10
## 1 2 3 4 5
## "CNRM-ESM2-1" "IPSL-CM6A-LR" "FIO-ESM-2-0" "CanESM5-CanOE" "CNRM-CM6-1"
## 6 7 8 9 10
## "MIROC-ES2L" "UKESM1-0-LL" "GISS-E2-1-H" "MPI-ESM1-2-HR" "GISS-E2-1-G"
##
## $suggested_gcms$k11
## 1 2 3 4 5
## "CNRM-CM6-1" "CanESM5-CanOE" "MPI-ESM1-2-HR" "MIROC-ES2L" "GISS-E2-1-H"
## 6 7 8 9 10
## "ACCESS-CM2" "UKESM1-0-LL" "GISS-E2-1-G" "CMCC-ESM2" "IPSL-CM6A-LR"
## 11
## "CNRM-ESM2-1"
##
## $suggested_gcms$k12
## 1 2 3 4 5
## "CNRM-CM6-1" "MPI-ESM1-2-HR" "CMCC-ESM2" "CanESM5-CanOE" "MIROC-ES2L"
## 6 7 8 9 10
## "ACCESS-CM2" "CNRM-CM6-1-HR" "GISS-E2-1-H" "UKESM1-0-LL" "IPSL-CM6A-LR"
## 11 12
## "EC-Earth3-Veg" "GISS-E2-1-G"
##
## $suggested_gcms$k13
## 1 2 3 4 5
## "IPSL-CM6A-LR" "MPI-ESM1-2-HR" "CNRM-CM6-1" "ACCESS-CM2" "CNRM-CM6-1-HR"
## 6 7 8 9 10
## "CMCC-ESM2" "EC-Earth3-Veg" "UKESM1-0-LL" "MIROC-ES2L" "INM-CM5-0"
## 11 12 13
## "CanESM5-CanOE" "GISS-E2-1-G" "GISS-E2-1-H"
##
## $suggested_gcms$k14
## 1 2 3 4 5
## "MPI-ESM1-2-LR" "GISS-E2-1-G" "GISS-E2-1-H" "CNRM-CM6-1-HR" "EC-Earth3-Veg"
## 6 7 8 9 10
## "CanESM5-CanOE" "CNRM-CM6-1" "CMCC-ESM2" "INM-CM5-0" "MPI-ESM1-2-HR"
## 11 12 13 14
## "IPSL-CM6A-LR" "ACCESS-CM2" "MIROC-ES2L" "UKESM1-0-LL"
##
## $suggested_gcms$k15
## 1 2 3 4 5
## "CanESM5-CanOE" "GISS-E2-1-G" "CMCC-ESM2" "IPSL-CM6A-LR" "MIROC-ES2L"
## 6 7 8 9 10
## "MPI-ESM1-2-HR" "INM-CM5-0" "GISS-E2-1-H" "ACCESS-CM2" "CNRM-CM6-1"
## 11 12 13 14 15
## "UKESM1-0-LL" "MRI-ESM2-0" "MPI-ESM1-2-LR" "EC-Earth3-Veg" "CNRM-CM6-1-HR"
##
## $suggested_gcms$k16
## 1 2 3 4 5
## "MPI-ESM1-2-LR" "ACCESS-CM2" "CMCC-ESM2" "MPI-ESM1-2-HR" "GISS-E2-1-H"
## 6 7 8 9 10
## "CanESM5-CanOE" "UKESM1-0-LL" "MIROC6" "MRI-ESM2-0" "IPSL-CM6A-LR"
## 11 12 13 14 15
## "GISS-E2-1-G" "CNRM-CM6-1-HR" "INM-CM5-0" "EC-Earth3-Veg" "CNRM-CM6-1"
## 16
## "MIROC-ES2L"
##
## $suggested_gcms$k17
## 1 2 3 4
## "EC-Earth3-Veg" "MPI-ESM1-2-HR" "MIROC-ES2L" "MPI-ESM1-2-LR"
## 5 6 7 8
## "MRI-ESM2-0" "CMCC-ESM2" "MIROC6" "CNRM-CM6-1"
## 9 10 11 12
## "GISS-E2-1-G" "IPSL-CM6A-LR" "GISS-E2-1-H" "ACCESS-ESM1-5"
## 13 14 15 16
## "ACCESS-CM2" "CanESM5-CanOE" "CNRM-CM6-1-HR" "HadGEM3-GC31-LL"
## 17
## "INM-CM5-0"
##
## $suggested_gcms$k18
## 1 2 3 4
## "GISS-E2-1-H" "EC-Earth3-Veg" "CanESM5-CanOE" "IPSL-CM6A-LR"
## 5 6 7 8
## "CMCC-ESM2" "MPI-ESM1-2-LR" "HadGEM3-GC31-LL" "ACCESS-CM2"
## 9 10 11 12
## "ACCESS-ESM1-5" "INM-CM5-0" "CNRM-CM6-1-HR" "MPI-ESM1-2-HR"
## 13 14 15 16
## "MIROC6" "GISS-E2-1-G" "INM-CM4-8" "MRI-ESM2-0"
## 17 18
## "CNRM-CM6-1" "MIROC-ES2L"
##
## $suggested_gcms$k19
## 1 2 3 4
## "MIROC-ES2L" "CanESM5-CanOE" "EC-Earth3-Veg" "MPI-ESM1-2-LR"
## 5 6 7 8
## "MRI-ESM2-0" "CMCC-ESM2" "GISS-E2-1-G" "HadGEM3-GC31-LL"
## 9 10 11 12
## "CNRM-CM6-1" "ACCESS-CM2" "EC-Earth3-Veg-LR" "INM-CM4-8"
## 13 14 15 16
## "MIROC6" "IPSL-CM6A-LR" "ACCESS-ESM1-5" "MPI-ESM1-2-HR"
## 17 18 19
## "CNRM-CM6-1-HR" "INM-CM5-0" "GISS-E2-1-H"
##
## $suggested_gcms$k20
## 1 2 3 4
## "EC-Earth3-Veg" "GISS-E2-1-H" "EC-Earth3-Veg-LR" "ACCESS-ESM1-5"
## 5 6 7 8
## "CMCC-ESM2" "INM-CM5-0" "MPI-ESM1-2-HR" "IPSL-CM6A-LR"
## 9 10 11 12
## "CanESM5-CanOE" "MPI-ESM1-2-LR" "MRI-ESM2-0" "CNRM-CM6-1-HR"
## 13 14 15 16
## "MIROC-ES2L" "INM-CM4-8" "HadGEM3-GC31-LL" "MIROC6"
## 17 18 19 20
## "ACCESS-CM2" "GISS-E2-1-G" "CNRM-CM6-1" "FIO-ESM-2-0"
##
## $suggested_gcms$k21
## 1 2 3 4
## "ACCESS-ESM1-5" "MPI-ESM1-2-LR" "CMCC-ESM2" "INM-CM4-8"
## 5 6 7 8
## "IPSL-CM6A-LR" "INM-CM5-0" "CanESM5-CanOE" "MIROC6"
## 9 10 11 12
## "GISS-E2-1-G" "HadGEM3-GC31-LL" "MPI-ESM1-2-HR" "CNRM-ESM2-1"
## 13 14 15 16
## "MIROC-ES2L" "GISS-E2-1-H" "MRI-ESM2-0" "ACCESS-CM2"
## 17 18 19 20
## "FIO-ESM-2-0" "CNRM-CM6-1" "EC-Earth3-Veg" "CNRM-CM6-1-HR"
## 21
## "EC-Earth3-Veg-LR"
kmeans_subset5 <- mc_kmeans5$suggested_gcms$k5
tictoc::toc()
## K-means Clustering subset s5: 34.355 sec elapsed
tictoc::tic("K-means Clustering subset s25")
mc_kmeans25 <- montecarlo_gcms(s25,
var_names = c("bio1", "bio12"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "kmeans")
mc_kmeans25
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## 1 2
## "CanESM5-CanOE" "CNRM-ESM2-1"
##
## $suggested_gcms$k3
## 1 2 3
## "MRI-ESM2-0" "CanESM5-CanOE" "CNRM-ESM2-1"
##
## $suggested_gcms$k4
## 1 2 3 4
## "CanESM5-CanOE" "MRI-ESM2-0" "MPI-ESM1-2-HR" "CNRM-ESM2-1"
##
## $suggested_gcms$k5
## 1 2 3 4 5
## "MPI-ESM1-2-HR" "CNRM-CM6-1" "CanESM5-CanOE" "MRI-ESM2-0" "UKESM1-0-LL"
##
## $suggested_gcms$k6
## 1 2 3 4 5
## "MPI-ESM1-2-HR" "INM-CM4-8" "CanESM5-CanOE" "MRI-ESM2-0" "CNRM-CM6-1-HR"
## 6
## "UKESM1-0-LL"
##
## $suggested_gcms$k7
## 1 2 3 4 5
## "MRI-ESM2-0" "IPSL-CM6A-LR" "EC-Earth3-Veg" "CanESM5-CanOE" "MPI-ESM1-2-HR"
## 6 7
## "UKESM1-0-LL" "FIO-ESM-2-0"
##
## $suggested_gcms$k8
## 1 2 3 4 5
## "EC-Earth3-Veg" "GISS-E2-1-G" "MPI-ESM1-2-HR" "FIO-ESM-2-0" "MIROC-ES2L"
## 6 7 8
## "CanESM5-CanOE" "IPSL-CM6A-LR" "UKESM1-0-LL"
##
## $suggested_gcms$k9
## 1 2 3 4 5
## "GISS-E2-1-G" "FIO-ESM-2-0" "MIROC-ES2L" "UKESM1-0-LL" "CNRM-CM6-1"
## 6 7 8 9
## "CanESM5-CanOE" "MPI-ESM1-2-HR" "IPSL-CM6A-LR" "CNRM-ESM2-1"
##
## $suggested_gcms$k10
## 1 2 3 4 5
## "CNRM-CM6-1" "GISS-E2-1-G" "GISS-E2-1-H" "IPSL-CM6A-LR" "UKESM1-0-LL"
## 6 7 8 9 10
## "CNRM-ESM2-1" "MIROC-ES2L" "FIO-ESM-2-0" "MPI-ESM1-2-HR" "CanESM5-CanOE"
##
## $suggested_gcms$k11
## 1 2 3 4 5
## "UKESM1-0-LL" "GISS-E2-1-H" "MIROC-ES2L" "IPSL-CM6A-LR" "MPI-ESM1-2-HR"
## 6 7 8 9 10
## "ACCESS-CM2" "CNRM-ESM2-1" "GISS-E2-1-G" "CMCC-ESM2" "CanESM5-CanOE"
## 11
## "CNRM-CM6-1"
##
## $suggested_gcms$k12
## 1 2 3 4 5
## "EC-Earth3-Veg" "UKESM1-0-LL" "CNRM-CM6-1" "MIROC-ES2L" "GISS-E2-1-G"
## 6 7 8 9 10
## "GISS-E2-1-H" "MPI-ESM1-2-HR" "CanESM5-CanOE" "ACCESS-CM2" "IPSL-CM6A-LR"
## 11 12
## "CMCC-ESM2" "CNRM-CM6-1-HR"
##
## $suggested_gcms$k13
## 1 2 3 4 5
## "ACCESS-CM2" "CMCC-ESM2" "CNRM-CM6-1-HR" "UKESM1-0-LL" "CNRM-CM6-1"
## 6 7 8 9 10
## "CanESM5-CanOE" "GISS-E2-1-G" "EC-Earth3-Veg" "MIROC-ES2L" "MPI-ESM1-2-HR"
## 11 12 13
## "GISS-E2-1-H" "IPSL-CM6A-LR" "INM-CM5-0"
##
## $suggested_gcms$k14
## 1 2 3 4 5
## "GISS-E2-1-G" "INM-CM5-0" "IPSL-CM6A-LR" "UKESM1-0-LL" "MIROC-ES2L"
## 6 7 8 9 10
## "CNRM-CM6-1-HR" "CNRM-CM6-1" "MPI-ESM1-2-LR" "EC-Earth3-Veg" "CanESM5-CanOE"
## 11 12 13 14
## "ACCESS-CM2" "CMCC-ESM2" "GISS-E2-1-H" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k15
## 1 2 3 4 5
## "MRI-ESM2-0" "INM-CM5-0" "EC-Earth3-Veg" "UKESM1-0-LL" "MPI-ESM1-2-HR"
## 6 7 8 9 10
## "IPSL-CM6A-LR" "ACCESS-CM2" "CanESM5-CanOE" "CNRM-CM6-1-HR" "GISS-E2-1-H"
## 11 12 13 14 15
## "CMCC-ESM2" "MPI-ESM1-2-LR" "CNRM-CM6-1" "MIROC-ES2L" "GISS-E2-1-G"
##
## $suggested_gcms$k16
## 1 2 3 4 5
## "UKESM1-0-LL" "MPI-ESM1-2-HR" "CanESM5-CanOE" "GISS-E2-1-H" "GISS-E2-1-G"
## 6 7 8 9 10
## "CMCC-ESM2" "MPI-ESM1-2-LR" "ACCESS-CM2" "MRI-ESM2-0" "INM-CM5-0"
## 11 12 13 14 15
## "MIROC-ES2L" "IPSL-CM6A-LR" "CNRM-CM6-1" "CNRM-CM6-1-HR" "MIROC6"
## 16
## "EC-Earth3-Veg"
##
## $suggested_gcms$k17
## 1 2 3 4
## "ACCESS-CM2" "HadGEM3-GC31-LL" "GISS-E2-1-G" "CNRM-CM6-1-HR"
## 5 6 7 8
## "MPI-ESM1-2-HR" "EC-Earth3-Veg" "GISS-E2-1-H" "MIROC6"
## 9 10 11 12
## "CNRM-CM6-1" "MPI-ESM1-2-LR" "ACCESS-ESM1-5" "IPSL-CM6A-LR"
## 13 14 15 16
## "CanESM5-CanOE" "INM-CM5-0" "CMCC-ESM2" "MIROC-ES2L"
## 17
## "MRI-ESM2-0"
##
## $suggested_gcms$k18
## 1 2 3 4
## "MIROC6" "GISS-E2-1-H" "CanESM5-CanOE" "MPI-ESM1-2-HR"
## 5 6 7 8
## "HadGEM3-GC31-LL" "ACCESS-ESM1-5" "CMCC-ESM2" "MPI-ESM1-2-LR"
## 9 10 11 12
## "ACCESS-CM2" "INM-CM5-0" "IPSL-CM6A-LR" "MIROC-ES2L"
## 13 14 15 16
## "EC-Earth3-Veg" "CNRM-CM6-1-HR" "INM-CM4-8" "CNRM-CM6-1"
## 17 18
## "GISS-E2-1-G" "MRI-ESM2-0"
##
## $suggested_gcms$k19
## 1 2 3 4
## "EC-Earth3-Veg-LR" "MIROC6" "INM-CM4-8" "GISS-E2-1-H"
## 5 6 7 8
## "GISS-E2-1-G" "CanESM5-CanOE" "ACCESS-CM2" "MPI-ESM1-2-HR"
## 9 10 11 12
## "ACCESS-ESM1-5" "CNRM-CM6-1" "EC-Earth3-Veg" "MPI-ESM1-2-LR"
## 13 14 15 16
## "CMCC-ESM2" "MRI-ESM2-0" "MIROC-ES2L" "INM-CM5-0"
## 17 18 19
## "CNRM-CM6-1-HR" "IPSL-CM6A-LR" "HadGEM3-GC31-LL"
##
## $suggested_gcms$k20
## 1 2 3 4
## "ACCESS-ESM1-5" "FIO-ESM-2-0" "EC-Earth3-Veg" "INM-CM4-8"
## 5 6 7 8
## "CanESM5-CanOE" "INM-CM5-0" "GISS-E2-1-G" "MPI-ESM1-2-HR"
## 9 10 11 12
## "MPI-ESM1-2-LR" "MIROC-ES2L" "EC-Earth3-Veg-LR" "CNRM-CM6-1-HR"
## 13 14 15 16
## "MIROC6" "HadGEM3-GC31-LL" "CMCC-ESM2" "MRI-ESM2-0"
## 17 18 19 20
## "GISS-E2-1-H" "IPSL-CM6A-LR" "ACCESS-CM2" "CNRM-CM6-1"
##
## $suggested_gcms$k21
## 1 2 3 4
## "ACCESS-ESM1-5" "GISS-E2-1-H" "MIROC6" "CNRM-CM6-1-HR"
## 5 6 7 8
## "GISS-E2-1-G" "ACCESS-CM2" "IPSL-CM6A-LR" "CMCC-ESM2"
## 9 10 11 12
## "INM-CM4-8" "MPI-ESM1-2-LR" "EC-Earth3-Veg-LR" "HadGEM3-GC31-LL"
## 13 14 15 16
## "INM-CM5-0" "MPI-ESM1-2-HR" "EC-Earth3-Veg" "CanESM5-CanOE"
## 17 18 19 20
## "CNRM-CM6-1" "MRI-ESM2-0" "FIO-ESM-2-0" "MIROC-ES2L"
## 21
## "CNRM-ESM2-1"
kmeans_subset25 <- mc_kmeans25$suggested_gcms$k5
tictoc::toc()
## K-means Clustering subset s25: 85.223 sec elapsed
tictoc::tic("K-means Clustering subset s30")
mc_kmeans30 <- montecarlo_gcms(s30,
var_names = c("bio1", "bio12"),
study_area = study_area,
scale = TRUE,
perm = 10000,
dist_method = "euclidean",
clustering_method = "kmeans")
## |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|========================================= |---------|---------|---------|---------|=========================================
mc_kmeans30
## $montecarlo_plot
##
## $suggested_gcms
## $suggested_gcms$k2
## 1 2
## "CanESM5-CanOE" "CNRM-ESM2-1"
##
## $suggested_gcms$k3
## 1 2 3
## "MRI-ESM2-0" "CNRM-ESM2-1" "CanESM5-CanOE"
##
## $suggested_gcms$k4
## 1 2 3 4
## "CNRM-ESM2-1" "MRI-ESM2-0" "MPI-ESM1-2-HR" "CanESM5-CanOE"
##
## $suggested_gcms$k5
## 1 2 3 4 5
## "MRI-ESM2-0" "MPI-ESM1-2-HR" "CNRM-CM6-1" "UKESM1-0-LL" "CanESM5-CanOE"
##
## $suggested_gcms$k6
## 1 2 3 4 5
## "UKESM1-0-LL" "CanESM5-CanOE" "MRI-ESM2-0" "CNRM-CM6-1-HR" "INM-CM4-8"
## 6
## "MPI-ESM1-2-HR"
##
## $suggested_gcms$k7
## 1 2 3 4 5
## "IPSL-CM6A-LR" "MRI-ESM2-0" "EC-Earth3-Veg" "UKESM1-0-LL" "MPI-ESM1-2-HR"
## 6 7
## "FIO-ESM-2-0" "CanESM5-CanOE"
##
## $suggested_gcms$k8
## 1 2 3 4 5
## "MPI-ESM1-2-HR" "IPSL-CM6A-LR" "EC-Earth3-Veg" "GISS-E2-1-G" "FIO-ESM-2-0"
## 6 7 8
## "UKESM1-0-LL" "CanESM5-CanOE" "MIROC-ES2L"
##
## $suggested_gcms$k9
## 1 2 3 4 5
## "GISS-E2-1-G" "UKESM1-0-LL" "CanESM5-CanOE" "MPI-ESM1-2-HR" "CNRM-ESM2-1"
## 6 7 8 9
## "MIROC-ES2L" "IPSL-CM6A-LR" "FIO-ESM-2-0" "CNRM-CM6-1"
##
## $suggested_gcms$k10
## 1 2 3 4 5
## "UKESM1-0-LL" "IPSL-CM6A-LR" "GISS-E2-1-G" "CNRM-ESM2-1" "CNRM-CM6-1"
## 6 7 8 9 10
## "MIROC-ES2L" "GISS-E2-1-H" "FIO-ESM-2-0" "CanESM5-CanOE" "MPI-ESM1-2-HR"
##
## $suggested_gcms$k11
## 1 2 3 4 5
## "UKESM1-0-LL" "MPI-ESM1-2-HR" "CMCC-ESM2" "IPSL-CM6A-LR" "CNRM-ESM2-1"
## 6 7 8 9 10
## "CanESM5-CanOE" "GISS-E2-1-G" "GISS-E2-1-H" "ACCESS-CM2" "CNRM-CM6-1"
## 11
## "MIROC-ES2L"
##
## $suggested_gcms$k12
## 1 2 3 4 5
## "GISS-E2-1-H" "MPI-ESM1-2-HR" "GISS-E2-1-G" "ACCESS-CM2" "EC-Earth3-Veg"
## 6 7 8 9 10
## "MIROC-ES2L" "CNRM-CM6-1" "CMCC-ESM2" "CNRM-CM6-1-HR" "CanESM5-CanOE"
## 11 12
## "IPSL-CM6A-LR" "UKESM1-0-LL"
##
## $suggested_gcms$k13
## 1 2 3 4 5
## "IPSL-CM6A-LR" "MPI-ESM1-2-HR" "CMCC-ESM2" "ACCESS-CM2" "UKESM1-0-LL"
## 6 7 8 9 10
## "MIROC-ES2L" "EC-Earth3-Veg" "CNRM-CM6-1-HR" "GISS-E2-1-G" "CanESM5-CanOE"
## 11 12 13
## "INM-CM5-0" "GISS-E2-1-H" "CNRM-CM6-1"
##
## $suggested_gcms$k14
## 1 2 3 4 5
## "MIROC-ES2L" "IPSL-CM6A-LR" "CNRM-CM6-1" "EC-Earth3-Veg" "UKESM1-0-LL"
## 6 7 8 9 10
## "INM-CM5-0" "ACCESS-CM2" "CNRM-CM6-1-HR" "GISS-E2-1-H" "CanESM5-CanOE"
## 11 12 13 14
## "MPI-ESM1-2-HR" "GISS-E2-1-G" "CMCC-ESM2" "MPI-ESM1-2-LR"
##
## $suggested_gcms$k15
## 1 2 3 4 5
## "IPSL-CM6A-LR" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "GISS-E2-1-H" "GISS-E2-1-G"
## 6 7 8 9 10
## "CMCC-ESM2" "INM-CM5-0" "CNRM-CM6-1" "ACCESS-CM2" "MRI-ESM2-0"
## 11 12 13 14 15
## "CNRM-CM6-1-HR" "CanESM5-CanOE" "MIROC-ES2L" "EC-Earth3-Veg" "UKESM1-0-LL"
##
## $suggested_gcms$k16
## 1 2 3 4 5
## "UKESM1-0-LL" "EC-Earth3-Veg" "MIROC-ES2L" "CNRM-CM6-1-HR" "CNRM-CM6-1"
## 6 7 8 9 10
## "GISS-E2-1-G" "INM-CM5-0" "MPI-ESM1-2-LR" "ACCESS-CM2" "IPSL-CM6A-LR"
## 11 12 13 14 15
## "MPI-ESM1-2-HR" "GISS-E2-1-H" "MIROC6" "CanESM5-CanOE" "CMCC-ESM2"
## 16
## "MRI-ESM2-0"
##
## $suggested_gcms$k17
## 1 2 3 4
## "ACCESS-ESM1-5" "CNRM-CM6-1-HR" "CMCC-ESM2" "ACCESS-CM2"
## 5 6 7 8
## "GISS-E2-1-H" "MIROC-ES2L" "CNRM-CM6-1" "CanESM5-CanOE"
## 9 10 11 12
## "IPSL-CM6A-LR" "GISS-E2-1-G" "MRI-ESM2-0" "EC-Earth3-Veg"
## 13 14 15 16
## "MPI-ESM1-2-HR" "MIROC6" "MPI-ESM1-2-LR" "HadGEM3-GC31-LL"
## 17
## "INM-CM5-0"
##
## $suggested_gcms$k18
## 1 2 3 4
## "EC-Earth3-Veg" "CNRM-CM6-1-HR" "MPI-ESM1-2-HR" "MRI-ESM2-0"
## 5 6 7 8
## "ACCESS-ESM1-5" "CNRM-CM6-1" "MIROC6" "GISS-E2-1-H"
## 9 10 11 12
## "MPI-ESM1-2-LR" "CMCC-ESM2" "CanESM5-CanOE" "MIROC-ES2L"
## 13 14 15 16
## "HadGEM3-GC31-LL" "INM-CM5-0" "ACCESS-CM2" "IPSL-CM6A-LR"
## 17 18
## "GISS-E2-1-G" "INM-CM4-8"
##
## $suggested_gcms$k19
## 1 2 3 4
## "IPSL-CM6A-LR" "GISS-E2-1-G" "ACCESS-CM2" "ACCESS-ESM1-5"
## 5 6 7 8
## "MIROC6" "INM-CM5-0" "MPI-ESM1-2-HR" "EC-Earth3-Veg-LR"
## 9 10 11 12
## "CanESM5-CanOE" "MIROC-ES2L" "CNRM-CM6-1-HR" "CNRM-CM6-1"
## 13 14 15 16
## "INM-CM4-8" "HadGEM3-GC31-LL" "CMCC-ESM2" "EC-Earth3-Veg"
## 17 18 19
## "GISS-E2-1-H" "MPI-ESM1-2-LR" "MRI-ESM2-0"
##
## $suggested_gcms$k20
## 1 2 3 4
## "IPSL-CM6A-LR" "FIO-ESM-2-0" "ACCESS-CM2" "INM-CM5-0"
## 5 6 7 8
## "CNRM-CM6-1" "GISS-E2-1-H" "MRI-ESM2-0" "MPI-ESM1-2-HR"
## 9 10 11 12
## "HadGEM3-GC31-LL" "MPI-ESM1-2-LR" "CMCC-ESM2" "EC-Earth3-Veg"
## 13 14 15 16
## "EC-Earth3-Veg-LR" "ACCESS-ESM1-5" "CanESM5-CanOE" "MIROC6"
## 17 18 19 20
## "INM-CM4-8" "MIROC-ES2L" "CNRM-CM6-1-HR" "GISS-E2-1-G"
##
## $suggested_gcms$k21
## 1 2 3 4
## "CNRM-CM6-1" "HadGEM3-GC31-LL" "MPI-ESM1-2-HR" "MIROC6"
## 5 6 7 8
## "FIO-ESM-2-0" "CanESM5-CanOE" "CNRM-CM6-1-HR" "CNRM-ESM2-1"
## 9 10 11 12
## "IPSL-CM6A-LR" "GISS-E2-1-G" "EC-Earth3-Veg-LR" "ACCESS-CM2"
## 13 14 15 16
## "MIROC-ES2L" "MPI-ESM1-2-LR" "INM-CM5-0" "ACCESS-ESM1-5"
## 17 18 19 20
## "INM-CM4-8" "CMCC-ESM2" "MRI-ESM2-0" "GISS-E2-1-H"
## 21
## "EC-Earth3-Veg"
kmeans_subset30 <- mc_kmeans30$suggested_gcms$k5
tictoc::toc()
## K-means Clustering subset s30: 2232.994 sec elapsed
Closestdist selection
tictoc::tic("Closestdist subset s10")
mc_closestdist10 <- closestdist_gcms(s10,
var_names = c("bio1", "bio12"),
study_area = study_area,
method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist10
## $suggested_gcms
## [1] "CNRM-CM6-1" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "MIROC-ES2L"
## [5] "MIROC6" "INM-CM5-0"
##
## $best_mean_diff
## [1] 0.0008346833
##
## $global_mean
## [1] 38.9711
closestdist_subset10 <- mc_closestdist10$suggested_gcms
tictoc::toc()
## Closestdist subset s10: 2.935 sec elapsed
tictoc::tic("Closestdist subset s5")
mc_closestdist5 <- closestdist_gcms(s5,
var_names = c("bio1", "bio12"),
study_area = study_area,
method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist5
## $suggested_gcms
## [1] "FIO-ESM-2-0" "MRI-ESM2-0" "IPSL-CM6A-LR" "GISS-E2-1-H"
##
## $best_mean_diff
## [1] 0.002049127
##
## $global_mean
## [1] 77.77632
closestdist_subset5 <- mc_closestdist5$suggested_gcms
tictoc::toc()
## Closestdist subset s5: 8.157 sec elapsed
tictoc::tic("Closestdist subset s25")
mc_closestdist25 <- closestdist_gcms(s25,
var_names = c("bio1", "bio12"),
study_area = study_area,
method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist25
## $suggested_gcms
## [1] "IPSL-CM6A-LR" "MPI-ESM1-2-HR" "MPI-ESM1-2-LR" "INM-CM5-0"
## [5] "MIROC-ES2L" "MIROC6" "CMCC-ESM2" "ACCESS-ESM1-5"
## [9] "CNRM-CM6-1"
##
## $best_mean_diff
## [1] 0.0004073579
##
## $global_mean
## [1] 155.428
closestdist_subset25 <- mc_closestdist25$suggested_gcms
tictoc::toc()
## Closestdist subset s25: 31.58 sec elapsed
tictoc::tic("Closestdist subset s30")
mc_closestdist30 <- closestdist_gcms(s30,
var_names = c("bio1", "bio12"),
study_area = study_area,
method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist30
## $suggested_gcms
## [1] "CanESM5-CanOE" "GISS-E2-1-H" "INM-CM4-8" "CNRM-CM6-1"
## [5] "IPSL-CM6A-LR" "EC-Earth3-Veg" "MPI-ESM1-2-LR" "ACCESS-ESM1-5"
##
## $best_mean_diff
## [1] 0.0212276
##
## $global_mean
## [1] 774.4607
closestdist_subset30 <- mc_closestdist30$suggested_gcms
tictoc::toc()
## Closestdist subset s30: 852.672 sec elapsed
Closestdist selection with fixed k
tictoc::tic("Closestdist3 subset s10")
mc_closestdist310 <- closestdist_gcms(s10,
var_names = c("bio1", "bio12"),
study_area = study_area,
method = "euclidean",
k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist310
## $suggested_gcms
## [1] "ACCESS-ESM1-5" "CNRM-CM6-1" "FIO-ESM-2-0"
##
## $best_mean_diff
## [1] 0.003674818
##
## $global_mean
## [1] 38.9711
closestdist3_subset10 <- mc_closestdist310$suggested_gcms
tictoc::toc()
## Closestdist3 subset s10: 3.013 sec elapsed
tictoc::tic("Closestdist3 subset s5")
mc_closestdist35 <- closestdist_gcms(s5,
var_names = c("bio1", "bio12"),
study_area = study_area,
method = "euclidean",
k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist35
## $suggested_gcms
## [1] "CMCC-ESM2" "CNRM-CM6-1" "EC-Earth3-Veg-LR"
##
## $best_mean_diff
## [1] 0.01299014
##
## $global_mean
## [1] 77.77632
closestdist3_subset5 <- mc_closestdist35$suggested_gcms
tictoc::toc()
## Closestdist3 subset s5: 8.655 sec elapsed
tictoc::tic("Closestdist3 subset s25")
mc_closestdist325 <- closestdist_gcms(s25,
var_names = c("bio1", "bio12"),
study_area = study_area,
method = "euclidean",
k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist325
## $suggested_gcms
## [1] "CNRM-CM6-1" "FIO-ESM-2-0" "MIROC-ES2L"
##
## $best_mean_diff
## [1] 0.1357029
##
## $global_mean
## [1] 155.428
closestdist3_subset25 <- mc_closestdist325$suggested_gcms
tictoc::toc()
## Closestdist3 subset s25: 30.279 sec elapsed
tictoc::tic("Closestdist3 subset s30")
mc_closestdist330 <- closestdist_gcms(s30,
var_names = c("bio1", "bio12"),
study_area = study_area,
method = "euclidean",
k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist330
## $suggested_gcms
## [1] "FIO-ESM-2-0" "INM-CM5-0" "IPSL-CM6A-LR"
##
## $best_mean_diff
## [1] 0.2348406
##
## $global_mean
## [1] 774.4607
closestdist3_subset30 <- mc_closestdist330$suggested_gcms
tictoc::toc()
## Closestdist3 subset s30: 841.433 sec elapsed
Results
Contrary to our expectations, the change in resolution affected the outputs in every algorithm implemented. The only algorithm with a more stable result was the Kmeans Clustering.
table(c(hclust_subset10, hclust_subset5, hclust_subset25, hclust_subset30))
##
## ACCESS-CM2 ACCESS-ESM1-5 CanESM5-CanOE CMCC-ESM2
## 2 1 4 1
## CNRM-ESM2-1 EC-Earth3-Veg-LR FIO-ESM-2-0 MPI-ESM1-2-HR
## 1 3 2 4
## UKESM1-0-LL
## 2
table(c(kmeans_subset10, kmeans_subset5, kmeans_subset25, kmeans_subset30))
##
## CanESM5-CanOE CNRM-CM6-1 MPI-ESM1-2-HR MRI-ESM2-0 UKESM1-0-LL
## 4 4 4 4 4
table(c(closestdist_subset10, closestdist_subset5, closestdist_subset25, closestdist_subset30))
##
## ACCESS-ESM1-5 CanESM5-CanOE CMCC-ESM2 CNRM-CM6-1 EC-Earth3-Veg
## 2 1 1 3 1
## FIO-ESM-2-0 GISS-E2-1-H INM-CM4-8 INM-CM5-0 IPSL-CM6A-LR
## 1 2 1 2 3
## MIROC-ES2L MIROC6 MPI-ESM1-2-HR MPI-ESM1-2-LR MRI-ESM2-0
## 2 2 2 3 1
table(c(closestdist3_subset10, closestdist3_subset5, closestdist3_subset25, closestdist3_subset30))
##
## ACCESS-ESM1-5 CMCC-ESM2 CNRM-CM6-1 EC-Earth3-Veg-LR
## 1 1 3 1
## FIO-ESM-2-0 INM-CM5-0 IPSL-CM6A-LR MIROC-ES2L
## 3 1 1 1