By cyclists, for cyclists: Road grade and elevation estimation from crowd-sourced fitness application data
Bibliographic record
Abstract
Road grade or slope is a key factor for walking and cycling behavior and outcomes (influencing route, speed, energy, etc.). For this reason, the scarcity of precise road grade data presents a challenge for travel information and analysis. This paper examines the accuracy of using crowd-sourced GPS data from a fitness application to estimate roadway grade profiles, which can then be used to develop network-wide road grade datasets. We externally validate an elevation estimation method described by McKenzie and Janowicz using field surveying data, and then propose and evaluate modifications for estimation of road grade (which is more directly relevant than elevation for walking and cycling analysis). We find that a modest amount of crowd-sourced GPS data can be used to generate relatively accurate road grade estimates: better than commonly-used low-resolution elevation models, but not as accurate as high-resolution data derived from LiDAR (Light Detection and Ranging). We also find that the grade estimates are more reliable than the elevation estimates, relative to alternative data sources. The most accurate method to aggregate crowd-sourced GPS data builds a composite roadway grade profile using partition-around-medoid clustering of individual grade sequences, first smoothed with a Savitzky-Golay filter and cleaned with Density-Based Spatial Clustering of Applications with Noise (DBSCAN). Implementing this method with an average of 150 GPS traces per location yields a root mean square error (RMSE) of 1% road grade. The findings in this paper can be used to incorporate precise road grade information into street network datasets over a wide spatial scale, which is necessary for walking and cycling analysis that fully considers the physiological aspects of active transportation.
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.001 | 0.004 |
| Meta-epidemiology (narrow) | 0.001 | 0.000 |
| Meta-epidemiology (broad) | 0.000 | 0.000 |
| Bibliometrics | 0.002 | 0.001 |
| Science and technology studies | 0.000 | 0.000 |
| Scholarly communication | 0.001 | 0.001 |
| Open science | 0.001 | 0.001 |
| Research integrity | 0.000 | 0.000 |
| Insufficient payload (model declined to judge) | 0.001 | 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".