Skip to main content

Temporospatial clustering in Python. Well suited for mobility data.

Project description

Infostop

Python package for detecting stop locations in mobility data

This package implements the algorithm described in https://arxiv.org/pdf/2003.14370.pdf, for detecting stop locations in time-ordered location data.

Usage

Given a location trace such as:

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

Or with time information

>>> data 
array([[ 55.75259295,  12.34353885, 1581401760 ],
       [ 55.7525908 ,  12.34353145, 1581402760 ],
       [ 55.7525876 ,  12.3435386 , 1581403760 ],
       ...,
       [ 63.40379175,  10.40477095, 1583401760 ],
       [ 63.4037841 ,  10.40480265, 1583402760 ],
       [ 63.403787  ,  10.4047871 , 1583403760 ]])

A stop location solution can be obtained using:

>>> from infostop import Infostop
>>> model = Infostop()
>>> labels = model.fit_predict(data)

Alternatively, data can also be a list of numpy.arrays, in which case it is assumed that list elements are seperate traces in the same space. In this multi segment (or multi user) case, Infostop finds stop locations that are shared by different segments.

Solutions can be plotted using:

>>> from infostop import plot_map
>>> folmap = plot_map(model)
>>> folmap.m

Plotting this onto a map:

img

For more examples and full documentation check out the documentation page.

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.
  • Multi-trace support: Currently, no other libraries support clustering multiple traces at once to find global stop locations. Infostop does. The image above visualizes stop locations at a campus for a population of almost 1000 university students.
  • 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 (executed in a fast C++ module), then spatially neighboring points connected using a Ball search tree algorithm, and finally the network is clustered using the C++ based Infomap program. For example, clustering 100.000 location points takes about a second.

Installation

pip install infostop

Project details


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.1.7.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

infostop-0.1.7-cp37-cp37m-macosx_10_9_x86_64.whl (68.1 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file infostop-0.1.7.tar.gz.

File metadata

  • Download URL: infostop-0.1.7.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0.post20200309 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for infostop-0.1.7.tar.gz
Algorithm Hash digest
SHA256 3e3b9456c4fa6614a504989c6a12db6438560d0bafee4ade408831789db8fef4
MD5 edd8f48e59fc652a16cf9df721a43f03
BLAKE2b-256 324c644af672370ab3dbfea9c865810648749a35fdd2177e7e60386e4ebfbc36

See more details on using hashes here.

File details

Details for the file infostop-0.1.7-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: infostop-0.1.7-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 68.1 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.0.0.post20200309 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for infostop-0.1.7-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 56e39043e61a5f8a06cf7ae28b6b2ab4cfb7ce9752726ace56c5e3bc896f1f91
MD5 aa5deba0b8d363e11321c1739f2efce5
BLAKE2b-256 1bc40c53a516fae9da28cdaad2862323544f121af51418af83a436ea15cd0f34

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page