All Projects → lukehb → 137 Stopmove

lukehb / 137 Stopmove

Licence: mit
Algorithms to automatically discover stops and moves in GPS trajectories.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to 137 Stopmove

Augmentedgaussianprocesses.jl
Gaussian Process package based on data augmentation, sparsity and natural gradients
Stars: ✭ 99 (+421.05%)
Mutual labels:  classification, gps
Skin Cancer Image Classification
Skin cancer classification using Inceptionv3
Stars: ✭ 16 (-15.79%)
Mutual labels:  classification
Scikit Multilearn
A scikit-learn based module for multi-label et. al. classification
Stars: ✭ 638 (+3257.89%)
Mutual labels:  classification
Dragmove.js
A super tiny Javascript library to make DOM elements draggable and movable. ~500 bytes and no dependencies.
Stars: ✭ 757 (+3884.21%)
Mutual labels:  move
Map Matching
The map matching functionality is now located in the main repository https://github.com/graphhopper/graphhopper#map-matching
Stars: ✭ 665 (+3400%)
Mutual labels:  gps
React Move
React Move | Beautiful, data-driven animations for React
Stars: ✭ 6,395 (+33557.89%)
Mutual labels:  move
Magpie
Deep neural network framework for multi-label text classification
Stars: ✭ 622 (+3173.68%)
Mutual labels:  classification
Bayesian Neural Networks
Pytorch implementations of Bayes By Backprop, MC Dropout, SGLD, the Local Reparametrization Trick, KF-Laplace, SG-HMC and more
Stars: ✭ 900 (+4636.84%)
Mutual labels:  classification
Zeps Gui
L'interface d'un outil de calcul d'itinéraires, principalement utilisé pour se repérer dans le Netherrail de Zcraft. Nécessite https://github.com/zDevelopers/ZePS-Core .
Stars: ✭ 5 (-73.68%)
Mutual labels:  gps
Datacurator Filetree
a standard filetree for /r/datacurator [ and r/datahoarder ]
Stars: ✭ 753 (+3863.16%)
Mutual labels:  classification
Locationmanager
Simplify getting user's location for Android
Stars: ✭ 730 (+3742.11%)
Mutual labels:  gps
Gpxpy
gpx-py is a python GPX parser. GPX (GPS eXchange Format) is an XML based file format for GPS tracks.
Stars: ✭ 707 (+3621.05%)
Mutual labels:  gps
Labelme
Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation).
Stars: ✭ 7,742 (+40647.37%)
Mutual labels:  classification
Awesome Project Ideas
Curated list of Machine Learning, NLP, Vision, Recommender Systems Project Ideas
Stars: ✭ 6,114 (+32078.95%)
Mutual labels:  classification
Dog Cat Classification
This is a Flask app that can classify images of dog and cat. The underlying model is a CNN trained using Keras framework
Stars: ✭ 17 (-10.53%)
Mutual labels:  classification
All About The Gan
All About the GANs(Generative Adversarial Networks) - Summarized lists for GAN
Stars: ✭ 630 (+3215.79%)
Mutual labels:  classification
Tensorflow cookbook
Code for Tensorflow Machine Learning Cookbook
Stars: ✭ 5,984 (+31394.74%)
Mutual labels:  classification
Shiny
A Xamarin Framework for Backgrounding & Device Hardware Services (iOS, Android, UWP, Tizen, tvOS, watchOS, & more coming soon)
Stars: ✭ 763 (+3915.79%)
Mutual labels:  gps
Gesturerecognition
Gesture Recognition using TensorFlow
Stars: ✭ 19 (+0%)
Mutual labels:  classification
Pyts
A Python package for time series classification
Stars: ✭ 895 (+4610.53%)
Mutual labels:  classification

137-stopmove

A module for TrajSuite. Algorithms to automatically discover stops and moves in GPS trajectories.

White-paper describing POSMIT can be found here.

Algorithms

  • POSMIT - Probability of Stops and Moves in Trajectories. Uses a probabilistic approach to determine if a given entry in the trajectory is stopping or moving. Unlike traditional approaches POSMIT allows the user filter out low probability stops using the minimum stop probability parameter. Also, POSMIT comes with some heuristics to estimate its parameters.
  • CB-SMoT - Clustering-based Stop and Moves of Trajectories. Uses a modified DB-SCAN algorithm to find stops.
  • SMoT - Stops and Moves of Trajectories. Uses predefined regions to search for a minimum duration stay within those region. Unlike the original algorithm our implementation creates these regions by divided up the studying region into uniform cells. The original algorithms calls for the author to pass in interesting regions.

Usages

Below are some code usages for each of the algorithms provided in this repo.

POSMIT*

//load in a trajectory to process
STTrajectory traj = ....
//how many entries to search either side of each entry 
int nSearchRadius = 2;
//how much a stop can spatially jitter around and still be considered a stop (remember GPS is quite noisy)
double stopVariance = 1.5;
//intialise the actual POSMIT algorithm
POSMIT algo = new POSMIT();
//find the stop probability for each entry in the trajectory
double[] stopProbabilities = algo.run(traj, nSearchRadius, stopVariance);
//set a threshold for an entry to be classified as a stop, otherwise it is a move.
//i.e in this case only entries with an 80% or higher probability become stops,
//whilst lower probability entries become moves.
double minStopConfidence = 0.8;
//convert the trajectory into a trajectory with stop/move annotations at each entry
STStopTrajectory stopTraj = algo.toStopTrajectory(traj, stopProbabilities, minStopConfidence);

*Note: see FindStopsPOSMIT.java for a full example.

CB-SMoT*

//load in a trajectory to process
STTrajectory traj = ....
//Much like DB-SCAN you must specify a spatial epsilon to control cluster growth
double epsMeters = 1.5;
//CB-SMoT introduces a concept that a cluster can only become a stop if it has a 
//total duration equal to or exceeding a user-specified minimum stop duration
long minTimeMillis = 3000L;
//run the CB-SMoT algorithm
STStopTrajectory outTraj = new CBSMoT().run(traj, epsMeters, minTimeMillis);

*Note: see FindStopsCBSmot.java for a full example.

Working with the source

The source is licensed under the MIT licsense so feel free to use it in your projects. It does have some dependencies which are listed in the build.gradle file. The easiest use-case is setting the source up as a gradle project and letting gradle grab those dependencies for you. Next easiest is maven, though you will have translate the dependencies yourself.

Using this project as a library in your own project, your build.gradle file will have to include these:

repositories {
    maven{url 'https://dl.bintray.com/lukehb/137-stopmove'} //hosted on bintray
}

dependencies {
    compile 'onethreeseven:stopmove:0.0.4'
}

....Or without cloning, the built source is also hosted on BinTray and can be downloaded: Download

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].