umrlastig/footprint2graph: v1.1.1
Description
footprint2graph is an open-source Python processing pipeline designed to transform GNSS trajectories recorded during outdoor recreational activities into mobility networks. It builds a graph of commonly used paths, derived from sets of observed traces collected. The resulting dataset models, for example, the mobility networks of hikers or runners within a defined area and timeframe. In the graph, edge geometries correspond to path segments reconstructed from the input trajectories.
The pipeline consists of several components.
- First, GNSS trajectories are segmented and resampled to obtain homogeneous trajectories with respect to spatial and temporal resolution.
- Next, a synthetic representation of trajectories is generated through a grid-based processing approach, producing a heat map that highlights both major routes and secondary paths.
- This raster representation is then transformed into a vector skeleton, i.e., a graph whose edges represent the central axes of the identified movement corridors, using skeletonization operations.
- For each edge of the skeleton, the associated GNSS points are identified through map-matching operations. These points are subsequently grouped into trajectory segments, providing for each edge a set of individual traces to be compared and merged.
- The segments associated with a given edge are then merged in order to reconstruct as accurately as possible the common path followed by the different individual trajectories.
- Finally, a geometric adjustment step ensures the continuity of the reconstructed segments while preserving the topology of the skeleton, thereby producing the final mobility network.
Changelog
Added
-
Added support for trajectory reconstruction using unmatched points at each iteration. Trajectories are progressively aligned by replacing each point with the centroid of points from neighboring trajectories.
-
Added a merging step that combines the results of all iterations to produce the final mobility network.
-
Added linear extension of segment endpoints from each iteration result to identify intersections with the mobility network generated in previous iterations.
Changed
- Improved nearest-neighbor search performance by leveraging the cKDTree spatial index from scipy.spatial, significantly reducing computation time when querying nearby points.
Fixed
-
Fixed a synchronization issue between the spatial index and the mobility network, ensuring consistency between indexed geometries and network updates.
-
Fixed incorrect conflation of maximum-curvature points when processing edges that are part of a cycle.
Files
umrlastig/footprint2graph-v1.1.1.zip
Additional details
Additional titles
- Alternative title (En)
- footprint2graph
Related works
- Is supplement to
- Software: https://github.com/umrlastig/footprint2graph/tree/v1.1.1 (URL)
Funding
- Agence Nationale de la Recherche
- IntForOut - Multisource spatial data INTegration FOR the Monitoring of Ecosystems under the pressure of OUTdoor recreation ANR-23-CE55-0003
Software
- Repository URL
- https://github.com/umrlastig/footprint2graph
- Programming language
- Python
- Development Status
- Active