Evaluation of map‐matching algorithms for smartphone‐based active travel data
Bibliographic record
Abstract
Abstract Global Positioning System (GPS) data on walking and cycling trips can generate useful insights for transportation systems but require substantial processing. One of the key GPS data processing steps is “map‐matching”, or inference of the sequence of network links traversed during travel. The objective of this research is to evaluate the accuracy of existing map‐matching algorithms for GPS data on active travel. A method to flag erroneous map‐matching results without requiring ground‐truth data and improvements for active travel data are also proposed. Six map‐matching algorithms are applied to a sample of 63 trajectories, stratified on network density and average heading change, extracted from a large set of real‐world trips from metropolitan Vancouver, Canada. Results show that the best performing method is PgMapMatch, which can be further improved by adjustments to link costs and allowing wrong‐way travel. Two other algorithms have similarly accurate routes (70–90% accuracy, depending on the measure), but fail to generate routes for about a third of trips. The proposed error detection measure can be used (without ground truth data) to flag matched routes requiring visual inspection, with a recommendation to look for: Wrong‐way travel, missing links in the network data, and parallel facilities on the same street.
Fetched live from OpenAlex and de-inverted. Abstracts are not stored in this database: the inverted indexes are 8.6 GB of the frame’s 9.3 GB of text, and the host has 13 GB free.
How this classification was reachedexpand
Full frame machine prediction
Teacher imitationNot calibrated prevalence, not ground truth. Human validation pending. The Gemma side is a direct model label for every work in the frame, read from the title-only record. The Codex side is a classifier learned from the 10,348 direct Codex labels and calibrated to design-weighted sample rates; fields without enough sample support carry no Codex call. Candidate is the union of the two sides; consensus is their intersection. These outputs are machine_predicted_unvalidated and are not human labels.
Distilled classifier scores by category (both heads)
| Category | Codex | Gemma |
|---|---|---|
| Metaresearch | 0.003 | 0.012 |
| Meta-epidemiology (narrow) | 0.001 | 0.000 |
| Meta-epidemiology (broad) | 0.001 | 0.001 |
| Bibliometrics | 0.002 | 0.002 |
| Science and technology studies | 0.000 | 0.000 |
| Scholarly communication | 0.001 | 0.001 |
| Open science | 0.002 | 0.001 |
| Research integrity | 0.001 | 0.000 |
| Insufficient payload (model declined to judge) | 0.002 | 0.001 |
Machine scores (provisional)
The two teacher heads of the student model, read on this work. A score orders the frame for review; it never asserts a category, and the validation status ships verbatim with every row.
Baseline scores from an immature model (maturity gate not passed, 7 training rounds). Scores rank; they never assert a category.
score_only:v0-immature-baseline · verbatim from the scoring run: score_only means the number may rank works, and no category label ships from itClassification
machine, unvalidatedMachine predicted; a candidate call from one source (direct Gemma or distilled Codex), not a consensus.
How this classification was reached, model by model and score by score, is at the end of the page under "How this classification was reached".