Signal Disruption Priority — 1,572 Miami-Dade FDOT Signals
Formula-based prioritization using two public datasets: FDOT AADT (2025) and NOAA HURDAT2 hurricane tracks (1851–2023). No machine learning. No synthetic data. Every score is traceable to its source.
Total Signals
1,572
Miami-Dade County
FDOT Signal Inventory, April 2026
HIGH Priority
393
25% of all signals
Top 25th percentile by priority score
MODERATE Priority
787
50% of all signals
25th–75th percentile range
LOW Priority
392
25% of all signals
Bottom 25th percentile
Analysis Pipeline
1
FDOT Signals
1,572 locations
1,572 locations
→
2
AADT Join
100% match rate
100% match rate
→
3
HURDAT2 Distance
54,749 track points
54,749 track points
→
4
Normalize & Score
Priority Score [0, 1]
Priority Score [0, 1]
→
5
Tier Assignment
HIGH / MOD / LOW
HIGH / MOD / LOW
Step 1
AADT Score — Traffic Volume Normalization
Source: FDOT ArcGIS REST API · Annual Average Daily Traffic 2025 · 1,848 road segments joined to 1,572 signals
Formula
AADT_score = (signal_AADT − min_AADT) / (max_AADT − min_AADT)
Dataset range: min_AADT = 1,500 veh/day · max_AADT = 271,000 veh/day · denominator = 269,500 · Min-max scaling maps all 1,572 signals to [0, 1] so both components contribute equally to the final weighted sum.
Example A
Signal #3833 — Coastal / Hurricane-Close
Given: AADT = 39,500 veh/day
AADT_score = (39,500 − 1,500) / (271,000 − 1,500)
AADT_score = 38,000 / 269,500
AADT_score = 0.141
Moderate traffic (39,500 veh/day) → lower 14% of dataset by volume. Its high final priority comes from hurricane proximity (Step 2).
Example B
Signal #4110 — High-Volume Arterial
Given: AADT = 271,000 veh/day
AADT_score = (271,000 − 1,500) / (271,000 − 1,500)
AADT_score = 269,500 / 269,500
AADT_score = 1.000
Maximum AADT in dataset — 271,000 veh/day. AADT_score = 1.000; highest-volume signal in Miami-Dade County.
Step 2
Hurricane Proximity Score — Storm Exposure Normalization
Source: NOAA HURDAT2 Atlantic Hurricane Database 1851–2023 · 54,749 track points from 1,973 named storms · Haversine distance for all signal–track combinations
Formula (two sub-steps)
raw_exposure = 1 / closest_storm_km ← invert: closer storm = higher exposure value
hurr_score = (raw_exposure − min_exposure) / (max_exposure − min_exposure)
Dataset range: closest_storm_km spans 0.15 km (most exposed) → 12.24 km (least exposed) · max_exposure = 1/0.15 = 6.667 · min_exposure = 1/12.24 = 0.0817 · denominator = 6.585 · Storm count was not used because within Miami-Dade every signal has 198–211 storms within 250 km — no spatial variation. Closest track distance gives real differentiation.
Example A
Signal #3833 — Coastal (25.899°N, 80.300°W)
Given: closest_storm_km = 0.15 km
raw_exposure = 1 / 0.15 = 6.667
hurr_score = (6.667 − 0.0817) / (6.667 − 0.0817)
hurr_score = 6.585 / 6.585
hurr_score = 1.000
A hurricane center passed within 150 m of this signal across 172 years of HURDAT2 records — maximum hurricane score in the entire dataset.
Example B
Signal #4110 — Inland (25.931°N, 80.209°W)
Given: closest_storm_km = 9.73 km
raw_exposure = 1 / 9.73 = 0.1028
hurr_score = (0.1028 − 0.0817) / (6.667 − 0.0817)
hurr_score = 0.0211 / 6.585
hurr_score = 0.003
Closest storm center in all 1,973 HURDAT2 storms was 9.73 km away. Near-zero hurricane score — final priority driven entirely by AADT.
Step 3
Final Priority Score — Equal-Weighted Combination
Combines both normalized components with equal 50/50 weight · Output range: [0, 1]
Final Formula
Priority_Score = 0.5 × AADT_score + 0.5 × hurr_score
Equal 50/50 weighting: no historical signal outage records exist to empirically calibrate the weights — 0.5/0.5 is the most defensible, transparent choice under data constraints.
Example A
Signal #3833 — Final Score
AADT_score = 0.141 · hurr_score = 1.000
Priority = 0.5 × 0.141 + 0.5 × 1.000
Priority = 0.0705 + 0.5000
Priority Score = 0.5705 → HIGH (Rank #1 of 1,572)
Despite moderate traffic (14% of AADT range), Signal #3833 ranks #1 of 1,572 — storm exposure completely dominates. A hurricane center passed within 150 m.
Example B
Signal #4110 — Final Score
AADT_score = 1.000 · hurr_score = 0.003
Priority = 0.5 × 1.000 + 0.5 × 0.003
Priority = 0.5000 + 0.0015
Priority Score = 0.5016 → HIGH (Rank #2 of 1,572)
Highest AADT in the dataset (271,000 veh/day) alone places it #2. Two different pathways — storm exposure and traffic volume — both produce HIGH-priority outcomes.
Priority Tier Assignment
Thresholds are percentile-based, computed from all 1,572 priority scores. Each tier contains exactly 25% of signals (or as close as possible given tied scores).
HIGH
Top 25% · at or above 75th percentile · 393 signals
First priority for backup power assessment and pre-storm inspection
First priority for backup power assessment and pre-storm inspection
MODERATE
25th–75th percentile · 787 signals
Secondary priority; include in backup power planning after HIGH is addressed
Secondary priority; include in backup power planning after HIGH is addressed
LOW
Bottom 25% · at or below 25th percentile · 392 signals
Lowest urgency — restore after HIGH and MODERATE are cleared
Lowest urgency — restore after HIGH and MODERATE are cleared
AADT Traffic Volume Distribution
Vehicles per day across 1,572 signals (FDOT 2025)
Hurricane Track Proximity Distribution
Closest HURDAT2 storm track center (1851–2023)
Score Component Contribution by Tier
Average AADT score vs. average hurricane proximity score within each priority tier — shows which factor drives each tier
Top 15 Signals by Priority Score
Ranked by: 0.5 × AADT Score + 0.5 × Hurricane Proximity Score| # | Signal ID | AADT (veh/day) | Closest Storm | AADT Score | Hurricane Score | Priority Score | Tier |
|---|
Priority Tier
HIGH (393)
MODERATE (787)
LOW (392)
Click any signal for details
Score Guide
HIGH — top 25% by combined traffic volume & storm exposure. Prioritize for backup power & first restoration.
MODERATE — mid-range. Meaningful disruption, second-wave priority.
LOW — low traffic & historically far from storm centers. Restore last.
MODERATE — mid-range. Meaningful disruption, second-wave priority.
LOW — low traffic & historically far from storm centers. Restore last.
Miami-Dade Signals
Total1,572
HIGH393
MODERATE787
LOW392
Data Sources
All datasets are publicly available. No proprietary or synthetic data used.
Note on FDOT Signal Data: No year column exists in the source data. Represents current FDOT signal inventory as queried April 2026 via FDOT ArcGIS REST API.
| Dataset | Records | Coverage | Source | Access Method |
|---|---|---|---|---|
| FDOT Traffic Signal Locations | 1,572 signals | Current inventory (April 2026) | FDOT | Live API query FDOT ArcGIS REST API |
| FDOT Annual Average Daily Traffic | 1,848 road segments | 2025 | FDOT | Live API query FDOT ArcGIS REST API (AADT TDA) |
| NOAA HURDAT2 Hurricane Tracks | 54,749 track points, 1,973 storms | 1851–2023 | NOAA NHC | Public download NOAA National Hurricane Center |
| NOAA Storm Events (Miami-Dade) | 87 events (CZ_FIPS=86) | 2014–2022 | NOAA Storm Events DB | Public download NOAA Storm Events Database |
| FEMA Disaster Declarations (Miami-Dade) | 10 declarations | 2016–2022 | FEMA OpenFEMA | Public API FEMA OpenFEMA API |
Raw Data — API Endpoints & Download Links
Direct links to the source data used in this project. All public, no authentication required.
API
FDOT Traffic Signal Locations
services1.arcgis.com/.../Traffic_Signal_Locations_TDA/FeatureServer/0/query
API
FDOT Annual Average Daily Traffic (AADT 2025)
services1.arcgis.com/.../Annual_Average_Daily_Traffic_TDA/FeatureServer/0/query
Download
NOAA HURDAT2 Atlantic Hurricane Tracks (1851–2023)
nhc.noaa.gov/data/hurdat/hurdat2-1851-2023-051124.txt
Download
ncei.noaa.gov/pub/data/swdi/stormevents/csvfiles/ — bulk CSV file directory (direct download)
NOAA Storm Events Database — Miami-Dade (CZ_FIPS=86)
ncdc.noaa.gov/stormevents/
— portal page (select State: FL, County: MIAMI-DADE, dates 2014–2022)ncei.noaa.gov/pub/data/swdi/stormevents/csvfiles/ — bulk CSV file directory (direct download)
API
API endpoint (query programmatically):
FEMA OpenFEMA Disaster Declarations — Miami-Dade
fema.gov/about/openfema/data-sets
— OpenFEMA dataset catalog (web page)API endpoint (query programmatically):
https://www.fema.gov/api/open/v2/disasterDeclarationsSummaries?state=FL&designatedArea=MIAMI-DADE%20COUNTY