From 946a9dc2a5d8fb5fdfe878be5059768d52cea271 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Tue, 17 Dec 2024 20:21:28 +0100 Subject: [PATCH] better rscore and time calc --- rowers/utils.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/rowers/utils.py b/rowers/utils.py index f8f37440..d40ba97a 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -793,10 +793,17 @@ def step_to_time_dist(step, avgspeed=3.2, ftp=200, ftspm=25, ftv=3.7, powerzones avgpower = targetpower if valuelow != 0 and valuehigh != 0: # pragma: no cover avgpower = (valuelow+valuehigh)/2. - avgspeed = ftv*(avgpower/ftp)**(1./3.) + if avgpower < 10 and avgpower > 0: + targetpower = ftp*0.6 + elif avgpower > 10 and avgpower < 1000: + targetpower = avgpower*ftp/100. + elif avgpower > 1000: + targetpower = avgpower-1000 + + avgspeed = ftv*(targetpower/ftp)**(1./3.) distance = avgspeed*seconds - rscore = 100.*(avgpower/ftp)*seconds/3600. + rscore = 100.*(targetpower/ftp)*seconds/3600. if targettype in ['Cadence','CadenceLap']: value = step.get('targetValue', 0) @@ -867,7 +874,7 @@ def step_to_time_dist(step, avgspeed=3.2, ftp=200, ftspm=25, ftv=3.7, powerzones seconds = distance/avgspeed - rscore = 100.*(avgpower/ftp)*seconds/3600. + rscore = 100.*(targetpower/ftp)*seconds/3600. if targettype in ['Cadence','CadenceLap']: # pragma: no cover value = step.get('targetValue', 0)