Point classification within the cluster.
Type: ("core"
| "edge"
| "noise"
)
Extends GeoJsonProperties
Properties assigned to each clustered point.
Type: object
Takes a set of points and partition them into clusters according to DBSCAN's data clustering algorithm.
-
points
FeatureCollection<Point> to be clustered -
maxDistance
number Maximum Distance between any point of the cluster to generate the clusters (kilometers by default, see options) -
options
Object Optional parameters (optional, default{}
)-
options.units
string in whichmaxDistance
is expressed, can be degrees, radians, miles, or kilometers (optional, default"kilometers"
) -
options.mutate
boolean Allows GeoJSON input to be mutated (optional, defaultfalse
) -
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, default3
)
-
// 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);
//addToMap
var addToMap = [clustered];
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')
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 single module individually:
$ npm install @turf/clusters-dbscan
Or install the all-encompassing @turf/turf module that includes all modules as functions:
$ npm install @turf/turf