fast_mask: Fast masking of raster values

Description Usage Arguments Value See Also Examples

View source: R/fast_mask.R

Description

This is a fast implementation of raster::mask(). It masks values in a Raster object according to values in another Raster or polygon layer. Note that this function might sometimes be slower than raster::mask() when the mask is a Raster. Largest speed gains occur for polygon masks.

Usage

1
fast_mask(ras = NULL, mask = NULL, inverse = FALSE, updatevalue = NA)

Arguments

ras

Raster* object.

mask

Raster* object or POLYGON/MULTIPOLYGON sf::sf() object.

inverse

Logical. If TRUE, areas in mask that are not NA are masked

updatevalue

Convert all masked cells in ras to this value (default is NA)

Value

Raster* object

See Also

raster::mask()

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
library(raster)

size <- 100
ras <- raster(ncol = size, nrow = size, vals = rep(1, size*size))
msk <- raster(ncol = size, nrow = size, vals = runif(size*size))
msk[msk < 0.5] <- NA

# Using raster as mask

system.time(ras.masked <- raster::mask(ras, msk))
system.time(ras.masked <- fast_mask(ras, msk))

plot(ras)
plot(msk)
plot(ras.masked)


# Using polygon layer as mask

msk.sp <- as(msk, 'SpatialPolygonsDataFrame')
msk.sf <- sf::st_as_sf(msk.sp)
system.time(ras.masked <- raster::mask(ras, msk.sp))
system.time(ras.masked <- raster::mask(ras, msk.sf))
system.time(ras.masked <- fast_mask(ras, msk.sf))

Pakillo/rgis documentation built on Oct. 15, 2020, 3:20 a.m.