Learn R Programming

terra (version 0.5-8)

extract: Extract values from a SpatRaster

Description

Extract values from a SpatRaster for a set of locations. The locations can be a SpatVector (points, lines, polygons), a matrix with (x, y) or (longitude, latitude -- in that order!) coordinates, or a vector with cell numbers.

Usage

# S4 method for SpatRaster,SpatVector
extract(x, y, fun=NULL, ..., method="simple", drop=FALSE)
# S4 method for SpatRaster,matrix
extract(x, y, ...)
# S4 method for SpatRaster,numeric
extract(x, y, ...)

Arguments

x

SpatRaster

y

SpatVector (for points, lines, polygons), or 2-column matrix (x, y; for points), or a vector with cell numbers

fun

character. function to summarize the data. Currently ignored

...

additional arguments. None implemented

method

character. method for extracting values with points. The default is "simple", the alternative is "bilinear"

drop

boolean. If TRUE, the output is simplified

Value

data.frame

See Also

values

Examples

Run this code
# NOT RUN {
r <- rast(ncol=5, nrow=5, xmin=0, xmax=5, ymin=0, ymax=5)
values(r) <- 1:25
xy <- rbind(c(0.5,0.5), c(2.5,2.5))
p <- vect(xy)

extract(r, xy)
extract(r, p)

r[1,]
r[5]
r[,5]

r[c(0:2, 99:101)]

f <- system.file("exdata/test.tif", package="terra")
r <- rast(f)

xy <- cbind(179000, 330000)
xy <- rbind(xy-100, xy, xy+1000)
extract(r, xy)

p <- vect(xy)
g <- geom(p)
g

extract(r, p)

x <- r + 10
extract(x, p)

i <- cellFromXY(r, xy)
x[i]
r[i]

y <- c(x,x*2,x*3)
y[i]

# extract with a polygon
f <- system.file("exdata/lux.shp", package="terra")
v <- vect(f)
z <- rast(v)
values(z) <- 1:100
e <- extract(z, v)
e[1:2]
rapply(e, mean)

x <- c(z, z*2, z/3)
e <- extract(x, v)
matrix(rapply(e, mean), ncol=nlyr(x), byrow=TRUE)
# }

Run the code above in your browser using DataLab