CUD-Traffic-AI / src /data /download.py
Rajeev Ranjan Pandey
Refine UI and fix model selection bugs
e078b1d
import urllib.request
from pathlib import Path
def ensure_dataset_available(config_path="config.yaml"):
target = Path("data/raw/US_Accidents_March23.csv")
if target.exists():
return target
print("Generating synthetic US Accidents dataset for evaluation...")
target.parent.mkdir(parents=True, exist_ok=True)
csv_content = """ID,Severity,Start_Time,End_Time,Start_Lat,Start_Lng,End_Lat,End_Lng,Distance(mi),Description,Street,City,County,State,Zipcode,Country,Timezone,Airport_Code,Weather_Timestamp,Temperature(F),Wind_Chill(F),Humidity(%),Pressure(in),Visibility(mi),Wind_Direction,Wind_Speed(mph),Precipitation(in),Weather_Condition,Amenity,Bump,Crossing,Give_Way,Junction,No_Exit,Railway,Roundabout,Station,Stop,Traffic_Calming,Traffic_Signal,Turning_Loop,Sunrise_Sunset,Civil_Twilight,Nautical_Twilight,Astronomical_Twilight
A-1,3,2016-02-08 05:46:00,2016-02-08 11:00:00,39.865147,-84.058723,39.865147,-84.058723,0.01,"Right lane blocked due to accident on I-70 Eastbound at Exit 41 OH-235 State Route 235.",I-70 E,Dayton,Montgomery,OH,45424,US,US/Eastern,KFFO,2016-02-08 05:58:00,36.9,,91,29.68,10,Calm,,0.02,Light Rain,False,False,False,False,False,False,False,False,False,False,False,False,False,Night,Night,Night,Night
A-2,2,2016-02-08 06:07:59,2016-02-08 06:37:59,39.928059,-82.831184,39.928059,-82.831184,0.01,"Accident on OH-32 at Brice Rd.",Brice Rd,Reynoldsburg,Franklin,OH,43068,US,US/Eastern,KCMH,2016-02-08 05:51:00,37.9,,100,29.65,10,Calm,,0.0,Light Rain,False,False,False,False,False,False,False,False,False,False,False,False,False,Night,Night,Night,Day
A-3,2,2016-02-08 06:49:27,2016-02-08 07:19:27,39.063148,-84.032608,39.063148,-84.032608,0.01,"Accident on I-275 Southbound at Exits 52 52B Loveland Madeira Rd.",I-275 S,Cincinnati,Clermont,OH,45140,US,US/Eastern,K09l,2016-02-08 06:56:00,36,,100,29.67,10,SW,3.5,,Overcast,False,False,False,False,False,False,False,False,False,False,False,False,False,Night,Night,Day,Day
A-4,3,2016-02-08 07:23:34,2016-02-08 07:53:34,39.747753,-84.205582,39.747753,-84.205582,0.01,"Accident on I-75 Southbound at Exit 52B US-35.",I-75 S,Dayton,Montgomery,OH,45417,US,US/Eastern,KDAY,2016-02-08 07:38:00,35.1,,96,29.64,9,SW,4.6,,Mostly Cloudy,False,False,False,False,False,False,False,False,False,False,False,False,False,Night,Day,Day,Day
A-5,2,2016-02-08 07:39:07,2016-02-08 08:09:07,39.627781,-84.188354,39.627781,-84.188354,0.01,"Accident on McEwen Rd at OH-725 Miamisburg Centerville Rd.",Miamisburg Centerville Rd,Dayton,Montgomery,OH,45459,US,US/Eastern,KMGY,2016-02-08 07:53:00,36,,89,29.65,6,SW,3.5,,Mostly Cloudy,False,False,False,False,False,False,False,False,False,False,False,False,False,Day,Day,Day,Day
"""
for i in range(6, 5000):
row = f'A-{i},2,2016-02-08 07:39:07,2016-02-08 08:09:07,39.627781,-84.188354,39.627781,-84.188354,0.01,"Accident reported on Highway {i % 100} causing major traffic backup for {i % 5 + 1} miles (case {i}). Police on scene.",Highway {i % 100},City {i % 50},County {i % 20},OH,45459,US,US/Eastern,KMGY,2016-02-08 07:53:00,36,,89,29.65,6,SW,3.5,,Mostly Cloudy,False,False,False,False,False,False,False,False,False,False,False,False,False,Day,Day,Day,Day\n'
csv_content += row
with open(target, "w") as f:
f.write(csv_content)
print(f"Dataset generated at {target}")
return target