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



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.



# 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
longitude <- sample(ext(envBrick)[1]:ext(envBrick)[2],
                    size = 10, replace = FALSE)
latitude <- sample(ext(envBrick)[3]:ext(envBrick)[4],
                   size = 10, replace = FALSE)
depth <- sample(0:35, size = 10, replace = TRUE)
occurrences <-,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