For balancing computational loads, the function uses
the anticlust
package to cluster the input points. The number of clusters
is determined by the num_cluster
argument. Each cluster will have
equal number of points. Grids will be generated based on the cluster
extents. At the lower level, the function uses terra::distance()
function to calculate the Euclidean distance between points.
Usage
par_make_balanced(points_in = NULL, n_clusters = NULL)
Arguments
- points_in
sf
or SpatVector
object. Target points of computation.
- n_clusters
integer(1). The number of clusters.
Value
SpatVector
object with a field "CGRIDID"
.
Note
This function is only for two-dimensional points.
The results will be irregular grids with or without overlapping parts.
Examples
if (FALSE) { # \dontrun{
library(terra)
library(anticlust)
data(ncpoints, package = "chopin")
ncp <- terra::vect(
ncpoints, geom = c("X", "Y"),
keepgeom = FALSE, crs = "EPSG:5070"
)
# 2,304 points / 12 = 192 points per cluster
ncpbal <- par_make_balanced(ncp, 12)
ncpbal
} # }