Skip to main content
Version: Next

clustersKmeans

Description

Takes a set of points and partition them into clusters using the k-mean . It uses the k-means algorithm

Parameters

NameTypeDescription
pointsFeatureCollection<Point>to be clustered
options?ObjectOptional parameters (default {})
options.numberOfClusters?numbernumberOfClusters that will be generated (default Math.sqrt(numberOfPoints/2))
options.mutate?booleanallows GeoJSON input to be mutated (significant performance increase if true) (default false)

Returns

FeatureCollection<Point> Clustered Points with an additional two properties associated to each Feature:

  • {number} cluster - the associated clusterId
  • {[number, number]} centroid - Centroid of the cluster [Longitude, Latitude]

Examples

// create random points with random z-values in their properties
var points = turf.randomPoint(100, { bbox: [0, 30, 20, 50] });
var options = { numberOfClusters: 7 };
var clustered = turf.clustersKmeans(points, options);

Installation

$ npm install @turf/clusters-kmeans

import { clustersKmeans } from "@turf/clusters-kmeans";
const result = clustersKmeans(...);
$ npm install @turf/turf

import * as turf from "@turf/turf";
const result = turf.clustersKmeans(...);