Перейти к содержанию

Что анализируется

Каждый раз, когда PeakLine загружает одну из ваших активностей, она прогоняет её через один и тот же конвейер анализа. Эта страница — карта этого конвейера: что рассчитывается, что для этого нужно и где почитать подробнее.

Конвейер вкратце

Strava webhook / manual refresh
1. Ownership and access check
2. Fetch streams (lat/lng, time, heartrate, watts, cadence, altitude, velocity, temp)
3. Fetch laps, zones, kudos, photos
4. Fetch historical weather (Open-Meteo)
5. Fetch air quality (OpenWeather)
6. Compute metrics
        ├── Power: NP, IF, TSS, zone time
        ├── HR:    avg/max, zone time, TRIMP
        ├── Pace:  GAP (grade-adjusted)
        ├── Climbs: auto-detect, gradient, VAM per climb
        ├── Terrain: flat | rolling | hilly | mountain | highmountain
        ├── PeakLine Score (0–1000) with tier
        ├── Stress Points (TSS-like)
        ├── Wind impact (% loss estimate)
        ├── Sun time (minutes in daylight)
        └── Comparison vs. previous 10 same-type activities
7. Cache result (cached_analysis table)
8. Optionally update Strava description (if auto-report enabled)

Весь процесс занимает примерно 2–8 секунд для типичной активности продолжительностью 1–3 часа, после чего результат остаётся в кеше, поэтому повторные заходы на страницу активности открываются мгновенно.

Что нужно для каждой метрики

Некоторым метрикам нужны конкретные датчики. Вот что требуется и на что происходит плавный откат при отсутствии данных.

Метрика Требуется Откат к
PeakLine Score дистанция + время + набор высоты — (рассчитывается всегда, отклоняет активности ниже пороговых значений)
Stress Points NP (лучший вариант), или пульс, или темп, или скорость рассчитывается всегда, но с меньшей точностью
NP, IF, TSS измеритель мощности (поток watts, ≥30 точек) оценка IF на основе пульса
Зоны мощности (Z1–Z7) мощность + FTP, заданный в настройках нет — зоны скрываются, если нет данных о мощности
Зоны пульса (Z1–Z5) нагрудный датчик пульса + max_hr в настройках использует max_hr=190 по умолчанию, если не задано
TRIMP пульс + ЧСС в покое/максимальная оценка только по продолжительности
GAP потоки темпа + высоты необработанный темп
Определение подъёмов поток высоты не рассчитывается для активностей в помещении
VAM на подъём высота + время не рассчитывается для активностей в помещении
Погода начальные lat/lng + время старта ничего, если нет координат
AQI начальные lat/lng + недавняя дата ничего, если нет координат или дата слишком старая
Влияние ветра погода + скорость ничего
Время на солнце начальные lat/lng + продолжительность ничего

Хотите получить всё?

Самый насыщенный данными анализ получается из шоссейной поездки с измерителем мощности и нагрудным датчиком пульса. Активности в помещении, ручные записи и активности без GPS получают сокращённый набор метрик — но никогда не ошибку.

Какие типы активностей мы поддерживаем

Тип активности Strava определяет несколько вариантов поведения (какой эталон скорости использовать, какую модель зон, имеют ли смысл подъёмы). PeakLine распознаёт:

Велосемейство: Ride, VirtualRide, MountainBikeRide, GravelRide, Velomobile, Handcycle. EBikeRide распознаётся, но исключается из PeakLine Score.

Беговое семейство: Run, TrailRun, VirtualRun.

Прочее: Hike, Walk, Swim, Workout, AlpineSki, Snowboard, BackcountrySki, Yoga, WeightTraining, RockClimbing и ещё ~30. Для них выполняется базовый анализ (дистанция, время, пульс, если он записан), но без PeakLine Score.

Как работает кеширование

Результат анализа индексируется по (activity_id, settings_hash). Если вы измените свой FTP, все старые анализы пересчитываются при следующем просмотре. Это исключает устаревшие данные по зонам, когда вы проходите повторное тестирование.

Принудительное обновление: откройте любую страницу активности и нажмите небольшую кнопку в правом верхнем углу. Она обходит кеш и заново загружает всё из Strava.

Читать далее