R: Intitialize a Raster object with values

initialize {raster} | R Documentation

## Intitialize a Raster object with values

### Description

Create a new RasterLayer with values reflecting a cell property: 'x', 'y', 'col', 'row', or 'cell'. Alternatively, a function can be used. In that case, cell values are initialized without reference to pre-existing values. E.g., initialize with a random number (`fun=runif`). While there are more direct ways of achieving this for small objects (see examples) for which a vector with all values can be created in memory, the `init` function will also work for Raster* objects with many cells.

### Usage

    init(x, fun, filename="", ...)

### Arguments

`x` | Raster* object
`fun` | function to be applied. This must be a function that can take the number of cells as a single argument to return a vector of values with a length equal to the number of cells, such as `fun=runif`. You can also supply one of the following character values: 'x', 'y', 'row', 'col', or 'cell' to get the x or coordinate, row, col or cell number
`filename` | character. Optional output filename
`...` | Additional arguments as for `writeRaster`

### Value

RasterLayer

### Note

For backwards compatibility, the character values valid for `fun` can also be passed as named argument `v`

### Examples

    r <- raster(ncols=36, nrows=18)

    x <- init(r, fun='cell')

    y <- init(r, fun=runif)

    # there are different ways to set all values to 1
    # for large rasters:
    set1f <- function(x){rep(1, x)}
    z1 <- init(r, fun=set1f, filename='test.grd', overwrite=TRUE)

    # This is equivalent to (but not memory safe):
    z2 <- setValues(r, rep(1, ncell(r)))
    # or
    r[] <- rep(1, ncell(r))
    # or
    r[] <- 1

[Package raster version 2.6-7 Index]