本文目录导读:

高球传中争顶成功率”的统计,在开源足球数据分析项目中并没有一个统一的、现成的指标,因为这是一个复合型指标,需要结合事件数据和追踪数据才能计算,有几个开源项目和工具可以用来构建这个统计,下面分几个层面来说明。
核心概念拆解
“高球传中争顶成功率”通常需要拆成两个事件来统计:
- 高球传中:从边路/肋部起脚的高弧度传中
- 争顶成功:传中后进攻球员在空中对抗中赢得球权(或形成射门/摆渡)
公式一般为:
争顶成功率 = 争顶成功次数 / 争顶总次数
可用的开源数据源与项目
StatsBomb Open Data(最推荐)
- GitHub:
statsbomb/open-data - 提供免费的比赛事件数据(含
Pass中的cross标记、Aerial Won/Aerial Lost事件) - 可以筛选:
pass.type == "Cross"且pass.height == "High Pass",再关联后续的Duel事件 - 支持 Python 通过
statsbombpy库直接读取
Wyscout 公开数据集
- 部分公开的 Wyscout 事件数据(如 Figshare 上的 SoccerMatch 数据集)
- 含
Cross、Air Duel标签,可做类似统计
Socceraction / soccerdata
ML-KULeuven/socceraction:事件数据转 SPADL 格式,便于统一计算probberechts/soccerdata:多数据源爬取封装
FBref(非严格开源但可爬)
- 有传中(Crosses)和空中对抗(Aerials Won)分项统计,但不直接给“传中后争顶”的关联
实现思路(以 StatsBomb 为例)
from statsbombpy import sb
events = sb.events(match_id=XXXX)
# 1. 找高球传中
crosses = events[(events['type']=='Pass') &
(events['pass_height']=='High Pass') &
(events['pass_cross']==True)]
# 2. 找传中后的争顶事件(Aerial Won/Lost 或 Duel)
duels = events[events['type'].isin(['Duel','50/50'])]
# 3. 按时间/位置关联(传中后 N 秒内的争顶)
# 计算成功率
难点:事件数据里传中和争顶之间没有直接外键,需要用时间窗口 + 空间邻近做关联,这是这类统计的主要工程挑战。
追踪数据方案(更精确)
如果有 Metrica Sports 或 SkillCorner 的公开追踪数据,可以用球员轨迹判断“传中落点附近谁先触球/赢下空中球”,但这类开源数据较少。
- 没有现成开源项目直接输出“高球传中争顶成功率”这个指标
- 但用 StatsBomb Open Data + socceraction/statsbombpy 可以自行构建
- 若你需要,我可以帮你写一个完整的计算脚本(含传中-争顶事件关联逻辑),你告诉我用哪个数据源即可。