Chapter 16: Quiz - Spatial Analysis and Field Visualization
Instructions
- 30 questions total
- Mix of multiple choice, true/false, and short answer
- Estimated completion time: 45 minutes
Section 1: Field Dimensions and Coordinates (Questions 1-8)
Question 1 (Multiple Choice)
What is the total length of a football field including end zones?
A) 100 yards B) 110 yards C) 120 yards D) 130 yards
Question 2 (Multiple Choice)
The width of a football field is approximately:
A) 40 yards B) 48 yards C) 53.33 yards D) 60 yards
Question 3 (True/False)
College hash marks are positioned farther apart than NFL hash marks.
Question 4 (Multiple Choice)
In college football, the hash marks are how far from each sideline?
A) 13.33 yards (40 feet) B) 18.5 feet from center C) 20 yards D) At the center of the field
Question 5 (Short Answer)
Explain why coordinate systems in football analytics often need transformation. Give two common transformations and their purposes.
Question 6 (Multiple Choice)
When using "offense-oriented" coordinates, what does positive y typically represent?
A) Movement toward the left sideline B) Movement toward the right sideline C) Movement toward the offense's left D) Movement toward the offense's target end zone
Question 7 (True/False)
The end zone depth is 10 yards in both college and professional football.
Question 8 (Multiple Choice)
Which coordinate system makes it easiest to compare routes across different plays?
A) Absolute coordinates (0-120 yards) B) Relative coordinates (from line of scrimmage) C) GPS coordinates D) Pixel coordinates
Section 2: Player Position Visualization (Questions 9-14)
Question 9 (Multiple Choice)
What matplotlib function is most appropriate for plotting player positions as circular markers?
A) plt.plot()
B) plt.scatter()
C) plt.bar()
D) plt.fill()
Question 10 (Short Answer)
Describe three visual attributes that can be used to differentiate offensive and defensive players in a formation diagram.
Question 11 (Multiple Choice)
When annotating player positions with jersey numbers, which matplotlib method is typically used?
A) ax.text()
B) ax.title()
C) ax.xlabel()
D) ax.legend()
Question 12 (True/False)
In a standard football field visualization, the y-axis represents the length of the field (0-120 yards).
Question 13 (Multiple Choice)
What is the recommended approach for highlighting specific players in a formation diagram?
A) Make all other players invisible B) Use a different marker size, color, or edge style C) Only show the highlighted players D) Add a separate legend for each player
Question 14 (Short Answer)
Explain the concept of "z-order" in matplotlib and why it matters for football field visualizations.
Section 3: Route Visualization (Questions 15-19)
Question 15 (Multiple Choice)
What is a "break point" in route visualization?
A) The point where a receiver catches the ball B) The point where the route changes direction C) The line of scrimmage D) The point where coverage is beaten
Question 16 (Multiple Choice)
Which of the following is NOT a common route in the standard route tree?
A) Slant B) Post C) Wheel D) Screen
Question 17 (Short Answer)
Describe how you would visually distinguish between completed and incomplete routes in a passing chart.
Question 18 (True/False)
A "dig" route is another name for an "in" route, typically cutting inside at around 12-15 yards.
Question 19 (Multiple Choice)
When visualizing a route tree, what is the best way to handle overlapping routes?
A) Draw only non-overlapping routes B) Use slight offsets or transparency C) Show routes on separate diagrams D) Use the same line style for all routes
Section 4: Heat Maps and Density (Questions 20-24)
Question 20 (Multiple Choice)
Which scipy function is commonly used to create kernel density estimates for heat maps?
A) scipy.stats.norm
B) scipy.stats.gaussian_kde
C) scipy.interpolate.griddata
D) scipy.signal.convolve
Question 21 (Short Answer)
Explain the purpose of the bandwidth parameter in kernel density estimation and how it affects the resulting heat map.
Question 22 (Multiple Choice)
What matplotlib function creates a filled contour plot suitable for heat maps?
A) ax.contour()
B) ax.contourf()
C) ax.pcolormesh()
D) Both B and C can work
Question 23 (True/False)
Heat maps are effective for visualizing individual data points but poor for showing density patterns.
Question 24 (Multiple Choice)
When creating a target heat map for a quarterback, what should the data represent?
A) Where receivers lined up B) Where passes were caught C) Where passes were targeted (caught or not) D) Where the quarterback stood when throwing
Section 5: Formation Analysis (Questions 25-27)
Question 25 (Short Answer)
Describe the key characteristics that differentiate a 4-3 defensive formation from a 3-4 formation.
Question 26 (Multiple Choice)
In formation analysis, what does "box count" typically refer to?
A) Number of players within 7-8 yards of the line of scrimmage B) Number of wide receivers C) Number of defensive backs D) Number of offensive linemen
Question 27 (True/False)
A "2-high" safety look indicates that both safeties are positioned deep, typically suggesting a Cover 2 or Cover 4 shell.
Section 6: Tracking Data and Animation (Questions 28-30)
Question 28 (Multiple Choice)
What frame rate is typical for NFL tracking data?
A) 1 frame per second B) 10 frames per second C) 30 frames per second D) 60 frames per second
Question 29 (Short Answer)
Explain how to calculate player speed from frame-by-frame position data. Include the formula and units.
Question 30 (Multiple Choice)
Which matplotlib class is used to create animations from a sequence of frames?
A) matplotlib.animation.Animation
B) matplotlib.animation.FuncAnimation
C) matplotlib.animation.MovieWriter
D) matplotlib.animation.FrameSequence
Answer Key
Section 1: Field Dimensions and Coordinates
Question 1: C) 120 yards The field is 100 yards between goal lines plus two 10-yard end zones.
Question 2: C) 53.33 yards The field is 160 feet wide, which equals 53.33 yards.
Question 3: True College hash marks are 40 feet from each sideline, while NFL hash marks are 18 feet 6 inches from the center of the field, making college hashes significantly wider apart.
Question 4: A) 13.33 yards (40 feet) 40 feet = 40/3 yards ≈ 13.33 yards from each sideline.
Question 5: Sample answer: Coordinate transformations are needed because raw tracking data often uses absolute field coordinates, but analysis requires comparisons across different plays and directions. Two common transformations: 1. Relative to line of scrimmage: Converts x-coordinates to "yards downfield from LOS" enabling comparison of routes and plays from different field positions. 2. Play direction normalization: Flips plays so offense always moves in the same direction (e.g., left to right), enabling pattern comparison regardless of which direction the offense was actually facing.
Question 6: C) Movement toward the offense's left In offense-oriented coordinates, positive y typically represents the offense's left side, while the x-axis represents the direction of play toward the target end zone.
Question 7: True End zones are 10 yards deep at all levels of football.
Question 8: B) Relative coordinates (from line of scrimmage) Relative coordinates normalize play location, making it possible to compare a route run from the 20-yard line to one run from the 50-yard line.
Section 2: Player Position Visualization
Question 9: B) plt.scatter()
Scatter plots are ideal for plotting discrete positions with various marker styles, sizes, and colors.
Question 10: Sample answer: 1. Color: Offense in one color (e.g., blue), defense in another (e.g., red) 2. Marker shape: Offense as circles, defense as different shapes (triangles, squares) 3. Marker edge: Offense with filled markers, defense with unfilled or different edge widths Additional options include marker size, transparency, and text labels.
Question 11: A) ax.text()
The text() method allows placing arbitrary text (like jersey numbers) at specific x,y coordinates on the plot.
Question 12: False In standard football visualizations, the x-axis typically represents the length (0-120 yards) and the y-axis represents the width (0-53.33 yards). However, this can vary based on visualization orientation.
Question 13: B) Use a different marker size, color, or edge style This maintains context by showing all players while drawing attention to specific players through visual emphasis.
Question 14: Sample answer:
Z-order determines the layering of elements in a matplotlib figure - which elements appear "on top" of others. In football visualizations, this matters because:
- The field (grass, yard lines) should be at the bottom layer
- Zone overlays should be above the field but below players
- Player markers should be on top for visibility
- Annotations and text should be at the highest z-order
This is controlled with the zorder parameter in plotting functions.
Section 3: Route Visualization
Question 15: B) The point where the route changes direction Break points are where a receiver makes a significant direction change, such as turning from vertical to horizontal on an out route.
Question 16: D) Screen Screens are passing plays but not traditional "routes" in the route tree. The route tree includes numbered routes 0-9: hitch, flat, slant, comeback, curl, out, in, corner, post, and go.
Question 17: Sample answer: Completed routes can be shown with: - Solid lines (incomplete as dashed) - Different colors (green for complete, red for incomplete) - Different end markers (filled circle for catch, X for incomplete) - Different line weights (thicker for complete)
Question 18: True The dig/in route is a horizontal route that breaks inside (toward the center of the field) typically at 12-15 yards depth.
Question 19: B) Use slight offsets or transparency Offsets prevent routes from completely overlapping while maintaining accurate relative positioning. Transparency allows multiple routes to be visible even when overlapping.
Section 4: Heat Maps and Density
Question 20: B) scipy.stats.gaussian_kde
This function performs kernel density estimation using a Gaussian kernel, producing smooth probability density estimates from point data.
Question 21: Sample answer: The bandwidth (or smoothing) parameter controls how much the density estimate spreads around each data point: - Small bandwidth: Creates a "spiky" heat map that closely follows individual points, may show noise - Large bandwidth: Creates a very smooth heat map that may obscure real patterns - Optimal bandwidth balances detail and smoothness, often estimated using Scott's rule or Silverman's rule
Question 22: D) Both B and C can work
Both contourf() (filled contours) and pcolormesh() (colored grid cells) can create effective heat map visualizations, with contourf giving smoother boundaries.
Question 23: False Heat maps are specifically designed to show density patterns and aggregate data. They are poor for visualizing individual data points, which is where scatter plots excel.
Question 24: C) Where passes were targeted (caught or not) Target heat maps should include all pass attempts to show where the quarterback tends to throw, regardless of outcome. This gives a complete picture of tendencies.
Section 5: Formation Analysis
Question 25: Sample answer: 4-3 Formation: - 4 defensive linemen (2 tackles, 2 ends) - 3 linebackers (2 outside, 1 middle) - Often features larger linemen to occupy blockers
3-4 Formation: - 3 defensive linemen (1 nose tackle, 2 ends) - 4 linebackers (2 inside, 2 outside) - Relies on a dominant nose tackle to occupy multiple blockers - Outside linebackers are often pass rush threats
Question 26: A) Number of players within 7-8 yards of the line of scrimmage Box count indicates how many defenders are positioned close to the line, suggesting run defense strength or potential blitz threats.
Question 27: True A 2-high look with both safeties deep suggests zone coverage with two deep defenders, as seen in Cover 2 (with corners underneath) or Cover 4/Quarters (with corners playing deep quarters).
Section 6: Tracking Data and Animation
Question 28: B) 10 frames per second NFL Next Gen Stats tracking data is captured at 10 Hz (10 frames per second), providing position updates every 0.1 seconds.
Question 29: Sample answer: Speed = distance / time
Distance between frames: √[(x₂-x₁)² + (y₂-y₁)²] (Euclidean distance)
Time between frames: 1/frame_rate (e.g., 0.1 seconds at 10 Hz)
Speed (yards/second) = distance_in_yards / time_between_frames
To convert to mph: multiply by 2.045 (since 1 yard/second ≈ 2.045 mph)
Example: If a player moves 1.5 yards in 0.1 seconds, speed = 1.5/0.1 = 15 yards/second ≈ 30.7 mph
Question 30: B) matplotlib.animation.FuncAnimation
FuncAnimation creates animations by repeatedly calling a function that updates the figure for each frame.
Scoring Guide
| Score | Grade | Interpretation |
|---|---|---|
| 27-30 | A | Excellent understanding of spatial analysis concepts |
| 24-26 | B | Good grasp of material with minor gaps |
| 21-23 | C | Adequate understanding, review recommended |
| 18-20 | D | Significant gaps, additional study needed |
| <18 | F | Review chapter material thoroughly |
Topics to Review Based on Incorrect Answers
- Questions 1-8 wrong: Review "Field Dimensions and Coordinate Systems" section
- Questions 9-14 wrong: Review "Player Position Visualization" section
- Questions 15-19 wrong: Review "Route Diagram Visualization" section
- Questions 20-24 wrong: Review "Heat Maps and Density Plots" section
- Questions 25-27 wrong: Review "Formation Analysis" section
- Questions 28-30 wrong: Review "Tracking Data Animation" section