Learn R Programming

terra (version 0.4-3)

aggregate: Aggregate raster cells

Description

Aggregate a SpatRaster to create a new SpatRaster with a lower resolution (larger cells). Aggregation groups rectangular areas to create larger cells. The value for the resulting cells is computed with a user-specified function.

Or aggregate ("dissolve") a SpatVector.

Usage

# S4 method for SpatRaster
aggregate(x, fact=2, fun="mean", ..., filename="", overwrite=FALSE, wopt=list())

# S4 method for SpatVector aggregate(x, by=NULL, sums=NULL, dissolve=TRUE, vars=NULL, ...)

Arguments

x

SpatRaster

fact

positive integer. Aggregation factor expressed as number of cells in each direction (horizontally and vertically). Or two integers (horizontal and vertical aggregation factor) or three integers (when also aggregating over layers)

fun

function used to aggregate values

...

additional arguments passed to fun, such as na.rm=TRUE

filename

character. Output filename. Optional

overwrite

logical. If TRUE, filename is overwritten

wopt

list. Options for writing files as in writeRaster

by

character

sums

list

dissolve

logical

vars

character

Value

SpatRaster

Details

Aggregation starts at the upper-left end of a raster. If a division of the number of columns or rows with factor does not return an integer, the extent of the resulting SpatRaster will be somewhat larger then that of the original SpatRaster. For example, if an input SpatRaster has 100 columns, and fact=12, the output SpatRaster will have 9 columns and the maximum x coordinate of the output SpatRaster is also adjusted.

The function fun should take multiple numbers, and return a single number. For example mean, modal, min or max.

It should also accept a na.rm argument (or ignore it as one of the 'dots' arguments).

See Also

disaggregate

Examples

Run this code
# NOT RUN {
r <- rast()
# aggregated raster, no values
ra <- aggregate(r, fact=10)

values(r) <- runif(ncell(r))
# aggregated raster, max of the values
ra <- aggregate(r, fact=10, fun=max)

# multiple layers
s <- c(r, r*2)
x <- aggregate(s, 2)
# }

Run the code above in your browser using DataLab