跟踪与表现数据分析
Tracking & performance data analysis
Compute metrics from tracking and wearable data.
20 条本项目编写的提案 · 分类 v1.1 · 新增基准运行 0 次。下方验证方式与部分得分规则是设计,不是执行结果。
- 典型应用
- Python · R · sports analytics tools
- 小类 GUI 需求标签
CL· CLI 足够
任务提案 · 20
展开查看完整原文与建议检查方式;两种界面均保留提案英文原文。
R13.05.01.02-T01 Compute total and high-speed running distance per player from tracking data
原始指令
data/metrica_game1/ holds Metrica Sports sample tracking CSVs (25 Hz, normalised pitch coordinates, 105×68 m pitch). Compute per player: total distance (m) and distance above 19.8 km/h, after removing frames with the ball out of play and smoothing speeds with a 0.5 s moving average. Write players_distance.csv.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
players_distance.csv compared to a hidden reference implementation: every player present; total distance within ±1%, HSR distance within ±3%.
建议部分得分
20% all players; 40% total distance; 40% HSR distance
R13.05.01.02-T02 Compute expected goals per team from StatsBomb open event data
原始指令
data/statsbomb/events_3788741.json is a StatsBomb open-data match. Sum the provided shot xG (statsbomb_xg) per team excluding penalty shootout shots, and report goals, shots and xG per team in xg.json.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 2 / 5
建议验证方式
xg.json values compared to reference: shots and goals exact; xG ±0.01. Shootout shots (period 5) included = fail.
建议部分得分
30% shots; 30% goals; 40% xG
R13.05.01.02-T03 Implement a pitch-control model for a single frame
原始指令
Using data/metrica_game1/ tracking and events, implement the Spearman (2018) pitch-control model with the parameters in docs/pitch_control_params.json and compute the attacking team's pitch-control surface on a 50×32 grid at the frame of event ID 823. Save pc_823.npy and report the attacking team's total control fraction.
- 平台
lin· Linuxmac· macOS- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP07· 仿真结果- 条件
- 未声明
- 提案难度
- 5 / 5
建议验证方式
pc_823.npy vs reference surface: mean absolute error ≤ 0.02 and correlation ≥ 0.99; reported fraction within ±0.01.
建议部分得分
30% player velocities and arrival times; 40% surface MAE; 30% control fraction
R13.05.01.02-T04 Flag athletes with high acute-to-chronic workload ratio
原始指令
data/gps_squad_season.csv has daily GPS loads (player, date, total distance, HSR, sprints) for 28 players. Compute the exponentially weighted ACWR (7-day acute, 28-day chronic, Williams 2017 EWMA) on total distance and list player-days with ACWR > 1.5 in acwr_flags.csv.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python · R
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
acwr_flags.csv (player, date, acwr) compared to reference: set F1 and ACWR values ±0.01. Missing days must be treated as zero load per the data dictionary.
建议部分得分
40% EWMA correct on spot checks; 60% flag set F1
R13.05.01.02-T05 Fit a critical power model in GoldenCheetah
原始指令
Import the 12 FIT files in data/rider_fit/ into a new GoldenCheetah athlete profile (weight 72 kg, FTP unknown). In the CP chart, fit the 3-parameter CP model over the last 90 days and record CP, W' and Pmax in answer.json. This is the GUI half of the pair with T19.
- 平台
mac· macOSwin· Windowslin· Linux- 应用
- GoldenCheetah
- 交互表面
desk· 桌面 GUI- GUI 需求 · 任务设定
G2· GUI 必要- GUI 需求 · 普通权限
G2· GUI 必要- 交互原语
click· 指向与点击nav· 平移 / 缩放 / 滚动vis· 视觉判断- 工作产物
WP07· 仿真结果- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
GoldenCheetah athlete folder: 12 activities imported; answer.json CP within ±3 W, W' within ±1 kJ, Pmax within ±20 W of reference values computed by GoldenCheetah's own model on the same data. Terminal is blocked on the VM and GoldenCheetah's embedded Python and R chart engines are disabled, so the fit must be done in the CP chart (contrast with T19).
建议部分得分
30% activities imported; 25% CP; 25% W'; 20% Pmax
R13.05.01.02-T06 Compute normalized power and TSS from a FIT file
原始指令
Parse data/ride_2026-09-14.fit and compute normalized power (30 s rolling average, fourth-power mean), intensity factor and TSS with FTP = 265 W. Exclude stopped time (speed = 0) from duration. Write ride_metrics.json.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 2 / 5
建议验证方式
ride_metrics.json vs reference: NP ±2 W, IF ±0.01, TSS ±1.
建议部分得分
40% NP; 20% IF; 40% TSS
R13.05.01.02-T07 Build a passing network and rank players by betweenness
原始指令
From StatsBomb open data match data/statsbomb/events_3869685.json, build each team's passing network up to the first substitution (completed passes, directed, weighted by count). Compute weighted betweenness centrality (distance = 1/weight) and write the top 3 players per team to network_top3.csv.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
Top-3 lists per team equal the reference (order-sensitive); edge list file edges.csv with weights compared exactly.
建议部分得分
40% edge weights; 60% top-3 lists
R13.05.01.02-T08 Count sprint efforts per player from 10 Hz GPS data
原始指令
data/gps_10hz/ holds raw 10 Hz GPS for 22 players in a match (lat, lon, speed, HDOP). Discard samples with HDOP > 2, convert to speeds from position if speed is missing, and count sprints (≥ 25.2 km/h sustained ≥ 1 s, separated by ≥ 1 s below the threshold). Write sprints.csv.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python · R
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
sprints.csv per-player counts equal the reference for ≥ 20 of 22 players and within ±1 for all.
建议部分得分
30% data cleaning; 70% scaled by players with correct counts
R13.05.01.02-T09 Smooth tracking speeds and find peak acceleration
原始指令
data/skillcorner_match.json contains broadcast tracking at 10 Hz with gaps. Interpolate gaps ≤ 0.5 s, apply a Savitzky-Golay filter (window 7, order 2) to positions, derive speed and acceleration, and report each player's peak acceleration (m/s²) in peak_accel.csv.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
peak_accel.csv vs reference: values within ±0.1 m/s² for ≥ 90% of players; longer gaps must not be interpolated (seeded traps).
建议部分得分
30% gap handling; 30% filtering; 40% peak values
R13.05.01.02-T10 Summarise pitcher spin and movement from Statcast-style data
原始指令
data/statcast_2025_sample.csv has pitch-level data for 15 pitchers. For each pitcher and pitch type with ≥ 50 pitches, compute mean release speed, spin rate, horizontal and induced vertical break (inches), and write pitch_summary.csv sorted by pitcher then usage.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python · R
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 2 / 5
建议验证方式
pitch_summary.csv vs reference: groups exact, means within ±0.1 units; feet-to-inch conversion for break columns required.
建议部分得分
30% grouping and filter; 50% values; 20% sort order
R13.05.01.02-T11 Compute closest-defender distance at shot time from basketball tracking
原始指令
data/nba_tracking_game.json has 25 Hz player/ball positions and data/pbp.csv has play-by-play. Align shot events to tracking (clock-based matching), find the shot release frame (ball leaves shooter's hand) and compute distance to the closest defender. Write shot_defense.csv.
- 平台
lin· Linuxmac· macOS- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 4 / 5
建议验证方式
shot_defense.csv vs reference: ≥ 90% of shots aligned to the right frame (±5 frames) and distance within ±0.3 ft.
建议部分得分
40% shot alignment; 20% release detection; 40% defender distances
R13.05.01.02-T12 Compute expected-threat added per player
原始指令
Using the xT grid in data/xt_grid_12x8.json and StatsBomb open data for 5 matches in data/statsbomb/, compute xT added by each successful pass and carry (end xT − start xT) and aggregate per player per 90 minutes (minimum 180 minutes). Write xt_players.csv.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 4 / 5
建议验证方式
xt_players.csv vs reference: player set exact; xT/90 within ±0.005; minutes computed from lineups and substitutions.
建议部分得分
30% minutes played; 40% xT per action; 30% per-90 aggregation
R13.05.01.02-T13 Classify serve placement zones from ball-tracking data
原始指令
data/tennis_ball_tracking.csv has 3D ball positions for 180 serves with bounce coordinates. Classify each first serve's bounce into Wide/Body/T zones per service box (definitions in docs/zones.md), compute serve speed at racket from the first 3 tracked points, and write serve_zones.csv.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 4 / 5
建议验证方式
serve_zones.csv: zone labels exact for ≥ 98% of serves; speeds within ±2 km/h of reference.
建议部分得分
60% zones; 40% speeds
R13.05.01.02-T14 Analyse pacing from swimming split times
原始指令
data/swim_400_splits.csv has 50 m splits for 64 swimmers across 8 heats. For each swimmer compute the coefficient of variation of laps 2-7 and classify pacing as even, positive, negative or parabolic per docs/pacing_rules.md. Write pacing.csv.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python · R
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
pacing.csv vs reference: CV within ±0.001; class labels exact for ≥ 95%.
建议部分得分
40% CV; 60% classes
R13.05.01.02-T15 Compute heart-rate zone time and TRIMP from wearable data
原始指令
data/hr_sessions/ has 30 sessions of 1 Hz heart rate for one athlete (HRmax 192, HRrest 48, sex male). Compute time in 5 zones (% HRmax bands in docs/zones.md) and Banister TRIMP per session, handling dropouts (HR = 0) by linear interpolation up to 5 s. Write hr_load.csv.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python · R
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
hr_load.csv vs reference: zone times within ±2 s, TRIMP within ±0.5.
建议部分得分
20% dropout handling; 40% zone times; 40% TRIMP
R13.05.01.02-T16 Detect and repair identity swaps in player tracking
原始指令
data/tracking_with_swaps.parquet has 25 Hz tracks for 22 players where the tracker swapped IDs 9 times when players crossed. Detect swap points (velocity/acceleration discontinuities and jersey-number observations in data/ocr_jerseys.csv) and output a corrected file with consistent IDs.
- 平台
lin· Linuxmac· macOS- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 5 / 5
建议验证方式
Corrected tracks vs ground truth: ID consistency (IDF1) ≥ 0.98 for full credit; swap points detected within ±5 frames (recall).
建议部分得分
40% swap detection recall; 60% scaled by IDF1 from 0.90 to 0.98
R13.05.01.02-T17 Fit a Banister impulse-response model to performance tests
原始指令
data/training_load.csv (daily TRIMP, 300 days) and data/performance_tests.csv (14 time-trial scores). Fit the 5-parameter Banister fitness-fatigue model (p0, k1, k2, tau1, tau2 with k-tau constraints in docs/model.md) by least squares in R or Python and report parameters and RMSE in banister.json.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- R · Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP07· 仿真结果- 条件
- 未声明
- 提案难度
- 4 / 5
建议验证方式
banister.json: RMSE within 5% of the reference optimum; parameters within the stated bounds; predictions file matches the fitted parameters.
建议部分得分
30% model implemented; 40% RMSE near optimum; 30% parameters in bounds
R13.05.01.02-T18 Estimate the time offset between GPS data and match video events
原始指令
data/gps_match.csv (10 Hz, device clock) and data/video_events.csv (sprint start times coded from video, video clock). Estimate the clock offset by cross-correlating sprint onset series, then output the video events with GPS timestamps and per-event peak speed in synced_events.csv.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
- 未声明
- 提案难度
- 4 / 5
建议验证方式
Estimated offset within ±0.2 s of ground truth; synced_events.csv peak speeds within ±0.3 km/h of reference.
建议部分得分
50% offset; 50% peak speeds
R13.05.01.02-T19 Control: fit the critical power model with a script
原始指令
Control pair of T05. Parse the 12 FIT files in data/rider_fit/, build the mean-maximal power curve over the last 90 days and fit the 3-parameter CP model (Morton) with the same duration range GoldenCheetah uses by default. Write CP, W' and Pmax to cp.json.
- 平台
lin· Linuxmac· macOSwin· Windows- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP07· 仿真结果- 条件
- 未声明
- 提案难度
- 3 / 5
建议验证方式
cp.json values within the same tolerances as T05 (CP ±3 W, W' ±1 kJ, Pmax ±20 W) against GoldenCheetah's reference fit. Used as the CLI control for T05.
建议部分得分
30% power-duration curve correct; 70% parameters within tolerance
R13.05.01.02-T20 Detect and classify off-ball runs from tracking data
原始指令
Using data/metrica_game2/ tracking and events, detect attacking off-ball runs (player without ball, speed > 18 km/h for ≥ 1.5 s, in possession phases) and classify each as run-in-behind, overlap, or support using rules in docs/run_types.md. Write runs.csv (player, start, end, type).
- 平台
lin· Linuxmac· macOS- 应用
- Python
- 交互表面
term· 终端- GUI 需求 · 任务设定
CL· CLI 足够- GUI 需求 · 普通权限
CL· CLI 足够- 交互原语
code· 代码与命令- 工作产物
WP02· 记录 / 表格- 条件
long· 长流程- 提案难度
- 5 / 5
建议验证方式
runs.csv vs reference: run detection temporal IoU ≥ 0.5 counts as match (F1); type accuracy on matched runs.
建议部分得分
20% possession phases; 50% run detection F1; 30% type accuracy
已有研究映射
当前映射未给此小类指定基准参考。