geocluster
finds clusters in sets of coordinates. It's a port of S-means by Brian Hann (which itself is a stdev-driven form of K-means), but with two dimensions, Earth-geodesic distance and properly working code.
npm install geocluster
coordinates
is an Array of [lat, lon]
pairs.
bias
is a factor the standard deviation gets multiplied with, which acts as threshold to determine if a coordinate belongs to a cluster.
result
is an Array of cluster objects, which have centroid
and elements
properties. Example:
[{
centroid: [1.0,1.0],
elements: [
[1.0,1.0], [0.9,1.1], [1.1,0.9]
]
},{
centroid: [2.0,2.0],
elements: [
[2.0,2.0], [1.9,2.1], [2.1,1.9]
]
}]
var geocluster = require("geocluster");
var coordinates = [ // array of lat-lon-pairs
[<lat>, <lon>],
[<lat>, <lon>],
[<lat>, <lon>],
// ...
];
var bias = 1.5; // multiply stdev with this factor, the smaller the more clusters
var result = geocluster(coordinates, bias);
// result is an array of cluster objects with `centroid` and `elements` properties