Skip to main content
Version: Next

clustersDbscan

Description

Takes a set of points and partition them into clusters according to DBSCAN's data clustering algorithm.

Parameters

NameTypeDescription
pointsFeatureCollection<Point>to be clustered
maxDistancenumberMaximum Distance between any point of the cluster to generate the clusters (kilometers by default, see options)
options?ObjectOptional parameters (default {})
options.units?stringin which maxDistance is expressed, can be degrees, radians, miles, or kilometers (default "kilometers")
options.mutate?booleanAllows GeoJSON input to be mutated (default false)
options.minPoints?numberMinimum number of points to generate a single cluster, points which do not meet this requirement will be classified as an 'edge' or 'noise'. (default 3)

Returns

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

  • {number} cluster - the associated clusterId
  • {string} dbscan - type of point it has been classified as ('core' | 'edge' | 'noise')

Examples

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

Installation

$ npm install @turf/clusters-dbscan

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

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