Skip to content

Tracab

Load tracking data from Tracab format. Supports multiple file format variants.

Function Signature

from fastforward import tracab

dataset = tracab.load_tracking(
    raw_data="tracking.dat",
    meta_data="metadata.xml",
)

Parameters

Parameter Type Default Description
raw_data FileLike required Path to tracking data file (.dat or .json)
meta_data FileLike required Path to metadata file (.xml or .json)
layout str "long" "long", "long_ball", or "wide"
coordinates str "cdf" Target coordinate system
orientation str "static_home_away" Target orientation
only_alive bool True Only include frames where ball is in play
include_game_id bool | str True Add game_id column
engine str "polars" "polars" or "pyspark"

File Format

Tracking data: Supported formats are auto-detected:

  • .dat: Tracab DAT text format (or binary DAT)
  • .json: JSON format

Metadata: Supported formats are auto-detected:

  • .xml: XML (hierarchical or flat structure)
  • .json: JSON

Example

from fastforward import tracab

# DAT + XML (most common)
dataset = tracab.load_tracking(
    raw_data="tracab_raw.dat",
    meta_data="tracab_meta.xml",
)

# JSON + JSON (alternative)
dataset = tracab.load_tracking(
    raw_data="tracab_raw.json",
    meta_data="tracab_meta.json",
)

print(dataset.tracking.head())

Notes

  • Tracab natively uses centimeters with center origin. fast-forward automatically converts to the target coordinate system (CDF meters by default)
  • Player information may not be fully available in the metadata file. Players are automatically extracted from the tracking data during loading
  • Multiple metadata XML structures are supported (hierarchical and flat) and auto-detected