Posted by & filed under Explorer.

The way that completed Explorer tiles are calculated has remained pretty static since its inception in March 2015 which included some, less than precise code to try to get around some of its known limitations (detailed below). I’ve now refined that code to improve the accuracy and also speed up the processing quite considerably and also introduced a method to get a definitive list of tiles for an Activity.  This improved accuracy will of course result in a number of tiles that were previously marked as ticked now showing up as unticked (and potentially affecting your max square size) but only tiles that you never actually visited in the first place 🙂

Related posts: VeloViewer Explorer Score and Max SquareVeloViewer Chrome Extension for Strava Website

Important things to understand

  • By default, the Explorer tiles are calculated using the summary map line for each activity which is the line you see in the map on your Activities List page. This is a simplified version of the route taken and can miss out some of the detail of your activity and occasionally fail to cross a tile boundary which you actually did cross, equally it can cross one that you didn’t!
  • An Activity’s summary map can contain a portion that you didn’t actually travel which should not be included in tile ticking. This usually happens for one of two reasons:
    1. The user pauses their GPS device for a cafe stop and forgets to restart it. Half an hour later they notice their mistake and restart it and a line straight between those two points is created mid-activity.
    2. A user starts recording their GPS device before a signal has been fully established from the satellites. This can result in a line coming from the last location the GPS was used to the current location once the GPS works out where it is.
  • Some summary map portions can be very long (especially for people riding on very long, straight roads) and from a data perspective can’t be differentiated from one of these GPS error lines so a max distance of line to consider for ticking tiles has to be implemented to try and limit the number of error lines being taken into consideration.
  • If the definitive set of tiles has been created for the activity (see below) then this list is then used for this activity on the Summary and Activities List pages rather than creating the set of tiles from its summary line.

Previous inaccuracies

  • Each portion of the summary map was populated with dummy data points every 100m and these, along with the end points, were used to create a list of completed tiles.
  • For each of these data points, a 100m buffer was allowed to cater for the gaps between each point.
  • There was no way to overwrite any incorrectly marked tiles (either false positive or false negative).
  • The max line distance for any single portion of the summary map was set to 10km. Any portion shorter than this would used to tick off tiles (resulting in some false positives where people have forgotten to restart their GPS) but also some activities that take in a straight road for longer than 10km would not get all of their correct tiles ticked.

The updates

Definitive tiles for an activity

The tackling of that final point above has been the spark that has ignited these other updates.  Now, when you open an Activity’s Details page (by clicking on its name in the list or on its line in the map on the Activities List), in the background it will work out and store a definitive list of the Explorer tiles completed for this activity using every single data point recorded. No need for the code to fill in gaps as the data should be recorded for every single second of the activity (people shouldn’t be using Smart recording these days!) so only those tiles actually visited will be ticked. i.e. no more false positives or false negatives for that Activity on the Summary and Activities List pages.

Note: you will need to head back to/refresh your Summary page in order to get any changes in your tiles included in the datafile for the Chrome Extension and also to update the leaderboards.

Removal of 100m buffer

Now that you can get that definitive list of tiles populated for a given Activity, that opened the door to remove the 100m buffer in the old calculation. I ran this idea past the community on Facebook and the “Ride Every Tile” Strava group and got 100% positive feedback to remove the buffer… so I did!

This will inevitably result in you loosing a few previously ticked tiles where you didn’t originally enter them fully, so time to plan some new outings.

Update to algorithm

I’ve also moved from the original method of adding additional points every 100m along each portion of a summary map to a purely algebraic approach which is far more accurate and also far faster to run. Remember, this will only be used for Activities that haven’t had their definitive set of tiles already calculated.

Max line length change

As I mentioned earlier, a hard coded 10km limit was applied to each portion of a summary map, if it was above this then the tiles covered along its length were ignored, if less then they were ticked off.  There still needs to be some limit in place but seeing as the summary map lines get more simplified (i.e. longer lines) the longer the distance of the Activity, I’ve changed that 10km limit to now be the [Activity distance]/10.  I’m sure this will still result in a few tiles being included when they shouldn’t and vice versa but in each of those cases just open the associated Activity Details page and the correct set of tiles will be set for that Activity from that point forwards.

Tiles calculated column/filter on Activities List

New column on the Activities List page called “Tiles calculated” that allows you to filter to show just those that have already had their definitive list of tiles calculated, or vice versa.

Inaccessible tiles

Some people will inevitably have tiles that they can’t physically get into because those areas are strictly off limits (e.g. Area 51). This is a bit of a pain for people wanting to continue to grow their Max Square but have a square they just can’t tick off.  A debate is ongoing on how this sort of thing should be handled over on this thread on the “Ride Every Tile” Strava club – https://www.strava.com/clubs/279168/posts/582450 (note: you might need to be a member of the club to see that discussion).

Whatever is agreed upon in there, I’m more than happy to implement 😀

Share

10 Responses to “Explorer Tile Calculation Updates”

  1. Daniel

    I think it is correct to just count tiles you were actually in and not just near by.

    The Chrome Extention needs an update too, it shows me tiles as checked although I just crossed by by a few meters. Maybe old calculation?

    Reply
    • Ben Lowe

      The next time you do an update of any kind and then visit your Summary page the new set of tiles for the Chrome Extension will be created. It only rebuilds it after your core data has changed in some way.

      Reply
  2. Paul

    I’m guessing that ‘clump’ refers to squares that are surrounded on all 4 sides by traveled squares – is that correct?

    Reply
    • Ben Lowe

      That’s right. I’m about to write another blog post to describe it all in detail. The vote on the recent Facebook post has resulted in the new name of Explorer Cluster.

      Reply
    • Ben Lowe

      Smart recording was introduced back in the day when storage space on devices was limited to save space. These days that isn’t an issue. The Smart recording basically leaves gaps so you just have to extrapolate the data between those gaps in order to work out averages etc so basically introducing a margin of error to your stats. Maybe not as much of an issue if you are not using any other sensors at all but as soon as you start using cadence and especially power sensors then you definitely want 1s recording to get as much fidelity to your data as possible.

      Reply
  3. Chris

    So if i did ride a long straight road and lost squares because it was misinterpreted as a gps skip, what can i do?

    Reply
    • Ben Lowe

      Just open the activity up in VeloViewer and it’ll automatically build a list of all the tiles visited using the actual recorded data points. From then on that definitive list of tiles will be used for the totals on your Summary page and in the map on your Activities page.

      Reply
  4. David

    Man … I was planning on using that 100m buffer trick today! Dropped from 22 max square to 9, we’ll see what I get back to after getting definitive tiles for numerous rides.

    Reply
  5. CB

    Yay awesome. I had about 5 long straight lines (Central Valley in California) that were bugging me that I didn’t get credit for. Just clicked on those activities, refreshed, and now I get credit for them. Thanks!

    I lost a few tiles too due to the buffer, but I’ll get them back even though some will require some deep hikes into the Sierras.

    Keep up the great work.

    Reply

Leave a Reply

  • (will not be published)