MovingPandas.TrajectoryGeneralizer

movingpandas: Implementation of Trajectory classes and functions built on top of GeoPandas

class movingpandas.TrajectoryGeneralizer(traj)

Generalizer base class

__init__(traj)

Create TrajectoryGeneralizer

Parameters:

traj (Trajectory or TrajectoryCollection)

generalize(tolerance)

Generalize the input Trajectory/TrajectoryCollection.

Parameters:

tolerance (any type) – Tolerance threshold, differs by generalizer

Returns:

Generalized Trajectory or TrajectoryCollection

Return type:

Trajectory/TrajectoryCollection

class movingpandas.DouglasPeuckerGeneralizer(traj)

Generalizes using Douglas-Peucker algorithm (as implemented in shapely/Geos).

tolerancefloat

Distance tolerance in trajectory CRS units

References

  • Douglas, D., & Peucker, T. (1973). Algorithms for the reduction of the number of points required to represent a digitized line or its caricature. The Canadian Cartographer 10(2), 112–122. doi:10.3138/FM57-6770-U75U-7727.

Examples

>>> mpd.DouglasPeuckerGeneralizer(traj).generalize(tolerance=1.0)
class movingpandas.MinDistanceGeneralizer(traj)

Generalizes based on distance.

This generalization ensures that consecutive locations are at least a certain distance apart.

Distance is calculated using CRS units, except if the CRS is geographic (e.g. EPSG:4326 WGS84) then distance is calculated in metres.

tolerancefloat

Desired minimum distance between consecutive points

Examples

>>> mpd.MinDistanceGeneralizer(traj).generalize(tolerance=1.0)
class movingpandas.MinTimeDeltaGeneralizer(traj)

Generalizes based on time.

This generalization ensures that consecutive rows are at least a certain timedelta apart.

tolerancedatetime.timedelta

Desired minimum time difference between consecutive rows

Examples

>>> mpd.MinTimeDeltaGeneralizer(traj).generalize(tolerance=timedelta(minutes=10))
class movingpandas.TopDownTimeRatioGeneralizer(traj)

Generalizes using Top-Down Time Ratio algorithm proposed by Meratnia & de By (2004).

This is a spatiotemporal trajectory generalization algorithm. Where Douglas-Peucker simply measures the spatial distance between points and original line geometry, Top-Down Time Ratio (TDTR) measures the distance between points and their spatiotemporal projection on the trajectory. These projections are calculated based on the ratio of travel times between the segment start and end times and the point time.

tolerancefloat

Distance tolerance (distance returned by shapely Point.distance function)

References

  • Meratnia, N., & de By, R.A. (2004). Spatiotemporal compression techniques for moving point objects. In International Conference on Extending Database Technology (pp. 765-782). Springer, Berlin, Heidelberg.

Examples

>>> mpd.TopDownTimeRatioGeneralizer(traj).generalize(tolerance=1.0)