Commit Graph

8702 Commits

Author SHA1 Message Date
Mark Liversedge
aebc5dc388 Crr and CdA Regression Explainer
An explainer from Robert Chung for a regression method to estimate CdA and Crr from field data.

The key point being the generation of additional laps from a multi-lap run -- e.g. 3 x 18s laps of a velodrome
would normally be considered as 3 laps to fit against. Robert's approach is to create 36 laps from this data (!).
The first lap starts at 0s and lasts for 18s, the second lap at 1s ... up to the 36th lap starting at 37s.

We would then be able to get 36 estimates of Crr/CdA and calculate a mean and confidence interval (!).

The document committed explains how that regression would work mathematically, and how we
would adapt for working in the field (we need really good altitude data).
2018-10-06 09:44:51 +01:00
Mark Liversedge
6f59d09cb2 HiDPI: Aerolab lineedits for Cda,Crr etc
.. fixed widths needed *dpiXFactor
2018-10-05 08:36:00 +01:00
Mark Liversedge
e264405302 Fix Aerolab crash on no ride selected
.. when no ride available or last ride deleted lots of crashes. None
   of the slot functions check for null, so lots of crashes.
2018-10-04 09:58:31 +01:00
Mark Liversedge
475288d427 aerolab tests rename directory 2018-10-03 22:03:10 +01:00
Mark Liversedge
5ce7b3b054 Aerolab Test Files
Contributed by:
  * Nate Lesniewski
  * Tom Anhalt
  * Juan Benjumea
2018-10-03 18:55:57 +01:00
grauser
f7f2ca1d65 RideMapWindow : Use leaflet instead of googlemap api for OSM 2/4
Trace ride, intervals and markers
2018-10-03 13:39:00 +02:00
grauser
2068221324 Remove google.api for openstreetmap mode 1/4
This first commit breaks the openstreetmap display
2018-10-03 13:38:35 +02:00
Mark Liversedge
3c822fcc61 DEVELOPMENT RELEASE 3.5 DEV1810 v3.5-DEV1810 2018-09-27 09:00:55 +01:00
Mark Liversedge
672a16d6fd R2 label use superscript (its squared not 2) 2018-09-25 10:38:34 +01:00
Mark Liversedge
61cf324fa7 Fix units on CP plot work/time
.. performance test markers said "Unknown" for units when
   plotting work / time.
2018-09-23 11:01:17 +01:00
Mark Liversedge
1a8f4bd177 Overview metric for HRV needs to be displayed
.. its rMSSD, without the name the value is meaningless.
2018-09-22 11:55:07 +01:00
Erik Botö
1b2ef12383 ANT: HRV measurement improvements (#2935)
Improved handling of data page 4 for ANT+ HR.
2018-09-22 11:32:31 +01:00
Mark Liversedge
322b774387 HRV R-R data in Train View 3 of 3
.. reads .rr file when processing csv and adds the XDATA
   series "HRV".

NOTE: the HRV processing data added by Leif Warland will
      process the data and calculate SDANN/SDNN and friends
      since we use the same convention as for Polar HRV.
2018-09-22 11:30:51 +01:00
Mark Liversedge
332184fa92 HRV R-R data in Train View 2 of 3
.. record hrv R-R data to .rr file in the "records" folder when
   R-R data is available in train view.

.. next commit needs to read it in and save to XDATA
2018-09-21 19:04:49 +01:00
Mark Liversedge
3a31f5d131 HRV R-R data in Train View 1 of 3
.. collect R-R data from ANT+ devices and deliver to
   the train sidebar.

.. commit 2 needs to save to a file when recording a
   workout in train view

.. commit 3 needs to import the R-R data into XDATA when
   importing a train view CSV file
2018-09-20 15:48:35 +01:00
Mark Liversedge
e87d3b9dec Fix Overview Window steal focus MacOS
.. mousepad touch events require focus, so we disable
   touch events to stop the overview window from
   stealing focus from the ride list when scrolling
   through rides.
2018-09-12 08:52:34 +01:00
Mark Liversedge
143c10d9c0 CP Plot Helper Title for Work/Time
.. add "Work/Time" to model name when using an LR fit
   since we convert to joules.
2018-09-05 07:47:19 +01:00
Mark Liversedge
74fe950fc2 CP Plot Helper show model name
.. set the model overlay title to the full name of the
   model being used.
2018-09-04 21:55:51 +01:00
Mark Liversedge
dd4ff86da7 Fix last commit
.. it converted CPPlot::filterpower to work which
   of course then broke model fitting.
2018-09-01 18:53:02 +01:00
Mark Liversedge
6e91261502 CP plot filter best in Work/Time plot
.. not just when plotting power or w/kg
2018-09-01 18:22:17 +01:00
vlcvboyer
1191b8bd51 fix missing break in switch/case statement (#2918) 2018-08-29 09:52:56 +01:00
Mark Liversedge
2a6083071f LR Model Fit calculate R2
.. lots of folks understand what R2 means for a linear
   regression so calculate it alongside RMSE when we
   are performing a linear regression.
2018-08-25 07:47:23 +01:00
Mark Liversedge
9e5242a782 CP Plot fix y-axis for higher values of PMax
.. when model estimates for Pmax are higher than
   the bests data (e.g. when fitting to perf tests)
   then we need to adjust the y-axis to fit.
2018-08-23 19:33:29 +01:00
Mark Liversedge
bb4a8606a6 Add Last 24 hours to date ranges
.. particularly useful when modelling with a test protocol from a
   single ride e.g. 12-7-3 CP single session test.
2018-08-23 10:20:44 +01:00
Mark Liversedge
1721064184 CP Chart Plots the Linear Work Time Model
.. so you can see how the parameter estimates look when plotted
   in work time.

.. this means parameter estimation and model visualisation are
   separated -- you can estimate CP/W' using the extended model
   and an envelope fit but visualise with the linear work model.
2018-08-23 09:10:32 +01:00
Ale Martinez
8b2473d715 Fixes Last 6 weeks season duration
It is current day plus 41 previous ones, like existing -x days seasons
2018-08-22 21:01:22 -03:00
Alejandro Martinez
ee966c0a76 Merge pull request #2905 from DRiKE/ifdef-fix
missing ifdef GC_HAVE_ICAL
2018-08-21 21:24:55 -03:00
Luuk Hendriks
6979d665d7 missing ifdef GC_HAVE_ICAL 2018-08-22 00:54:43 +02:00
Mark Liversedge
95fd240577 Update to commit 39269cb5ca on CP2 search intervals
.. CP2 search interval mismatch betweem gui options and
   the PDModel definitions.

.. CP2 always needs 12m+ value.
2018-08-19 19:40:10 +01:00
Mark Liversedge
8a64b65ebb Linear Regress for Work/Time Model Fit
.. add fitting option to fit CP2 model to points using
   a linear regress.

.. kinda ironic that the most common and straight forward
   method for estimating CP/W' is added so late.
2018-08-17 18:39:16 +01:00
Mark Liversedge
4f19f75ed1 Tidy Up CP Plot Overlay
.. remove FTP

.. CP first, then W' and Pmax
2018-08-17 10:15:57 +01:00
Mark Liversedge
39269cb5ca Extended CP Model Search Intervals
.. slight tweak to aerobic interval to match the 7-20min
   interval used by CP2/CP3 and to reflect best practice.
2018-08-12 15:57:41 +01:00
Mark Liversedge
9208bfa617 CP window fit options
.. when model changes set the fit type to the best practice
   we would recommend with that model (and in the case of
   multimodels disable unsupported fits)

   * CP2/CP3 - LMA and Performance Tests
   * Extednded CP - Envelope and all MMP
2018-08-12 12:27:06 +01:00
Mark Liversedge
5046fe689c Hi-DPI Interval Sidebar
.. color block.
2018-08-10 22:39:22 +01:00
Mark Liversedge
c66a9d15f6 CP Plot refresh on intervals changed
.. to account for intervals being converted to performance tests
   or vice versa.
2018-08-10 15:26:17 +01:00
Mark Liversedge
3384114bdc CP 2/3p model interval defaults
.. change the default intervals within the models - these
   are used when estimating automatically via envelope and
   were too long.

.. truncated the data used by the models to avoid using
   MMP data beyond 20 minutes for 2/3p model.

.. results in much more robust estimates in CP History.
2018-08-09 15:59:32 +01:00
Mark Liversedge
34c402a3d2 Add LevMar lib to version dialog
.. in source tree, but may change.
2018-08-08 16:04:28 +01:00
Mark Liversedge
d9b12d63f7 Alternative Levenberg-Marquardt algorithm
.. allows constrained fits

.. this is a GPL lib that is included into the
   source tree to avoid adding another painful
   deendency.

.. for details of the lib please see:
   http://users.ics.forth.gr/~lourakis/levmar/
2018-08-08 14:34:35 +01:00
Mark Liversedge
7ff5a970df Disable WS/Velo models
.. the fit is wrong and need to look at that
   more closely.

.. in the meantime disabled in CPPlot.
2018-08-07 16:23:55 +01:00
Mark Liversedge
22ce1dc041 3 Param CP model env fit settings
.. default interval settings for search were way too high !
2018-08-06 15:05:32 +01:00
Mark Liversedge
e07c8494f1 Text Labels on CP plot for Performance Tests
.. tooltips getting too tricky with so much being plotted
   and since there are so few perf tests a label should be ok.
2018-08-06 09:25:19 +01:00
Mark Liversedge
73366fd582 Add tests() data filter function
.. returns the number of performance test intervals for the ride.

.. can be used to filter for only rides with tests, or even multiple
   tests in the same ride (e.g. 3,7,12 tests).

.. may add additional paramaters later to e.g. filter by duration or
   average power etc.
2018-08-06 07:48:22 +01:00
Mark Liversedge
9cedf54cd5 Performance Test Intervals Bold Text
.. in the interval sidebar.

.. maybe too subtle?
2018-08-06 00:10:19 +01:00
Mark Liversedge
5455714a47 CP Plot Performance Test Aesthetics
.. honour interval color selected by user when plotting
   performance tests on the CP plot

.. performance test symbol size is enlarged if the test is
   within the currently selected ride (in activity view).
2018-08-05 23:01:42 +01:00
Mark Liversedge
3aab662642 Interval sidebar helper for performance tests
.. right click options to
   * mark a user interval as a performance test
   * create a performance test interval from a disovered interval

.. this way when interval discovery finds a hard effort that you
   want to clone as a performance test, you can do it with one
   click.
2018-08-05 21:55:39 +01:00
Mark Liversedge
778fa11b7b CP Model Explainer Deck
.. will maintain versions here in the GC repo.
2018-08-05 18:59:39 +01:00
Mark Liversedge
a1635f075c Support Performance Tests for watts and watts/kg
.. in the CP plot and associated modelling functions.
2018-08-05 13:15:44 +01:00
Mark Liversedge
d4cb586850 CP Chart Modelling Improvements
.. CP plot modelling will fallback when insufficient data
   is available to model reliably, with a precedence:

      1. Performance tests
      2. Filtered MMP
      3. All MMP

.. when modelling for a single ride collect bests/performance
   data for the period up to that ride.

   This is so as you select older rides the model reflects the
   training status at that ride, not for the current period.

.. add adhoc season for 'Last 6 weeks' since it is a common
   timeframe to use when tracking impact of training
2018-08-05 12:31:11 +01:00
Mark Liversedge
c79565cbdd Better CP Plot Fit Summary
.. tell user what fit or data was used as there is a cascade back
   depending on the model selected and the availability of data.

.. the summary is also now in grey to indicate it is supplementary.
2018-08-03 12:14:39 +01:00
Mark Liversedge
54b161261e CP plot show info about fit
.. RMSE for now, just to get a basic sense

.. what type of fit was performed (since there is a fallback)

.. how many datapoints were used in the fit and RMSE calculation.
2018-08-02 21:30:24 +01:00