thinData: Thin Data

Description Usage Arguments Details Value Author(s) Examples

View source: R/thinData.R

Description

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.

Usage

1
thinData(coords, env, x = "x", y = "y")

Arguments

coords

data.frame or matrix with the coordinates, see details.

env

stack containing the environmental variables, or a single raster layer.

x

character. Name of the column containing the x coordinates, default is "x".

y

character. Name of the column containing the y coordinates, default is "y".

Details

Value

a matrix or a data frame with the thinned locations.

Author(s)

Sergio Vignali

Examples

 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)

SDMtune documentation built on July 17, 2021, 9:06 a.m.