All Projects → luborliu → DBSCANSD

luborliu / DBSCANSD

Licence: MIT license
Java implementation for DBSCANSD, a trajectory clustering algorithm.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to DBSCANSD

protoactor-go
Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
Stars: ✭ 4,138 (+11722.86%)
Mutual labels:  clustering
kmeans
A simple implementation of K-means (and Bisecting K-means) clustering algorithm in Python
Stars: ✭ 18 (-48.57%)
Mutual labels:  clustering
clope
Elixir implementation of CLOPE: A Fast and Effective Clustering Algorithm for Transactional Data
Stars: ✭ 18 (-48.57%)
Mutual labels:  clustering
pyXSteam
Python library for calculating properties of Steam and Water
Stars: ✭ 32 (-8.57%)
Mutual labels:  density
T-CorEx
Implementation of linear CorEx and temporal CorEx.
Stars: ✭ 31 (-11.43%)
Mutual labels:  clustering
color cloth
color_cloth gets the main colors and its proportions from a cloth image ignoring the background, it uses the EM algorithm from OpenCV library, the algorithm needs an image with an item in the center of the picture.
Stars: ✭ 20 (-42.86%)
Mutual labels:  clustering
QuestionClustering
Clasificador de preguntas escrito en python 3 que fue implementado en el siguiente vídeo: https://youtu.be/qnlW1m6lPoY
Stars: ✭ 15 (-57.14%)
Mutual labels:  clustering
hotspot3d
3D hotspot mutation proximity analysis tool
Stars: ✭ 43 (+22.86%)
Mutual labels:  clustering
influxdb-ha
High-availability and horizontal scalability for InfluxDB
Stars: ✭ 45 (+28.57%)
Mutual labels:  clustering
PyPHLAWD
Python version of PHLAWD
Stars: ✭ 16 (-54.29%)
Mutual labels:  clustering
Sampled-MinHashing
A method to mine beyond-pairwise relationships using Min-Hashing for large-scale pattern discovery
Stars: ✭ 24 (-31.43%)
Mutual labels:  clustering
SpectralClustering.jl
Spectral clustering algorithms written in Julia
Stars: ✭ 46 (+31.43%)
Mutual labels:  clustering
mongo-replica-with-docker
How to deploy a MongoDB Replica Set using Docker
Stars: ✭ 105 (+200%)
Mutual labels:  clustering
G-SimCLR
This is the code base for paper "G-SimCLR : Self-Supervised Contrastive Learning with Guided Projection via Pseudo Labelling" by Souradip Chakraborty, Aritra Roy Gosthipaty and Sayak Paul.
Stars: ✭ 69 (+97.14%)
Mutual labels:  clustering
mousetrap
Process and Analyze Mouse-Tracking Data
Stars: ✭ 33 (-5.71%)
Mutual labels:  clustering
k-means-quantization-js
🎨 Apply color quantization to images using k-means clustering.
Stars: ✭ 27 (-22.86%)
Mutual labels:  clustering
clusters
Cluster analysis library for Golang
Stars: ✭ 68 (+94.29%)
Mutual labels:  clustering
hclust
Hierarchical clustering in JavaScript
Stars: ✭ 39 (+11.43%)
Mutual labels:  clustering
DigitalCellSorter
Digital Cell Sorter (DCS): single cell RNA-seq analysis toolkit. Documentation:
Stars: ✭ 19 (-45.71%)
Mutual labels:  clustering
tika-similarity
Tika-Similarity uses the Tika-Python package (Python port of Apache Tika) to compute file similarity based on Metadata features.
Stars: ✭ 92 (+162.86%)
Mutual labels:  clustering

DBSCANSD

Java implementation for DBSCANSD, a trajectory clustering algorithm.

Brief Introduction

DBSCANSD (Density-Based Spatial Clustering of Applicationswith Noise considering Speed and Direction)[1] is a clustering algorithm extended from DBSCAN [2]. It can consider speed and direction, which is essential for maritime lanes extraction. The output of this algorithm is a set of Gravity Vectors (GV) and Sampled Stopping Points (SSP).

In the present version, the implementation has not included generating SSP yet, but I shall add this part later.

Since the AIS data provided for this project is confidential, I cannot upload it to github as example. But I generated a toy data set and put it in the src folder which can be tested with the program. And it will be great if you use this algorithm for other domains' problems, such as tracking data of vehicles, pedestrian, hurricane or animals.

More details about this algorithm can be found in [1]. The link is as following:

http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=7004281

How To Run The Code ?

After downloading it to local,

  1. cd to the folder of src/boliu/dbscansd/

  2. compile all the .java files using:

    javac *.java

  3. cd to the folder of src/

  4. execute the program using the following either command:

    java boliu.dbscansd.Main inputfile outputfile lineNum eps minPts maxSpd maxDir isStop

     * @param           inputfile the input file path
     * @param           outputfile the output file path
     * @param lineNum   the designated number of trajectory points for clustering (if the size of the input file is less than lineNum, it will extract all the points)
     * @param eps       1st parameter of DBSCANSD, the radius
     * @param minPts    2nd parameter of DBSCANSD, the minimum number of points
     * @param maxSpd	   3rd parameter of DBSCANSD, the maximum SOG difference
     * @param maxDir	   4th parameter of DBSCANSD, the maximum COG difference
     * @param isStop	   boolean value (0/1), if you would like to cluster stopping points (1) or moving points (0)
    

    --e.g. java boliu.dbscansd.Main toy_data.csv output 70000 0.03 50 2 2.5 0

     In this way, the program will do the job on toy_data.csv file. 
     It will extract the first 70,000  moving points from the data and then run DBSCANSD on the dataset. 
     The final output will be two files: 
        output_gv.csv (gravity vectors)
        output_movingclusters.csv (original clustering results with more rows).
    
  5. waiting for the result :) The running time will vary with different sizes of the input data and other input parameters.

  6. Star it if it helps *-*

Reference

[1] Liu, Bo, et al. "Knowledge-based clustering of ship trajectories using density-based approach." Big Data (Big Data), 2014 IEEE International Conference on. IEEE, 2014.

[2] Ester, Martin, et al. "A density-based algorithm for discovering clusters in large spatial databases with noise." Kdd. Vol. 96. No. 34. 1996.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].