Frame: ESPN football yardlines
[
{
"team": "PHI",
"period": 1,
"clock": "6:15",
"yardline": 99,
"field_x": 49,
"field_y": null
},
{
"team": "PHI",
"period": 2,
"clock": "1:35",
"yardline": 88,
"field_x": 38,
"field_y": null
},
{
"team": "PHI",
"period": 3,
"clock": "2:40",
"yardline": 54,
"field_x": 4,
"field_y": null
},
{
"team": "KC",
"period": 3,
"clock": "0:34",
"yardline": 24,
"field_x": -26,
"field_y": null
},
{
"team": "KC",
"period": 4,
"clock": "2:54",
"yardline": 7,
"field_x": -43,
"field_y": null
},
{
"team": "KC",
"period": 4,
"clock": "1:48",
"yardline": 50,
"field_x": 0,
"field_y": null
}
]import { SUPER_BOWL_LIX_TDS } from "@sportsdataverse/examples/data";
import { toSurfaceFrame } from "@sportsdataverse/sporty";
// ESPN plays: a 0-100 yardline from the home team's goal line (Super Bowl LIX's touchdowns, Philadelphia at home).
// The frame centres the field: midfield is x = 0. `x`/`y` pick the input columns and `out` names the outputs, so the
// frame fits any table. ESPN reports no lateral position, so these rows have no `y` and field_y is null, never NaN.
toSurfaceFrame(
SUPER_BOWL_LIX_TDS.map(({ team, clock, period, yardline }) => ({ team, period, clock, yardline })),
{ from: "espn-football-0-100", x: "yardline", out: { x: "field_x", y: "field_y" } },
);
Tags: frames · toSurfaceFrame · espn-football-0-100 · football. All sporty examples.