@dentreality/geodbscan

0.0.1 • Public • Published

GeoDBSCAN

GeoDBSCAN provides a simple JavaScript implementation and API for the DBSCAN clustering algorithm using a geographic distance function. This allows developers to create clusters based on the geographic density of the points. The code is a modernisation and extension of density-clustering.

Interested in this kind of work? Dent Reality is hiring!

Installation

npm install geodbscan

Usage

GeoDBSCAN only has one method, namely cluster. It is used like this:

// GeoDBSCAN accepts arrays of [number, number] coordinates
// Here let's assume points is an array of GeoJSON points
const coords = points.map((point) => point.geometry.coordinates);

// Now we can generate our clusters
const clusters = geodbscan.cluster(coords, {
  minPts: 2,
  epsilon: 1000,
});

// An Array of Arrays that contain the indexs
// of the coordinates in the cluster
// (from the 'coords' variable)
// [
//   [0, 4, 5, 3],
//   [1, 2],
//   [6, 7, 8, 9, 10, 11, 12, 18, 16, 17, 14, 15, 19, 20, 21, 13],
// ]

It takes a second options object argument which has two properties:

  • minPts - minimum number of points used to form a cluster
  • epsilon? - the radius of a neighborhood with respect a given point (this is in meters). This value is technically optional as we try to calculate a sensible value from a knn distance plot, however you'll probably get better results providing your own value

Development

We welcome contributions to the library. The code is written in TypeScript, bundled with microbundle and tested with Jest.

Testing

npm run test

Building

npm run build

or in watch mode:

npm run watch

License

MIT License

Package Sidebar

Install

npm i @dentreality/geodbscan

Weekly Downloads

5

Version

0.0.1

License

MIT

Unpacked Size

134 kB

Total Files

18

Last publish

Collaborators