Spatial analysis in ArcGIS Pro and Python. Each one links to the full report.
Eight years of Waterloo Region Police collision records aggregated into a hexagonal grid to find where crashes actually concentrate. The hotspots track the King Street corridor and line up with the ION LRT route and its stops. A Moran's I of 0.495 with a z-score of 19.13 confirms the clustering is statistically significant rather than chance.
ArcGIS Pro. XY Table to Point, Generate Tessellation, Summarize Within, Spatial Autocorrelation, Natural Breaks.
Built a point address locator from the City of Kitchener's civic address points, geocoded 75,267 building permits at a 96.29% match rate, then animated new construction year by year to show the city's growth pushing outward into Huron South, Doon South and Grand River South. The 3.71% that failed to match turned out to be structural rather than an error: new-construction permits are issued before the address exists in the reference layer.
ArcGIS Pro. Create Locator, Geocode Addresses, Rematch, Definition Query, Time Slider, Animation.
The same spatial question answered in two toolchains. First in ArcGIS Pro: a hexagonal grid over a georeferenced court, shots spatially joined to each cell, field goal percentage calculated per zone and differenced against the team average. Then rebuilt in Python to compare Stephen Curry against Nikola Jokić. Position shapes everything, with Curry's efficiency spread across the arc and Jokić's concentrated in the paint.
ArcGIS Pro, Generate Tessellation, Spatial Join, Field Calculator. Python, Jupyter, pandas, matplotlib.
The Region of Waterloo had two candidate sites for a new station and rural response gaps to close. I built a road network dataset with travel times from segment length and posted speed, applied one-way restrictions, then ran service areas and location-allocation across four scenarios. New Hamburg cut calls outside a 10-minute response from 203 to 98, more than twice what Elmira managed, though neither site alone fully closes the rural gap.
ArcGIS Pro, Network Analyst. Network Dataset, Service Area, Location-Allocation, travel modes, one-way restrictions.
Six criteria, wind resource plus setbacks from dwellings, built-up land, roads, forest and airports, each reclassified onto a common 30 m grid and combined in a weighted overlay. Weights came from siting literature and Ontario Regulation 359/09 rather than being split evenly. That left 554 km², or 13.3% of the county, as high suitability. Both recommended sites were then checked independently against every regulated setback, and the weighting was stress-tested at 20% and 50% wind.
ArcGIS Pro, Spatial Analyst. Euclidean Distance, Reclassify, Weighted Overlay, Region Group, Raster Calculator.