players: Found 25 players for team NSH
players: Loading league baseline...
players: Using baseline path: analysis/league/20252026/5v5
league: loading baseline from analysis/league/20252026/5v5/20252026_league_baseline.npy
players: Analyzing 26 players...
xgs_map: using provided DataFrame (in-memory) -> rows= 6807
_apply_intervals: intervals per_game count=25
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020156 rows_in_game=253 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020156 df_game_rows=253
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020253 rows_in_game=258 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020253 df_game_rows=258
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=9 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 1228 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8477446, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 29 68 9 10 24 23 26 25 14 4 20 3 5 21 13 17 16 52] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8477446, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8477446, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
INFO:root:Loaded cached shifts for game 2025020084 from data/20252026/shifts/shifts_2025020084.pkl
INFO:root:Loaded cached shifts for game 2025020208 from data/20252026/shifts/shifts_2025020208.pkl
Saved plot to analysis/players/20252026/NSH/8477446_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 5210
_apply_intervals: intervals per_game count=19
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020253 rows_in_game=258 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020253 df_game_rows=258
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
Filtered season dataframe to 832 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8479370, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 29 68 9 10 24 23 25 30 4 3 21 13 52 20] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8479370, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8479370, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8479370_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 3587
_apply_intervals: intervals per_game count=13
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020156 rows_in_game=253 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020156 df_game_rows=253
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=2 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
Filtered season dataframe to 555 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482062, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [29 18 68 9 10 24 23 26 25 14 4 20] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482062, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482062, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8482062_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 5416
_apply_intervals: intervals per_game count=20
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=11 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020156 rows_in_game=253 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020156 df_game_rows=253
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=9 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020253 rows_in_game=258 parsed_intervals=11 team_for_game=NSH
_apply_intervals: game 2025020253 df_game_rows=258
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=10 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=9 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=10 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=10 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 909 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8484241, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [18 23 26 25 14 4 20 30 3 5 21 13 17 16 52] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8484241, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8484241, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8484241_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 7374
_apply_intervals: intervals per_game count=27
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020253 rows_in_game=258 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020253 df_game_rows=258
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 1421 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8475158, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 29 68 9 10 24 23 26 25 4 20 30 3 5 21 13 17 16 52] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8475158, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8475158, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8475158_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 7321
_apply_intervals: intervals per_game count=27
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020156 rows_in_game=253 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020156 df_game_rows=253
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020253 rows_in_game=258 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020253 df_game_rows=258
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 1319 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8475287, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 29 68 10 24 23 26 25 14 4 20 30 3 5 21 13 17 16 52] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8475287, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8475287, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8475287_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 7627
_apply_intervals: intervals per_game count=28
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020156 rows_in_game=253 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020156 df_game_rows=253
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020253 rows_in_game=258 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020253 df_game_rows=258
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=23 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=11 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 1466 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8481056, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 29 68 9 10 24 23 26 25 14 4 20 30 3 5 21 13 17 16 52] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8481056, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8481056, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8481056_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 4642
_apply_intervals: intervals per_game count=17
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=23 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=26 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=25 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=23 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=25 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020253 rows_in_game=258 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020253 df_game_rows=258
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 982 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482482, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 29 68 9 10 24 23 26 25 3 5 17 20 13] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482482, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482482, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8482482_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 5696
_apply_intervals: intervals per_game count=21
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=10 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020156 rows_in_game=253 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020156 df_game_rows=253
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=11 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
Filtered season dataframe to 970 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482103, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 10 24 23 26 25 14 4 20 30 5 21 13 17 16 52] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482103, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482103, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8482103_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 5410
_apply_intervals: intervals per_game count=20
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=23 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=23 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=23 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020156 rows_in_game=253 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020156 df_game_rows=253
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
Filtered season dataframe to 1073 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482111, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 29 68 9 10 24 23 26 25 14 4 20 30 5] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482111, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482111, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8482111_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 7385
_apply_intervals: intervals per_game count=27
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020156 rows_in_game=253 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020156 df_game_rows=253
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020253 rows_in_game=258 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020253 df_game_rows=258
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 1299 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8474564, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [29 18 68 9 10 24 23 26 25 14 4 20 30 3 5 21 13 17 16 52] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8474564, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8474564, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8474564_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 7627
_apply_intervals: intervals per_game count=28
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=23 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=23 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=25 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=25 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020156 rows_in_game=253 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020156 df_game_rows=253
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=25 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020253 rows_in_game=258 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020253 df_game_rows=258
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=26 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 1847 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8476869, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 29 68 9 10 24 23 26 25 14 4 20 30 3 5 21 13 17 16 52] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8476869, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8476869, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8476869_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 6574
_apply_intervals: intervals per_game count=24
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=11 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=11 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 1028 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482768, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 29 68 9 10 24 23 26 4 30 25 5 21 13 17 16 52 20] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482768, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482768, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8482768_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 7627
_apply_intervals: intervals per_game count=28
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020156 rows_in_game=253 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020156 df_game_rows=253
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020253 rows_in_game=258 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020253 df_game_rows=258
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 1576 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8476887, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 29 68 9 10 24 23 26 25 14 4 20 30 3 5 21 13 17 16 52] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8476887, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8476887, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8476887_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 7344
_apply_intervals: intervals per_game count=27
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020156 rows_in_game=253 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020156 df_game_rows=253
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020253 rows_in_game=258 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020253 df_game_rows=258
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 1297 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8478047, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 29 68 9 24 23 26 25 14 4 20 30 3 5 21 13 17 16 52] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8478047, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8478047, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8478047_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 7076
_apply_intervals: intervals per_game count=26
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020137 rows_in_game=301 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020137 df_game_rows=301
_apply_intervals: game 2025020145 rows_in_game=276 parsed_intervals=13 team_for_game=NSH
_apply_intervals: game 2025020145 df_game_rows=276
_apply_intervals: game 2025020156 rows_in_game=253 parsed_intervals=12 team_for_game=NSH
_apply_intervals: game 2025020156 df_game_rows=253
_apply_intervals: game 2025020170 rows_in_game=262 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020170 df_game_rows=262
_apply_intervals: game 2025020183 rows_in_game=266 parsed_intervals=14 team_for_game=NSH
_apply_intervals: game 2025020183 df_game_rows=266
_apply_intervals: game 2025020201 rows_in_game=299 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020201 df_game_rows=299
_apply_intervals: game 2025020208 rows_in_game=277 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020208 df_game_rows=277
_apply_intervals: game 2025020223 rows_in_game=284 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020223 df_game_rows=284
_apply_intervals: game 2025020233 rows_in_game=240 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020233 df_game_rows=240
_apply_intervals: game 2025020253 rows_in_game=258 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020253 df_game_rows=258
_apply_intervals: game 2025020281 rows_in_game=232 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020281 df_game_rows=232
_apply_intervals: game 2025020296 rows_in_game=249 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020296 df_game_rows=249
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=22 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=16 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=15 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=17 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 1222 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482146, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [68 18 9 10 24 23 26 25 14 4 20 30 3 5 21 13 17 16 52] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482146, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8482146, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
Saved plot to analysis/players/20252026/NSH/8482146_map.png
xgs_map: using provided DataFrame (in-memory) -> rows= 4430
_apply_intervals: intervals per_game count=16
_apply_intervals: game 2025010091 rows_in_game=242 parsed_intervals=25 team_for_game=NSH
_apply_intervals: game 2025010091 df_game_rows=242
_apply_intervals: game 2025020016 rows_in_game=309 parsed_intervals=23 team_for_game=NSH
_apply_intervals: game 2025020016 df_game_rows=309
_apply_intervals: game 2025020032 rows_in_game=289 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020032 df_game_rows=289
_apply_intervals: game 2025020041 rows_in_game=306 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020041 df_game_rows=306
_apply_intervals: game 2025020049 rows_in_game=283 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020049 df_game_rows=283
_apply_intervals: game 2025020062 rows_in_game=235 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020084 rows_in_game=262 parsed_intervals=0 team_for_game=NSH
_apply_intervals: game 2025020105 rows_in_game=285 parsed_intervals=25 team_for_game=NSH
_apply_intervals: game 2025020105 df_game_rows=285
_apply_intervals: game 2025020118 rows_in_game=260 parsed_intervals=18 team_for_game=NSH
_apply_intervals: game 2025020118 df_game_rows=260
_apply_intervals: game 2025020343 rows_in_game=271 parsed_intervals=21 team_for_game=NSH
_apply_intervals: game 2025020343 df_game_rows=271
_apply_intervals: game 2025020357 rows_in_game=274 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020357 df_game_rows=274
_apply_intervals: game 2025020361 rows_in_game=280 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020361 df_game_rows=280
_apply_intervals: game 2025020389 rows_in_game=280 parsed_intervals=24 team_for_game=NSH
_apply_intervals: game 2025020389 df_game_rows=280
_apply_intervals: game 2025020397 rows_in_game=279 parsed_intervals=23 team_for_game=NSH
_apply_intervals: game 2025020397 df_game_rows=279
_apply_intervals: game 2025020416 rows_in_game=281 parsed_intervals=20 team_for_game=NSH
_apply_intervals: game 2025020416 df_game_rows=281
_apply_intervals: game 2025020429 rows_in_game=294 parsed_intervals=19 team_for_game=NSH
_apply_intervals: game 2025020429 df_game_rows=294
Filtered season dataframe to 1098 events by condition {'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8474600, 'team': 'NSH'} team='NSH'
DEBUG: xgs_map df_filtered unique teams: [12 18 29 68 9 10 24 23 21 13 17 16 52 20] (condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8474600, 'team': 'NSH'})
DEBUG: xgs_map heatmap_mode=team_not_team team_val=NSH condition={'game_state': ['5v5'], 'is_net_empty': [0], 'player_id': 8474600, 'team': 'NSH'}
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:377: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h = ax.scatter(grp1[xcol], grp1[ycol], c=c1, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)
/home/spoon/new_puck/puck/plot.py:382: UserWarning: You passed a edgecolor/edgecolors ('none') for an unfilled marker ('x'). Matplotlib is ignoring the edgecolor in favor of the facecolor. This behavior may change in the future.
h2 = ax.scatter(grp2[xcol], grp2[ycol], c=c2, marker=m, s=s, edgecolors='none', zorder=5, alpha=0.7)