Florida’s interstates are among the deadliest in the United States, and Brevard County has seen an increasing number of traffic accidents in recent years. In this lab, I focused on the workflow itself: taking crash points and road segments and using ArcGIS Pro analysis tools to turn them into defensible hot spot maps (including fatality hot spots and peak-time hot spots).
Create Space Time Cube By Aggregating Points
The first major tool I used was Create Space Time Cube By Aggregating Points. Its job is to take point events (crashes) and aggregate them into a structured format that includes both space and time. Instead of treating each crash as a standalone point, this tool bins crashes into a spatial grid (hexagons in this lab) and slices them into time intervals (weeks). The output is a space-time cube file that can be analyzed for patterns that change over time, not just patterns that exist in one static snapshot.

Emerging Hot Spot Analysis
With the cube created, I ran Emerging Hot Spot Analysis. This tool looks for statistically significant clusters (hot spots and cold spots) in the cube and also classifies how those clusters behave over time. The value here is that it does not just say “this area is dense.” It asks whether clustering is statistically meaningful and whether the pattern is new, consecutive, sporadic, oscillating, and so on. In the lab, this gave me an exploratory view of where crash clustering appears to be happening and how it behaves over the study period.

Copy Features
Before aligning crashes to roads, I used Copy Features. This tool simply creates a duplicate of the crash point layer. The reason it matters is practical: later alignment work changes geometry, and copying the data first protects the original dataset so I can always revert or compare.

Snap
Next I used Snap to move the copied crash points so they align more closely with the road network. Crash points often do not fall exactly on road centerlines due to collection methods, GPS error, or digitizing differences. Snap fixes that by shifting points to the nearest road edge within a specified tolerance. The purpose here is not cosmetic. It improves the accuracy of the next tool—because if the points do not line up with roads, the relationship between “this crash” and “this road segment” can be wrong.
Spatial Join
Once the crashes were better aligned, I used Spatial Join to attach crash information to road segments. In this lab, the important outcome was a road layer that includes a crash count per segment (and later, the summed fatalities). Spatial Join is the bridge from “events happened at points” to “risk exists along a network.” Without it, I would still be stuck with points and guesswork.
Calculate Field
After joining, I used Calculate Field to standardize the data. Roads are not the same length, so longer segments naturally tend to accumulate more crashes. Calculate Field let me create rate fields (like crashes per mile per year) so that comparison is fair. I used it twice in concept:
- to compute a crash rate based on crash counts, years covered, and road length
- to compute a fatality rate, including logic to treat null fatality totals as zero so the calculation doesn’t break or mislead
This is where the lab shifts from “counting” to “measuring.”

Hot Spot Analysis (Getis-Ord Gi*)
With rate fields ready, I ran *Hot Spot Analysis (Getis-Ord Gi)**. This tool identifies statistically significant clusters of high values (hot spots) and low values (cold spots). In this lab, it was used on the road network results, which is the key difference from the earlier exploratory work. Instead of Euclidean distance between grid cells, the analysis used network-informed spatial relationships provided through a spatial weights matrix file. That matters because road connectivity and network distance are what drivers experience, not straight-line distance. I also applied False Discovery Rate correction to improve confidence in the statistical results.
I then repeated the same hot spot workflow using the fatality rate field, which let me compare whether fatal hot spots appear in the same places as overall crash hot spots.
Apply Symbology From Layer
Later in the workflow, after generating a merged output meant for 3D visualization, I used Apply Symbology From Layer. This tool does exactly what it sounds like: it transfers an existing symbology scheme from one layer to another. In the lab, it ensured the trend output used consistent hot spot symbols, so the results were easier to interpret and compare without rebuilding the symbology from scratch.

What the tool chain actually taught me
This lab was less about “the dataset” and more about learning a repeatable method:
- Space-time structuring for exploratory spatiotemporal patterns
- Network alignment so crashes correctly relate to road segments
- Network-based joining and rate building so roads can be compared fairly
- Statistical hot spot detection so the results are defensible, not just “looks dense”
- Consistent visualization so the results are readable and comparable
By the end, I wasn’t just staring at crash dots. I had road-level hot spot maps (including fatalities and peak commute conditions) produced through a workflow I can reuse on other counties or other problem types.
Link: Data and tutorial with a detailed ArcGIS Pro workflow.