NHL Goal Event Tracking Data
收藏资源简介:
Raw, verbatim archive backing the nhl-tracking-pipeline project (https://github.com/eker3777/nhl-tracking-pipeline). This repository contains player-tracking data from the NHL's public goal-recreation feed, play-by-play, shift charts, and NHL Edge season aggregates across three complete regular seasons (2023-24, 2024-25, 2025-26; 1,312 games each). This is source data, not a derived dataset. Files are stored exactly as returned by the endpoints, before any parsing. The archive exists because these are undocumented, unversioned NHL endpoints that could change or disappear without notice. The contents are organized as one zip per season. Extracting at a repository root reproduces the raw/ directory with the following structure: sprites/{season}/{game}/ev{event}.json containing frame-by-frame goal-recreation tracking with one file per goal (approximately 24,000 total) pbp/{season}/{game}.json official play-by-play data shifts/{season}/{game}.json shift charts in JSON format shifts_html/{season}/{game}_{TV|TH}.HTM HTML time-on-ice reports, fetched as a fallback for games where the JSON shift feed returned an empty body edge/{season}/{skater|goalie}/{player}.json containing NHL Edge season-level aggregates. Nothing is converted in terms of coordinates and units. Sprite coordinates are measured in inches from the rink corner at standard (-100, +42.5), spanning 0-2400 by 0-1020 inches. The sprite timeStamp field is expressed in deciseconds since the Unix epoch and steps exactly +1 per frame, so the rate is 10 fps. To convert to feet from centre ice, use std_x = raw_x / 12 - 100 and std_y = 42.5 - raw_y / 12. The second line is a subtraction from 42.5, not the other way around, because the sprite's y-axis runs opposite to the play-by-play's. Getting it backwards is invisible in any distance computed but wrong in rink maps and play-by-play joins. See the METHODS section 3 from github in the linked repository for additional detail. Coverage of regulation-and-overtime goals shows the sprite present and parsing for 99.25% / 99.92% / 99.93% across the three seasons. A shot frame is detected, via method described in METHODS, for 98.71% / 99.42% / 99.57%. A per-file SHA-256 manifest (manifest-{season}.jsonl: path, bytes, sha256) is included alongside each zip. Full documentation, the processing pipeline, and per-goal completeness and confidence tables are available at the linked GitHub repository. This project is not affiliated with or endorsed by the National Hockey League. The archive is a mirror of publicly accessible data; it is packaged and checksummed by this project, but the underlying data belongs to its original source.



