Take a random sample from the cell values of a Raster* object (without replacement).

# S4 method for class 'Raster'
sampleRandom(x, size, na.rm=TRUE, ext=NULL, 
    cells=FALSE, rowcol=FALSE, xy=FALSE, sp=FALSE, asRaster=FALSE, ...)

Arguments

x

Raster* object

size

positive integer giving the number of items to choose

na.rm

logical. If TRUE (the default), NA values are removed from random sample

ext

Extent object. To limit regular sampling to the area within the extent

cells

logical. If TRUE, sampled cell numbers are also returned

rowcol

logical. If TRUE, sampled row and column numbers are also returned

xy

logical. If TRUE, coordinates of sampled cells are also returned

sp

logical. If TRUE, a SpatialPointsDataFrame is returned

asRaster

logical. If TRUE, a Raster* object is returned with random cells with values, all other cells with NA

...

Additional arguments as in writeRaster. Only relevant when asRaster=TRUE

Details

With argument na.rm=TRUE, the returned sample may be smaller than requested

Value

A vector, matrix (if cells=TRUE or x is a multi-layered object), or a SpatialPointsDataFrame (if sp=TRUE )

Examples

 r <- raster(system.file("external/test.grd", package="raster"))
 sampleRandom(r, size=10)
#>  [1] 461.2969 318.2996 351.8303 392.7534 492.7690 243.2765 440.3402 345.6403
#>  [9] 515.7428 384.0551
 s <- stack(r, r)
 sampleRandom(s, size=5, cells=TRUE, sp=TRUE)
#>        coordinates cell   test.1   test.2
#> 1 (178700, 330180) 7608 418.1480 418.1480
#> 2 (179260, 329740) 8502 433.9139 433.9139
#> 3 (179620, 329980) 8031 312.8522 312.8522
#> 4 (180980, 332620) 2785 245.0019 245.0019
#> 5 (180940, 333020) 1984 392.7534 392.7534