May 25th 2018 sees the introduction of the European General Data Protection Regulation (GDPR) around personal data protection and privacy and in order to comply there are a few changes I’ve needed to make to VeloViewer, mainly around the public leaderboards, which are detailed below. Basically there shouldn’t be any personally identifiable data shown on the site for other people to see unless you have specifically opted-in to expose it.
A while ago I built a visualisation to display the orientation of roads in a defined area and had requests to have a similar view for activities. Well, two years on (I know!) and here it is, with the added breakdown by the gradient of the roads/trails. Just head to the “Breakdown” tab on any Activity, Route or Segment Details page. Filtering the selection in the top profile (Activity & Routes) updates the visualisation appropriately.
Viewing your heart rate, pace zone and power zone distributions (i.e. how much time spent in each zone) along with Suffer Scores for individual activities is very straightforward, but only once we see that data represented over longer periods of time do we get a clearer view of how well our training has been going. On your VeloViewer Summary page each of these metrics can now be viewed with the distributions clearly displayed with the data grouped over whichever time period you need.
Recording movement using GPS devices is always subject to error but when it comes to elevation data the difference in recorded values between two or more people on an identical ride can be rather dramatic. This difference can become even more extreme if the there is some rain in the air when some devices carry on unaffected whilst others hang up their barometers in disgust. Here I’ll present a small comparison of various recordings of elevation from Stage 16 of the 2015 Giro d’Italia which although not a typical ride for the most of us, was affected by fairly typical weather.
Finding your FTP (Functional Threshold Power/Performance) is a unavoidably painful experience but getting a number out the other end shouldn’t be, which is why I’ve tried to make that part of the process as simple and versatile as possible. Just sync your data from Strava over to VeloViewer and let VeloViewer do all the number crunching on your behalf. Instantly see your power, normalised power and heart rate based FTPs against all your segments or over any part of any of your activities including your best splits.
Segments are a great way to see how many times you’ve covered certain sections of road/track, but what if there are no segments set up for the stretch you are interested in? Say hello to the Activity Overlaps tab! OK, probably not the most sexy of names, but what it lacks in title it makes up for in functionality – select any section of any activity and it will search through all your activities and provide a list and map of any that overlap. Neat!
An image created by Seth Kadish at Vizual Statistix caught my eye in my Twitter timeline yesterday showing road orientation distributions (i.e. what directions the roads go in) for a number of US cities. Being British, the idea of roads forming a nice, thought-out pattern is completely alien to me and takes all the fun out of trying to get lost but the visualisations intrigued me none the less. The calculations used by Seth had a few limitations as the length of each street didn’t influence the plot and a twisty street would only register in a single orientation rather than being split appropriately. So time to step up to the plate to see if I can find a more interactive and representative way of doing the same thing.
Most of you by now will have tried out the new activity details page on VeloViewer but in the depths of a northern hemisphere winter, here’s how you can use it to find your Functional Threshold Performance (FTP) in conjunction with The Sufferfest’s Rubber Glove video from the comfort of your own kitchen/garage/cellar/gym.
Back in July I had my first experience with bookmarklets when playing with Marc Durdin’s excellent bit of code that provides his funky elevation profiles for Activities and Segments right there, in amongst Strava’s own page contents. I might have been a bit naive but I just didn’t realise that this thing was so easy to do, so time for a quick play and see what I could come up with. First off I wanted to get an interactive 3D view of the new Strava Routes, the other thing that sprung to mind was to see if I could swap out the Google Maps view for the more detailed (at least here in the UK) Open Street/Cycle Maps which I’ll go into in my next blog post.
Update: unfortunately this approach to getting data for the 3D viewer is remarkably unstable due to the ever changing code at each of the sites mentioned above. Currently I think all of the sites listed have changed their code sufficiently for my code to no longer work and I’m not going to attempt to maintain it. Instead I’ve added a GPX import option on the 3D routes page but it does rely on the GPX file including elevation data. The GPX export from Strava doesn’t so that won’t work so the best site I’ve found so far to create your GPX files is Ride With GPS. The elevation data isn’t the best though so don’t expect very good profiles (Garmin Connect appears to have the best elevation data right now but there is no GPX export!). Of course if you’ve ridden the route then just view your activity on VeloViewer and you’ll see a 3D view there.
The Strava web services which are the backbone of VeloViewer are set to be replaced in the very near future with a much improved set. These new API’s will open up a huge amount of additional data to what I’ve had to play with previously and I’ll finally know who is actually visiting the site and display or hide data appropriately, First up though is a video I’ve put together of the new Activities page I’ve been working on that shows the new, very interactive cross-filtering functionality integrated with a new activity summary map. Sorry for the very poor narration skills:
Hopefully you’ll understand how these filters will work and how powerful they’ll be for you.