32 lines
1.4 KiB
TypeScript
Executable File
32 lines
1.4 KiB
TypeScript
Executable File
import { FeatureCollection, Point, Properties } from "@turf/helpers";
|
|
export declare type KmeansProps = Properties & {
|
|
cluster?: number;
|
|
centroid?: [number, number];
|
|
};
|
|
/**
|
|
* Takes a set of {@link Point|points} and partition them into clusters using the k-mean .
|
|
* It uses the [k-means algorithm](https://en.wikipedia.org/wiki/K-means_clustering)
|
|
*
|
|
* @name clustersKmeans
|
|
* @param {FeatureCollection<Point>} points to be clustered
|
|
* @param {Object} [options={}] Optional parameters
|
|
* @param {number} [options.numberOfClusters=Math.sqrt(numberOfPoints/2)] numberOfClusters that will be generated
|
|
* @param {boolean} [options.mutate=false] allows GeoJSON input to be mutated (significant performance increase if true)
|
|
* @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]
|
|
* @example
|
|
* // 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);
|
|
*
|
|
* //addToMap
|
|
* var addToMap = [clustered];
|
|
*/
|
|
declare function clustersKmeans(points: FeatureCollection<Point>, options?: {
|
|
numberOfClusters?: number;
|
|
mutate?: boolean;
|
|
}): FeatureCollection<Point, KmeansProps>;
|
|
export default clustersKmeans;
|