Skip to content

πŸŒπŸ“ A geospatial clustering library based on the DBSCAN algorithm

License

Notifications You must be signed in to change notification settings

HyperARCo/GeoDBSCAN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

About

πŸŒπŸ“ A geospatial clustering library based on the DBSCAN algorithm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published