You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于球员运动与事件数据填充橄榄球比赛Ball Position列咨询

橄榄球比赛球位置推算实现方案

1. 事件区间划分

从关联后的数据集里提取所有关键事件节点(比如传球发起、传球成功、持球开始/结束、失误等),按时间索引排序,把整个比赛时间线分割成独立的事件区间,给每个区间打上标签:

  • passing:传球阶段(比如索引1到5,Player1传球给Player2)
  • carrying:持球阶段(比如索引5到9,Player2控球推进)
    同时记录每个区间的起始/结束索引、涉及的球员(传球者、接球者/持球者)。

2. 持球阶段的球位置填充

对carrying类型的区间,直接将对应持球球员的X、Y坐标赋值给Ball Position:

  • 比如区间5-9是Player2持球,那么索引5到9的Ball_X = X_Plr2,Ball_Y = Y_Plr2
  • 代码示例(Python):
    # 假设df是关联后的数据集,已标记区间类型和持球球员
    carrying_mask = df['interval_type'] == 'carrying'
    carrier_col = df.loc[carrying_mask, 'carrier'].iloc[0]
    df.loc[carrying_mask, 'Ball_X'] = df.loc[carrying_mask, f"X_{carrier_col}"]
    df.loc[carrying_mask, 'Ball_Y'] = df.loc[carrying_mask, f"Y_{carrier_col}"]
    

3. 传球阶段的球位置线性插值

对passing类型的区间,按线性路径生成球的位置:

  1. 获取传球起始点(传球者在起始索引的坐标)和终点(接球者在结束索引的坐标):
    • 起始坐标:start_x = df.loc[start_idx, f"X_{passer}"],start_y = df.loc[start_idx, f"Y_{passer}"]
    • 终点坐标:end_x = df.loc[end_idx, f"X_{receiver}"],end_y = df.loc[end_idx, f"Y_{receiver}"]
  2. 根据区间内的时间步数(结束索引-起始索引+1),对X、Y分别做线性插值,生成每个时间点的球位置:
  • 代码示例(Python):
    import numpy as np
    
    # 遍历每个传球区间
    for interval in passing_intervals:
        start_idx, end_idx = interval['start'], interval['end']
        passer = interval['passer']
        receiver = interval['receiver']
        
        # 获取起始和终点坐标
        start_x = df.loc[start_idx, f"X_{passer}"]
        start_y = df.loc[start_idx, f"Y_{passer}"]
        end_x = df.loc[end_idx, f"X_{receiver}"]
        end_y = df.loc[end_idx, f"Y_{receiver}"]
        
        # 生成线性插值序列
        num_steps = end_idx - start_idx + 1
        ball_x = np.linspace(start_x, end_x, num_steps)
        ball_y = np.linspace(start_y, end_y, num_steps)
        
        # 赋值到数据集
        df.loc[start_idx:end_idx, 'Ball_X'] = ball_x
        df.loc[start_idx:end_idx, 'Ball_Y'] = ball_y
    

4. 边界情况处理

  • 若存在无事件标记的空白区间,默认按最近的持球球员坐标填充,或标记为待确认。
  • 若传球结果为失败(比如被截断),只填充到失误发生的索引,后续球位置标记为NaN或按规则处理。

5. 结果验证

随机抽取几个区间检查:持球阶段球位置是否和球员轨迹完全重合,传球阶段是否为平滑线性路径;若出现异常,回溯事件数据是否有误,调整插值逻辑。

内容的提问来源于stack exchange,提问作者Sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:16:08