Learn R Programming

raster (version 3.6-23)

approxNA: Estimate values for cell values that are NA by interpolating between layers

Description

approxNA uses the stats function approx to estimate values for cells that are NA by interpolation across layers. Layers are considered equidistant, unless an argument 'z' is used, or getZ returns values, in which case these values are used to determine distance between layers.

For estimation based on neighbouring cells see focal

Usage

# S4 method for RasterStackBrick
approxNA(x, filename="", method="linear", yleft, yright,
            rule=1, f=0, ties=mean, z=NULL, NArule=1, ...)

Value

RasterBrick

Arguments

x

RasterStack or RasterBrick object

filename

character. Output filename (optional)

method

specifies the interpolation method to be used. Choices are "linear" or "constant" (step function; see the example in approx

yleft

the value to be returned before a non-NA value is encountered. The default is defined by the value of rule given below

yright

the value to be returned after the last non-NA value is encountered. The default is defined by the value of rule given below

rule

an integer (of length 1 or 2) describing how interpolation is to take place at for the first and last cells (before or after any non-NA values are encountered). If rule is 1 then NAs are returned for such points and if it is 2, the value at the closest data extreme is used. Use, e.g., rule = 2:1, if the left and right side extrapolation should differ

f

for method = "constant" a number between 0 and 1 inclusive, indicating a compromise between left- and right-continuous step functions. If y0 and y1 are the values to the left and right of the point then the value is y0*(1-f)+y1*f so that f = 0) is right-continuous and f = 1 is left-continuous

ties

Handling of tied 'z' values. Either a function with a single vector argument returning a single number result or the string "ordered"

z

numeric vector to indicate the distance between layers (e.g., time, depth). The default is 1:nlayers(x)

NArule

single integer used to determine what to do when only a single layer with a non-NA value is encountered (and linear interpolation is not possible). The default value of 1 indicates that all layers will get this value for that cell; all other values do not change the cell values

...

additional arguments as for writeRaster

See Also

focal

Examples

Run this code
r <- raster(ncols=5, nrows=5)
r1 <- setValues(r, runif(ncell(r)))
r2 <- setValues(r, runif(ncell(r)))
r3 <- setValues(r, runif(ncell(r)))
r4 <- setValues(r, runif(ncell(r)))
r5 <- setValues(r, NA)
r6 <- setValues(r, runif(ncell(r)))
r1[6:10] <- NA
r2[5:15] <- NA
r3[8:25] <- NA
s <- stack(r1,r2,r3,r4,r5,r6)
s[1:5] <- NA
x1 <- approxNA(s)
x2 <- approxNA(s, rule=2)
x3 <- approxNA(s, rule=2, z=c(1,2,3,5,14,15))

Run the code above in your browser using DataLab