Hi,
We are unlikely to bring interval analysis into 3.2. There is a codebase in there that Damien wrote but it is not active. I think it would be good to start thinking and discussing it. Especially since Damien has already had another look at the code.
Functionally, it really breaks down into 3 things;
1. Extracting intervals from rides
This will mean automatically identifying parts of a ride as intervals. The key here will be what rules or types of intervals are extracted. At present we could have;
- Route - user labelled routes or segments that represent a route you ride often. it may be a particular climb or col you regularly ride, or perhaps a 10mile TT or training loop. Its identified using GPS.
- Climb - extracting intervals where you climbed/descended; we will need to identify short-steep ramps as long as longer shallower grades. Some kind of scoring metric might be useful for classifying these. Likely to overlap with a Route but do not need GPS, they are extracted based upon distance and altitude.
- Peak - peak durations; for power but also cadence, hr, speed/pace.
- Efforts - a sustained effort. This is quite tricky to describe but basically represents a power interval. Using the zone and CP config we will identify efforts that represent an Anaerobic, Aerobic, VO2Max, Threshold effort. These are likely to overlap with Peak power intervals.
- Matches - A particular kind of sustained effort where W' is being consumed, so will span all zones above CP.
These intervals will be identified and associated with the ride in which they occur but will not be added to the ridefile. Which therefore leaves us with one last interval type:
- User - user defined intervals; the ones you added to the ride using the find intervals tools. Likely to also overlap with the automatic ones
Since there is an overlap with these intervals we will need to think about how we remove duplicates in the UI to ensure you don't see lots of intervals all the same.
2. Augment the Intervals for an activity
Pretty obvious, but once we have extracted all these intervals automatically we should asociate them with the rides so you can plot and select them in the activity view.
This will basically mean that the interval sidebar in activity view will list all 6 types of intervals to allow you to select them or drag and drop them into the compare pane.
If we do this then no other coding is needed to allow you to plot an interval sample by sample -or- compare intervals sample by sample.
3. Interval View
Select and chart 'sets' of intervals. To be able to track and compare intervals.
Like the trends view it is about selecting and charting; where the trends view is focused on sets of rides over time, the interval view is about sets of intervals over time. Of course there is a big difference here, we are looking at specific sections of rides that are interesting for a particular reason.
This particular reason means we are going to be looking for indicators and correlations that go a lot further than just quantifying stress or tracking improvements (or lack of them). These particular reasons are likely to warrant us to offer different types of charts and features within the charts, some that immediately come to mind are:
- Ranking and Ordering - Showing intervals in some form of ordered / ranked chart. Possibly just a bar chart or histogram.
- Scatter / Bubble - Plotting intervals spatially to show any correlations or patterns e.g. gradient and peak power (from discussion on the list). There are possibly other new metrics we will want to add for analysing intervals but we have some useful ones now like fatigue and pacing index.
- Radar Plot - this is actually likely to be equally useful for rides; but aggregating/averaging multiple dimensions for a set.
In all cases we are also likely to want to:- Compare - Sets of intervals with each other; showing each set in a different color
- Query/Filter Sets - The sidebar will need to be designed to select intervals into a set; almost certainly using the same approach data filters and autofiltering ux we use in the trends view, but adjusted for intervals. For example; where in trends we allow the user to autofilter by a metadata field, we might autofilter by interval type (e.g. an autofilter for all 5s peaks, all routes called 'Fave Loop').
There is probably more we could add to this, but this is enough to start thinking about it and discussing ideas.
Mark