Take a stratified random sample from the cell values of a Raster* object (without replacement). An attempt is made to sample size cells from each stratum. The values in the RasterLayer x are rounded to integers; with each value representing a stratum.

# S4 method for class 'RasterLayer'
sampleStratified(x, size, exp=10, na.rm=TRUE, xy=FALSE, ext=NULL, sp=FALSE, ...)

Arguments

x

Raster* object, with values (rounded to integers) representing strata

size

positive integer giving the number of items to choose

exp

numeric >= 1. 'Expansion factor' that is multiplied with size to get an intial sample. Can be increased when you get an insufficient number of samples for small strata

na.rm

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

xy

logical. Return coordinates of cells rather than cell numbers

ext

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

sp

logical. If TRUE, a SpatialPointsDataFrame is returned

...

Additional arguments. None implemented

Details

The function may not work well when the size (number of cells) of some strata is relatively small.

Value

matrix of cell numbers (and optionally coordinates) by stratum

Examples

 r <- raster(ncol=10, nrow=10)
 names(r) <- 'stratum'
 values(r) <- round((runif(ncell(r))+0.5)*3)
 sampleStratified(r, size=3)
#>       cell stratum
#>  [1,]   92       2
#>  [2,]   57       2
#>  [3,]    4       2
#>  [4,]   54       3
#>  [5,]   27       3
#>  [6,]   20       3
#>  [7,]   95       4
#>  [8,]   94       4
#>  [9,]   76       4