Hitung statistik seperti waktu yang dihabiskan di zona detak jantung dan kekuatan individual, kekuatan yang dinormalisasi, faktor intensitas, skor stres latihan, indeks variabilitas, faktor efisiensi, beban latihan kronis, beban latihan akut, dan keseimbangan stres latihan, dari pengukur detak jantung dan daya.
Paket tersedia di bawah pypi:
pip install cycling-stats
Anda dapat menggunakan paket sebagai berikut. Contoh sederhana: Anda dapat mengimpor fungsi training_stress_score
sebagai berikut.
from cyclingstats . stats import training_stress_score
Paket ini mengharuskan Anda memiliki data dalam pandas.DataFrame
. Contoh berikut mengilustrasikan ketika Anda memiliki rangkaian waktu dari beberapa sesi latihan terpisah, dan Anda ingin menghitung statistik secara terpisah untuk setiap hari bersepeda.
import pandas as pd
from cyclingstats . stats import calc_hr_zones , calc_power_zones , agg_zones , agg_power
from cyclingstats . stats import chronic_training_load , acute_training_load , training_stress_balance
# read time series of power and/or heart rate
df = pd . read_csv ( "PATH_TO_YOUR_HEARTRATE_AND_POWER_DATA" )
df [ 'date' ] = pd . to_datetime ( df [ 'timestamp' ]. dt . date )
# perform any other preprocessing steps here
# ---------- zones
# define LTHR and FTP to calculate custom Coggan heart rate and power zones
LTHR = # TODO: fill in a number for the lactate threshold heart rate [bpm]
FTP = # TODO: fill in a number for the functional threshold power [W]
hr_zones = calc_hr_zones ( LTHR )
power_zones = calc_power_zones ( FTP )
# calculate hr and power zones
df_zones = df . groupby ( 'date' ). apply ( agg_zones , hr_zones = hr_zones , power_zones = power_zones )
# ---------- power
df = df . set_index ( 'timestamp' )
# calculate power statistics
df_power = df . groupby ( 'date' ). apply ( agg_power , FTP = FTP )
# fill up dates for which we don't have an entry to get exponential weighted mean (ewm)
dates = df_power . index
df_power = df_power . reindex ( date_range )
# calculate ctl, atl and tsb
df_power [ 'chronic_training_load' ] = chronic_training_load ( df_power [ 'training_stress_score' ])
df_power [ 'acute_training_load' ] = acute_training_load ( df_power [ 'training_stress_score' ])
df_power [ 'training_stress_balance' ] = training_stress_balance ( df_power [ 'chronic_training_load' ], df_power [ 'acute_training_load' ])
# get back to indices for which there is a training session
df_power = df_power . loc [ dates ]
Jika Anda mengalami masalah, silakan menghubungi penulis ([email protected]).
Kode ini adalah © E. van Weenen, 2022, dan tersedia di bawah lisensi MIT yang disertakan dengan perangkat lunak.
Di luar batasan hukum yang diberlakukan oleh lisensi ini, jika Anda menggunakan perangkat lunak ini untuk publikasi akademis maka Anda wajib memberikan atribusi yang sesuai.
E. van Weenen. cycling-stats: Calculate advanced cycling statistics from power and/or heart rate data, v0.1 (2022). github.com/evavanweenen/cycling-stats.