Skip to contents

Compute k-means clusters for a SpatRaster. For large SpatRasters (with ncell(x) > maxcell) this is done in two steps. First a sample of the cells is used to compute the cluster centers. Then each cell is assigned to a cluster by computing the distance to these centers.

Usage

# S4 method for SpatRaster
k_means(x, centers=3, ..., maxcell=1000000, filename="", overwrite=FALSE, wopt=list())

Arguments

x

SpatRaster

centers

either the number of clusters, or a set of initial (distinct) cluster centres. If a number, a random set of (distinct) cells in x is chosen as the initial centres

...

additional arguments passed to kmeans

maxcell

positive integer. The size of the regular sample used if it is smaller than ncell(x)

filename

character. Output filename (ignored if as.raster=FALSE)

overwrite

logical. If TRUE, filename is overwritten

wopt

list with additional arguments for writing files as in writeRaster

Value

SpatRaster

See also

Examples

f <- system.file("ex/logo.tif", package = "terra")
r <- rast(f)
km <- k_means(r, centers=5)
km
#> class       : SpatRaster 
#> dimensions  : 77, 101, 1  (nrow, ncol, nlyr)
#> resolution  : 1, 1  (x, y)
#> extent      : 0, 101, 0, 77  (xmin, xmax, ymin, ymax)
#> coord. ref. : Cartesian (Meter) 
#> source(s)   : memory
#> name        : lyr1 
#> min value   :    1 
#> max value   :    5