Skip to contents
incresing_area.knit

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 variables, allowing better comparison. Here, we have already downloaded GCMs data.

This Rmarkdown will apply different algorithms implemented in chooseGCM in an increasing area. The aim is to understand from which point the GCM selection starts to change. For that, we will use Araucaria angustifolia records and will create a buffer from increassing size.

# 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

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)) {
  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.366 sec elapsed

Species Data

For this demonstration, we will use Araucaria angustifolia, the brazilian pine, as a study case. This flagship species is widely modeled and know, and 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 10 buffers from growing size, each buffer 1 degree-wide bigger.

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)

buffer50 <- 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 = 50000) |> 
  sf::st_union()
buffer100 <- 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 = 100000) |> 
  sf::st_union()
buffer150 <- 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 = 150000) |> 
  sf::st_union()
buffer200 <- 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 = 200000) |> 
  sf::st_union()
buffer250 <- 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 = 250000) |> 
  sf::st_union()
buffer300 <- 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 = 300000) |> 
  sf::st_union()
buffer350 <- 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 = 350000) |> 
  sf::st_union()
buffer400 <- 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 = 400000) |> 
  sf::st_union()
buffer450 <- 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 = 450000) |> 
  sf::st_union()
buffer500 <- 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()
plot(buffer50, axes=T)

Applying algorithms

First we will set a seed to standardize randomic outputs.

set.seed(1)

Now we will perform the Monte Carlo analysis to each type of algorithm and to different sets of variables.

Hierarchical Clustering selection

tictoc::tic("Hierarchical Clustering 50")
mc_hclust_50 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer50, 
                             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_hclust_50
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
## [1] "CMCC-ESM2"     "MPI-ESM1-2-LR"
## 
## $suggested_gcms$k3
## [1] "CMCC-ESM2"     "IPSL-CM6A-LR"  "MPI-ESM1-2-LR"
## 
## $suggested_gcms$k4
## [1] "CMCC-ESM2"     "IPSL-CM6A-LR"  "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k5
## [1] "CMCC-ESM2"     "IPSL-CM6A-LR"  "MPI-ESM1-2-LR" "FIO-ESM-2-0"  
## [5] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k6
## [1] "CMCC-ESM2"       "HadGEM3-GC31-LL" "IPSL-CM6A-LR"    "MPI-ESM1-2-LR"  
## [5] "FIO-ESM-2-0"     "MPI-ESM1-2-HR"  
## 
## $suggested_gcms$k7
## [1] "CMCC-ESM2"       "HadGEM3-GC31-LL" "CanESM5-CanOE"   "MPI-ESM1-2-LR"  
## [5] "FIO-ESM-2-0"     "IPSL-CM6A-LR"    "MPI-ESM1-2-HR"  
## 
## $suggested_gcms$k8
## [1] "CMCC-ESM2"       "HadGEM3-GC31-LL" "CanESM5-CanOE"   "MPI-ESM1-2-LR"  
## [5] "CNRM-ESM2-1"     "FIO-ESM-2-0"     "IPSL-CM6A-LR"    "MPI-ESM1-2-HR"  
## 
## $suggested_gcms$k9
## [1] "CMCC-ESM2"       "HadGEM3-GC31-LL" "CanESM5-CanOE"   "MPI-ESM1-2-LR"  
## [5] "CNRM-ESM2-1"     "FIO-ESM-2-0"     "GISS-E2-1-H"     "IPSL-CM6A-LR"   
## [9] "MPI-ESM1-2-HR"  
## 
## $suggested_gcms$k10
##  [1] "ACCESS-CM2"      "HadGEM3-GC31-LL" "CanESM5-CanOE"   "CMCC-ESM2"      
##  [5] "MPI-ESM1-2-LR"   "CNRM-ESM2-1"     "FIO-ESM-2-0"     "GISS-E2-1-H"    
##  [9] "IPSL-CM6A-LR"    "MPI-ESM1-2-HR"  
## 
## $suggested_gcms$k11
##  [1] "ACCESS-CM2"      "HadGEM3-GC31-LL" "CanESM5-CanOE"   "CMCC-ESM2"      
##  [5] "CNRM-CM6-1"      "CNRM-ESM2-1"     "FIO-ESM-2-0"     "GISS-E2-1-H"    
##  [9] "IPSL-CM6A-LR"    "MPI-ESM1-2-LR"   "MPI-ESM1-2-HR"  
## 
## $suggested_gcms$k12
##  [1] "ACCESS-CM2"      "HadGEM3-GC31-LL" "CanESM5-CanOE"   "CMCC-ESM2"      
##  [5] "CNRM-CM6-1"      "CNRM-ESM2-1"     "FIO-ESM-2-0"     "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"     "MPI-ESM1-2-LR"   
## [13] "MIROC6"           "MPI-ESM1-2-HR"   
## 
## $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] "MPI-ESM1-2-LR"    "MIROC6"           "MPI-ESM1-2-HR"   
## 
## $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"     "MPI-ESM1-2-LR"    "MIROC6"           "MPI-ESM1-2-HR"   
## 
## $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"    "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"   
## 
## $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_50 <- mc_hclust_50$suggested_gcms$k3
tictoc::toc()
## Hierarchical Clustering 50: 12.179 sec elapsed
tictoc::tic("Hierarchical Clustering 100")
mc_hclust_100 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer100, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "hclust")
mc_hclust_100
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
## [1] "MRI-ESM2-0"    "CNRM-CM6-1-HR"
## 
## $suggested_gcms$k3
## [1] "MRI-ESM2-0"    "CNRM-CM6-1-HR" "CanESM5-CanOE"
## 
## $suggested_gcms$k4
## [1] "MRI-ESM2-0"    "CNRM-CM6-1-HR" "CanESM5-CanOE" "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k5
## [1] "MRI-ESM2-0"    "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1-HR"
## [5] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k6
## [1] "MRI-ESM2-0"    "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1-HR"
## [5] "GISS-E2-1-H"   "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k7
## [1] "MRI-ESM2-0"    "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1-HR"
## [5] "GISS-E2-1-H"   "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k8
## [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1-HR"
## [5] "MRI-ESM2-0"    "GISS-E2-1-H"   "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k9
## [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1-HR"
## [5] "MRI-ESM2-0"    "GISS-E2-1-H"   "IPSL-CM6A-LR"  "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-HR" "MRI-ESM2-0"    "GISS-E2-1-H"   "IPSL-CM6A-LR" 
##  [9] "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k11
##  [1] "ACCESS-CM2"       "UKESM1-0-LL"      "CanESM5-CanOE"    "CMCC-ESM2"       
##  [5] "EC-Earth3-Veg-LR" "CNRM-CM6-1-HR"    "MRI-ESM2-0"       "GISS-E2-1-H"     
##  [9] "IPSL-CM6A-LR"     "MPI-ESM1-2-LR"    "MPI-ESM1-2-HR"   
## 
## $suggested_gcms$k12
##  [1] "ACCESS-CM2"       "UKESM1-0-LL"      "CanESM5-CanOE"    "CMCC-ESM2"       
##  [5] "EC-Earth3-Veg-LR" "CNRM-CM6-1-HR"    "MRI-ESM2-0"       "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" "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"       "UKESM1-0-LL"      "CanESM5-CanOE"    "CMCC-ESM2"       
##  [5] "CNRM-CM6-1"       "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] "MIROC6"           "MPI-ESM1-2-HR"   
## 
## $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" "MRI-ESM2-0"      
##  [9] "GISS-E2-1-H"      "INM-CM4-8"        "INM-CM5-0"        "IPSL-CM6A-LR"    
## [13] "MPI-ESM1-2-LR"    "MIROC6"           "MPI-ESM1-2-HR"   
## 
## $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" "MRI-ESM2-0"      
##  [9] "GISS-E2-1-G"      "GISS-E2-1-H"      "INM-CM4-8"        "INM-CM5-0"       
## [13] "IPSL-CM6A-LR"     "MPI-ESM1-2-LR"    "MIROC6"           "MPI-ESM1-2-HR"   
## 
## $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" "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"       "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"    "MRI-ESM2-0"      
## 
## $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_100 <- mc_hclust_100$suggested_gcms$k3
tictoc::toc()
## Hierarchical Clustering 100: 12.606 sec elapsed
tictoc::tic("Hierarchical Clustering 150")
mc_hclust_150 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer150, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "hclust")
mc_hclust_150
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
## [1] "MIROC6"        "CanESM5-CanOE"
## 
## $suggested_gcms$k3
## [1] "MIROC6"        "CanESM5-CanOE" "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k4
## [1] "UKESM1-0-LL"   "CanESM5-CanOE" "MIROC6"        "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k5
## [1] "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1-HR" "MIROC6"       
## [5] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k6
## [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1-HR"
## [5] "MIROC6"        "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k7
## [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1-HR"
## [5] "GISS-E2-1-H"   "MIROC6"        "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k8
## [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1-HR"
## [5] "GISS-E2-1-H"   "MIROC6"        "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k9
## [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1-HR"
## [5] "GISS-E2-1-H"   "MIROC6"        "IPSL-CM6A-LR"  "MIROC-ES2L"   
## [9] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k10
##  [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "EC-Earth3-Veg"
##  [5] "CNRM-CM6-1-HR" "GISS-E2-1-H"   "MIROC6"        "IPSL-CM6A-LR" 
##  [9] "MIROC-ES2L"    "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k11
##  [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "EC-Earth3-Veg" "CNRM-CM6-1-HR" "GISS-E2-1-H"   "MIROC6"       
##  [9] "IPSL-CM6A-LR"  "MIROC-ES2L"    "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" "GISS-E2-1-H"  
##  [9] "MIROC6"        "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-CM6-1-HR" "EC-Earth3-Veg" "GISS-E2-1-H"  
##  [9] "INM-CM5-0"     "IPSL-CM6A-LR"  "MIROC-ES2L"    "MIROC6"       
## [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" "FIO-ESM-2-0"  
##  [9] "GISS-E2-1-H"   "INM-CM5-0"     "IPSL-CM6A-LR"  "MIROC-ES2L"   
## [13] "MIROC6"        "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k15
##  [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "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"    "MIROC6"        "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k16
##  [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "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"
## 
## $suggested_gcms$k17
##  [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "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"    "UKESM1-0-LL"   "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "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" "MRI-ESM2-0"   
## 
## $suggested_gcms$k19
##  [1] "ACCESS-CM2"       "UKESM1-0-LL"      "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"      "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"       "UKESM1-0-LL"      "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_150 <- mc_hclust_150$suggested_gcms$k3
tictoc::toc()
## Hierarchical Clustering 150: 11.605 sec elapsed
tictoc::tic("Hierarchical Clustering 200")
mc_hclust_200 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer200, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "hclust")
mc_hclust_200
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
## [1] "CNRM-CM6-1"   "IPSL-CM6A-LR"
## 
## $suggested_gcms$k3
## [1] "CNRM-CM6-1"    "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k4
## [1] "MPI-ESM1-2-LR" "IPSL-CM6A-LR"  "CNRM-CM6-1"    "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k5
## [1] "MPI-ESM1-2-LR" "IPSL-CM6A-LR"  "CNRM-CM6-1"    "GISS-E2-1-G"  
## [5] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k6
## [1] "FIO-ESM-2-0"   "MPI-ESM1-2-LR" "IPSL-CM6A-LR"  "CNRM-CM6-1"   
## [5] "GISS-E2-1-G"   "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k7
## [1] "FIO-ESM-2-0"   "UKESM1-0-LL"   "IPSL-CM6A-LR"  "CNRM-CM6-1"   
## [5] "GISS-E2-1-G"   "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k8
## [1] "FIO-ESM-2-0"   "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1"   
## [5] "GISS-E2-1-G"   "MPI-ESM1-2-LR" "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k9
## [1] "FIO-ESM-2-0"   "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1"   
## [5] "GISS-E2-1-G"   "MRI-ESM2-0"    "IPSL-CM6A-LR"  "MPI-ESM1-2-LR"
## [9] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k10
##  [1] "FIO-ESM-2-0"   "UKESM1-0-LL"   "CanESM5-CanOE" "CNRM-CM6-1"   
##  [5] "CNRM-CM6-1-HR" "GISS-E2-1-G"   "MRI-ESM2-0"    "IPSL-CM6A-LR" 
##  [9] "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k11
##  [1] "FIO-ESM-2-0"   "UKESM1-0-LL"   "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "GISS-E2-1-G"   "MRI-ESM2-0"   
##  [9] "IPSL-CM6A-LR"  "MPI-ESM1-2-LR" "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k12
##  [1] "FIO-ESM-2-0"      "UKESM1-0-LL"      "CanESM5-CanOE"    "CMCC-ESM2"       
##  [5] "CNRM-CM6-1"       "CNRM-CM6-1-HR"    "EC-Earth3-Veg-LR" "GISS-E2-1-G"     
##  [9] "MRI-ESM2-0"       "IPSL-CM6A-LR"     "MPI-ESM1-2-LR"    "MPI-ESM1-2-HR"   
## 
## $suggested_gcms$k13
##  [1] "FIO-ESM-2-0"      "UKESM1-0-LL"      "CanESM5-CanOE"    "CMCC-ESM2"       
##  [5] "CNRM-CM6-1"       "CNRM-CM6-1-HR"    "EC-Earth3-Veg-LR" "GISS-E2-1-G"     
##  [9] "INM-CM5-0"        "IPSL-CM6A-LR"     "MPI-ESM1-2-LR"    "MRI-ESM2-0"      
## [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-G"      "INM-CM5-0"        "IPSL-CM6A-LR"     "MPI-ESM1-2-LR"   
## [13] "MRI-ESM2-0"       "MPI-ESM1-2-HR"   
## 
## $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] "MPI-ESM1-2-LR"    "MRI-ESM2-0"       "MPI-ESM1-2-HR"   
## 
## $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"     "MPI-ESM1-2-LR"    "MRI-ESM2-0"       "MPI-ESM1-2-HR"   
## 
## $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"       "MRI-ESM2-0"       "MPI-ESM1-2-HR"   
## [17] "MPI-ESM1-2-LR"   
## 
## $suggested_gcms$k18
##  [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"    "MRI-ESM2-0"      
## 
## $suggested_gcms$k19
##  [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"      "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"       "UKESM1-0-LL"      "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_200 <- mc_hclust_200$suggested_gcms$k3
tictoc::toc()
## Hierarchical Clustering 200: 12.561 sec elapsed
tictoc::tic("Hierarchical Clustering 250")
mc_hclust_250 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer250, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "hclust")
mc_hclust_250
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
## [1] "CNRM-CM6-1"    "CanESM5-CanOE"
## 
## $suggested_gcms$k3
## [1] "CNRM-CM6-1"    "CanESM5-CanOE" "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k4
## [1] "ACCESS-CM2"    "CNRM-CM6-1"    "CanESM5-CanOE" "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k5
## [1] "ACCESS-CM2"    "MIROC-ES2L"    "CanESM5-CanOE" "CNRM-CM6-1"   
## [5] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k6
## [1] "ACCESS-CM2"    "MIROC-ES2L"    "CanESM5-CanOE" "CNRM-CM6-1"   
## [5] "GISS-E2-1-G"   "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k7
## [1] "ACCESS-CM2"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CNRM-CM6-1"   
## [5] "GISS-E2-1-G"   "MIROC-ES2L"    "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k8
## [1] "ACCESS-CM2"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CNRM-CM6-1"   
## [5] "GISS-E2-1-G"   "MIROC-ES2L"    "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k9
## [1] "ACCESS-CM2"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CNRM-CM6-1"   
## [5] "CNRM-CM6-1-HR" "GISS-E2-1-G"   "MIROC-ES2L"    "IPSL-CM6A-LR" 
## [9] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k10
##  [1] "ACCESS-CM2"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "GISS-E2-1-G"   "MIROC-ES2L"   
##  [9] "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k11
##  [1] "ACCESS-CM2"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "EC-Earth3-Veg" "GISS-E2-1-G"  
##  [9] "MIROC-ES2L"    "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k12
##  [1] "ACCESS-CM2"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "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"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "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"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "EC-Earth3-Veg" "FIO-ESM-2-0"  
##  [9] "GISS-E2-1-G"   "INM-CM5-0"     "IPSL-CM6A-LR"  "MIROC-ES2L"   
## [13] "MIROC6"        "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k15
##  [1] "ACCESS-CM2"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "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"    "MIROC6"        "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k16
##  [1] "ACCESS-CM2"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "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"
## 
## $suggested_gcms$k17
##  [1] "ACCESS-CM2"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "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-CM6-1-HR" "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" "MRI-ESM2-0"   
## 
## $suggested_gcms$k19
##  [1] "ACCESS-CM2"      "ACCESS-ESM1-5"   "CanESM5-CanOE"   "CMCC-ESM2"      
##  [5] "CNRM-CM6-1"      "CNRM-CM6-1-HR"   "EC-Earth3-Veg"   "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_250 <- mc_hclust_250$suggested_gcms$k3
tictoc::toc()
## Hierarchical Clustering 250: 11.8 sec elapsed
tictoc::tic("Hierarchical Clustering 300")
mc_hclust_300 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer300, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "hclust")
mc_hclust_300
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
## [1] "MRI-ESM2-0"  "UKESM1-0-LL"
## 
## $suggested_gcms$k3
## [1] "MRI-ESM2-0"    "UKESM1-0-LL"   "CanESM5-CanOE"
## 
## $suggested_gcms$k4
## [1] "MRI-ESM2-0"    "UKESM1-0-LL"   "CanESM5-CanOE" "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k5
## [1] "MRI-ESM2-0"    "UKESM1-0-LL"   "CanESM5-CanOE" "IPSL-CM6A-LR" 
## [5] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k6
## [1] "MRI-ESM2-0"    "UKESM1-0-LL"   "CanESM5-CanOE" "IPSL-CM6A-LR" 
## [5] "GISS-E2-1-G"   "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k7
## [1] "MRI-ESM2-0"    "UKESM1-0-LL"   "CanESM5-CanOE" "IPSL-CM6A-LR" 
## [5] "GISS-E2-1-G"   "MIROC6"        "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k8
## [1] "MRI-ESM2-0"    "UKESM1-0-LL"   "CanESM5-CanOE" "EC-Earth3-Veg"
## [5] "GISS-E2-1-G"   "MIROC6"        "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k9
## [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "MRI-ESM2-0"   
## [5] "EC-Earth3-Veg" "GISS-E2-1-G"   "MIROC6"        "IPSL-CM6A-LR" 
## [9] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k10
##  [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "MRI-ESM2-0"   
##  [5] "EC-Earth3-Veg" "CNRM-ESM2-1"   "GISS-E2-1-G"   "MIROC6"       
##  [9] "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k11
##  [1] "ACCESS-CM2"    "UKESM1-0-LL"   "CanESM5-CanOE" "MRI-ESM2-0"   
##  [5] "CNRM-CM6-1"    "CNRM-ESM2-1"   "EC-Earth3-Veg" "GISS-E2-1-G"  
##  [9] "MIROC6"        "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-ESM2-1"   "EC-Earth3-Veg" "MRI-ESM2-0"   
##  [9] "GISS-E2-1-G"   "MIROC6"        "IPSL-CM6A-LR"  "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" "MRI-ESM2-0"   
##  [9] "GISS-E2-1-G"   "INM-CM5-0"     "IPSL-CM6A-LR"  "MIROC6"       
## [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" "MRI-ESM2-0"   
##  [9] "GISS-E2-1-G"   "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-ESM2-1"   "EC-Earth3-Veg" "MRI-ESM2-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-ESM2-1"   "EC-Earth3-Veg" "MRI-ESM2-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-ESM2-1"   "EC-Earth3-Veg" "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"    "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" "MRI-ESM2-0"   
## 
## $suggested_gcms$k19
##  [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"     "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"       "UKESM1-0-LL"      "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_300 <- mc_hclust_300$suggested_gcms$k3
tictoc::toc()
## Hierarchical Clustering 300: 12.689 sec elapsed
tictoc::tic("Hierarchical Clustering 350")
mc_hclust_350 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer350, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "hclust")
mc_hclust_350
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
## [1] "ACCESS-ESM1-5" "CNRM-CM6-1-HR"
## 
## $suggested_gcms$k3
## [1] "ACCESS-ESM1-5" "CNRM-CM6-1-HR" "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k4
## [1] "ACCESS-ESM1-5" "CanESM5-CanOE" "CNRM-CM6-1-HR" "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k5
## [1] "MRI-ESM2-0"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CNRM-CM6-1-HR"
## [5] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k6
## [1] "MRI-ESM2-0"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CNRM-CM6-1-HR"
## [5] "GISS-E2-1-G"   "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k7
## [1] "MRI-ESM2-0"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CNRM-CM6-1"   
## [5] "CNRM-CM6-1-HR" "GISS-E2-1-G"   "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k8
## [1] "MRI-ESM2-0"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CNRM-CM6-1"   
## [5] "CNRM-CM6-1-HR" "GISS-E2-1-G"   "INM-CM5-0"     "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k9
## [1] "MRI-ESM2-0"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CNRM-CM6-1"   
## [5] "CNRM-CM6-1-HR" "EC-Earth3-Veg" "GISS-E2-1-G"   "INM-CM5-0"    
## [9] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k10
##  [1] "MRI-ESM2-0"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "EC-Earth3-Veg" "GISS-E2-1-G"  
##  [9] "INM-CM5-0"     "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k11
##  [1] "MRI-ESM2-0"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "EC-Earth3-Veg" "GISS-E2-1-G"  
##  [9] "INM-CM5-0"     "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k12
##  [1] "MRI-ESM2-0"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "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"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "EC-Earth3-Veg" "MRI-ESM2-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"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "EC-Earth3-Veg" "MRI-ESM2-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"    "ACCESS-ESM1-5" "CanESM5-CanOE" "CMCC-ESM2"    
##  [5] "CNRM-CM6-1"    "CNRM-CM6-1-HR" "EC-Earth3-Veg" "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" "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" "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" "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" "MRI-ESM2-0"   
## 
## $suggested_gcms$k19
##  [1] "ACCESS-CM2"      "ACCESS-ESM1-5"   "CanESM5-CanOE"   "CMCC-ESM2"      
##  [5] "CNRM-CM6-1"      "CNRM-CM6-1-HR"   "EC-Earth3-Veg"   "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_350 <- mc_hclust_350$suggested_gcms$k3
tictoc::toc()
## Hierarchical Clustering 350: 12.966 sec elapsed
tictoc::tic("Hierarchical Clustering 400")
mc_hclust_400 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer400, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "hclust")
mc_hclust_400
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
## [1] "MRI-ESM2-0"   "IPSL-CM6A-LR"
## 
## $suggested_gcms$k3
## [1] "MRI-ESM2-0"    "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k4
## [1] "MRI-ESM2-0"    "CanESM5-CanOE" "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k5
## [1] "MRI-ESM2-0"    "UKESM1-0-LL"   "CanESM5-CanOE" "IPSL-CM6A-LR" 
## [5] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k6
## [1] "MRI-ESM2-0"    "UKESM1-0-LL"   "CanESM5-CanOE" "IPSL-CM6A-LR" 
## [5] "GISS-E2-1-G"   "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k7
## [1] "MRI-ESM2-0"       "UKESM1-0-LL"      "CanESM5-CanOE"    "IPSL-CM6A-LR"    
## [5] "EC-Earth3-Veg-LR" "GISS-E2-1-G"      "MPI-ESM1-2-HR"   
## 
## $suggested_gcms$k8
## [1] "MRI-ESM2-0"       "UKESM1-0-LL"      "CanESM5-CanOE"    "IPSL-CM6A-LR"    
## [5] "EC-Earth3-Veg-LR" "GISS-E2-1-G"      "MIROC-ES2L"       "MPI-ESM1-2-HR"   
## 
## $suggested_gcms$k9
## [1] "MRI-ESM2-0"       "UKESM1-0-LL"      "CanESM5-CanOE"    "IPSL-CM6A-LR"    
## [5] "CNRM-CM6-1-HR"    "EC-Earth3-Veg-LR" "GISS-E2-1-G"      "MIROC-ES2L"      
## [9] "MPI-ESM1-2-HR"   
## 
## $suggested_gcms$k10
##  [1] "MRI-ESM2-0"       "UKESM1-0-LL"      "CanESM5-CanOE"    "CNRM-CM6-1"      
##  [5] "CNRM-CM6-1-HR"    "EC-Earth3-Veg-LR" "GISS-E2-1-G"      "MIROC-ES2L"      
##  [9] "IPSL-CM6A-LR"     "MPI-ESM1-2-HR"   
## 
## $suggested_gcms$k11
##  [1] "ACCESS-CM2"       "UKESM1-0-LL"      "CanESM5-CanOE"    "MRI-ESM2-0"      
##  [5] "CNRM-CM6-1"       "CNRM-CM6-1-HR"    "EC-Earth3-Veg-LR" "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"    "CMCC-ESM2"       
##  [5] "CNRM-CM6-1"       "CNRM-CM6-1-HR"    "EC-Earth3-Veg-LR" "MRI-ESM2-0"      
##  [9] "GISS-E2-1-G"      "MIROC-ES2L"       "IPSL-CM6A-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" "MRI-ESM2-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-CM6-1-HR"    "EC-Earth3-Veg-LR" "MRI-ESM2-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-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"       "UKESM1-0-LL"      "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"       "UKESM1-0-LL"      "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"       "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"    "MRI-ESM2-0"      
## 
## $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_400 <- mc_hclust_400$suggested_gcms$k3
tictoc::toc()
## Hierarchical Clustering 400: 13.137 sec elapsed
tictoc::tic("Hierarchical Clustering 450")
mc_hclust_450 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer450, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "hclust")
mc_hclust_450
## $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] "FIO-ESM-2-0"   "MIROC-ES2L"    "CanESM5-CanOE" "CNRM-ESM2-1"  
## [5] "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k6
## [1] "FIO-ESM-2-0"   "MIROC-ES2L"    "CanESM5-CanOE" "CNRM-ESM2-1"  
## [5] "GISS-E2-1-G"   "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k7
## [1] "FIO-ESM-2-0"   "MIROC-ES2L"    "CanESM5-CanOE" "INM-CM4-8"    
## [5] "CNRM-ESM2-1"   "GISS-E2-1-G"   "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k8
## [1] "FIO-ESM-2-0"   "ACCESS-ESM1-5" "CanESM5-CanOE" "INM-CM4-8"    
## [5] "CNRM-ESM2-1"   "GISS-E2-1-G"   "MIROC-ES2L"    "MPI-ESM1-2-HR"
## 
## $suggested_gcms$k9
## [1] "FIO-ESM-2-0"      "ACCESS-ESM1-5"    "CanESM5-CanOE"    "INM-CM4-8"       
## [5] "CNRM-ESM2-1"      "EC-Earth3-Veg-LR" "GISS-E2-1-G"      "MIROC-ES2L"      
## [9] "MPI-ESM1-2-HR"   
## 
## $suggested_gcms$k10
##  [1] "ACCESS-CM2"       "ACCESS-ESM1-5"    "CanESM5-CanOE"    "FIO-ESM-2-0"     
##  [5] "INM-CM4-8"        "CNRM-ESM2-1"      "EC-Earth3-Veg-LR" "GISS-E2-1-G"     
##  [9] "MIROC-ES2L"       "MPI-ESM1-2-HR"   
## 
## $suggested_gcms$k11
##  [1] "ACCESS-CM2"       "ACCESS-ESM1-5"    "CanESM5-CanOE"    "FIO-ESM-2-0"     
##  [5] "INM-CM4-8"        "CNRM-ESM2-1"      "EC-Earth3-Veg-LR" "GISS-E2-1-G"     
##  [9] "MIROC-ES2L"       "IPSL-CM6A-LR"     "MPI-ESM1-2-HR"   
## 
## $suggested_gcms$k12
##  [1] "ACCESS-CM2"       "ACCESS-ESM1-5"    "CanESM5-CanOE"    "FIO-ESM-2-0"     
##  [5] "INM-CM4-8"        "CNRM-ESM2-1"      "EC-Earth3-Veg-LR" "GISS-E2-1-G"     
##  [9] "INM-CM5-0"        "IPSL-CM6A-LR"     "MIROC-ES2L"       "MPI-ESM1-2-HR"   
## 
## $suggested_gcms$k13
##  [1] "ACCESS-CM2"       "ACCESS-ESM1-5"    "CanESM5-CanOE"    "CMCC-ESM2"       
##  [5] "INM-CM4-8"        "CNRM-ESM2-1"      "EC-Earth3-Veg-LR" "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"       "ACCESS-ESM1-5"    "CanESM5-CanOE"    "CMCC-ESM2"       
##  [5] "INM-CM4-8"        "CNRM-ESM2-1"      "EC-Earth3-Veg-LR" "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"       "ACCESS-ESM1-5"    "CanESM5-CanOE"    "CMCC-ESM2"       
##  [5] "INM-CM4-8"        "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] "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-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"       "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-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"      "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-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-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_450 <- mc_hclust_450$suggested_gcms$k3
tictoc::toc()
## Hierarchical Clustering 450: 13.076 sec elapsed
tictoc::tic("Hierarchical Clustering 500")
mc_hclust_500 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer500, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "hclust")
mc_hclust_500
## $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_500 <- mc_hclust_500$suggested_gcms$k3
tictoc::toc()
## Hierarchical Clustering 500: 13.193 sec elapsed

K-means Clustering selection

tictoc::tic("K-means Clustering 50")
mc_kmeans_50 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer50, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "kmeans")
mc_kmeans_50
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
##               1               2 
##   "CNRM-ESM2-1" "CanESM5-CanOE" 
## 
## $suggested_gcms$k3
##               1               2               3 
##   "CNRM-ESM2-1" "CanESM5-CanOE"    "MRI-ESM2-0" 
## 
## $suggested_gcms$k4
##               1               2               3               4 
## "MPI-ESM1-2-HR"   "CNRM-ESM2-1" "CanESM5-CanOE"    "MRI-ESM2-0" 
## 
## $suggested_gcms$k5
##               1               2               3               4               5 
## "CanESM5-CanOE"    "MRI-ESM2-0" "MPI-ESM1-2-HR"     "INM-CM4-8"   "UKESM1-0-LL" 
## 
## $suggested_gcms$k6
##               1               2               3               4               5 
## "MPI-ESM1-2-HR"     "INM-CM4-8" "CanESM5-CanOE"   "UKESM1-0-LL"   "FIO-ESM-2-0" 
##               6 
##    "MRI-ESM2-0" 
## 
## $suggested_gcms$k7
##               1               2               3               4               5 
##  "IPSL-CM6A-LR" "CanESM5-CanOE"    "MRI-ESM2-0" "MPI-ESM1-2-HR"   "UKESM1-0-LL" 
##               6               7 
## "EC-Earth3-Veg"   "FIO-ESM-2-0" 
## 
## $suggested_gcms$k8
##               1               2               3               4               5 
##  "IPSL-CM6A-LR" "CanESM5-CanOE" "CNRM-CM6-1-HR" "EC-Earth3-Veg"   "FIO-ESM-2-0" 
##               6               7               8 
## "MPI-ESM1-2-HR"   "UKESM1-0-LL"    "MRI-ESM2-0" 
## 
## $suggested_gcms$k9
##               1               2               3               4               5 
##   "CNRM-ESM2-1"     "INM-CM4-8"   "UKESM1-0-LL"    "MRI-ESM2-0" "CanESM5-CanOE" 
##               6               7               8               9 
##  "IPSL-CM6A-LR" "MPI-ESM1-2-HR"   "GISS-E2-1-G"   "FIO-ESM-2-0" 
## 
## $suggested_gcms$k10
##               1               2               3               4               5 
## "MPI-ESM1-2-HR" "CanESM5-CanOE"   "UKESM1-0-LL"   "FIO-ESM-2-0"    "MRI-ESM2-0" 
##               6               7               8               9              10 
## "EC-Earth3-Veg" "CNRM-CM6-1-HR"  "IPSL-CM6A-LR"    "MIROC-ES2L"   "GISS-E2-1-G" 
## 
## $suggested_gcms$k11
##               1               2               3               4               5 
##   "GISS-E2-1-G" "MPI-ESM1-2-HR"   "UKESM1-0-LL"  "IPSL-CM6A-LR"     "CMCC-ESM2" 
##               6               7               8               9              10 
##    "MIROC-ES2L" "EC-Earth3-Veg" "CanESM5-CanOE"    "MRI-ESM2-0"    "ACCESS-CM2" 
##              11 
## "CNRM-CM6-1-HR" 
## 
## $suggested_gcms$k12
##               1               2               3               4               5 
##    "ACCESS-CM2" "MPI-ESM1-2-HR"     "CMCC-ESM2" "CanESM5-CanOE" "EC-Earth3-Veg" 
##               6               7               8               9              10 
##   "GISS-E2-1-H"    "MIROC-ES2L"   "UKESM1-0-LL"   "FIO-ESM-2-0"  "IPSL-CM6A-LR" 
##              11              12 
##    "MRI-ESM2-0" "CNRM-CM6-1-HR" 
## 
## $suggested_gcms$k13
##               1               2               3               4               5 
## "EC-Earth3-Veg"   "GISS-E2-1-H"     "CMCC-ESM2"    "MRI-ESM2-0"  "IPSL-CM6A-LR" 
##               6               7               8               9              10 
## "MPI-ESM1-2-HR"   "UKESM1-0-LL"    "ACCESS-CM2" "CNRM-CM6-1-HR" "CanESM5-CanOE" 
##              11              12              13 
##   "FIO-ESM-2-0"    "MIROC-ES2L"    "CNRM-CM6-1" 
## 
## $suggested_gcms$k14
##               1               2               3               4               5 
## "EC-Earth3-Veg" "CNRM-CM6-1-HR"   "UKESM1-0-LL"        "MIROC6"   "GISS-E2-1-H" 
##               6               7               8               9              10 
##    "CNRM-CM6-1"  "IPSL-CM6A-LR" "CanESM5-CanOE"    "ACCESS-CM2"   "FIO-ESM-2-0" 
##              11              12              13              14 
##    "MIROC-ES2L"     "INM-CM5-0" "MPI-ESM1-2-HR"     "CMCC-ESM2" 
## 
## $suggested_gcms$k15
##               1               2               3               4               5 
##     "INM-CM5-0"        "MIROC6"     "INM-CM4-8"   "GISS-E2-1-H"    "MIROC-ES2L" 
##               6               7               8               9              10 
## "CNRM-CM6-1-HR"   "UKESM1-0-LL"    "CNRM-CM6-1" "CanESM5-CanOE"     "CMCC-ESM2" 
##              11              12              13              14              15 
##   "FIO-ESM-2-0"  "IPSL-CM6A-LR" "MPI-ESM1-2-HR" "EC-Earth3-Veg"    "ACCESS-CM2" 
## 
## $suggested_gcms$k16
##               1               2               3               4               5 
##     "INM-CM4-8"     "CMCC-ESM2"   "GISS-E2-1-G"     "INM-CM5-0"    "CNRM-CM6-1" 
##               6               7               8               9              10 
##  "IPSL-CM6A-LR"   "FIO-ESM-2-0" "MPI-ESM1-2-HR"        "MIROC6"   "UKESM1-0-LL" 
##              11              12              13              14              15 
##    "MIROC-ES2L" "CanESM5-CanOE" "CNRM-CM6-1-HR" "EC-Earth3-Veg"   "GISS-E2-1-H" 
##              16 
##    "ACCESS-CM2" 
## 
## $suggested_gcms$k17
##                 1                 2                 3                 4 
##     "FIO-ESM-2-0"   "EC-Earth3-Veg"   "CanESM5-CanOE"     "GISS-E2-1-H" 
##                 5                 6                 7                 8 
##      "MIROC-ES2L"       "CMCC-ESM2"     "GISS-E2-1-G"       "INM-CM4-8" 
##                 9                10                11                12 
##       "INM-CM5-0"      "ACCESS-CM2"   "MPI-ESM1-2-HR"    "IPSL-CM6A-LR" 
##                13                14                15                16 
##          "MIROC6"   "ACCESS-ESM1-5"   "CNRM-CM6-1-HR"      "CNRM-CM6-1" 
##                17 
## "HadGEM3-GC31-LL" 
## 
## $suggested_gcms$k18
##                 1                 2                 3                 4 
##       "INM-CM5-0"      "ACCESS-CM2"   "MPI-ESM1-2-LR"       "INM-CM4-8" 
##                 5                 6                 7                 8 
##   "MPI-ESM1-2-HR"     "FIO-ESM-2-0"     "GISS-E2-1-H"   "CanESM5-CanOE" 
##                 9                10                11                12 
##     "GISS-E2-1-G"       "CMCC-ESM2"    "IPSL-CM6A-LR"   "CNRM-CM6-1-HR" 
##                13                14                15                16 
##   "EC-Earth3-Veg"      "MIROC-ES2L" "HadGEM3-GC31-LL"   "ACCESS-ESM1-5" 
##                17                18 
##          "MIROC6"      "CNRM-CM6-1" 
## 
## $suggested_gcms$k19
##                 1                 2                 3                 4 
##      "MRI-ESM2-0"      "ACCESS-CM2"   "EC-Earth3-Veg"   "ACCESS-ESM1-5" 
##                 5                 6                 7                 8 
##   "CanESM5-CanOE"   "CNRM-CM6-1-HR"       "INM-CM5-0"    "IPSL-CM6A-LR" 
##                 9                10                11                12 
##     "GISS-E2-1-G"       "INM-CM4-8"     "GISS-E2-1-H"          "MIROC6" 
##                13                14                15                16 
##      "MIROC-ES2L"   "MPI-ESM1-2-HR"     "FIO-ESM-2-0"       "CMCC-ESM2" 
##                17                18                19 
##      "CNRM-CM6-1" "HadGEM3-GC31-LL"   "MPI-ESM1-2-LR" 
## 
## $suggested_gcms$k20
##                  1                  2                  3                  4 
##    "ACCESS-ESM1-5"        "CMCC-ESM2"        "INM-CM5-0"    "MPI-ESM1-2-LR" 
##                  5                  6                  7                  8 
##  "HadGEM3-GC31-LL"           "MIROC6"       "MRI-ESM2-0"    "MPI-ESM1-2-HR" 
##                  9                 10                 11                 12 
##      "GISS-E2-1-H"    "CNRM-CM6-1-HR"       "CNRM-CM6-1"    "CanESM5-CanOE" 
##                 13                 14                 15                 16 
##       "MIROC-ES2L" "EC-Earth3-Veg-LR"        "INM-CM4-8"      "FIO-ESM-2-0" 
##                 17                 18                 19                 20 
##       "ACCESS-CM2"    "EC-Earth3-Veg"      "GISS-E2-1-G"     "IPSL-CM6A-LR" 
## 
## $suggested_gcms$k21
##                  1                  2                  3                  4 
##    "CNRM-CM6-1-HR"           "MIROC6"      "GISS-E2-1-G"    "MPI-ESM1-2-LR" 
##                  5                  6                  7                  8 
##       "MIROC-ES2L"       "ACCESS-CM2"     "IPSL-CM6A-LR"    "EC-Earth3-Veg" 
##                  9                 10                 11                 12 
##    "ACCESS-ESM1-5"  "HadGEM3-GC31-LL"       "CNRM-CM6-1"      "UKESM1-0-LL" 
##                 13                 14                 15                 16 
##        "INM-CM5-0" "EC-Earth3-Veg-LR"        "CMCC-ESM2"    "MPI-ESM1-2-HR" 
##                 17                 18                 19                 20 
##      "FIO-ESM-2-0"       "MRI-ESM2-0"        "INM-CM4-8"      "GISS-E2-1-H" 
##                 21 
##    "CanESM5-CanOE"
kmeans_50 <- mc_kmeans_50$suggested_gcms$k3
tictoc::toc()
## K-means Clustering 50: 22.477 sec elapsed
tictoc::tic("K-means Clustering 100")
mc_kmeans_100 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer100, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "kmeans")
mc_kmeans_100
## $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 
##   "CNRM-ESM2-1"    "MRI-ESM2-0" "CanESM5-CanOE" "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k5
##               1               2               3               4               5 
##   "UKESM1-0-LL" "MPI-ESM1-2-HR"    "MRI-ESM2-0" "CanESM5-CanOE"     "INM-CM4-8" 
## 
## $suggested_gcms$k6
##               1               2               3               4               5 
##     "INM-CM4-8" "CanESM5-CanOE"   "FIO-ESM-2-0" "MPI-ESM1-2-HR"   "UKESM1-0-LL" 
##               6 
##    "MRI-ESM2-0" 
## 
## $suggested_gcms$k7
##               1               2               3               4               5 
##   "UKESM1-0-LL" "MPI-ESM1-2-HR"    "MRI-ESM2-0"   "FIO-ESM-2-0"   "CNRM-ESM2-1" 
##               6               7 
##     "INM-CM4-8" "CanESM5-CanOE" 
## 
## $suggested_gcms$k8
##               1               2               3               4               5 
##   "CNRM-ESM2-1"     "INM-CM4-8"   "FIO-ESM-2-0"  "IPSL-CM6A-LR"   "UKESM1-0-LL" 
##               6               7               8 
## "CanESM5-CanOE" "MPI-ESM1-2-HR"    "MRI-ESM2-0" 
## 
## $suggested_gcms$k9
##               1               2               3               4               5 
## "MPI-ESM1-2-HR"   "UKESM1-0-LL"    "MRI-ESM2-0"   "GISS-E2-1-G" "CanESM5-CanOE" 
##               6               7               8               9 
##   "CNRM-ESM2-1"  "IPSL-CM6A-LR"   "FIO-ESM-2-0"     "INM-CM4-8" 
## 
## $suggested_gcms$k10
##               1               2               3               4               5 
##    "MIROC-ES2L"   "CNRM-ESM2-1"    "CNRM-CM6-1" "CanESM5-CanOE"   "UKESM1-0-LL" 
##               6               7               8               9              10 
##  "IPSL-CM6A-LR"    "MRI-ESM2-0"   "GISS-E2-1-G" "MPI-ESM1-2-HR"   "FIO-ESM-2-0" 
## 
## $suggested_gcms$k11
##               1               2               3               4               5 
##    "MIROC-ES2L"    "CNRM-CM6-1"   "CNRM-ESM2-1" "MPI-ESM1-2-HR"   "UKESM1-0-LL" 
##               6               7               8               9              10 
##    "ACCESS-CM2" "CanESM5-CanOE"    "MRI-ESM2-0"  "IPSL-CM6A-LR"   "GISS-E2-1-G" 
##              11 
##     "CMCC-ESM2" 
## 
## $suggested_gcms$k12
##               1               2               3               4               5 
## "CanESM5-CanOE"   "UKESM1-0-LL"  "IPSL-CM6A-LR"    "MIROC-ES2L"    "CNRM-CM6-1" 
##               6               7               8               9              10 
##   "GISS-E2-1-G"     "CMCC-ESM2" "MPI-ESM1-2-HR"    "ACCESS-CM2"    "MRI-ESM2-0" 
##              11              12 
## "CNRM-CM6-1-HR" "EC-Earth3-Veg" 
## 
## $suggested_gcms$k13
##               1               2               3               4               5 
## "CanESM5-CanOE"    "CNRM-CM6-1" "MPI-ESM1-2-HR"   "GISS-E2-1-H"   "UKESM1-0-LL" 
##               6               7               8               9              10 
##    "ACCESS-CM2" "EC-Earth3-Veg"   "FIO-ESM-2-0"     "CMCC-ESM2"    "MIROC-ES2L" 
##              11              12              13 
##    "MRI-ESM2-0"  "IPSL-CM6A-LR" "CNRM-CM6-1-HR" 
## 
## $suggested_gcms$k14
##               1               2               3               4               5 
##   "UKESM1-0-LL" "CanESM5-CanOE"   "FIO-ESM-2-0" "EC-Earth3-Veg"   "GISS-E2-1-H" 
##               6               7               8               9              10 
##        "MIROC6"    "MIROC-ES2L"    "ACCESS-CM2" "MPI-ESM1-2-HR"  "IPSL-CM6A-LR" 
##              11              12              13              14 
##     "CMCC-ESM2"    "CNRM-CM6-1" "CNRM-CM6-1-HR"     "INM-CM5-0" 
## 
## $suggested_gcms$k15
##               1               2               3               4               5 
##  "IPSL-CM6A-LR"    "ACCESS-CM2" "EC-Earth3-Veg"     "CMCC-ESM2" "CanESM5-CanOE" 
##               6               7               8               9              10 
## "MPI-ESM1-2-HR"   "UKESM1-0-LL"     "INM-CM5-0"        "MIROC6" "CNRM-CM6-1-HR" 
##              11              12              13              14              15 
##   "GISS-E2-1-H"   "GISS-E2-1-G"    "CNRM-CM6-1"    "MIROC-ES2L"   "FIO-ESM-2-0" 
## 
## $suggested_gcms$k16
##                 1                 2                 3                 4 
##     "FIO-ESM-2-0"       "INM-CM5-0"     "GISS-E2-1-H"     "GISS-E2-1-G" 
##                 5                 6                 7                 8 
##   "EC-Earth3-Veg"      "ACCESS-CM2"   "CanESM5-CanOE"   "CNRM-CM6-1-HR" 
##                 9                10                11                12 
##      "CNRM-CM6-1" "HadGEM3-GC31-LL"    "IPSL-CM6A-LR"   "MPI-ESM1-2-HR" 
##                13                14                15                16 
##          "MIROC6"       "CMCC-ESM2"      "MIROC-ES2L"   "ACCESS-ESM1-5" 
## 
## $suggested_gcms$k17
##                 1                 2                 3                 4 
##          "MIROC6"       "CMCC-ESM2"   "ACCESS-ESM1-5"     "GISS-E2-1-H" 
##                 5                 6                 7                 8 
##    "IPSL-CM6A-LR"       "INM-CM5-0"      "MIROC-ES2L" "HadGEM3-GC31-LL" 
##                 9                10                11                12 
##      "ACCESS-CM2"      "CNRM-CM6-1"   "EC-Earth3-Veg"     "FIO-ESM-2-0" 
##                13                14                15                16 
##       "INM-CM4-8"   "CanESM5-CanOE"     "GISS-E2-1-G"   "CNRM-CM6-1-HR" 
##                17 
##   "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k18
##                 1                 2                 3                 4 
##   "EC-Earth3-Veg"   "CanESM5-CanOE"       "INM-CM4-8"   "ACCESS-ESM1-5" 
##                 5                 6                 7                 8 
##   "MPI-ESM1-2-HR"     "GISS-E2-1-H"       "INM-CM5-0"     "GISS-E2-1-G" 
##                 9                10                11                12 
##     "FIO-ESM-2-0"   "MPI-ESM1-2-LR"          "MIROC6"      "CNRM-CM6-1" 
##                13                14                15                16 
##    "IPSL-CM6A-LR"      "MIROC-ES2L"      "ACCESS-CM2"       "CMCC-ESM2" 
##                17                18 
## "HadGEM3-GC31-LL"   "CNRM-CM6-1-HR" 
## 
## $suggested_gcms$k19
##                  1                  2                  3                  4 
##        "INM-CM4-8"  "HadGEM3-GC31-LL"    "CNRM-CM6-1-HR"    "CanESM5-CanOE" 
##                  5                  6                  7                  8 
##      "FIO-ESM-2-0"        "INM-CM5-0"           "MIROC6"       "MIROC-ES2L" 
##                  9                 10                 11                 12 
##       "ACCESS-CM2"      "GISS-E2-1-G"    "EC-Earth3-Veg"       "CNRM-CM6-1" 
##                 13                 14                 15                 16 
##      "GISS-E2-1-H" "EC-Earth3-Veg-LR"    "MPI-ESM1-2-HR"    "ACCESS-ESM1-5" 
##                 17                 18                 19 
##    "MPI-ESM1-2-LR"     "IPSL-CM6A-LR"        "CMCC-ESM2" 
## 
## $suggested_gcms$k20
##                  1                  2                  3                  4 
##        "INM-CM4-8"      "GISS-E2-1-H" "EC-Earth3-Veg-LR"    "EC-Earth3-Veg" 
##                  5                  6                  7                  8 
##        "INM-CM5-0"       "CNRM-CM6-1"      "GISS-E2-1-G"    "CNRM-CM6-1-HR" 
##                  9                 10                 11                 12 
##       "ACCESS-CM2"    "ACCESS-ESM1-5"  "HadGEM3-GC31-LL"    "CanESM5-CanOE" 
##                 13                 14                 15                 16 
##       "MRI-ESM2-0"    "MPI-ESM1-2-LR"       "MIROC-ES2L"        "CMCC-ESM2" 
##                 17                 18                 19                 20 
##    "MPI-ESM1-2-HR"           "MIROC6"     "IPSL-CM6A-LR"      "FIO-ESM-2-0" 
## 
## $suggested_gcms$k21
##                  1                  2                  3                  4 
##    "EC-Earth3-Veg"       "CNRM-CM6-1"        "INM-CM5-0"           "MIROC6" 
##                  5                  6                  7                  8 
##        "CMCC-ESM2"  "HadGEM3-GC31-LL"       "MIROC-ES2L"      "GISS-E2-1-G" 
##                  9                 10                 11                 12 
##     "IPSL-CM6A-LR"       "ACCESS-CM2"    "ACCESS-ESM1-5"      "GISS-E2-1-H" 
##                 13                 14                 15                 16 
##        "INM-CM4-8" "EC-Earth3-Veg-LR"    "MPI-ESM1-2-LR"    "CanESM5-CanOE" 
##                 17                 18                 19                 20 
##      "FIO-ESM-2-0"    "MPI-ESM1-2-HR"       "MRI-ESM2-0"    "CNRM-CM6-1-HR" 
##                 21 
##      "UKESM1-0-LL"
kmeans_100 <- mc_kmeans_100$suggested_gcms$k3
tictoc::toc()
## K-means Clustering 100: 22.801 sec elapsed
tictoc::tic("K-means Clustering 150")
mc_kmeans_150 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer150, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "kmeans")
mc_kmeans_150
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
##               1               2 
##   "CNRM-ESM2-1" "CanESM5-CanOE" 
## 
## $suggested_gcms$k3
##               1               2               3 
##   "CNRM-ESM2-1" "CanESM5-CanOE"    "MRI-ESM2-0" 
## 
## $suggested_gcms$k4
##               1               2               3               4 
##    "MRI-ESM2-0" "CanESM5-CanOE" "MPI-ESM1-2-HR"   "CNRM-ESM2-1" 
## 
## $suggested_gcms$k5
##               1               2               3               4               5 
## "MPI-ESM1-2-HR"    "MRI-ESM2-0" "CanESM5-CanOE"     "INM-CM4-8"   "CNRM-ESM2-1" 
## 
## $suggested_gcms$k6
##               1               2               3               4               5 
## "CanESM5-CanOE"   "FIO-ESM-2-0" "MPI-ESM1-2-HR"    "MRI-ESM2-0"   "CNRM-ESM2-1" 
##               6 
##     "INM-CM4-8" 
## 
## $suggested_gcms$k7
##               1               2               3               4               5 
##    "MRI-ESM2-0" "MPI-ESM1-2-HR"   "UKESM1-0-LL"   "CNRM-ESM2-1"   "FIO-ESM-2-0" 
##               6               7 
## "CanESM5-CanOE"     "INM-CM4-8" 
## 
## $suggested_gcms$k8
##               1               2               3               4               5 
## "CanESM5-CanOE"   "GISS-E2-1-G" "MPI-ESM1-2-HR"    "MRI-ESM2-0"     "INM-CM4-8" 
##               6               7               8 
##   "CNRM-ESM2-1"   "FIO-ESM-2-0"   "UKESM1-0-LL" 
## 
## $suggested_gcms$k9
##               1               2               3               4               5 
## "MPI-ESM1-2-HR"  "IPSL-CM6A-LR"   "UKESM1-0-LL"    "MRI-ESM2-0"   "CNRM-ESM2-1" 
##               6               7               8               9 
##   "GISS-E2-1-G" "CanESM5-CanOE"   "FIO-ESM-2-0"    "CNRM-CM6-1" 
## 
## $suggested_gcms$k10
##               1               2               3               4               5 
##   "CNRM-ESM2-1"    "MIROC-ES2L"  "IPSL-CM6A-LR" "MPI-ESM1-2-HR"    "CNRM-CM6-1" 
##               6               7               8               9              10 
##    "MRI-ESM2-0"   "GISS-E2-1-G" "CanESM5-CanOE"   "UKESM1-0-LL"   "FIO-ESM-2-0" 
## 
## $suggested_gcms$k11
##               1               2               3               4               5 
##    "CNRM-CM6-1"   "GISS-E2-1-G" "MPI-ESM1-2-HR"   "CNRM-ESM2-1"     "CMCC-ESM2" 
##               6               7               8               9              10 
##    "MIROC-ES2L"    "ACCESS-CM2"    "MRI-ESM2-0"  "IPSL-CM6A-LR" "CanESM5-CanOE" 
##              11 
##   "UKESM1-0-LL" 
## 
## $suggested_gcms$k12
##               1               2               3               4               5 
##     "CMCC-ESM2"    "MRI-ESM2-0"    "ACCESS-CM2" "EC-Earth3-Veg" "CanESM5-CanOE" 
##               6               7               8               9              10 
##   "GISS-E2-1-G"  "IPSL-CM6A-LR"    "MIROC-ES2L"   "UKESM1-0-LL" "CNRM-CM6-1-HR" 
##              11              12 
##    "CNRM-CM6-1" "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k13
##               1               2               3               4               5 
##    "ACCESS-CM2"   "GISS-E2-1-H" "MPI-ESM1-2-HR"  "IPSL-CM6A-LR"   "UKESM1-0-LL" 
##               6               7               8               9              10 
##    "MRI-ESM2-0" "CanESM5-CanOE" "EC-Earth3-Veg" "CNRM-CM6-1-HR"    "MIROC-ES2L" 
##              11              12              13 
##    "CNRM-CM6-1"     "CMCC-ESM2"   "GISS-E2-1-G" 
## 
## $suggested_gcms$k14
##               1               2               3               4               5 
## "MPI-ESM1-2-HR"   "GISS-E2-1-H"     "INM-CM5-0"  "IPSL-CM6A-LR"   "GISS-E2-1-G" 
##               6               7               8               9              10 
## "EC-Earth3-Veg"     "CMCC-ESM2" "CanESM5-CanOE"    "CNRM-CM6-1"    "ACCESS-CM2" 
##              11              12              13              14 
##    "MIROC-ES2L" "CNRM-CM6-1-HR"   "UKESM1-0-LL"        "MIROC6" 
## 
## $suggested_gcms$k15
##               1               2               3               4               5 
##   "UKESM1-0-LL"   "FIO-ESM-2-0"        "MIROC6"     "CMCC-ESM2" "CanESM5-CanOE" 
##               6               7               8               9              10 
##   "GISS-E2-1-H" "CNRM-CM6-1-HR" "EC-Earth3-Veg"   "GISS-E2-1-G" "MPI-ESM1-2-HR" 
##              11              12              13              14              15 
##    "CNRM-CM6-1"     "INM-CM5-0"  "IPSL-CM6A-LR"    "MIROC-ES2L"    "ACCESS-CM2" 
## 
## $suggested_gcms$k16
##                 1                 2                 3                 4 
##      "ACCESS-CM2"   "CanESM5-CanOE"   "EC-Earth3-Veg"          "MIROC6" 
##                 5                 6                 7                 8 
##    "IPSL-CM6A-LR"     "FIO-ESM-2-0"       "INM-CM5-0"   "MPI-ESM1-2-HR" 
##                 9                10                11                12 
##      "CNRM-CM6-1" "HadGEM3-GC31-LL"       "CMCC-ESM2"      "MIROC-ES2L" 
##                13                14                15                16 
##   "ACCESS-ESM1-5"     "GISS-E2-1-G"   "CNRM-CM6-1-HR"     "GISS-E2-1-H" 
## 
## $suggested_gcms$k17
##                 1                 2                 3                 4 
##      "CNRM-CM6-1"          "MIROC6"       "INM-CM5-0"      "ACCESS-CM2" 
##                 5                 6                 7                 8 
##   "ACCESS-ESM1-5" "HadGEM3-GC31-LL"     "GISS-E2-1-G"     "GISS-E2-1-H" 
##                 9                10                11                12 
##   "CNRM-CM6-1-HR"      "MIROC-ES2L"   "MPI-ESM1-2-HR"   "CanESM5-CanOE" 
##                13                14                15                16 
##    "IPSL-CM6A-LR"   "EC-Earth3-Veg"       "CMCC-ESM2"     "FIO-ESM-2-0" 
##                17 
##       "INM-CM4-8" 
## 
## $suggested_gcms$k18
##                  1                  2                  3                  4 
##      "FIO-ESM-2-0"      "GISS-E2-1-H"           "MIROC6"     "IPSL-CM6A-LR" 
##                  5                  6                  7                  8 
##    "MPI-ESM1-2-HR"       "CNRM-CM6-1"        "CMCC-ESM2"      "GISS-E2-1-G" 
##                  9                 10                 11                 12 
##        "INM-CM4-8"        "INM-CM5-0"    "ACCESS-ESM1-5"    "CNRM-CM6-1-HR" 
##                 13                 14                 15                 16 
## "EC-Earth3-Veg-LR"       "ACCESS-CM2"    "EC-Earth3-Veg"    "CanESM5-CanOE" 
##                 17                 18 
##  "HadGEM3-GC31-LL"       "MIROC-ES2L" 
## 
## $suggested_gcms$k19
##                  1                  2                  3                  4 
##      "GISS-E2-1-H"        "INM-CM4-8"           "MIROC6"    "CanESM5-CanOE" 
##                  5                  6                  7                  8 
##      "GISS-E2-1-G"    "CNRM-CM6-1-HR"    "ACCESS-ESM1-5"    "MPI-ESM1-2-LR" 
##                  9                 10                 11                 12 
##  "HadGEM3-GC31-LL"        "INM-CM5-0"       "CNRM-CM6-1"        "CMCC-ESM2" 
##                 13                 14                 15                 16 
##       "MIROC-ES2L"    "MPI-ESM1-2-HR"      "FIO-ESM-2-0"    "EC-Earth3-Veg" 
##                 17                 18                 19 
##       "ACCESS-CM2" "EC-Earth3-Veg-LR"     "IPSL-CM6A-LR" 
## 
## $suggested_gcms$k20
##                  1                  2                  3                  4 
## "EC-Earth3-Veg-LR"  "HadGEM3-GC31-LL"        "INM-CM5-0"      "GISS-E2-1-G" 
##                  5                  6                  7                  8 
##        "INM-CM4-8"        "CMCC-ESM2"    "ACCESS-ESM1-5"       "ACCESS-CM2" 
##                  9                 10                 11                 12 
##     "IPSL-CM6A-LR"    "EC-Earth3-Veg"      "GISS-E2-1-H"    "MPI-ESM1-2-LR" 
##                 13                 14                 15                 16 
##    "CanESM5-CanOE"    "CNRM-CM6-1-HR"       "MRI-ESM2-0"       "CNRM-CM6-1" 
##                 17                 18                 19                 20 
##    "MPI-ESM1-2-HR"           "MIROC6"       "MIROC-ES2L"      "FIO-ESM-2-0" 
## 
## $suggested_gcms$k21
##                  1                  2                  3                  4 
##  "HadGEM3-GC31-LL"        "INM-CM5-0"       "MRI-ESM2-0"     "IPSL-CM6A-LR" 
##                  5                  6                  7                  8 
##    "CNRM-CM6-1-HR"    "EC-Earth3-Veg"        "INM-CM4-8"    "ACCESS-ESM1-5" 
##                  9                 10                 11                 12 
## "EC-Earth3-Veg-LR"    "MPI-ESM1-2-HR"        "CMCC-ESM2"       "MIROC-ES2L" 
##                 13                 14                 15                 16 
##       "ACCESS-CM2"           "MIROC6"      "GISS-E2-1-G"      "GISS-E2-1-H" 
##                 17                 18                 19                 20 
##    "MPI-ESM1-2-LR"      "UKESM1-0-LL"    "CanESM5-CanOE"       "CNRM-CM6-1" 
##                 21 
##      "FIO-ESM-2-0"
kmeans_150 <- mc_kmeans_150$suggested_gcms$k3
tictoc::toc()
## K-means Clustering 150: 22.718 sec elapsed
tictoc::tic("K-means Clustering 200")
mc_kmeans_200 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer200, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "kmeans")
mc_kmeans_200
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
##               1               2 
##   "CNRM-ESM2-1" "CanESM5-CanOE" 
## 
## $suggested_gcms$k3
##               1               2               3 
##    "MRI-ESM2-0" "CanESM5-CanOE"   "CNRM-ESM2-1" 
## 
## $suggested_gcms$k4
##               1               2               3               4 
##   "CNRM-ESM2-1" "MPI-ESM1-2-HR" "CanESM5-CanOE"    "MRI-ESM2-0" 
## 
## $suggested_gcms$k5
##               1               2               3               4               5 
##     "INM-CM4-8"   "CNRM-ESM2-1"    "MRI-ESM2-0" "CanESM5-CanOE" "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k6
##               1               2               3               4               5 
##   "FIO-ESM-2-0"    "MRI-ESM2-0"     "INM-CM4-8" "CanESM5-CanOE" "MPI-ESM1-2-HR" 
##               6 
##   "CNRM-ESM2-1" 
## 
## $suggested_gcms$k7
##               1               2               3               4               5 
##   "FIO-ESM-2-0"   "UKESM1-0-LL"    "MRI-ESM2-0" "MPI-ESM1-2-HR"   "CNRM-ESM2-1" 
##               6               7 
## "CanESM5-CanOE"     "INM-CM4-8" 
## 
## $suggested_gcms$k8
##               1               2               3               4               5 
##   "GISS-E2-1-G" "MPI-ESM1-2-HR"    "MRI-ESM2-0"   "UKESM1-0-LL" "CanESM5-CanOE" 
##               6               7               8 
##   "CNRM-ESM2-1"   "FIO-ESM-2-0"     "INM-CM4-8" 
## 
## $suggested_gcms$k9
##               1               2               3               4               5 
##   "FIO-ESM-2-0" "EC-Earth3-Veg" "CanESM5-CanOE"   "GISS-E2-1-G"   "UKESM1-0-LL" 
##               6               7               8               9 
##   "CNRM-ESM2-1"  "IPSL-CM6A-LR" "MPI-ESM1-2-HR"    "MRI-ESM2-0" 
## 
## $suggested_gcms$k10
##               1               2               3               4               5 
##   "CNRM-ESM2-1"    "CNRM-CM6-1"  "IPSL-CM6A-LR" "MPI-ESM1-2-HR"   "UKESM1-0-LL" 
##               6               7               8               9              10 
##    "MIROC-ES2L"    "MRI-ESM2-0" "CanESM5-CanOE"   "FIO-ESM-2-0"   "GISS-E2-1-G" 
## 
## $suggested_gcms$k11
##               1               2               3               4               5 
## "MPI-ESM1-2-HR"   "GISS-E2-1-G"  "IPSL-CM6A-LR"    "CNRM-CM6-1"    "ACCESS-CM2" 
##               6               7               8               9              10 
##    "MRI-ESM2-0"   "CNRM-ESM2-1"   "UKESM1-0-LL"    "MIROC-ES2L" "CanESM5-CanOE" 
##              11 
##     "CMCC-ESM2" 
## 
## $suggested_gcms$k12
##               1               2               3               4               5 
## "EC-Earth3-Veg"   "UKESM1-0-LL"    "MRI-ESM2-0"    "ACCESS-CM2" "CNRM-CM6-1-HR" 
##               6               7               8               9              10 
##   "GISS-E2-1-G"     "CMCC-ESM2"    "CNRM-CM6-1" "CanESM5-CanOE"    "MIROC-ES2L" 
##              11              12 
##  "IPSL-CM6A-LR" "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k13
##               1               2               3               4               5 
##    "MRI-ESM2-0"  "IPSL-CM6A-LR" "EC-Earth3-Veg"   "UKESM1-0-LL" "MPI-ESM1-2-HR" 
##               6               7               8               9              10 
## "CNRM-CM6-1-HR" "CanESM5-CanOE"   "GISS-E2-1-H"    "MIROC-ES2L"   "GISS-E2-1-G" 
##              11              12              13 
##    "ACCESS-CM2"     "CMCC-ESM2"    "CNRM-CM6-1" 
## 
## $suggested_gcms$k14
##               1               2               3               4               5 
##    "ACCESS-CM2" "MPI-ESM1-2-HR"     "INM-CM5-0"    "MIROC-ES2L"   "GISS-E2-1-H" 
##               6               7               8               9              10 
##        "MIROC6" "CNRM-CM6-1-HR" "EC-Earth3-Veg"   "GISS-E2-1-G"     "CMCC-ESM2" 
##              11              12              13              14 
##    "CNRM-CM6-1"   "UKESM1-0-LL" "CanESM5-CanOE"  "IPSL-CM6A-LR" 
## 
## $suggested_gcms$k15
##                 1                 2                 3                 4 
##    "IPSL-CM6A-LR"      "ACCESS-CM2"   "EC-Earth3-Veg" "HadGEM3-GC31-LL" 
##                 5                 6                 7                 8 
##       "INM-CM5-0"          "MIROC6"   "ACCESS-ESM1-5"   "CNRM-CM6-1-HR" 
##                 9                10                11                12 
##      "MIROC-ES2L"      "CNRM-CM6-1"       "CMCC-ESM2"   "CanESM5-CanOE" 
##                13                14                15 
##     "GISS-E2-1-G"     "GISS-E2-1-H"   "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k16
##                 1                 2                 3                 4 
##          "MIROC6"    "IPSL-CM6A-LR"     "GISS-E2-1-H" "HadGEM3-GC31-LL" 
##                 5                 6                 7                 8 
##       "INM-CM5-0"      "MIROC-ES2L"   "CNRM-CM6-1-HR"   "MPI-ESM1-2-HR" 
##                 9                10                11                12 
##   "CanESM5-CanOE"     "FIO-ESM-2-0"       "CMCC-ESM2"     "GISS-E2-1-G" 
##                13                14                15                16 
##      "CNRM-CM6-1"   "ACCESS-ESM1-5"      "ACCESS-CM2"   "EC-Earth3-Veg" 
## 
## $suggested_gcms$k17
##                  1                  2                  3                  4 
##     "IPSL-CM6A-LR" "EC-Earth3-Veg-LR"    "CanESM5-CanOE"    "MPI-ESM1-2-HR" 
##                  5                  6                  7                  8 
##       "ACCESS-CM2"       "MIROC-ES2L"    "CNRM-CM6-1-HR"    "EC-Earth3-Veg" 
##                  9                 10                 11                 12 
##      "GISS-E2-1-G"      "GISS-E2-1-H"    "ACCESS-ESM1-5"  "HadGEM3-GC31-LL" 
##                 13                 14                 15                 16 
##        "INM-CM5-0"        "CMCC-ESM2"       "CNRM-CM6-1"      "FIO-ESM-2-0" 
##                 17 
##           "MIROC6" 
## 
## $suggested_gcms$k18
##                  1                  2                  3                  4 
##    "CanESM5-CanOE"      "GISS-E2-1-G"     "IPSL-CM6A-LR"    "ACCESS-ESM1-5" 
##                  5                  6                  7                  8 
##           "MIROC6"      "GISS-E2-1-H" "EC-Earth3-Veg-LR"    "MPI-ESM1-2-HR" 
##                  9                 10                 11                 12 
##        "INM-CM5-0"        "INM-CM4-8"       "CNRM-CM6-1"       "MIROC-ES2L" 
##                 13                 14                 15                 16 
##        "CMCC-ESM2"    "CNRM-CM6-1-HR"      "FIO-ESM-2-0"    "EC-Earth3-Veg" 
##                 17                 18 
##       "ACCESS-CM2"  "HadGEM3-GC31-LL" 
## 
## $suggested_gcms$k19
##                  1                  2                  3                  4 
##    "CanESM5-CanOE"        "CMCC-ESM2"       "ACCESS-CM2"       "CNRM-CM6-1" 
##                  5                  6                  7                  8 
##    "MPI-ESM1-2-HR"    "EC-Earth3-Veg"           "MIROC6"       "MIROC-ES2L" 
##                  9                 10                 11                 12 
##      "GISS-E2-1-G"  "HadGEM3-GC31-LL"        "INM-CM5-0"    "MPI-ESM1-2-LR" 
##                 13                 14                 15                 16 
##    "CNRM-CM6-1-HR"      "FIO-ESM-2-0"     "IPSL-CM6A-LR"        "INM-CM4-8" 
##                 17                 18                 19 
##    "ACCESS-ESM1-5" "EC-Earth3-Veg-LR"      "GISS-E2-1-H" 
## 
## $suggested_gcms$k20
##                  1                  2                  3                  4 
##        "INM-CM4-8"    "EC-Earth3-Veg"           "MIROC6" "EC-Earth3-Veg-LR" 
##                  5                  6                  7                  8 
##    "ACCESS-ESM1-5"      "FIO-ESM-2-0"    "MPI-ESM1-2-LR"        "CMCC-ESM2" 
##                  9                 10                 11                 12 
##     "IPSL-CM6A-LR"        "INM-CM5-0"      "GISS-E2-1-G"    "CanESM5-CanOE" 
##                 13                 14                 15                 16 
##       "MIROC-ES2L"       "MRI-ESM2-0"    "MPI-ESM1-2-HR"    "CNRM-CM6-1-HR" 
##                 17                 18                 19                 20 
##      "GISS-E2-1-H"  "HadGEM3-GC31-LL"       "ACCESS-CM2"       "CNRM-CM6-1" 
## 
## $suggested_gcms$k21
##                  1                  2                  3                  4 
##    "MPI-ESM1-2-HR"    "ACCESS-ESM1-5"      "UKESM1-0-LL" "EC-Earth3-Veg-LR" 
##                  5                  6                  7                  8 
##       "CNRM-CM6-1"     "IPSL-CM6A-LR"        "CMCC-ESM2"        "INM-CM5-0" 
##                  9                 10                 11                 12 
##           "MIROC6"    "CanESM5-CanOE"      "GISS-E2-1-G"      "FIO-ESM-2-0" 
##                 13                 14                 15                 16 
##       "MRI-ESM2-0"       "ACCESS-CM2"    "MPI-ESM1-2-LR"    "EC-Earth3-Veg" 
##                 17                 18                 19                 20 
##      "GISS-E2-1-H"    "CNRM-CM6-1-HR"  "HadGEM3-GC31-LL"       "MIROC-ES2L" 
##                 21 
##        "INM-CM4-8"
kmeans_200 <- mc_kmeans_200$suggested_gcms$k3
tictoc::toc()
## K-means Clustering 200: 23.178 sec elapsed
tictoc::tic("K-means Clustering 250")
mc_kmeans_250 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer250, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "kmeans")
mc_kmeans_250
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
##               1               2 
##   "CNRM-ESM2-1" "CanESM5-CanOE" 
## 
## $suggested_gcms$k3
##               1               2               3 
##   "CNRM-ESM2-1" "CanESM5-CanOE"    "MRI-ESM2-0" 
## 
## $suggested_gcms$k4
##               1               2               3               4 
## "CanESM5-CanOE" "MPI-ESM1-2-HR"    "MRI-ESM2-0"   "CNRM-ESM2-1" 
## 
## $suggested_gcms$k5
##               1               2               3               4               5 
##     "INM-CM4-8" "CanESM5-CanOE"   "CNRM-ESM2-1"    "MRI-ESM2-0" "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k6
##               1               2               3               4               5 
## "MPI-ESM1-2-HR"   "FIO-ESM-2-0"     "INM-CM4-8"   "CNRM-ESM2-1" "CanESM5-CanOE" 
##               6 
##   "GISS-E2-1-G" 
## 
## $suggested_gcms$k7
##               1               2               3               4               5 
##   "GISS-E2-1-G"   "FIO-ESM-2-0"   "CNRM-ESM2-1" "CanESM5-CanOE"    "MRI-ESM2-0" 
##               6               7 
## "MPI-ESM1-2-HR"     "INM-CM4-8" 
## 
## $suggested_gcms$k8
##               1               2               3               4               5 
##   "CNRM-ESM2-1"    "MRI-ESM2-0" "CanESM5-CanOE"   "UKESM1-0-LL"   "FIO-ESM-2-0" 
##               6               7               8 
##     "INM-CM4-8"   "GISS-E2-1-G" "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k9
##               1               2               3               4               5 
## "MPI-ESM1-2-HR"   "FIO-ESM-2-0"   "UKESM1-0-LL"    "MRI-ESM2-0"   "CNRM-ESM2-1" 
##               6               7               8               9 
##  "IPSL-CM6A-LR"    "CNRM-CM6-1" "CanESM5-CanOE"   "GISS-E2-1-G" 
## 
## $suggested_gcms$k10
##               1               2               3               4               5 
##    "MRI-ESM2-0"   "GISS-E2-1-G"   "FIO-ESM-2-0" "CanESM5-CanOE"   "CNRM-ESM2-1" 
##               6               7               8               9              10 
## "MPI-ESM1-2-HR"    "MIROC-ES2L"    "CNRM-CM6-1"  "IPSL-CM6A-LR"   "UKESM1-0-LL" 
## 
## $suggested_gcms$k11
##               1               2               3               4               5 
##     "CMCC-ESM2"   "UKESM1-0-LL" "MPI-ESM1-2-HR" "CanESM5-CanOE"    "CNRM-CM6-1" 
##               6               7               8               9              10 
##    "MIROC-ES2L"    "MRI-ESM2-0"  "IPSL-CM6A-LR"   "CNRM-ESM2-1"   "GISS-E2-1-G" 
##              11 
##    "ACCESS-CM2" 
## 
## $suggested_gcms$k12
##               1               2               3               4               5 
## "EC-Earth3-Veg"    "MRI-ESM2-0"  "IPSL-CM6A-LR"    "ACCESS-CM2" "CNRM-CM6-1-HR" 
##               6               7               8               9              10 
## "CanESM5-CanOE"     "CMCC-ESM2" "MPI-ESM1-2-HR"    "MIROC-ES2L"    "CNRM-CM6-1" 
##              11              12 
##   "UKESM1-0-LL"   "GISS-E2-1-G" 
## 
## $suggested_gcms$k13
##               1               2               3               4               5 
## "CNRM-CM6-1-HR" "EC-Earth3-Veg"    "MRI-ESM2-0"    "ACCESS-CM2" "CanESM5-CanOE" 
##               6               7               8               9              10 
##    "MIROC-ES2L"   "UKESM1-0-LL" "MPI-ESM1-2-HR"   "GISS-E2-1-G"    "CNRM-CM6-1" 
##              11              12              13 
##     "CMCC-ESM2"   "GISS-E2-1-H"  "IPSL-CM6A-LR" 
## 
## $suggested_gcms$k14
##               1               2               3               4               5 
##  "IPSL-CM6A-LR" "CNRM-CM6-1-HR" "MPI-ESM1-2-HR" "EC-Earth3-Veg"     "CMCC-ESM2" 
##               6               7               8               9              10 
##        "MIROC6"   "GISS-E2-1-H"    "ACCESS-CM2"   "GISS-E2-1-G"     "INM-CM5-0" 
##              11              12              13              14 
## "CanESM5-CanOE"    "CNRM-CM6-1"    "MIROC-ES2L"   "UKESM1-0-LL" 
## 
## $suggested_gcms$k15
##                 1                 2                 3                 4 
##   "EC-Earth3-Veg"      "ACCESS-CM2"      "MIROC-ES2L"       "INM-CM5-0" 
##                 5                 6                 7                 8 
##     "GISS-E2-1-G"   "MPI-ESM1-2-HR"     "GISS-E2-1-H"       "CMCC-ESM2" 
##                 9                10                11                12 
##   "CNRM-CM6-1-HR"    "IPSL-CM6A-LR" "HadGEM3-GC31-LL"      "CNRM-CM6-1" 
##                13                14                15 
##   "ACCESS-ESM1-5"   "CanESM5-CanOE"          "MIROC6" 
## 
## $suggested_gcms$k16
##                 1                 2                 3                 4 
##      "CNRM-CM6-1"   "ACCESS-ESM1-5"   "MPI-ESM1-2-HR" "HadGEM3-GC31-LL" 
##                 5                 6                 7                 8 
##   "CNRM-CM6-1-HR"     "GISS-E2-1-H"     "FIO-ESM-2-0"    "IPSL-CM6A-LR" 
##                 9                10                11                12 
##     "GISS-E2-1-G"      "MIROC-ES2L"       "INM-CM5-0"       "CMCC-ESM2" 
##                13                14                15                16 
##   "EC-Earth3-Veg"      "ACCESS-CM2"          "MIROC6"   "CanESM5-CanOE" 
## 
## $suggested_gcms$k17
##                  1                  2                  3                  4 
##    "EC-Earth3-Veg"       "ACCESS-CM2"     "IPSL-CM6A-LR"        "CMCC-ESM2" 
##                  5                  6                  7                  8 
##  "HadGEM3-GC31-LL" "EC-Earth3-Veg-LR"    "CanESM5-CanOE"      "GISS-E2-1-H" 
##                  9                 10                 11                 12 
##    "ACCESS-ESM1-5"    "CNRM-CM6-1-HR"      "GISS-E2-1-G"       "CNRM-CM6-1" 
##                 13                 14                 15                 16 
##       "MIROC-ES2L"      "FIO-ESM-2-0"    "MPI-ESM1-2-HR"           "MIROC6" 
##                 17 
##        "INM-CM5-0" 
## 
## $suggested_gcms$k18
##                  1                  2                  3                  4 
##           "MIROC6"       "CNRM-CM6-1"        "INM-CM5-0"    "CanESM5-CanOE" 
##                  5                  6                  7                  8 
##    "EC-Earth3-Veg"      "FIO-ESM-2-0"      "GISS-E2-1-H"    "MPI-ESM1-2-HR" 
##                  9                 10                 11                 12 
## "EC-Earth3-Veg-LR"  "HadGEM3-GC31-LL"       "MIROC-ES2L"    "MPI-ESM1-2-LR" 
##                 13                 14                 15                 16 
##       "ACCESS-CM2"    "CNRM-CM6-1-HR"        "CMCC-ESM2"     "IPSL-CM6A-LR" 
##                 17                 18 
##      "GISS-E2-1-G"    "ACCESS-ESM1-5" 
## 
## $suggested_gcms$k19
##                  1                  2                  3                  4 
## "EC-Earth3-Veg-LR"    "CNRM-CM6-1-HR"        "CMCC-ESM2"  "HadGEM3-GC31-LL" 
##                  5                  6                  7                  8 
##      "FIO-ESM-2-0"       "CNRM-CM6-1"    "EC-Earth3-Veg"    "CanESM5-CanOE" 
##                  9                 10                 11                 12 
##    "MPI-ESM1-2-LR"    "ACCESS-ESM1-5"        "INM-CM5-0"     "IPSL-CM6A-LR" 
##                 13                 14                 15                 16 
##      "GISS-E2-1-G"           "MIROC6"        "INM-CM4-8"       "ACCESS-CM2" 
##                 17                 18                 19 
##    "MPI-ESM1-2-HR"      "GISS-E2-1-H"       "MIROC-ES2L" 
## 
## $suggested_gcms$k20
##                  1                  2                  3                  4 
##        "CMCC-ESM2"     "IPSL-CM6A-LR"      "FIO-ESM-2-0"  "HadGEM3-GC31-LL" 
##                  5                  6                  7                  8 
##      "GISS-E2-1-H"       "CNRM-CM6-1"       "ACCESS-CM2"       "MIROC-ES2L" 
##                  9                 10                 11                 12 
## "EC-Earth3-Veg-LR"    "ACCESS-ESM1-5"    "CanESM5-CanOE"           "MIROC6" 
##                 13                 14                 15                 16 
##        "INM-CM4-8"    "CNRM-CM6-1-HR"    "MPI-ESM1-2-LR"        "INM-CM5-0" 
##                 17                 18                 19                 20 
##      "GISS-E2-1-G"    "MPI-ESM1-2-HR"    "EC-Earth3-Veg"       "MRI-ESM2-0" 
## 
## $suggested_gcms$k21
##                  1                  2                  3                  4 
##        "INM-CM4-8"       "ACCESS-CM2"    "CanESM5-CanOE"      "GISS-E2-1-H" 
##                  5                  6                  7                  8 
##    "MPI-ESM1-2-HR"       "CNRM-CM6-1"  "HadGEM3-GC31-LL"    "MPI-ESM1-2-LR" 
##                  9                 10                 11                 12 
##     "IPSL-CM6A-LR"    "EC-Earth3-Veg"      "FIO-ESM-2-0"        "INM-CM5-0" 
##                 13                 14                 15                 16 
##    "CNRM-CM6-1-HR"        "CMCC-ESM2"    "ACCESS-ESM1-5"       "MRI-ESM2-0" 
##                 17                 18                 19                 20 
##           "MIROC6"      "GISS-E2-1-G" "EC-Earth3-Veg-LR"       "MIROC-ES2L" 
##                 21 
##      "UKESM1-0-LL"
kmeans_250 <- mc_kmeans_250$suggested_gcms$k3
tictoc::toc()
## K-means Clustering 250: 23.802 sec elapsed
tictoc::tic("K-means Clustering 300")
mc_kmeans_300 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer300, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "kmeans")
mc_kmeans_300
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
##               1               2 
##   "CNRM-ESM2-1" "CanESM5-CanOE" 
## 
## $suggested_gcms$k3
##               1               2               3 
##   "CNRM-ESM2-1" "CanESM5-CanOE"    "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 
##    "MRI-ESM2-0"   "CNRM-ESM2-1" "MPI-ESM1-2-HR" "CanESM5-CanOE"     "INM-CM4-8" 
## 
## $suggested_gcms$k6
##               1               2               3               4               5 
## "MPI-ESM1-2-HR"     "INM-CM4-8" "CanESM5-CanOE"   "FIO-ESM-2-0"   "CNRM-ESM2-1" 
##               6 
##   "GISS-E2-1-G" 
## 
## $suggested_gcms$k7
##               1               2               3               4               5 
## "CanESM5-CanOE"  "IPSL-CM6A-LR"   "FIO-ESM-2-0"   "GISS-E2-1-G" "EC-Earth3-Veg" 
##               6               7 
## "MPI-ESM1-2-HR"   "UKESM1-0-LL" 
## 
## $suggested_gcms$k8
##               1               2               3               4               5 
##   "UKESM1-0-LL" "MPI-ESM1-2-HR"   "GISS-E2-1-G"     "INM-CM4-8" "CanESM5-CanOE" 
##               6               7               8 
##   "FIO-ESM-2-0"    "MRI-ESM2-0"   "CNRM-ESM2-1" 
## 
## $suggested_gcms$k9
##               1               2               3               4               5 
##   "FIO-ESM-2-0"   "GISS-E2-1-G" "CanESM5-CanOE"   "CNRM-ESM2-1" "MPI-ESM1-2-HR" 
##               6               7               8               9 
##   "UKESM1-0-LL"  "IPSL-CM6A-LR"    "CNRM-CM6-1"    "MRI-ESM2-0" 
## 
## $suggested_gcms$k10
##               1               2               3               4               5 
##    "MIROC-ES2L"    "CNRM-CM6-1"  "IPSL-CM6A-LR"   "UKESM1-0-LL"    "MRI-ESM2-0" 
##               6               7               8               9              10 
## "MPI-ESM1-2-HR"   "FIO-ESM-2-0" "CanESM5-CanOE"   "CNRM-ESM2-1"   "GISS-E2-1-G" 
## 
## $suggested_gcms$k11
##               1               2               3               4               5 
##    "CNRM-CM6-1"    "MRI-ESM2-0"    "MIROC-ES2L"   "UKESM1-0-LL" "CanESM5-CanOE" 
##               6               7               8               9              10 
##  "IPSL-CM6A-LR"   "GISS-E2-1-G"   "FIO-ESM-2-0" "MPI-ESM1-2-HR" "CNRM-CM6-1-HR" 
##              11 
## "EC-Earth3-Veg" 
## 
## $suggested_gcms$k12
##               1               2               3               4               5 
##   "GISS-E2-1-G"     "CMCC-ESM2" "EC-Earth3-Veg"    "MIROC-ES2L" "CanESM5-CanOE" 
##               6               7               8               9              10 
##    "MRI-ESM2-0" "MPI-ESM1-2-HR"  "IPSL-CM6A-LR"    "CNRM-CM6-1" "CNRM-CM6-1-HR" 
##              11              12 
##   "UKESM1-0-LL"    "ACCESS-CM2" 
## 
## $suggested_gcms$k13
##               1               2               3               4               5 
##    "ACCESS-CM2"    "MIROC-ES2L" "CNRM-CM6-1-HR" "MPI-ESM1-2-HR"   "GISS-E2-1-G" 
##               6               7               8               9              10 
##     "CMCC-ESM2"   "GISS-E2-1-H"    "MRI-ESM2-0"  "IPSL-CM6A-LR" "CanESM5-CanOE" 
##              11              12              13 
##   "UKESM1-0-LL"    "CNRM-CM6-1" "EC-Earth3-Veg" 
## 
## $suggested_gcms$k14
##                 1                 2                 3                 4 
##    "IPSL-CM6A-LR"       "CMCC-ESM2"   "MPI-ESM1-2-HR"      "MRI-ESM2-0" 
##                 5                 6                 7                 8 
##   "CNRM-CM6-1-HR"      "CNRM-CM6-1"      "MIROC-ES2L" "HadGEM3-GC31-LL" 
##                 9                10                11                12 
##      "ACCESS-CM2"     "GISS-E2-1-G"   "CanESM5-CanOE"   "EC-Earth3-Veg" 
##                13                14 
##   "ACCESS-ESM1-5"     "GISS-E2-1-H" 
## 
## $suggested_gcms$k15
##                 1                 2                 3                 4 
##       "INM-CM5-0"       "CMCC-ESM2"   "EC-Earth3-Veg"    "IPSL-CM6A-LR" 
##                 5                 6                 7                 8 
##   "CNRM-CM6-1-HR"   "MPI-ESM1-2-HR"          "MIROC6"      "ACCESS-CM2" 
##                 9                10                11                12 
##      "CNRM-CM6-1"   "ACCESS-ESM1-5"     "GISS-E2-1-G"   "CanESM5-CanOE" 
##                13                14                15 
##      "MIROC-ES2L"     "GISS-E2-1-H" "HadGEM3-GC31-LL" 
## 
## $suggested_gcms$k16
##                 1                 2                 3                 4 
## "HadGEM3-GC31-LL"     "GISS-E2-1-G"   "MPI-ESM1-2-HR"      "MIROC-ES2L" 
##                 5                 6                 7                 8 
##          "MIROC6"   "EC-Earth3-Veg"     "FIO-ESM-2-0"      "ACCESS-CM2" 
##                 9                10                11                12 
##    "IPSL-CM6A-LR"     "GISS-E2-1-H"   "ACCESS-ESM1-5"   "CanESM5-CanOE" 
##                13                14                15                16 
##       "INM-CM5-0"       "CMCC-ESM2"      "CNRM-CM6-1"   "CNRM-CM6-1-HR" 
## 
## $suggested_gcms$k17
##                  1                  2                  3                  4 
##        "CMCC-ESM2"  "HadGEM3-GC31-LL"    "ACCESS-ESM1-5"    "EC-Earth3-Veg" 
##                  5                  6                  7                  8 
##       "ACCESS-CM2"     "IPSL-CM6A-LR"           "MIROC6"       "MIROC-ES2L" 
##                  9                 10                 11                 12 
##      "GISS-E2-1-G"      "GISS-E2-1-H"    "CNRM-CM6-1-HR"      "FIO-ESM-2-0" 
##                 13                 14                 15                 16 
## "EC-Earth3-Veg-LR"       "CNRM-CM6-1"    "MPI-ESM1-2-HR"        "INM-CM5-0" 
##                 17 
##    "CanESM5-CanOE" 
## 
## $suggested_gcms$k18
##                  1                  2                  3                  4 
##       "CNRM-CM6-1"    "MPI-ESM1-2-HR"  "HadGEM3-GC31-LL"      "GISS-E2-1-H" 
##                  5                  6                  7                  8 
##        "INM-CM5-0"    "ACCESS-ESM1-5"    "EC-Earth3-Veg" "EC-Earth3-Veg-LR" 
##                  9                 10                 11                 12 
##    "CanESM5-CanOE"       "MRI-ESM2-0"     "IPSL-CM6A-LR"      "FIO-ESM-2-0" 
##                 13                 14                 15                 16 
##           "MIROC6"    "CNRM-CM6-1-HR"       "ACCESS-CM2"       "MIROC-ES2L" 
##                 17                 18 
##      "GISS-E2-1-G"        "CMCC-ESM2" 
## 
## $suggested_gcms$k19
##                  1                  2                  3                  4 
##       "MIROC-ES2L"       "MRI-ESM2-0" "EC-Earth3-Veg-LR"    "ACCESS-ESM1-5" 
##                  5                  6                  7                  8 
##    "MPI-ESM1-2-LR"           "MIROC6"     "IPSL-CM6A-LR"  "HadGEM3-GC31-LL" 
##                  9                 10                 11                 12 
##    "CNRM-CM6-1-HR"      "GISS-E2-1-G"      "GISS-E2-1-H"    "CanESM5-CanOE" 
##                 13                 14                 15                 16 
##      "FIO-ESM-2-0"        "INM-CM5-0"       "ACCESS-CM2"    "EC-Earth3-Veg" 
##                 17                 18                 19 
##        "CMCC-ESM2"       "CNRM-CM6-1"    "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k20
##                  1                  2                  3                  4 
##    "MPI-ESM1-2-LR"     "IPSL-CM6A-LR"       "ACCESS-CM2"        "INM-CM4-8" 
##                  5                  6                  7                  8 
##    "ACCESS-ESM1-5"           "MIROC6"      "FIO-ESM-2-0" "EC-Earth3-Veg-LR" 
##                  9                 10                 11                 12 
##      "GISS-E2-1-G"        "CMCC-ESM2"  "HadGEM3-GC31-LL"       "MRI-ESM2-0" 
##                 13                 14                 15                 16 
##    "EC-Earth3-Veg"    "CNRM-CM6-1-HR"       "MIROC-ES2L"    "MPI-ESM1-2-HR" 
##                 17                 18                 19                 20 
##       "CNRM-CM6-1"      "GISS-E2-1-H"    "CanESM5-CanOE"        "INM-CM5-0" 
## 
## $suggested_gcms$k21
##                  1                  2                  3                  4 
##        "CMCC-ESM2"      "GISS-E2-1-H"    "MPI-ESM1-2-HR" "EC-Earth3-Veg-LR" 
##                  5                  6                  7                  8 
##       "MRI-ESM2-0"     "IPSL-CM6A-LR"      "GISS-E2-1-G"        "INM-CM4-8" 
##                  9                 10                 11                 12 
##    "ACCESS-ESM1-5"       "CNRM-CM6-1"       "MIROC-ES2L"    "CanESM5-CanOE" 
##                 13                 14                 15                 16 
##      "FIO-ESM-2-0"    "CNRM-CM6-1-HR"  "HadGEM3-GC31-LL"           "MIROC6" 
##                 17                 18                 19                 20 
##    "MPI-ESM1-2-LR"      "UKESM1-0-LL"    "EC-Earth3-Veg"        "INM-CM5-0" 
##                 21 
##       "ACCESS-CM2"
kmeans_300 <- mc_kmeans_300$suggested_gcms$k3
tictoc::toc()
## K-means Clustering 300: 23.46 sec elapsed
tictoc::tic("K-means Clustering 350")
mc_kmeans_350 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer350, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "kmeans")
mc_kmeans_350
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
##               1               2 
##   "CNRM-ESM2-1" "CanESM5-CanOE" 
## 
## $suggested_gcms$k3
##               1               2               3 
##    "MRI-ESM2-0"   "CNRM-ESM2-1" "CanESM5-CanOE" 
## 
## $suggested_gcms$k4
##               1               2               3               4 
##   "CNRM-ESM2-1" "CanESM5-CanOE"    "MRI-ESM2-0" "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k5
##               1               2               3               4               5 
##   "CNRM-ESM2-1" "CanESM5-CanOE"    "MRI-ESM2-0" "MPI-ESM1-2-HR"    "CNRM-CM6-1" 
## 
## $suggested_gcms$k6
##               1               2               3               4               5 
## "CanESM5-CanOE"   "FIO-ESM-2-0"   "CNRM-ESM2-1" "MPI-ESM1-2-HR"    "CNRM-CM6-1" 
##               6 
##   "GISS-E2-1-G" 
## 
## $suggested_gcms$k7
##               1               2               3               4               5 
##   "UKESM1-0-LL"  "IPSL-CM6A-LR"   "GISS-E2-1-G"   "FIO-ESM-2-0" "EC-Earth3-Veg" 
##               6               7 
## "CanESM5-CanOE" "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k8
##               1               2               3               4               5 
## "EC-Earth3-Veg"   "FIO-ESM-2-0"    "MIROC-ES2L" "CanESM5-CanOE" "MPI-ESM1-2-HR" 
##               6               7               8 
##  "IPSL-CM6A-LR"   "GISS-E2-1-G"   "UKESM1-0-LL" 
## 
## $suggested_gcms$k9
##               1               2               3               4               5 
##  "IPSL-CM6A-LR"   "GISS-E2-1-G"   "CNRM-ESM2-1"   "UKESM1-0-LL" "CanESM5-CanOE" 
##               6               7               8               9 
##   "FIO-ESM-2-0" "MPI-ESM1-2-HR"    "CNRM-CM6-1"    "MRI-ESM2-0" 
## 
## $suggested_gcms$k10
##               1               2               3               4               5 
##   "UKESM1-0-LL"   "CNRM-ESM2-1"    "CNRM-CM6-1"    "MIROC-ES2L"   "FIO-ESM-2-0" 
##               6               7               8               9              10 
## "MPI-ESM1-2-HR"  "IPSL-CM6A-LR" "CanESM5-CanOE"    "MRI-ESM2-0"   "GISS-E2-1-G" 
## 
## $suggested_gcms$k11
##               1               2               3               4               5 
## "CNRM-CM6-1-HR"    "CNRM-CM6-1"   "UKESM1-0-LL"   "FIO-ESM-2-0" "CanESM5-CanOE" 
##               6               7               8               9              10 
##    "MRI-ESM2-0"    "MIROC-ES2L" "MPI-ESM1-2-HR"  "IPSL-CM6A-LR" "EC-Earth3-Veg" 
##              11 
##   "GISS-E2-1-G" 
## 
## $suggested_gcms$k12
##               1               2               3               4               5 
##    "MRI-ESM2-0" "CanESM5-CanOE"   "UKESM1-0-LL"    "CNRM-CM6-1"    "ACCESS-CM2" 
##               6               7               8               9              10 
##  "IPSL-CM6A-LR" "EC-Earth3-Veg"     "CMCC-ESM2"    "MIROC-ES2L" "MPI-ESM1-2-HR" 
##              11              12 
## "CNRM-CM6-1-HR"   "GISS-E2-1-G" 
## 
## $suggested_gcms$k13
##               1               2               3               4               5 
##   "UKESM1-0-LL" "CNRM-CM6-1-HR" "EC-Earth3-Veg"  "IPSL-CM6A-LR"   "GISS-E2-1-G" 
##               6               7               8               9              10 
##    "MRI-ESM2-0" "MPI-ESM1-2-HR" "CanESM5-CanOE"   "GISS-E2-1-H"     "CMCC-ESM2" 
##              11              12              13 
##    "CNRM-CM6-1"    "MIROC-ES2L"    "ACCESS-CM2" 
## 
## $suggested_gcms$k14
##                 1                 2                 3                 4 
## "HadGEM3-GC31-LL"    "IPSL-CM6A-LR"     "GISS-E2-1-G"     "GISS-E2-1-H" 
##                 5                 6                 7                 8 
##   "ACCESS-ESM1-5"      "CNRM-CM6-1"       "CMCC-ESM2"      "MIROC-ES2L" 
##                 9                10                11                12 
##      "MRI-ESM2-0"      "ACCESS-CM2"   "EC-Earth3-Veg"   "MPI-ESM1-2-HR" 
##                13                14 
##   "CanESM5-CanOE"   "CNRM-CM6-1-HR" 
## 
## $suggested_gcms$k15
##                 1                 2                 3                 4 
##      "ACCESS-CM2"       "INM-CM5-0"   "MPI-ESM1-2-HR"   "CNRM-CM6-1-HR" 
##                 5                 6                 7                 8 
##          "MIROC6"   "EC-Earth3-Veg" "HadGEM3-GC31-LL"     "GISS-E2-1-G" 
##                 9                10                11                12 
##   "CanESM5-CanOE"   "ACCESS-ESM1-5"      "CNRM-CM6-1"    "IPSL-CM6A-LR" 
##                13                14                15 
##     "GISS-E2-1-H"      "MIROC-ES2L"       "CMCC-ESM2" 
## 
## $suggested_gcms$k16
##                 1                 2                 3                 4 
##      "MIROC-ES2L"      "CNRM-CM6-1"   "MPI-ESM1-2-HR"       "INM-CM5-0" 
##                 5                 6                 7                 8 
##   "ACCESS-ESM1-5"   "EC-Earth3-Veg"      "MRI-ESM2-0"      "ACCESS-CM2" 
##                 9                10                11                12 
##     "GISS-E2-1-G"    "IPSL-CM6A-LR"          "MIROC6"     "GISS-E2-1-H" 
##                13                14                15                16 
## "HadGEM3-GC31-LL"       "CMCC-ESM2"   "CNRM-CM6-1-HR"   "CanESM5-CanOE" 
## 
## $suggested_gcms$k17
##                 1                 2                 3                 4 
##     "FIO-ESM-2-0"      "MIROC-ES2L"   "MPI-ESM1-2-HR"   "EC-Earth3-Veg" 
##                 5                 6                 7                 8 
##       "INM-CM5-0"      "CNRM-CM6-1"      "ACCESS-CM2" "HadGEM3-GC31-LL" 
##                 9                10                11                12 
##          "MIROC6"     "GISS-E2-1-H"      "MRI-ESM2-0"       "CMCC-ESM2" 
##                13                14                15                16 
##   "CanESM5-CanOE"     "GISS-E2-1-G"   "CNRM-CM6-1-HR"   "ACCESS-ESM1-5" 
##                17 
##    "IPSL-CM6A-LR" 
## 
## $suggested_gcms$k18
##                 1                 2                 3                 4 
##      "ACCESS-CM2" "HadGEM3-GC31-LL"      "CNRM-CM6-1"   "CanESM5-CanOE" 
##                 5                 6                 7                 8 
##   "CNRM-CM6-1-HR"   "MPI-ESM1-2-HR"     "GISS-E2-1-H"      "MIROC-ES2L" 
##                 9                10                11                12 
##     "GISS-E2-1-G"       "CMCC-ESM2"          "MIROC6"      "MRI-ESM2-0" 
##                13                14                15                16 
##   "ACCESS-ESM1-5"    "IPSL-CM6A-LR"     "FIO-ESM-2-0"   "EC-Earth3-Veg" 
##                17                18 
##       "INM-CM5-0"   "MPI-ESM1-2-LR" 
## 
## $suggested_gcms$k19
##                  1                  2                  3                  4 
##        "CMCC-ESM2"           "MIROC6"      "GISS-E2-1-H"    "ACCESS-ESM1-5" 
##                  5                  6                  7                  8 
##     "IPSL-CM6A-LR"       "ACCESS-CM2"    "MPI-ESM1-2-HR" "EC-Earth3-Veg-LR" 
##                  9                 10                 11                 12 
##      "GISS-E2-1-G"    "CNRM-CM6-1-HR"    "CanESM5-CanOE"       "CNRM-CM6-1" 
##                 13                 14                 15                 16 
##    "MPI-ESM1-2-LR"       "MIROC-ES2L"      "FIO-ESM-2-0"    "EC-Earth3-Veg" 
##                 17                 18                 19 
##       "MRI-ESM2-0"  "HadGEM3-GC31-LL"        "INM-CM5-0" 
## 
## $suggested_gcms$k20
##                  1                  2                  3                  4 
##       "MRI-ESM2-0"      "FIO-ESM-2-0"        "CMCC-ESM2"       "CNRM-CM6-1" 
##                  5                  6                  7                  8 
##       "MIROC-ES2L"      "GISS-E2-1-H"    "MPI-ESM1-2-LR"           "MIROC6" 
##                  9                 10                 11                 12 
##       "ACCESS-CM2"        "INM-CM4-8"        "INM-CM5-0"    "MPI-ESM1-2-HR" 
##                 13                 14                 15                 16 
##     "IPSL-CM6A-LR"    "CanESM5-CanOE" "EC-Earth3-Veg-LR"  "HadGEM3-GC31-LL" 
##                 17                 18                 19                 20 
##    "CNRM-CM6-1-HR"    "EC-Earth3-Veg"    "ACCESS-ESM1-5"      "GISS-E2-1-G" 
## 
## $suggested_gcms$k21
##                  1                  2                  3                  4 
##      "CNRM-ESM2-1"    "MPI-ESM1-2-HR"      "GISS-E2-1-G"       "MIROC-ES2L" 
##                  5                  6                  7                  8 
##    "MPI-ESM1-2-LR"    "ACCESS-ESM1-5"  "HadGEM3-GC31-LL"    "CNRM-CM6-1-HR" 
##                  9                 10                 11                 12 
##    "CanESM5-CanOE"      "FIO-ESM-2-0"        "INM-CM5-0"     "IPSL-CM6A-LR" 
##                 13                 14                 15                 16 
##       "CNRM-CM6-1"       "MRI-ESM2-0"        "CMCC-ESM2"    "EC-Earth3-Veg" 
##                 17                 18                 19                 20 
##      "GISS-E2-1-H"        "INM-CM4-8"       "ACCESS-CM2" "EC-Earth3-Veg-LR" 
##                 21 
##           "MIROC6"
kmeans_350 <- mc_kmeans_350$suggested_gcms$k3
tictoc::toc()
## K-means Clustering 350: 23.938 sec elapsed
tictoc::tic("K-means Clustering 400")
mc_kmeans_400 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer400, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "kmeans")
mc_kmeans_400
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
##               1               2 
## "CanESM5-CanOE"   "CNRM-ESM2-1" 
## 
## $suggested_gcms$k3
##               1               2               3 
##   "CNRM-ESM2-1" "CanESM5-CanOE"    "MRI-ESM2-0" 
## 
## $suggested_gcms$k4
##               1               2               3               4 
## "CanESM5-CanOE"   "CNRM-ESM2-1" "MPI-ESM1-2-HR"    "MRI-ESM2-0" 
## 
## $suggested_gcms$k5
##               1               2               3               4               5 
## "MPI-ESM1-2-HR"    "CNRM-CM6-1"    "MRI-ESM2-0" "CanESM5-CanOE"   "UKESM1-0-LL" 
## 
## $suggested_gcms$k6
##               1               2               3               4               5 
##    "MRI-ESM2-0" "MPI-ESM1-2-HR"   "FIO-ESM-2-0"    "CNRM-CM6-1" "CanESM5-CanOE" 
##               6 
##   "UKESM1-0-LL" 
## 
## $suggested_gcms$k7
##               1               2               3               4               5 
## "CanESM5-CanOE" "MPI-ESM1-2-HR" "EC-Earth3-Veg"    "MRI-ESM2-0"   "UKESM1-0-LL" 
##               6               7 
##   "FIO-ESM-2-0"  "IPSL-CM6A-LR" 
## 
## $suggested_gcms$k8
##               1               2               3               4               5 
##   "UKESM1-0-LL"  "IPSL-CM6A-LR"   "FIO-ESM-2-0" "EC-Earth3-Veg"    "MIROC-ES2L" 
##               6               7               8 
## "MPI-ESM1-2-HR" "CanESM5-CanOE"   "GISS-E2-1-G" 
## 
## $suggested_gcms$k9
##               1               2               3               4               5 
##  "IPSL-CM6A-LR"   "UKESM1-0-LL"   "FIO-ESM-2-0"    "MIROC-ES2L" "CanESM5-CanOE" 
##               6               7               8               9 
##   "CNRM-ESM2-1"    "CNRM-CM6-1"   "GISS-E2-1-G" "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k10
##               1               2               3               4               5 
##    "MRI-ESM2-0"   "FIO-ESM-2-0" "MPI-ESM1-2-HR"  "IPSL-CM6A-LR"   "UKESM1-0-LL" 
##               6               7               8               9              10 
##   "CNRM-ESM2-1"   "GISS-E2-1-G"    "CNRM-CM6-1" "CanESM5-CanOE"    "MIROC-ES2L" 
## 
## $suggested_gcms$k11
##               1               2               3               4               5 
## "CanESM5-CanOE" "MPI-ESM1-2-HR"   "GISS-E2-1-G"    "MIROC-ES2L"    "ACCESS-CM2" 
##               6               7               8               9              10 
##   "CNRM-ESM2-1"    "MRI-ESM2-0"  "IPSL-CM6A-LR"   "UKESM1-0-LL"     "CMCC-ESM2" 
##              11 
##    "CNRM-CM6-1" 
## 
## $suggested_gcms$k12
##               1               2               3               4               5 
## "MPI-ESM1-2-HR"    "MRI-ESM2-0"    "CNRM-CM6-1"   "UKESM1-0-LL"    "MIROC-ES2L" 
##               6               7               8               9              10 
## "CNRM-CM6-1-HR"   "GISS-E2-1-G"     "CMCC-ESM2"    "ACCESS-CM2" "EC-Earth3-Veg" 
##              11              12 
##  "IPSL-CM6A-LR" "CanESM5-CanOE" 
## 
## $suggested_gcms$k13
##               1               2               3               4               5 
##    "ACCESS-CM2"   "GISS-E2-1-H" "CanESM5-CanOE" "MPI-ESM1-2-HR"    "MRI-ESM2-0" 
##               6               7               8               9              10 
##   "UKESM1-0-LL"     "CMCC-ESM2" "EC-Earth3-Veg"    "CNRM-CM6-1" "CNRM-CM6-1-HR" 
##              11              12              13 
##   "GISS-E2-1-G"  "IPSL-CM6A-LR"    "MIROC-ES2L" 
## 
## $suggested_gcms$k14
##               1               2               3               4               5 
##     "CMCC-ESM2" "CNRM-CM6-1-HR"  "IPSL-CM6A-LR"    "ACCESS-CM2" "EC-Earth3-Veg" 
##               6               7               8               9              10 
##    "CNRM-CM6-1" "CanESM5-CanOE"     "INM-CM5-0"        "MIROC6"   "GISS-E2-1-G" 
##              11              12              13              14 
##   "GISS-E2-1-H"   "UKESM1-0-LL"    "MIROC-ES2L" "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k15
##                 1                 2                 3                 4 
##      "MIROC-ES2L"   "CNRM-CM6-1-HR"     "GISS-E2-1-G"   "EC-Earth3-Veg" 
##                 5                 6                 7                 8 
##      "ACCESS-CM2"       "INM-CM5-0"      "CNRM-CM6-1"          "MIROC6" 
##                 9                10                11                12 
##   "MPI-ESM1-2-HR"     "GISS-E2-1-H" "HadGEM3-GC31-LL"       "CMCC-ESM2" 
##                13                14                15 
##   "ACCESS-ESM1-5"    "IPSL-CM6A-LR"   "CanESM5-CanOE" 
## 
## $suggested_gcms$k16
##                 1                 2                 3                 4 
##    "IPSL-CM6A-LR"      "ACCESS-CM2"   "CanESM5-CanOE"   "ACCESS-ESM1-5" 
##                 5                 6                 7                 8 
##   "CNRM-CM6-1-HR"     "GISS-E2-1-H"       "CMCC-ESM2"   "MPI-ESM1-2-HR" 
##                 9                10                11                12 
##     "GISS-E2-1-G"      "CNRM-CM6-1"      "MIROC-ES2L"      "MRI-ESM2-0" 
##                13                14                15                16 
## "HadGEM3-GC31-LL"   "EC-Earth3-Veg"          "MIROC6"       "INM-CM5-0" 
## 
## $suggested_gcms$k17
##                 1                 2                 3                 4 
##       "INM-CM5-0"   "EC-Earth3-Veg"   "CanESM5-CanOE"      "ACCESS-CM2" 
##                 5                 6                 7                 8 
##   "MPI-ESM1-2-LR"          "MIROC6"   "MPI-ESM1-2-HR" "HadGEM3-GC31-LL" 
##                 9                10                11                12 
##       "CMCC-ESM2"   "ACCESS-ESM1-5"     "GISS-E2-1-G"    "IPSL-CM6A-LR" 
##                13                14                15                16 
##   "CNRM-CM6-1-HR"     "GISS-E2-1-H"      "MIROC-ES2L"      "CNRM-CM6-1" 
##                17 
##      "MRI-ESM2-0" 
## 
## $suggested_gcms$k18
##                  1                  2                  3                  4 
##    "CanESM5-CanOE"    "ACCESS-ESM1-5"       "CNRM-CM6-1"    "MPI-ESM1-2-LR" 
##                  5                  6                  7                  8 
##     "IPSL-CM6A-LR"       "ACCESS-CM2"      "GISS-E2-1-G"       "MRI-ESM2-0" 
##                  9                 10                 11                 12 
##    "CNRM-CM6-1-HR"    "EC-Earth3-Veg"        "CMCC-ESM2"      "GISS-E2-1-H" 
##                 13                 14                 15                 16 
##  "HadGEM3-GC31-LL"    "MPI-ESM1-2-HR"           "MIROC6" "EC-Earth3-Veg-LR" 
##                 17                 18 
##        "INM-CM5-0"       "MIROC-ES2L" 
## 
## $suggested_gcms$k19
##                  1                  2                  3                  4 
##  "HadGEM3-GC31-LL"    "CanESM5-CanOE"    "EC-Earth3-Veg"       "ACCESS-CM2" 
##                  5                  6                  7                  8 
##    "CNRM-CM6-1-HR"       "MRI-ESM2-0"      "GISS-E2-1-H"    "ACCESS-ESM1-5" 
##                  9                 10                 11                 12 
##       "CNRM-CM6-1"        "INM-CM5-0"       "MIROC-ES2L" "EC-Earth3-Veg-LR" 
##                 13                 14                 15                 16 
##    "MPI-ESM1-2-LR"     "IPSL-CM6A-LR"           "MIROC6"        "CMCC-ESM2" 
##                 17                 18                 19 
##    "MPI-ESM1-2-HR"      "FIO-ESM-2-0"      "GISS-E2-1-G" 
## 
## $suggested_gcms$k20
##                  1                  2                  3                  4 
##       "MRI-ESM2-0"    "CNRM-CM6-1-HR"        "CMCC-ESM2"       "MIROC-ES2L" 
##                  5                  6                  7                  8 
##    "MPI-ESM1-2-HR"      "GISS-E2-1-H" "EC-Earth3-Veg-LR"  "HadGEM3-GC31-LL" 
##                  9                 10                 11                 12 
##    "EC-Earth3-Veg"           "MIROC6"        "INM-CM4-8"       "ACCESS-CM2" 
##                 13                 14                 15                 16 
##      "GISS-E2-1-G"     "IPSL-CM6A-LR"       "CNRM-CM6-1"    "ACCESS-ESM1-5" 
##                 17                 18                 19                 20 
##    "MPI-ESM1-2-LR"        "INM-CM5-0"    "CanESM5-CanOE"      "FIO-ESM-2-0" 
## 
## $suggested_gcms$k21
##                  1                  2                  3                  4 
##     "IPSL-CM6A-LR"       "CNRM-CM6-1"        "INM-CM4-8"       "MRI-ESM2-0" 
##                  5                  6                  7                  8 
##  "HadGEM3-GC31-LL"    "CNRM-CM6-1-HR"       "MIROC-ES2L"           "MIROC6" 
##                  9                 10                 11                 12 
##       "ACCESS-CM2"        "CMCC-ESM2"    "CanESM5-CanOE"      "FIO-ESM-2-0" 
##                 13                 14                 15                 16 
##      "GISS-E2-1-H"      "GISS-E2-1-G"    "MPI-ESM1-2-LR"    "EC-Earth3-Veg" 
##                 17                 18                 19                 20 
## "EC-Earth3-Veg-LR"      "CNRM-ESM2-1"    "MPI-ESM1-2-HR"        "INM-CM5-0" 
##                 21 
##    "ACCESS-ESM1-5"
kmeans_400 <- mc_kmeans_400$suggested_gcms$k3
tictoc::toc()
## K-means Clustering 400: 23.766 sec elapsed
tictoc::tic("K-means Clustering 450")
mc_kmeans_450 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer450, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "kmeans")
mc_kmeans_450
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
##               1               2 
## "CanESM5-CanOE"   "CNRM-ESM2-1" 
## 
## $suggested_gcms$k3
##               1               2               3 
## "CanESM5-CanOE"   "CNRM-ESM2-1"    "MRI-ESM2-0" 
## 
## $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 
##   "UKESM1-0-LL" "MPI-ESM1-2-HR" "CanESM5-CanOE"    "MRI-ESM2-0"    "CNRM-CM6-1" 
## 
## $suggested_gcms$k6
##               1               2               3               4               5 
## "MPI-ESM1-2-HR"   "UKESM1-0-LL" "CanESM5-CanOE"    "CNRM-CM6-1"    "MRI-ESM2-0" 
##               6 
##   "FIO-ESM-2-0" 
## 
## $suggested_gcms$k7
##               1               2               3               4               5 
##   "FIO-ESM-2-0" "CanESM5-CanOE" "EC-Earth3-Veg"   "UKESM1-0-LL"  "IPSL-CM6A-LR" 
##               6               7 
##    "MRI-ESM2-0" "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k8
##               1               2               3               4               5 
## "CanESM5-CanOE"    "MIROC-ES2L"   "GISS-E2-1-G"   "FIO-ESM-2-0" "MPI-ESM1-2-HR" 
##               6               7               8 
##   "UKESM1-0-LL" "EC-Earth3-Veg"  "IPSL-CM6A-LR" 
## 
## $suggested_gcms$k9
##               1               2               3               4               5 
## "CanESM5-CanOE"    "MIROC-ES2L"   "CNRM-ESM2-1"   "FIO-ESM-2-0"    "CNRM-CM6-1" 
##               6               7               8               9 
##  "IPSL-CM6A-LR"   "UKESM1-0-LL"   "GISS-E2-1-G" "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k10
##               1               2               3               4               5 
##   "GISS-E2-1-G"   "UKESM1-0-LL"   "CNRM-ESM2-1"    "CNRM-CM6-1"  "IPSL-CM6A-LR" 
##               6               7               8               9              10 
##   "FIO-ESM-2-0" "MPI-ESM1-2-HR"    "MIROC-ES2L"   "GISS-E2-1-H" "CanESM5-CanOE" 
## 
## $suggested_gcms$k11
##               1               2               3               4               5 
##     "CMCC-ESM2"   "GISS-E2-1-G"    "CNRM-CM6-1"   "GISS-E2-1-H" "CanESM5-CanOE" 
##               6               7               8               9              10 
##   "CNRM-ESM2-1" "MPI-ESM1-2-HR"    "MIROC-ES2L"    "ACCESS-CM2"   "UKESM1-0-LL" 
##              11 
##  "IPSL-CM6A-LR" 
## 
## $suggested_gcms$k12
##               1               2               3               4               5 
##   "UKESM1-0-LL"    "MIROC-ES2L"  "IPSL-CM6A-LR" "EC-Earth3-Veg" "CanESM5-CanOE" 
##               6               7               8               9              10 
##    "ACCESS-CM2" "MPI-ESM1-2-HR"   "GISS-E2-1-G" "CNRM-CM6-1-HR"   "GISS-E2-1-H" 
##              11              12 
##     "CMCC-ESM2"    "CNRM-CM6-1" 
## 
## $suggested_gcms$k13
##               1               2               3               4               5 
##   "GISS-E2-1-H" "MPI-ESM1-2-HR"   "UKESM1-0-LL"  "IPSL-CM6A-LR" "CanESM5-CanOE" 
##               6               7               8               9              10 
## "CNRM-CM6-1-HR"    "ACCESS-CM2" "EC-Earth3-Veg"   "GISS-E2-1-G"     "CMCC-ESM2" 
##              11              12              13 
##     "INM-CM5-0"    "CNRM-CM6-1"    "MIROC-ES2L" 
## 
## $suggested_gcms$k14
##               1               2               3               4               5 
##   "UKESM1-0-LL"  "IPSL-CM6A-LR" "MPI-ESM1-2-LR"    "CNRM-CM6-1" "EC-Earth3-Veg" 
##               6               7               8               9              10 
##     "CMCC-ESM2"    "MIROC-ES2L"   "GISS-E2-1-G"    "ACCESS-CM2" "CNRM-CM6-1-HR" 
##              11              12              13              14 
## "CanESM5-CanOE"     "INM-CM5-0" "MPI-ESM1-2-HR"   "GISS-E2-1-H" 
## 
## $suggested_gcms$k15
##                 1                 2                 3                 4 
##   "ACCESS-ESM1-5"      "CNRM-CM6-1"     "GISS-E2-1-G"       "INM-CM5-0" 
##                 5                 6                 7                 8 
## "HadGEM3-GC31-LL"      "ACCESS-CM2"      "MIROC-ES2L"    "IPSL-CM6A-LR" 
##                 9                10                11                12 
##     "GISS-E2-1-H"   "MPI-ESM1-2-HR"   "EC-Earth3-Veg"   "CanESM5-CanOE" 
##                13                14                15 
##       "CMCC-ESM2"   "CNRM-CM6-1-HR"   "MPI-ESM1-2-LR" 
## 
## $suggested_gcms$k16
##                 1                 2                 3                 4 
##   "MPI-ESM1-2-HR"      "MIROC-ES2L"   "EC-Earth3-Veg"     "GISS-E2-1-H" 
##                 5                 6                 7                 8 
##       "INM-CM5-0"     "GISS-E2-1-G" "HadGEM3-GC31-LL"   "CNRM-CM6-1-HR" 
##                 9                10                11                12 
##      "MRI-ESM2-0"      "CNRM-CM6-1"      "ACCESS-CM2"   "CanESM5-CanOE" 
##                13                14                15                16 
##   "MPI-ESM1-2-LR"       "CMCC-ESM2"   "ACCESS-ESM1-5"    "IPSL-CM6A-LR" 
## 
## $suggested_gcms$k17
##                 1                 2                 3                 4 
##    "IPSL-CM6A-LR"      "MIROC-ES2L"   "MPI-ESM1-2-HR"   "MPI-ESM1-2-LR" 
##                 5                 6                 7                 8 
##   "EC-Earth3-Veg"     "GISS-E2-1-G"          "MIROC6"      "ACCESS-CM2" 
##                 9                10                11                12 
##   "CNRM-CM6-1-HR"     "GISS-E2-1-H"       "CMCC-ESM2"   "ACCESS-ESM1-5" 
##                13                14                15                16 
##      "MRI-ESM2-0" "HadGEM3-GC31-LL"      "CNRM-CM6-1"   "CanESM5-CanOE" 
##                17 
##       "INM-CM5-0" 
## 
## $suggested_gcms$k18
##                 1                 2                 3                 4 
##       "INM-CM5-0"    "IPSL-CM6A-LR" "HadGEM3-GC31-LL"   "CanESM5-CanOE" 
##                 5                 6                 7                 8 
##      "ACCESS-CM2"          "MIROC6"     "GISS-E2-1-H"   "MPI-ESM1-2-LR" 
##                 9                10                11                12 
##   "MPI-ESM1-2-HR"   "EC-Earth3-Veg"   "CNRM-CM6-1-HR"      "CNRM-CM6-1" 
##                13                14                15                16 
##       "CMCC-ESM2"   "ACCESS-ESM1-5"       "INM-CM4-8"      "MIROC-ES2L" 
##                17                18 
##     "GISS-E2-1-G"      "MRI-ESM2-0" 
## 
## $suggested_gcms$k19
##                  1                  2                  3                  4 
##    "CNRM-CM6-1-HR"       "MIROC-ES2L"       "CNRM-CM6-1"      "GISS-E2-1-G" 
##                  5                  6                  7                  8 
##    "EC-Earth3-Veg"        "CMCC-ESM2"        "INM-CM5-0"    "CanESM5-CanOE" 
##                  9                 10                 11                 12 
##       "MRI-ESM2-0"       "ACCESS-CM2"      "GISS-E2-1-H"    "MPI-ESM1-2-LR" 
##                 13                 14                 15                 16 
##           "MIROC6"        "INM-CM4-8"    "ACCESS-ESM1-5" "EC-Earth3-Veg-LR" 
##                 17                 18                 19 
##  "HadGEM3-GC31-LL"     "IPSL-CM6A-LR"    "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k20
##                  1                  2                  3                  4 
##       "ACCESS-CM2"       "MRI-ESM2-0"    "MPI-ESM1-2-LR"       "CNRM-CM6-1" 
##                  5                  6                  7                  8 
##    "ACCESS-ESM1-5"    "EC-Earth3-Veg"      "FIO-ESM-2-0"      "GISS-E2-1-H" 
##                  9                 10                 11                 12 
##       "MIROC-ES2L"  "HadGEM3-GC31-LL"    "CanESM5-CanOE"    "MPI-ESM1-2-HR" 
##                 13                 14                 15                 16 
##      "GISS-E2-1-G"        "INM-CM5-0"           "MIROC6"    "CNRM-CM6-1-HR" 
##                 17                 18                 19                 20 
## "EC-Earth3-Veg-LR"        "CMCC-ESM2"        "INM-CM4-8"     "IPSL-CM6A-LR" 
## 
## $suggested_gcms$k21
##                  1                  2                  3                  4 
##      "CNRM-ESM2-1"    "MPI-ESM1-2-LR"    "ACCESS-ESM1-5"      "GISS-E2-1-H" 
##                  5                  6                  7                  8 
##       "MIROC-ES2L"    "MPI-ESM1-2-HR"      "GISS-E2-1-G"    "EC-Earth3-Veg" 
##                  9                 10                 11                 12 
##       "CNRM-CM6-1"      "FIO-ESM-2-0"       "ACCESS-CM2"    "CanESM5-CanOE" 
##                 13                 14                 15                 16 
## "EC-Earth3-Veg-LR"    "CNRM-CM6-1-HR"        "INM-CM4-8"        "CMCC-ESM2" 
##                 17                 18                 19                 20 
##        "INM-CM5-0"       "MRI-ESM2-0"           "MIROC6"  "HadGEM3-GC31-LL" 
##                 21 
##     "IPSL-CM6A-LR"
kmeans_450 <- mc_kmeans_450$suggested_gcms$k3
tictoc::toc()
## K-means Clustering 450: 24.206 sec elapsed
tictoc::tic("K-means Clustering 500")
mc_kmeans_500 <- montecarlo_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer500, 
                             scale = TRUE,
                             perm = 10000, 
                             dist_method = "euclidean", 
                             clustering_method = "kmeans")
mc_kmeans_500
## $montecarlo_plot

## 
## $suggested_gcms
## $suggested_gcms$k2
##               1               2 
##   "CNRM-ESM2-1" "CanESM5-CanOE" 
## 
## $suggested_gcms$k3
##               1               2               3 
##   "CNRM-ESM2-1"    "MRI-ESM2-0" "CanESM5-CanOE" 
## 
## $suggested_gcms$k4
##               1               2               3               4 
##    "MRI-ESM2-0" "MPI-ESM1-2-HR"   "CNRM-ESM2-1" "CanESM5-CanOE" 
## 
## $suggested_gcms$k5
##               1               2               3               4               5 
## "CanESM5-CanOE"    "CNRM-CM6-1" "MPI-ESM1-2-HR"    "MRI-ESM2-0"   "UKESM1-0-LL" 
## 
## $suggested_gcms$k6
##               1               2               3               4               5 
## "EC-Earth3-Veg"     "INM-CM4-8" "CanESM5-CanOE"   "UKESM1-0-LL"    "MRI-ESM2-0" 
##               6 
## "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k7
##               1               2               3               4               5 
##    "MRI-ESM2-0" "MPI-ESM1-2-HR" "EC-Earth3-Veg"   "FIO-ESM-2-0" "CanESM5-CanOE" 
##               6               7 
##     "INM-CM4-8"   "UKESM1-0-LL" 
## 
## $suggested_gcms$k8
##               1               2               3               4               5 
##   "GISS-E2-1-G"   "UKESM1-0-LL" "EC-Earth3-Veg" "CanESM5-CanOE"     "INM-CM4-8" 
##               6               7               8 
##    "MIROC-ES2L" "MPI-ESM1-2-HR"   "FIO-ESM-2-0" 
## 
## $suggested_gcms$k9
##               1               2               3               4               5 
##   "CNRM-ESM2-1"   "FIO-ESM-2-0"    "MIROC-ES2L"   "GISS-E2-1-G" "CanESM5-CanOE" 
##               6               7               8               9 
##    "CNRM-CM6-1" "MPI-ESM1-2-HR"  "IPSL-CM6A-LR"   "UKESM1-0-LL" 
## 
## $suggested_gcms$k10
##               1               2               3               4               5 
##    "MIROC-ES2L"    "CNRM-CM6-1"   "GISS-E2-1-G" "CanESM5-CanOE"   "UKESM1-0-LL" 
##               6               7               8               9              10 
##   "GISS-E2-1-H" "MPI-ESM1-2-HR"   "CNRM-ESM2-1"  "IPSL-CM6A-LR"   "FIO-ESM-2-0" 
## 
## $suggested_gcms$k11
##               1               2               3               4               5 
##    "MIROC-ES2L"     "CMCC-ESM2"   "UKESM1-0-LL"   "GISS-E2-1-G"    "CNRM-CM6-1" 
##               6               7               8               9              10 
##   "GISS-E2-1-H"    "ACCESS-CM2"  "IPSL-CM6A-LR" "MPI-ESM1-2-HR" "CanESM5-CanOE" 
##              11 
##   "CNRM-ESM2-1" 
## 
## $suggested_gcms$k12
##               1               2               3               4               5 
##   "UKESM1-0-LL" "CanESM5-CanOE"    "MIROC-ES2L" "EC-Earth3-Veg"   "GISS-E2-1-G" 
##               6               7               8               9              10 
##     "CMCC-ESM2" "MPI-ESM1-2-HR"  "IPSL-CM6A-LR"   "GISS-E2-1-H"    "CNRM-CM6-1" 
##              11              12 
##    "ACCESS-CM2" "CNRM-CM6-1-HR" 
## 
## $suggested_gcms$k13
##               1               2               3               4               5 
##     "CMCC-ESM2"   "UKESM1-0-LL" "CNRM-CM6-1-HR" "EC-Earth3-Veg" "CanESM5-CanOE" 
##               6               7               8               9              10 
##  "IPSL-CM6A-LR"    "MIROC-ES2L" "MPI-ESM1-2-HR"   "GISS-E2-1-G"    "ACCESS-CM2" 
##              11              12              13 
##   "GISS-E2-1-H"     "INM-CM5-0"    "CNRM-CM6-1" 
## 
## $suggested_gcms$k14
##               1               2               3               4               5 
## "EC-Earth3-Veg"   "GISS-E2-1-H"    "MIROC-ES2L"  "IPSL-CM6A-LR"   "UKESM1-0-LL" 
##               6               7               8               9              10 
##     "INM-CM5-0"   "GISS-E2-1-G" "CNRM-CM6-1-HR" "MPI-ESM1-2-LR"    "CNRM-CM6-1" 
##              11              12              13              14 
##     "CMCC-ESM2"    "ACCESS-CM2" "MPI-ESM1-2-HR" "CanESM5-CanOE" 
## 
## $suggested_gcms$k15
##               1               2               3               4               5 
##   "GISS-E2-1-H"  "IPSL-CM6A-LR" "MPI-ESM1-2-HR"    "MIROC-ES2L"   "UKESM1-0-LL" 
##               6               7               8               9              10 
## "EC-Earth3-Veg"    "CNRM-CM6-1" "CanESM5-CanOE" "MPI-ESM1-2-LR"    "MRI-ESM2-0" 
##              11              12              13              14              15 
##   "GISS-E2-1-G"     "INM-CM5-0"    "ACCESS-CM2"     "CMCC-ESM2" "CNRM-CM6-1-HR" 
## 
## $suggested_gcms$k16
##               1               2               3               4               5 
##   "UKESM1-0-LL" "MPI-ESM1-2-LR" "CNRM-CM6-1-HR"        "MIROC6"     "CMCC-ESM2" 
##               6               7               8               9              10 
##    "MIROC-ES2L"  "IPSL-CM6A-LR"    "MRI-ESM2-0"    "CNRM-CM6-1"   "GISS-E2-1-G" 
##              11              12              13              14              15 
## "EC-Earth3-Veg" "CanESM5-CanOE"    "ACCESS-CM2"     "INM-CM5-0"   "GISS-E2-1-H" 
##              16 
## "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k17
##                 1                 2                 3                 4 
##      "MRI-ESM2-0"    "IPSL-CM6A-LR"      "ACCESS-CM2"     "GISS-E2-1-G" 
##                 5                 6                 7                 8 
##   "EC-Earth3-Veg"      "CNRM-CM6-1"          "MIROC6"      "MIROC-ES2L" 
##                 9                10                11                12 
##   "CNRM-CM6-1-HR"       "CMCC-ESM2"   "ACCESS-ESM1-5"     "GISS-E2-1-H" 
##                13                14                15                16 
##   "MPI-ESM1-2-HR"   "CanESM5-CanOE" "HadGEM3-GC31-LL"   "MPI-ESM1-2-LR" 
##                17 
##       "INM-CM5-0" 
## 
## $suggested_gcms$k18
##                 1                 2                 3                 4 
##      "ACCESS-CM2"       "CMCC-ESM2"      "CNRM-CM6-1"      "MRI-ESM2-0" 
##                 5                 6                 7                 8 
##          "MIROC6"     "GISS-E2-1-H"   "CanESM5-CanOE"    "IPSL-CM6A-LR" 
##                 9                10                11                12 
##      "MIROC-ES2L"       "INM-CM4-8"   "CNRM-CM6-1-HR" "HadGEM3-GC31-LL" 
##                13                14                15                16 
##   "EC-Earth3-Veg"   "MPI-ESM1-2-LR"     "GISS-E2-1-G"   "ACCESS-ESM1-5" 
##                17                18 
##       "INM-CM5-0"   "MPI-ESM1-2-HR" 
## 
## $suggested_gcms$k19
##                  1                  2                  3                  4 
##    "EC-Earth3-Veg"      "GISS-E2-1-H"  "HadGEM3-GC31-LL"    "CNRM-CM6-1-HR" 
##                  5                  6                  7                  8 
## "EC-Earth3-Veg-LR"        "INM-CM5-0"        "CMCC-ESM2"       "ACCESS-CM2" 
##                  9                 10                 11                 12 
##       "CNRM-CM6-1"    "MPI-ESM1-2-HR"        "INM-CM4-8"     "IPSL-CM6A-LR" 
##                 13                 14                 15                 16 
##    "MPI-ESM1-2-LR"       "MRI-ESM2-0"       "MIROC-ES2L"    "CanESM5-CanOE" 
##                 17                 18                 19 
##    "ACCESS-ESM1-5"      "GISS-E2-1-G"           "MIROC6" 
## 
## $suggested_gcms$k20
##                  1                  2                  3                  4 
##      "GISS-E2-1-H"       "MRI-ESM2-0"        "INM-CM5-0"    "CNRM-CM6-1-HR" 
##                  5                  6                  7                  8 
##           "MIROC6"    "MPI-ESM1-2-HR"      "FIO-ESM-2-0"     "IPSL-CM6A-LR" 
##                  9                 10                 11                 12 
##    "EC-Earth3-Veg"    "CanESM5-CanOE"    "MPI-ESM1-2-LR"       "CNRM-CM6-1" 
##                 13                 14                 15                 16 
## "EC-Earth3-Veg-LR"       "ACCESS-CM2"        "CMCC-ESM2"      "GISS-E2-1-G" 
##                 17                 18                 19                 20 
##       "MIROC-ES2L"    "ACCESS-ESM1-5"        "INM-CM4-8"  "HadGEM3-GC31-LL" 
## 
## $suggested_gcms$k21
##                  1                  2                  3                  4 
##           "MIROC6"    "CNRM-CM6-1-HR"      "GISS-E2-1-H"       "ACCESS-CM2" 
##                  5                  6                  7                  8 
##  "HadGEM3-GC31-LL" "EC-Earth3-Veg-LR"    "MPI-ESM1-2-LR"     "IPSL-CM6A-LR" 
##                  9                 10                 11                 12 
##      "CNRM-ESM2-1"        "CMCC-ESM2"       "MIROC-ES2L"    "MPI-ESM1-2-HR" 
##                 13                 14                 15                 16 
##      "FIO-ESM-2-0"       "MRI-ESM2-0"    "ACCESS-ESM1-5"    "CanESM5-CanOE" 
##                 17                 18                 19                 20 
##        "INM-CM5-0"      "GISS-E2-1-G"    "EC-Earth3-Veg"       "CNRM-CM6-1" 
##                 21 
##        "INM-CM4-8"
kmeans_500 <- mc_kmeans_500$suggested_gcms$k3
tictoc::toc()
## K-means Clustering 500: 23.864 sec elapsed

Closestdist selection

tictoc::tic("Closestdist 50")
mc_closestdist_50 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer50, 
                             method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_50
## $suggested_gcms
## [1] "CMCC-ESM2"     "UKESM1-0-LL"   "IPSL-CM6A-LR"  "EC-Earth3-Veg"
## 
## $best_mean_diff
## [1] 0.0002753937
## 
## $global_mean
## [1] 21.36352
closestdist_50 <- mc_closestdist_50$suggested_gcms
tictoc::toc()
## Closestdist 50: 1.714 sec elapsed
tictoc::tic("Closestdist 100")
mc_closestdist_100 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer100, 
                             method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_100
## $suggested_gcms
## [1] "MIROC-ES2L"    "MPI-ESM1-2-HR" "MIROC6"        "MRI-ESM2-0"   
## 
## $best_mean_diff
## [1] 0.0003074422
## 
## $global_mean
## [1] 24.97621
closestdist_100 <- mc_closestdist_100$suggested_gcms
tictoc::toc()
## Closestdist 100: 1.789 sec elapsed
tictoc::tic("Closestdist 150")
mc_closestdist_150 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer150, 
                             method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_150
## $suggested_gcms
## [1] "CanESM5-CanOE" "GISS-E2-1-G"   "INM-CM4-8"     "IPSL-CM6A-LR" 
## [5] "MPI-ESM1-2-LR" "CNRM-CM6-1"    "MIROC-ES2L"    "CNRM-CM6-1-HR"
## 
## $best_mean_diff
## [1] 0.0002528288
## 
## $global_mean
## [1] 27.75368
closestdist_150 <- mc_closestdist_150$suggested_gcms
tictoc::toc()
## Closestdist 150: 1.853 sec elapsed
tictoc::tic("Closestdist 200")
mc_closestdist_200 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer200, 
                             method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_200
## $suggested_gcms
## [1] "CMCC-ESM2"     "MPI-ESM1-2-HR" "FIO-ESM-2-0"   "ACCESS-CM2"   
## [5] "GISS-E2-1-G"   "INM-CM5-0"    
## 
## $best_mean_diff
## [1] 0.0005333435
## 
## $global_mean
## [1] 30.15712
closestdist_200 <- mc_closestdist_200$suggested_gcms
tictoc::toc()
## Closestdist 200: 1.965 sec elapsed
tictoc::tic("Closestdist 250")
mc_closestdist_250 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer250, 
                             method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_250
## $suggested_gcms
## [1] "MIROC6"           "MRI-ESM2-0"       "IPSL-CM6A-LR"     "ACCESS-CM2"      
## [5] "EC-Earth3-Veg-LR"
## 
## $best_mean_diff
## [1] 0.0001436473
## 
## $global_mean
## [1] 32.34868
closestdist_250 <- mc_closestdist_250$suggested_gcms
tictoc::toc()
## Closestdist 250: 2.007 sec elapsed
tictoc::tic("Closestdist 300")
mc_closestdist_300 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer300, 
                             method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_300
## $suggested_gcms
## [1] "EC-Earth3-Veg-LR" "GISS-E2-1-G"      "MPI-ESM1-2-LR"   
## 
## $best_mean_diff
## [1] 0.0002942981
## 
## $global_mean
## [1] 34.12026
closestdist_300 <- mc_closestdist_300$suggested_gcms
tictoc::toc()
## Closestdist 300: 2.055 sec elapsed
tictoc::tic("Closestdist 350")
mc_closestdist_350 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer350, 
                             method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_350
## $suggested_gcms
## [1] "INM-CM5-0"    "MIROC-ES2L"   "ACCESS-CM2"   "IPSL-CM6A-LR" "GISS-E2-1-G" 
## 
## $best_mean_diff
## [1] 0.0005980465
## 
## $global_mean
## [1] 35.61079
closestdist_350 <- mc_closestdist_350$suggested_gcms
tictoc::toc()
## Closestdist 350: 2.188 sec elapsed
tictoc::tic("Closestdist 400")
mc_closestdist_400 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer400, 
                             method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_400
## $suggested_gcms
## [1] "GISS-E2-1-G"      "IPSL-CM6A-LR"     "INM-CM5-0"        "CNRM-CM6-1"      
## [5] "CMCC-ESM2"        "EC-Earth3-Veg-LR" "FIO-ESM-2-0"     
## 
## $best_mean_diff
## [1] 0.0003351331
## 
## $global_mean
## [1] 36.82629
closestdist_400 <- mc_closestdist_400$suggested_gcms
tictoc::toc()
## Closestdist 400: 2.235 sec elapsed
tictoc::tic("Closestdist 450")
mc_closestdist_450 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer450, 
                             method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_450
## $suggested_gcms
## [1] "ACCESS-CM2"      "MPI-ESM1-2-HR"   "FIO-ESM-2-0"     "HadGEM3-GC31-LL"
## [5] "GISS-E2-1-G"    
## 
## $best_mean_diff
## [1] 0.0007142785
## 
## $global_mean
## [1] 37.90422
closestdist_450 <- mc_closestdist_450$suggested_gcms
tictoc::toc()
## Closestdist 450: 2.297 sec elapsed
tictoc::tic("Closestdist 500")
mc_closestdist_500 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer500, 
                             method = "euclidean")
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist_500
## $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_500 <- mc_closestdist_500$suggested_gcms
tictoc::toc()
## Closestdist 500: 2.424 sec elapsed

Closestdist selection

tictoc::tic("Closestdist3 50")
mc_closestdist3_50 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer50, 
                             method = "euclidean",
                             k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_50
## $suggested_gcms
## [1] "ACCESS-CM2"    "EC-Earth3-Veg" "GISS-E2-1-H"  
## 
## $best_mean_diff
## [1] 0.005064835
## 
## $global_mean
## [1] 21.36352
closestdist3_50 <- mc_closestdist3_50$suggested_gcms
tictoc::toc()
## Closestdist3 50: 1.56 sec elapsed
tictoc::tic("Closestdist3 100")
mc_closestdist3_100 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer100, 
                             method = "euclidean",
                             k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_100
## $suggested_gcms
## [1] "EC-Earth3-Veg-LR" "HadGEM3-GC31-LL"  "IPSL-CM6A-LR"    
## 
## $best_mean_diff
## [1] 0.007391347
## 
## $global_mean
## [1] 24.97621
closestdist3_100 <- mc_closestdist3_100$suggested_gcms
tictoc::toc()
## Closestdist3 100: 1.608 sec elapsed
tictoc::tic("Closestdist3 150")
mc_closestdist3_150 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer150, 
                             method = "euclidean",
                             k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_150
## $suggested_gcms
## [1] "ACCESS-CM2"       "EC-Earth3-Veg-LR" "UKESM1-0-LL"     
## 
## $best_mean_diff
## [1] 0.0212794
## 
## $global_mean
## [1] 27.75368
closestdist3_150 <- mc_closestdist3_150$suggested_gcms
tictoc::toc()
## Closestdist3 150: 1.676 sec elapsed
tictoc::tic("Closestdist3 200")
mc_closestdist3_200 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer200, 
                             method = "euclidean",
                             k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_200
## $suggested_gcms
## [1] "CNRM-CM6-1-HR" "FIO-ESM-2-0"   "INM-CM4-8"    
## 
## $best_mean_diff
## [1] 0.0008414798
## 
## $global_mean
## [1] 30.15712
closestdist3_200 <- mc_closestdist3_200$suggested_gcms
tictoc::toc()
## Closestdist3 200: 1.804 sec elapsed
tictoc::tic("Closestdist3 250")
mc_closestdist3_250 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer250, 
                             method = "euclidean",
                             k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_250
## $suggested_gcms
## [1] "HadGEM3-GC31-LL" "INM-CM4-8"       "IPSL-CM6A-LR"   
## 
## $best_mean_diff
## [1] 0.01352089
## 
## $global_mean
## [1] 32.34868
closestdist3_250 <- mc_closestdist3_250$suggested_gcms
tictoc::toc()
## Closestdist3 250: 1.879 sec elapsed
tictoc::tic("Closestdist3 300")
mc_closestdist3_300 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer300, 
                             method = "euclidean",
                             k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_300
## $suggested_gcms
## [1] "EC-Earth3-Veg-LR" "GISS-E2-1-G"      "MPI-ESM1-2-LR"   
## 
## $best_mean_diff
## [1] 0.0002942981
## 
## $global_mean
## [1] 34.12026
closestdist3_300 <- mc_closestdist3_300$suggested_gcms
tictoc::toc()
## Closestdist3 300: 1.924 sec elapsed
tictoc::tic("Closestdist3 350")
mc_closestdist3_350 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer350, 
                             method = "euclidean",
                             k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_350
## $suggested_gcms
## [1] "EC-Earth3-Veg-LR" "FIO-ESM-2-0"      "HadGEM3-GC31-LL" 
## 
## $best_mean_diff
## [1] 0.01377996
## 
## $global_mean
## [1] 35.61079
closestdist3_350 <- mc_closestdist3_350$suggested_gcms
tictoc::toc()
## Closestdist3 350: 2.015 sec elapsed
tictoc::tic("Closestdist3 400")
mc_closestdist3_400 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer400, 
                             method = "euclidean",
                             k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_400
## $suggested_gcms
## [1] "CMCC-ESM2"     "GISS-E2-1-H"   "MPI-ESM1-2-LR"
## 
## $best_mean_diff
## [1] 0.0009890549
## 
## $global_mean
## [1] 36.82629
closestdist3_400 <- mc_closestdist3_400$suggested_gcms
tictoc::toc()
## Closestdist3 400: 2.119 sec elapsed
tictoc::tic("Closestdist3 450")
mc_closestdist3_450 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer450, 
                             method = "euclidean",
                             k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_450
## $suggested_gcms
## [1] "FIO-ESM-2-0"   "INM-CM4-8"     "MPI-ESM1-2-LR"
## 
## $best_mean_diff
## [1] 0.004906687
## 
## $global_mean
## [1] 37.90422
closestdist3_450 <- mc_closestdist3_450$suggested_gcms
tictoc::toc()
## Closestdist3 450: 2.167 sec elapsed
tictoc::tic("Closestdist3 500")
mc_closestdist3_500 <- closestdist_gcms(s10, 
                             var_names = c("bio1", "bio12"), 
                             study_area = buffer500, 
                             method = "euclidean",
                             k = 3)
## CRS from s and study_area are not identical. Reprojecting study area.
mc_closestdist3_500
## $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_500 <- mc_closestdist3_500$suggested_gcms
tictoc::toc()
## Closestdist3 500: 2.242 sec elapsed

Results

The change in size highlights that every algorithm is very susceptible to area selection. K-means and Hierarchical Clustering were, respectivelly, the most stable algorithms. In terms of Species Distribution Modeling, we can say that the GCM selection is affected by the accessible area for the species (the M component of the BAM diagram).

rbind(sort(hclust_50 ), 
      sort(hclust_100),
      sort(hclust_150), 
      sort(hclust_200),
      sort(hclust_250), 
      sort(hclust_300),
      sort(hclust_350), 
      sort(hclust_400),
      sort(hclust_450), 
      sort(hclust_500))
##       [,1]            [,2]               [,3]           
##  [1,] "CMCC-ESM2"     "IPSL-CM6A-LR"     "MPI-ESM1-2-LR"
##  [2,] "CanESM5-CanOE" "CNRM-CM6-1-HR"    "MRI-ESM2-0"   
##  [3,] "CanESM5-CanOE" "MIROC6"           "MPI-ESM1-2-HR"
##  [4,] "CNRM-CM6-1"    "IPSL-CM6A-LR"     "MPI-ESM1-2-HR"
##  [5,] "CanESM5-CanOE" "CNRM-CM6-1"       "MPI-ESM1-2-HR"
##  [6,] "CanESM5-CanOE" "MRI-ESM2-0"       "UKESM1-0-LL"  
##  [7,] "ACCESS-ESM1-5" "CNRM-CM6-1-HR"    "MPI-ESM1-2-HR"
##  [8,] "IPSL-CM6A-LR"  "MPI-ESM1-2-HR"    "MRI-ESM2-0"   
##  [9,] "CNRM-ESM2-1"   "FIO-ESM-2-0"      "MPI-ESM1-2-HR"
## [10,] "ACCESS-ESM1-5" "EC-Earth3-Veg-LR" "MPI-ESM1-2-HR"
rbind(sort(kmeans_50 ), 
      sort(kmeans_100),
      sort(kmeans_150), 
      sort(kmeans_200),
      sort(kmeans_250), 
      sort(kmeans_300),
      sort(kmeans_350), 
      sort(kmeans_400),
      sort(kmeans_450), 
      sort(kmeans_500))
##       2               1             3           
##  [1,] "CanESM5-CanOE" "CNRM-ESM2-1" "MRI-ESM2-0"
##  [2,] "CanESM5-CanOE" "CNRM-ESM2-1" "MRI-ESM2-0"
##  [3,] "CanESM5-CanOE" "CNRM-ESM2-1" "MRI-ESM2-0"
##  [4,] "CanESM5-CanOE" "CNRM-ESM2-1" "MRI-ESM2-0"
##  [5,] "CanESM5-CanOE" "CNRM-ESM2-1" "MRI-ESM2-0"
##  [6,] "CanESM5-CanOE" "CNRM-ESM2-1" "MRI-ESM2-0"
##  [7,] "CanESM5-CanOE" "CNRM-ESM2-1" "MRI-ESM2-0"
##  [8,] "CanESM5-CanOE" "CNRM-ESM2-1" "MRI-ESM2-0"
##  [9,] "CanESM5-CanOE" "CNRM-ESM2-1" "MRI-ESM2-0"
## [10,] "CanESM5-CanOE" "CNRM-ESM2-1" "MRI-ESM2-0"
list(sort(closestdist_50 ), 
     sort(closestdist_100),
     sort(closestdist_150), 
     sort(closestdist_200),
     sort(closestdist_250), 
     sort(closestdist_300),
     sort(closestdist_350), 
     sort(closestdist_400),
     sort(closestdist_450), 
     sort(closestdist_500))
## [[1]]
## [1] "CMCC-ESM2"     "EC-Earth3-Veg" "IPSL-CM6A-LR"  "UKESM1-0-LL"  
## 
## [[2]]
## [1] "MIROC-ES2L"    "MIROC6"        "MPI-ESM1-2-HR" "MRI-ESM2-0"   
## 
## [[3]]
## [1] "CanESM5-CanOE" "CNRM-CM6-1"    "CNRM-CM6-1-HR" "GISS-E2-1-G"  
## [5] "INM-CM4-8"     "IPSL-CM6A-LR"  "MIROC-ES2L"    "MPI-ESM1-2-LR"
## 
## [[4]]
## [1] "ACCESS-CM2"    "CMCC-ESM2"     "FIO-ESM-2-0"   "GISS-E2-1-G"  
## [5] "INM-CM5-0"     "MPI-ESM1-2-HR"
## 
## [[5]]
## [1] "ACCESS-CM2"       "EC-Earth3-Veg-LR" "IPSL-CM6A-LR"     "MIROC6"          
## [5] "MRI-ESM2-0"      
## 
## [[6]]
## [1] "EC-Earth3-Veg-LR" "GISS-E2-1-G"      "MPI-ESM1-2-LR"   
## 
## [[7]]
## [1] "ACCESS-CM2"   "GISS-E2-1-G"  "INM-CM5-0"    "IPSL-CM6A-LR" "MIROC-ES2L"  
## 
## [[8]]
## [1] "CMCC-ESM2"        "CNRM-CM6-1"       "EC-Earth3-Veg-LR" "FIO-ESM-2-0"     
## [5] "GISS-E2-1-G"      "INM-CM5-0"        "IPSL-CM6A-LR"    
## 
## [[9]]
## [1] "ACCESS-CM2"      "FIO-ESM-2-0"     "GISS-E2-1-G"     "HadGEM3-GC31-LL"
## [5] "MPI-ESM1-2-HR"  
## 
## [[10]]
## [1] "CNRM-CM6-1"    "INM-CM5-0"     "MIROC-ES2L"    "MIROC6"       
## [5] "MPI-ESM1-2-HR" "MPI-ESM1-2-LR"
rbind(sort(closestdist3_50 ), 
      sort(closestdist3_100),
      sort(closestdist3_150), 
      sort(closestdist3_200),
      sort(closestdist3_250), 
      sort(closestdist3_300),
      sort(closestdist3_350), 
      sort(closestdist3_400),
      sort(closestdist3_450), 
      sort(closestdist3_500))
##       [,1]               [,2]               [,3]             
##  [1,] "ACCESS-CM2"       "EC-Earth3-Veg"    "GISS-E2-1-H"    
##  [2,] "EC-Earth3-Veg-LR" "HadGEM3-GC31-LL"  "IPSL-CM6A-LR"   
##  [3,] "ACCESS-CM2"       "EC-Earth3-Veg-LR" "UKESM1-0-LL"    
##  [4,] "CNRM-CM6-1-HR"    "FIO-ESM-2-0"      "INM-CM4-8"      
##  [5,] "HadGEM3-GC31-LL"  "INM-CM4-8"        "IPSL-CM6A-LR"   
##  [6,] "EC-Earth3-Veg-LR" "GISS-E2-1-G"      "MPI-ESM1-2-LR"  
##  [7,] "EC-Earth3-Veg-LR" "FIO-ESM-2-0"      "HadGEM3-GC31-LL"
##  [8,] "CMCC-ESM2"        "GISS-E2-1-H"      "MPI-ESM1-2-LR"  
##  [9,] "FIO-ESM-2-0"      "INM-CM4-8"        "MPI-ESM1-2-LR"  
## [10,] "ACCESS-ESM1-5"    "CNRM-CM6-1"       "FIO-ESM-2-0"