Add matched training signals, daily recovery and performance analysis
This commit is contained in:
@@ -48,7 +48,10 @@
|
||||
document.getElementById('new-analysis').onclick=()=>location.assign('/stats');
|
||||
document.getElementById('matched-effort-form').onsubmit=event=>{
|
||||
event.preventDefault();const fields=Object.fromEntries(new FormData(event.target));
|
||||
const text=`${fields.source}\n during last ${fields.weeks} weeks\n where pace between ${fields.pace_low} and ${fields.pace_high} /km\n and elevation_per_km <= ${fields.hills} m/km\n and has heart_rate\n${fields.source==='segments'?' and pace_variability <= 5 %\n and sensor_coverage >= 80 %\n and duration >= 4 min\n':''} summarize weighted_mean(heart_rate) as "Matched-pace HR"\n by week\n compare none\n baseline previous ${fields.baseline} days\n flag above baseline 1.5 sd min ${fields.minimum} runs sustained 2 buckets\n chart line`;
|
||||
const windows=fields.source==='intervals';
|
||||
const filters=windows?` reduce by run min ${fields.matched} min\n where pace between ${fields.pace_low} and ${fields.pace_high} /km\n and elapsed >= ${fields.warmup} min\n and grade between -${fields.grade} and ${fields.grade} %\n and grade_variability <= 2 %\n and pace_variability <= 15 %\n and sensor_coverage >= 90 %\n and duration >= 25 s\n and hr_artifact_percent <= 0 %\n`:` where pace between ${fields.pace_low} and ${fields.pace_high} /km\n and elevation_per_km <= ${fields.hills} m/km\n and has heart_rate\n`;
|
||||
const baseline=fields.use_baseline?` baseline previous ${fields.baseline} days\n flag above baseline 1.5 sd min ${fields.minimum} runs sustained 2 buckets\n`:'';
|
||||
const text=`${fields.source}\n during last ${fields.weeks} weeks\n${filters} summarize ${windows?'mean':'weighted_mean'}(heart_rate) as "Matched-pace HR"\n by ${fields.use_baseline?'week':'run'}\n sort by date asc\n compare none\n${baseline} chart line`;
|
||||
location.assign('/stats?'+new URLSearchParams({query:text}));
|
||||
};
|
||||
document.querySelectorAll('[data-presentation]').forEach(control=>control.onchange=()=>{
|
||||
|
||||
Reference in New Issue
Block a user