Gets values at x,y,z occurrences from a given 3D environmental variable brick
xyzSample(occs, envBrick, verbose = TRUE)
A data.frame
with at least three columns
named "longitude", "latitude", and "depth", or that
can be coerced into this format.
A SpatRaster
vector object with
one environmental variable. Each layer represents
a depth slice. See Details for more information.
logical
. Switching to FALSE
mutes message
describing which columns in occs1
and occs2
are interpreted
as x, y, and z coordinates.
Vector of environmental values equal in length
to number of rows of input occs
data.frame
.
The SpatRaster
vector object should
have numeric names that correspond with the beginning
depth of a particular depth slice. For example, one
might have three layers, one from 0 to 10m, one from
10 to 30m, and one from 30 to 100m. You would name the
layers in this brick names(envBrick) <- c(0, 10, 30
.
xyzSample
identifies the layer name that is closest
to the depth layer value at a particular X, Y
coordinate, and samples the environmental value at that
3D coordinate.
library(terra)
# Create test raster
r1 <- rast(ncol=10, nrow=10)
values(r1) <- 1:100
r2 <- rast(ncol=10, nrow=10)
values(r2) <- c(rep(20, times = 50), rep(60, times = 50))
r3 <- rast(ncol=10, nrow=10)
values(r3) <- 8
envBrick <- c(r1, r2, r3)
names(envBrick) <- c(0, 10, 30)
# Create test occurrences
set.seed(0)
longitude <- sample(ext(envBrick)[1]:ext(envBrick)[2],
size = 10, replace = FALSE)
set.seed(0)
latitude <- sample(ext(envBrick)[3]:ext(envBrick)[4],
size = 10, replace = FALSE)
set.seed(0)
depth <- sample(0:35, size = 10, replace = TRUE)
occurrences <- as.data.frame(cbind(longitude,latitude,depth))
# Test function
occSample3d <- xyzSample(occurrences, envBrick)
#> Using longitude, latitude, and depth
#> as x, y, and z coordinates, respectively.
# How to use
occurrences$envtValue <- occSample3d