Detect stop locations in time-ordered (lat, lon) location data
Project description
# Infostop
*Python package for detecting stop locations in mobility data*
This package implements the algorithm described in (paper not written yet), for detecting stop locations in time-ordered location data.
## Usage
Given a location trace such as:
```Python
>>> data
array([[ 55.75259295, 12.34353885 ],
[ 55.7525908 , 12.34353145 ],
[ 55.7525876 , 12.3435386 ],
...,
[ 63.40379175, 10.40477095 ],
[ 63.4037841 , 10.40480265 ],
[ 63.403787 , 10.4047871 ]])
```
A stop location solution can be obtained using:
```Python
>>> import infostop
>>> labels = infostop.best_partition(data)
```
Here, `labels` matches `data` in size, and can easily be mapped back onto `data`:
```Python
>>> np.hstack([data, labels.reshape(-1, 1)])
array([[ 55.75259295, 12.34353885, 0. ],
[ 55.7525908 , 12.34353145, 0. ],
[ 55.7525876 , 12.3435386 , 0. ],
...,
[ 63.40379175, 10.40477095, 164. ],
[ 63.4037841 , 10.40480265, 164. ],
[ 63.403787 , 10.4047871 , 164. ]])
```
Plotting this onto a map:
![img](https://ulfaslak.com/files/infostop_example_map.png)
## Advantages
* **Simplicity**: At its core, the method works by two steps. (1) Reducing the location trace to the medians of each stationary event and (2) embedding the resulting locations into a network that connects locations that are within a user-defined distance and clustering that network.
* **Flow based**: Spatial clusters correspond to collections of location points that contain large amounts of flow when represented as a network. This enables the recovery of locations where traces slightly overlap.
* **Speed**: First the point space is reduced to the median of stationary points, then pairwise distances between these medians are computed using a vectorized implementation of the haversine function, and finally the resulting network at some distance threshold is clustered using the C++ based Infomap implementation. For example, clustering 70.000 location points takes aroung 16 seconds.
## Installation
`pip install infostop`
*Python package for detecting stop locations in mobility data*
This package implements the algorithm described in (paper not written yet), for detecting stop locations in time-ordered location data.
## Usage
Given a location trace such as:
```Python
>>> data
array([[ 55.75259295, 12.34353885 ],
[ 55.7525908 , 12.34353145 ],
[ 55.7525876 , 12.3435386 ],
...,
[ 63.40379175, 10.40477095 ],
[ 63.4037841 , 10.40480265 ],
[ 63.403787 , 10.4047871 ]])
```
A stop location solution can be obtained using:
```Python
>>> import infostop
>>> labels = infostop.best_partition(data)
```
Here, `labels` matches `data` in size, and can easily be mapped back onto `data`:
```Python
>>> np.hstack([data, labels.reshape(-1, 1)])
array([[ 55.75259295, 12.34353885, 0. ],
[ 55.7525908 , 12.34353145, 0. ],
[ 55.7525876 , 12.3435386 , 0. ],
...,
[ 63.40379175, 10.40477095, 164. ],
[ 63.4037841 , 10.40480265, 164. ],
[ 63.403787 , 10.4047871 , 164. ]])
```
Plotting this onto a map:
![img](https://ulfaslak.com/files/infostop_example_map.png)
## Advantages
* **Simplicity**: At its core, the method works by two steps. (1) Reducing the location trace to the medians of each stationary event and (2) embedding the resulting locations into a network that connects locations that are within a user-defined distance and clustering that network.
* **Flow based**: Spatial clusters correspond to collections of location points that contain large amounts of flow when represented as a network. This enables the recovery of locations where traces slightly overlap.
* **Speed**: First the point space is reduced to the median of stationary points, then pairwise distances between these medians are computed using a vectorized implementation of the haversine function, and finally the resulting network at some distance threshold is clustered using the C++ based Infomap implementation. For example, clustering 70.000 location points takes aroung 16 seconds.
## Installation
`pip install infostop`
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
infostop-0.0.5.tar.gz
(5.1 kB
view details)
File details
Details for the file infostop-0.0.5.tar.gz
.
File metadata
- Download URL: infostop-0.0.5.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 58c0b4f23a9f961781a8ee492232cb0c2837f6b5068d7350f4083d742d4e2441 |
|
MD5 | 9b2d76f4b7a58317fbb6a971c6b062c8 |
|
BLAKE2b-256 | 1d67427a418c4a7dc78604467da31907aa080e725bf776251f1c09b861cfbae8 |