
Rebuilding Strava's Global Heatmap - mlerner
https://medium.com/strava-engineering/the-global-heatmap-now-6x-hotter-23fc01d301de
======
ThatAndresV
This is beautiful. Thanks so much for creating it. I’m hoping you can explain
what looks like an anomaly though. Looking at Macritchie Reservoir in
Singapore, there’s the expected hot outline on parts of its shore, but also a
dead-straight oblong running roughly east-West for over 1km. Thing is, it
can’t be a running track as it’s in the middle of the reservoir itself. Any
thoughts on how this artefact got there?

~~~
drewrobb
I think that is some kind of rowing/swimming/boating course. It shows up in
the running layer because a few people mislabel their activity types. It shows
up much stronger in the water layer. Next update to the heatmap I intend to
add a activity type classifier to help with these errors.

------
NelsonMinar
Absolutely lovely. The pedant in me wants to point out this isn't exactly a
heatmap; there's no heat spreading blobbiness. It's more of a spatial
histogram. Nothing wrong with that! The localized normalization of values
using a CDF is very clever.

------
s0rce
Cool article. I found some neat things in their data.

You can see the burning man "city" moves slightly each year creating an "echo"
in the data.

[https://labs.strava.com/heatmap/#13.49/-119.20399/40.78672/h...](https://labs.strava.com/heatmap/#13.49/-119.20399/40.78672/hot/all)

Also, some people appear to have biked to the Farallone's
[https://labs.strava.com/heatmap/#12.41/-122.97170/37.71310/h...](https://labs.strava.com/heatmap/#12.41/-122.97170/37.71310/hot/ride)

~~~
mrdmnd
AQUABIKE!

This is neat =)

~~~
s0rce
Ooh, another interesting spot

[https://labs.strava.com/heatmap/#11.86/-118.45498/42.54408/h...](https://labs.strava.com/heatmap/#11.86/-118.45498/42.54408/hot/ride)

Alvord lake/desert in Eastern OR

------
berttemme
It seems they have removed tiling level 16 and 17 :-(

For example:

Level 16 on the old heatmap:
[http://globalheat.strava.com/tiles/cycling/color3/16/33705/2...](http://globalheat.strava.com/tiles/cycling/color3/16/33705/21620.png)
Level 16 on the new heatmap (empty tile): [https://heatmap-
external-b.strava.com/tiles/ride/blue/16/337...](https://heatmap-
external-b.strava.com/tiles/ride/blue/16/33705/21620.png)

~~~
drewrobb
It is serving 512px tiles by default, which only go one level lower. At 256px,
the level 16 requests are valid: [https://heatmap-
external-b.strava.com/tiles/ride/blue/16/337...](https://heatmap-
external-b.strava.com/tiles/ride/blue/16/33705/21620.png?px=256)

~~~
berttemme
ah good to know, is there a trick for level 17 also? For example
[https://heatmap-
external-b.strava.com/tiles/ride/hot/17/6745...](https://heatmap-
external-b.strava.com/tiles/ride/hot/17/67453/43168.png?px=256) returns empty
tile

~~~
drewrobb
level 16 is as far as it goes.

------
dracoola13
Are you planning to update heatmap on iD editor for OSM?
[https://strava.github.io/iD/](https://strava.github.io/iD/)

~~~
drewrobb
Update done!

------
vinnieman232
This is lovely. One question - did you consider a vector style versus a raster
style? If so, why did you choose raster?

~~~
drewrobb
I think there are two parts:

1) Internal representation for building/serving: For vector, the data would
have to be aggregated in some way otherwise it would be way too slow (for
example, tiles having 10 million or more lines). How exactly to do that vector
aggregation is a real challenge. If there is a good solution I'm not aware of
it.

2) End product quality: everything is ultimately rasterized on the viewer's
monitor. So if upstream resolution is high enough vector doesn't have any
advantage here.

