R: Merge Raster* objects using a function for overlapping areas

mosaic {raster} | R Documentation

## Merge Raster* objects using a function for overlapping areas

### Description

Mosaic Raster* objects to form a new object with a larger spatial extent. A function is used to compute cell values in areas where layers overlap (in contrast to the `merge` function which uses the values of the 'upper' layer). All objects must have the same origin, resolution, and coordinate reference system.

### Usage

    ## S4 method for signature 'Raster,Raster'
    mosaic(x, y, ..., fun, tolerance=0.05, filename="")

### Arguments

`x` | Raster* object
`y` | Raster* object
`...` | Additional Raster or Extent objects (and/or arguments for writing files as in `writeRaster)`
`fun` | Function. E.g. mean, min, or max. Must be a function that accepts a 'na.rm' argument
`tolerance` | Numeric. permissible difference in origin (relative to the cell resolution). See `all.equal`
`filename` | Character. Output filename (optional)

### Details

The Raster objects must have the same origin and resolution.

### Value

RasterLayer or RasterBrick object.

### See Also

`merge`, `extend`

### Examples

    r <- raster(ncol=100, nrow=100)
    r1 <- crop(r, extent(-10, 11, -10, 11))
    r2 <- crop(r, extent(0, 20, 0, 20))
    r3 <- crop(r, extent(9, 30, 9, 30))

    values(r1) <- 1:ncell(r1)
    values(r2) <- 1:ncell(r2)
    values(r3) <- 1:ncell(r3)

    m1 <- mosaic(r1, r2, r3, fun=mean)

    s1 <- stack(r1, r1*2)
    s2 <- stack(r2, r2/2)
    s3 <- stack(r3, r3*4)
    m2 <- mosaic(s1, s2, s3, fun=min)

    # if you have a list of Raster objects, you can use do.call
    x <- list(r1, r2, r3)
    names(x)[1:2] <- c('x', 'y')
    x$fun <- mean
    x$na.rm <- TRUE

    y <- do.call(mosaic, x)

[Package raster version 3.4-13 Index]