| extract,GRaster,GVector-method | R Documentation |
extract() obtains the values of a GRaster or GVector associated with the locations of a set of points. The output depends on the input:
Case #1: x is a numeric or integer GRaster and y is a points GVector: Returns values of cells that have points. If xy is TRUE, also returns the coordinates of the points.
Case #2: x is a categorical (factor) GRaster and y is a points GVector: Same as case #1, but if cats is TRUE, returns category labels of cells that have points. If xy is TRUE, also returns the coordinates of the points.
Case #3: x is a categorical GRaster and y is a lines or polygons GVector: Returns a summary (e.g., mean, standard deviation, etc.) of all cells that overlap the line(s) or polygon(s).
Case #4: x is a GVector and y is a points GVector: Returns the data table row associated each point. If xy is TRUE, also returns the coordinates of the points.
Note that whenever a points GVector is allowed for y, a data.frame, data.table, matrix, or numeric values representing points can be used instead.
## S4 method for signature 'GRaster,GVector'
extract(
x,
y,
fun = "mean",
prob = 0.5,
overlap = TRUE,
xy = FALSE,
cats = TRUE,
verbose = FALSE,
...
)
## S4 method for signature 'GRaster,data.frame'
extract(x, y, xy = FALSE, cats = TRUE)
## S4 method for signature 'GRaster,data.table'
extract(x, y, xy = FALSE, cats = TRUE)
## S4 method for signature 'GRaster,matrix'
extract(x, y, xy = FALSE, cats = TRUE)
## S4 method for signature 'GRaster,numeric'
extract(x, y, xy = FALSE, cats = TRUE)
## S4 method for signature 'GVector,GVector'
extract(x, y, xy = FALSE, verbose = TRUE)
## S4 method for signature 'GVector,data.frame'
extract(x, y, xy = FALSE, verbose = TRUE)
## S4 method for signature 'GVector,data.table'
extract(x, y, xy = FALSE, verbose = TRUE)
## S4 method for signature 'GVector,matrix'
extract(x, y, xy = FALSE, verbose = TRUE)
## S4 method for signature 'GVector,numeric'
extract(x, y, xy = FALSE)
x |
A |
y |
A |
fun |
Character vector: Name(s) of function(s) to apply to values. This is used when
|
prob |
Numeric in the range from 0 to 1: Quantile which to calculate. The value of |
overlap |
Logical: If |
xy |
Logical: If |
cats |
Logical (extracting from a raster): If |
verbose |
Logical: If |
... |
Arguments to pass to |
A data.frame or data.table.
terra::extract(), and modules r.what and v.what in GRASS
if (grassStarted()) {
# Setup
library(sf)
library(terra)
# Example data: elevation raster and points vector
madElev <- fastData("madElev") # raster
madCover <- fastData("madCover") # categorical raster
madDypsis <- fastData("madDypsis") # points vector
madRivers <- fastData("madRivers") # lines vector
madCoast4 <- fastData("madCoast4") # polygons vector
# Convert to fasterRaster formats:
elev <- fast(madElev) # raster
cover <- fast(madCover) # categorical raster
dypsis <- fast(madDypsis) # points vector
rivers <- fast(madRivers) # lines vector
coast <- fast(madCoast4) # polygons vector
# Get values of elevation at points where Dypsis species are located:
extract(elev, dypsis, xy = TRUE)
# Extract from categorical raster at points:
categories <- extract(cover, dypsis)
categoryValues <- extract(cover, dypsis, cats = FALSE)
categories
categoryValues
# Extract and summarize values on a raster across polygons:
extract(elev, coast, fun = c("sum", "mean", "countNonNA"), overlap = FALSE)
# Extract and summarize values on a raster across lines:
extract(elev, rivers, fun = c("sum", "mean", "countNonNA"), overlap = FALSE)
# Extract from a polygons vector at a points vector:
polysFromPoints <- extract(coast, dypsis, xy = TRUE)
head(polysFromPoints) # first 3 are outside polygons vector, next 3 are inside
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.