Have ideas to improve npm?Join in the discussion! »

@turf/clusters-dbscanTypeScript icon, indicating that this package has built-in type declarations

6.3.0 • Public • Published



Takes a set of points and partition them into clusters according to https://en.wikipedia.org/wiki/DBSCAN data clustering algorithm.


  • points FeatureCollection<Point> to be clustered
  • maxDistance number Maximum Distance between any point of the cluster to generate the clusters (kilometers only)
  • options Object Optional parameters (optional, default {})
    • options.units string in which maxDistance is expressed, can be degrees, radians, miles, or kilometers (optional, default "kilometers")
    • options.mutate boolean Allows GeoJSON input to be mutated (optional, default false)
    • options.minPoints number Minimum number of points to generate a single cluster, points which do not meet this requirement will be classified as an 'edge' or 'noise'. (optional, default 3)


// 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);

var addToMap = [clustered];

Returns FeatureCollection<Point> 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')

This module is part of the Turfjs project, an open source module collection dedicated to geographic algorithms. It is maintained in the Turfjs/turf repository, where you can create PRs and issues.


Install this module individually:

$ npm install @turf/clusters-dbscan

Or install the Turf module that includes it as a function:

$ npm install @turf/turf


npm i @turf/clusters-dbscan

DownloadsWeekly Downloads






Unpacked Size

15.1 kB

Total Files


Last publish


  • avatar
  • avatar
  • avatar
  • avatar
  • avatar
  • avatar