movement-trajectory

Solid

Movement and trajectory analytics from GPS/GNSS tracks: cleaning, stop/trip detection, road-network map matching, speed/direction, flow aggregation, and origin-destination construction. Use for fleets, human mobility, animal tracking, AIS, or sports tracks. Trigger on GPS points, GPX, trajectories, stop detection, map matching, or timestamped positions per moving object. Also invoke for privacy, aggregation, de-identification, or release of individual trajectories. Use network-accessibility-analysis for hypothetical routes, isochrones, or static OD costs without observed tracks.

AI & Automation 3 stars 0 forks Updated yesterday MIT

Install

View on GitHub

Quality Score: 79/100

Stars 20%
20
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# Movement & Trajectory Analytics Purpose: turn noisy timestamped points into defensible movement facts. The recurring failure modes: **speed computed through GPS noise** (teleporting points → 400 km/h pedestrians), **stops invented by signal drift**, and **privacy-blind delivery** of individual-level traces. ## Data model first A trajectory = ordered fixes per object: `(object_id, timestamp, x, y, [accuracy, ...])`. Before analysis, report per object: fix count, time span, median sampling interval, and interval distribution — **sampling rate drives every method choice** (1 s vehicle traces and 1 fix/hour animal tags are different problems wearing the same schema). ```python import movingpandas as mpd import geopandas as gpd gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df.lon, df.lat), crs=4326).to_crs(gdf_utm_epsg) tc = mpd.TrajectoryCollection(gdf, "object_id", t="timestamp") ``` ### Declare CRS and time base before any threshold Every distance radius, speed limit and dwell duration in this skill is meaningless until two things are stated **in the answer, before the number is used**: 1. **The projected CRS** all distance and speed computation runs in — a "50 m stop radius" applied to raw lon/lat degrees is not 50 m anywhere, and the error scales with latitude. Name the CRS (`estimate_utm_crs()` for a local fleet, an equal-distance projection for continental extents). 2. **The timestamp base**, normalised to timezone-aware UT...

Details

Author
muend
Repository
muend/geoai-skills
Created
1 weeks ago
Last Updated
yesterday
Language
Python
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category