← Back to Projects
HeatSafe — Heat-Risk Urban Routing Application
Miami Beach · Shade-Aware Walking Routes for Heat Vulnerability
City-wide Miami Beach deployment2025 – 2026Independent full-stack build11,030-edge graph · 113 cooling POIs

Project Overview
Quantified a 32.5°C reduction in Mean Radiant Temperature along the same Miami Beach street corridor between optimized morning and peak-heat afternoon routing (26.5°C at 7 AM vs. 59°C at 2 PM), demonstrating the thermal stakes of route timing across an 11,030-edge city-wide street graph.
Built a full-stack heat-risk routing application for elderly populations in Miami Beach, generating optimized walking paths that minimize cumulative heat and UV exposure by dynamically prioritizing shaded street segments over shortest distance.
Highlight
Impact & Results
- Demonstrated a 32.5°C Mean Radiant Temperature gap on the same corridor between 7 AM (26.5°C) and 2 PM (59°C) routing conditions
- City-wide Miami Beach coverage on an 11,030-edge street graph with 113 cooling POIs
- Independently developed months before ASU's SHaDE Lab launched a comparable concept (Cool Routes, June 2026), with broader scope: city-wide Miami Beach deployment versus ASU's campus-only footprint, with a mobile-accessible frontend their version lacks
Key Features
- City-wide graph traversal using OSMnx and NetworkX weighted Dijkstra, where edge weights integrate real-time thermal data rather than distance alone
- NWS Rothfusz heat index with live humidity from Open-Meteo's API, plus dynamic shadow casting using pysolar for real-time sun altitude/azimuth and OSM building heights, making routes time-aware between 7 AM and 2 PM
- MRT approximation per street edge via radiant flux balance using Open-Meteo solar radiation data
- Geospatial stack with GeoPandas and Shapely for tree canopy and building shade polygon intersections, Rtree for spatial indexing, and scikit-learn for heat risk model scoring
- Cooling station routing via dual Dijkstra sweeps across 113 air-conditioned POIs (pharmacies, libraries, cafes, clinics) pulled live from OSM amenity data
- FastAPI backend and React/TypeScript/Vite frontend displaying live heat index, MRT, time-of-day conditions, and cooling stop data per route
Technical Challenges
- Weighting street edges by live thermal and shade signals instead of pure distance
- Keeping routes time-aware as sun altitude and building shadows change from 7 AM to 2 PM
- Intersecting tree canopy and building polygons at city scale without killing query latency
- Routing through cooling POIs while still minimizing cumulative heat exposure
Technologies Used
FastAPIReact / TypeScript / ViteOSMnxNetworkXOpen-MeteopysolarGeoPandasShapelyRtreescikit-learn


