init: Initialize a Raster object with values

initializeR Documentation

Initialize 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

## S4 method for signature 'Raster'
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; you can also use 'chess', to get a chessboard pattern

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=rasterTmpFile(), overwrite=TRUE)

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

rspatial/raster documentation built on Oct. 12, 2024, 10:49 a.m.