Remove all but one location per raster cell. The function removes NAs and if more than one location falls within the same raster cell it selects randomly one.
thinData(coords, env, x = "x", y = "y")
data.frame or matrix with the coordinates, see details.
stack containing the environmental variables, or a single raster layer.
character. Name of the column containing the x coordinates, default is "x".
character. Name of the column containing the y coordinates, default is "y".
coords and env must have the same coordinate reference system.
coords argument can contain several columns. This is useful if the
user has information related to the coordinates that doesn't want to loose
with the thinning procedure. The function expects to have the x coordinates
in a column named "x", and the y coordinates in a column named "y". If this
is not the case, the name of the columns containing the coordinates can be
specified using the arguments
a matrix or a data frame with the thinned locations.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
# Acquire environmental variables files <- list.files(path = file.path(system.file(package = "dismo"), "ex"), pattern = "grd", full.names = TRUE) predictors <- raster::stack(files) # Prepare background locations bg_coords <- dismo::randomPoints(predictors, 9000) nrow(bg_coords) # Thin the locations # There are probably few coordinates that have NAs for some predictors, the # function will remove these coordinates. Note that the function expects to # the coordinates in two column named "x" and "y" colnames(bg_coords) thinned_bg <- thinData(bg_coords, env = predictors) nrow(thinned_bg) # Here we double the coordinates and run the function again thinned_bg <- thinData(rbind(bg_coords, bg_coords), env = predictors) nrow(thinned_bg) # In case of a dataframe containing more than two columns (e.g. a dataframe # with the coordinates plus an additional column with the age of the species) # and custom column names, use the function in this way age <- sample(c(1, 2), size = nrow(bg_coords), replace = TRUE) data <- cbind(age, bg_coords) colnames(data) <- c("age", "X", "Y") thinned_bg <- thinData(data, env = predictors, x = "X", y = "Y") head(data)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.