R: Replace NA values with values of other layers

cover {raster} | R Documentation

## Replace NA values with values of other layers

### Description

For Raster* objects: Replace `NA` values in the first Raster object (`x`) with the values of the second (`y`), and so forth for additional Rasters. If `x` has multiple layers, the subsequent Raster objects should have the same number of layers, or have a single layer only (which will be recycled).

For SpatialPolygons* objects: Areas of `x` that overlap with `y` are replaced by (or intersected with) `y`.

### Usage

    ## S4 method for signature 'RasterLayer,RasterLayer'
    cover(x, y, ..., filename='')

    ## S4 method for signature 'RasterStackBrick,Raster'
    cover(x, y, ..., filename='')

    ## S4 method for signature 'SpatialPolygons,SpatialPolygons'
    cover(x, y, ..., identity=FALSE)

### Arguments

`x` | Raster* or SpatialPolygons* object
`y` | Same as `x`
`filename` | character. Output filename (optional)
`...` | Same as `x`. If `x` is a Raster* object, also additional arguments as for `writeRaster`
`identity` | logical. If `TRUE` overlapping areas are intersected rather than replaced

### Value

RasterLayer or RasterBrick object, or SpatialPolygons object

### Examples

    # raster objects
    r1 <- raster(ncols=36, nrows=18)
    values(r1) <- 1:ncell(r1)
    r2 <- setValues(r1, runif(ncell(r1)))
    r2[r2 < 0.5] <- NA
    r3 <- cover(r2, r1)

    #SpatialPolygons
    if (require(rgdal) & require(rgeos)) {
    	p <- shapefile(system.file("external/lux.shp", package="raster"))
    	b <- as(extent(6, 6.4, 49.75, 50), 'SpatialPolygons')
    	crs(b) <- crs(p)
    	b <- SpatialPolygonsDataFrame(b, data.frame(ID_1=9))

    	cv1 <- cover(p, b)
    	cv2 <- cover(p, b, identity=TRUE)
    }

[Package raster version 3.4-13 Index]