Nothing
## ----knitr-options, include=FALSE---------------------------------------------
knitr::opts_chunk$set(comment = "#>",
collapse = TRUE,
eval = FALSE,
fig.align = "center")
## ----load-pkgs----------------------------------------------------------------
# library(ggplot2) # To plot locations
# library(maps) # To access useful maps
# library(rasterVis) # To plot raster objects
## ----get-predictors-----------------------------------------------------------
# files <- list.files(path = file.path(system.file(package = "dismo"), "ex"),
# pattern = "grd",
# full.names = TRUE)
## ----create-raster-object-----------------------------------------------------
# predictors <- terra::rast(files)
## ----names-predicrtors--------------------------------------------------------
# names(predictors)
## ----plot-bio1----------------------------------------------------------------
# gplot(predictors$bio1) +
# geom_tile(aes(fill = value)) +
# coord_equal() +
# scale_fill_gradientn(colours = c("#2c7bb6", "#abd9e9", "#ffffbf", "#fdae61", "#d7191c"),
# na.value = "transparent",
# name = "°C x 10") +
# labs(title = "Annual Mean Temperature",
# x = "longitude",
# y = "latitude") +
# scale_x_continuous(expand = c(0, 0)) +
# scale_y_continuous(expand = c(0, 0)) +
# theme_minimal() +
# theme(plot.title = element_text(hjust = 0.5),
# axis.ticks.x = element_blank(),
# axis.ticks.y = element_blank())
## ----load-SDMtune-------------------------------------------------------------
# library(SDMtune)
## ----help-dataset-------------------------------------------------------------
# help(virtualSp)
# p_coords <- virtualSp$presence
# bg_coords <- virtualSp$background
## ----plot-presence------------------------------------------------------------
# ggplot(map_data("world"), aes(long, lat)) +
# geom_polygon(aes(group = group), fill = "grey95", color = "gray40", size = 0.2) +
# geom_jitter(data = p_coords, aes(x = x, y = y), color = "red",
# alpha = 0.4, size = 1) +
# labs(x = "longitude", y = "latitude") +
# theme_minimal() +
# theme(legend.position = "none") +
# coord_fixed() +
# scale_x_continuous(limits = c(-125, -32)) +
# scale_y_continuous(limits = c(-56, 40))
## ----plot-bg_model-locations--------------------------------------------------
# ggplot(map_data("world"), aes(long, lat)) +
# geom_polygon(aes(group = group), fill = "grey95", color = "gray40", size = 0.2) +
# geom_jitter(data = as.data.frame(bg_coords), aes(x = x, y = y),
# color = "blue", alpha = 0.4, size = 0.5) +
# labs(x = "longitude", y = "latitude") +
# theme_minimal() +
# theme(legend.position = "none") +
# coord_fixed() +
# scale_x_continuous(limits = c(-125, -32)) +
# scale_y_continuous(limits = c(-56, 40))
## ----prepare-SWD--------------------------------------------------------------
# data <- prepareSWD(species = "Virtual species",
# p = p_coords,
# a = bg_coords,
# env = predictors,
# categorical = "biome")
#
## ----show-SWD-object----------------------------------------------------------
# data
## ----show-data----------------------------------------------------------------
# head(data@data)
## ----show-coords-data---------------------------------------------------------
# head(data@coords)
## ----show-species-------------------------------------------------------------
# data@species
## ----save-SWD-single, eval=FALSE----------------------------------------------
# swd2csv(data,
# file_name = "data.csv")
## ----save-SWD-double, eval=FALSE----------------------------------------------
# swd2csv(data,
# file_name = c("presence.csv", "background.csv"))
## ----train--------------------------------------------------------------------
# model <- train(method = "Maxent",
# data = data)
## ----print-model--------------------------------------------------------------
# model
## ----get-slots----------------------------------------------------------------
# slotNames(model)
## ----model-slots--------------------------------------------------------------
# slotNames(model@model)
## ----retrain------------------------------------------------------------------
# model <- train(method = "Maxent",
# data = data,
# fc = "lqph",
# reg = 1,
# iter = 500)
## ----model-witout-default-arguments-------------------------------------------
# model <- train(method = "Maxent",
# data = data,
# fc = "lh",
# reg = 0.5,
# iter = 700)
## ----predict-train------------------------------------------------------------
# pred <- predict(model,
# data = data,
# type = "cloglog")
## ----print-pred---------------------------------------------------------------
# head(pred)
## ----predict-presence---------------------------------------------------------
# p <- data@data[data@pa == 1, ]
# pred <- predict(model,
# data = p,
# type = "cloglog")
# tail(pred)
## ----predict-raster-----------------------------------------------------------
# map <- predict(model,
# data = predictors,
# type = "cloglog")
## ----print-raster-output------------------------------------------------------
# map
## ----save-map, eval=FALSE-----------------------------------------------------
# map <- predict(model,
# data = predictors,
# type = "cloglog",
# file = "my_map",
# format = "GTiff")
## ----exercise-----------------------------------------------------------------
# # First create the extent that surrounds Chile
# e = terra::ext(c(-77, -60, -56, -15))
# # Now use the extent to make the prediction
# map_e <- predict(model,
# data = predictors,
# type = "cloglog",
# extent = e)
## ----plot-map-default---------------------------------------------------------
# plotPred(map)
## ----plot-map-custom----------------------------------------------------------
# plotPred(map,
# lt = "Habitat\nsuitability",
# colorramp = c("#2c7bb6", "#abd9e9", "#ffffbf", "#fdae61", "#d7191c"))
## ----thresholds---------------------------------------------------------------
# ths <- thresholds(model,
# type = "cloglog")
# ths
## ----plot-pa------------------------------------------------------------------
# plotPA(map,
# th = ths[3, 2])
## ----plot-and-save-pa, eval=FALSE---------------------------------------------
# plotPA(map,
# th = ths[3, 2],
# filename = "my_pa_map",
# format = "GTiff")
## ----auc----------------------------------------------------------------------
# auc(model)
## ----plot-roc-----------------------------------------------------------------
# plotROC(model)
## ----tss----------------------------------------------------------------------
# tss(model)
## ----aicc---------------------------------------------------------------------
# aicc(model,
# env = predictors)
## ----train-test---------------------------------------------------------------
# library(zeallot) # For unpacking assignment
# c(train, test) %<-% trainValTest(data,
# test = 0.2,
# only_presence = TRUE,
# seed = 25)
## ----trai-with-train-dataset--------------------------------------------------
# model <- train("Maxent",
# data = train)
## ----evaluate-test------------------------------------------------------------
# auc(model)
# auc(model, test = test)
## ----plot-AUC-train-test------------------------------------------------------
# plotROC(model, test = test)
## ----experiment---------------------------------------------------------------
# # Create an empty data.frame
# output <- data.frame(matrix(NA, nrow = 10, ncol = 3))
# colnames(output) <- c("seed", "trainAUC", "testAUC")
#
# # Create 10 different random seeds
# set.seed(25)
# seeds <- sample.int(1000, 10)
#
# # Loop through the seeds
# for (i in 1:length(seeds)) {
# # Make the train/test split
# c(train, test) %<-% trainValTest(data,
# test = 0.2,
# seed = seeds[i],
# only_presence = TRUE)
#
# # train the model
# m <- train("Maxent", data = train)
#
# # Populate the output data.frame
# output[i, 1] <- seeds[i]
# output[i, 2] <- auc(m)
# output[i, 3] <- auc(m, test = test)
# }
#
# # Print the output
# output
# # compute the range of the testing AUC
# range(output[, 3])
## ----random-folds-------------------------------------------------------------
# folds <- randomFolds(data,
# k = 4,
# only_presence = TRUE,
# seed = 25)
## ----cv, eval=FALSE-----------------------------------------------------------
# cv_model <- train("Maxent",
# data = data,
# folds = folds)
# cv_model
## ----cv-auc-------------------------------------------------------------------
# auc(cv_model)
# auc(cv_model, test = TRUE)
## ----enmeval-block------------------------------------------------------------
# library(ENMeval)
# block_folds <- get.block(occ = data@coords[data@pa == 1, ],
# bg.coords = data@coords[data@pa == 0, ])
#
# model <- train(method = "Maxent",
# data = data,
# fc = "l",
# reg = 0.8,
# folds = block_folds)
## ----enmeval-checherboard1----------------------------------------------------
# cb_folds <- get.checkerboard1(occ = data@coords[data@pa == 1, ],
# env = predictors,
# bg.coords = data@coords[data@pa == 0, ],
# aggregation.factor = 4)
#
# model <- train(method = "Maxent",
# data = data,
# fc = "l",
# reg = 0.8,
# folds = cb_folds)
## ----blockCV------------------------------------------------------------------
# library(blockCV)
# # Create sf object
# sf_df <- sf::st_as_sf(cbind(data@coords, pa = data@pa),
# coords = c("X", "Y"),
# crs = terra::crs(predictors,
# proj = TRUE))
#
# # Spatial blocks
# spatial_folds <- cv_spatial(x = sf_df,
# column = "pa",
# rows_cols = c(8, 10),
# k = 5,
# hexagon = FALSE,
# selection = "systematic")
#
# model <- train(method = "Maxent",
# data = data,
# fc = "l",
# reg = 0.8,
# folds = spatial_folds)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.