Update cell values of a file (i.e., cell values on disk) associated with a RasterLayer or RasterBrick.

User beware: this function _will_ make changes to your file (first make a copy if you are not sure what you are doing).

Writing starts at a cell number cell. You can write a vector of values (in cell order), or a matrix. You can also provide a vector of cell numbers (of the same length as vector v) to update individual cells.

See writeFormats for supported formats.

# S4 method for RasterLayer
update(object, v, cell, ...)
# S4 method for RasterBrick
update(object, v, cell, band, ...)



RasterLayer or RasterBrick that is associated with a file


vector or matrix with new values


cell from where to start writing. Or a vector of cell numbers if v is a vector of the same length



band (layer) to update (for RasterBrick objects)



additional arguments. None implemented


RasterLayer or RasterBrick


if (FALSE) {
# setting up an example RasterLayer with file
r <- raster(nrow=5, ncol=10, vals=0)
r <- writeRaster(r, rasterTmpFile(), overwrite=TRUE, datatype='INT2S')

# update with a vector starting a cell
r <- update(r, v=rep(1, 5), cell=6)
# 99.99 gets rounded because this is an integer file
r <- update(r, v=9.99, cell=50)

# update with a vector of values and matching vector of cell numbers
r <- update(r, v=5:1, cell=c(5,15,25,35,45))

# updating with a marix, anchored at a cell number
m <- matrix(1:10, ncol=2)
r <- update(r, v=m, cell=2)