Když lidé přemýšlejí o analýze bezpečnosti silničního provozu, často začínají místy dopravních nehod.
- Kde k nehodám došlo?
- Na kterých křižovatkách je nejvyšší počet nehod?
- Kde se právě nacházejí riziková místa?
To jsou užitečné otázky. Ne vždy jsou ale ty nejdůležitější. Během našeho odborného semináře „Prostorová datová věda v ArcGIS“, jsme se zabývali jinou otázkou:
Na kterých místech přetrvává riziko v průběhu času?
Místo analýzy jednotlivých dopravních nehod jsme využili historické údaje o nehodách ve Frankfurtu nad Mohanem z let 2019 až 2024, abychom identifikovali prostorové vzorce, které zůstaly stabilní po několik let. Cílem nebylo vysvětlit jednotlivou událost. Chtěli jsme zjistit, zda na některých místech trvale přetrvává zvýšené riziko bez ohledu na krátkodobé výkyvy.
%load_ext dotenv
%dotenv
from arcgis.gis import GIS
from arcgis.map import Map
import dotenv
import os
import pandas as pd
from traffic_safety.utils import combine_yearly_hotspots, list_feature_classes, summarize_hotspot_bins, generate_hotspots_renderer, filter_hotspot_bins, publish_hotspot_layer
home_portal = GIS("home")
gdb_path = os.getenv("HOTSPOT_GDB")
feature_classes = list_feature_classes(gdb_path)
Pohled za hranice jednotlivých rizikových míst
Analýza rizikových míst provedená za jediný rok poskytuje pouze momentální snímek. Města jsou však dynamické systémy. Mění se intenzita dopravy. Stavební projekty vznikají a zanikají. Veřejná doprava se vyvíjí. Lidské chování se v čase proměňuje. Rizikové místo identifikované v jednom roce může v následujícím roce zmizet. Abychom lépe porozuměli dlouhodobému riziku, provedli jsme pro každý rok analýzu rizikových míst Getis-Ord Gi* a poté jsme výsledky porovnali v čase.
Problém spočívá v tom, že polygony rizikových míst nejsou v jednotlivých letech totožné. Jejich hranice se mění s tím, jak se mění podmínky v dané lokalitě. Vytvořili jsme proto pracovní postup pro prostorové zarovnání:
- Provést každoroční analýzu rizikových míst
- Vypočítat těžiště buněk rizikových míst
- Použít společný systém prostorových referencí
- Spárovat polohy rizikových míst napříč jednotlivými roky
- Vytvořit časový profil pro každou lokalitu
- Vypočítat skóre přetrvávání rizikových míst
- Normalizovat výsledky do indexu rizika
Tím se několik nezávislých analýz převedlo na jedinou srozumitelnou vrstvu rizika.
from ipywidgets import HBox, VBox, Label, Layout
from traffic_safety.utils import generate_hotspots_renderer, read_feature_classes
def show_hotspot_map(portal: GIS, df: pd.DataFrame):
basemap_item_id = os.getenv("CUSTOM_BASEMAP_ITEM_ID")
if basemap_item_id:
portal_item = portal.content.get(basemap_item_id)
map_view = Map(portal_item)
else:
map_view = portal.map("Germany")
map_view.basemap.basemap = "osm"
drawing_info = {
"renderer": generate_hotspots_renderer()
}
fset = df.spatial.to_featureset()
map_view.content.add(fset, drawing_info=drawing_info, options={"opacity": 0.7})
map_view.zoom_to_layer(fset)
return map_view
hotspots_dict = read_feature_classes(gdb_path, [feature_classes[0], feature_classes[-1]])
hotspots_2019_df, hotspots_2025_df = hotspots_dict.values()
left_map = show_hotspot_map(home_portal, hotspots_2019_df)
right_map = show_hotspot_map(home_portal, hotspots_2025_df)
def side_by_side(left_map, left_label, right_map, right_label):
# synchronizovat navigaci map
#left_map.sync_navigation(right_map)
"""
def sync_navigation(change):
if right_map.center != left_map.center:
right_map.center = left_map.center
if right_map.zoom != left_map.zoom:
right_map.zoom = left_map.zoom
left_map.observe(sync_navigation, names=["center", "zoom"])
"""
# Vytvořit VBox pro každou mapu a popisek
box1 = VBox([Label(left_label), left_map], layout=Layout(width='50%'))
box2 = VBox([Label(right_label), right_map], layout=Layout(width='50%'))
# Umístit VBox vedle sebe pomocí HBox
hbox = HBox([box1, box2])
# Zobrazit HBox
display(hbox)
side_by_side(left_map, "2019", right_map, "2025")
left_map.sync_navigation(right_map)
Od údajů o nehodách k vrstvě rizika
Výsledná vrstva nezobrazovala počty nehod. Představovala něco, co je možná ještě cennější: důkazy o přetrvávajícím riziku.
Místa, která se opakovaně objevovala jako statisticky významná riziková místa, získala vyšší skóre přetrvávání. Místa, kde se rizikové chování objevovalo jen příležitostně, získala nižší skóre. Toto rozlišení je důležité. Jedna závažná nehoda může přitáhnout pozornost, ale opakující se prostorové vzorce často odhalují hlubší charakteristiky dopravního systému. Přetrvávající riziko může poukazovat na omezení infrastruktury, vzorce dopravního chování, centra mobility nebo jiné základní faktory, které stojí za prozkoumání.
base_feature_class = feature_classes[0]
combined_df: pd.DataFrame = combine_yearly_hotspots(gdb_path, base_feature_class)
summarized_df: pd.DataFrame = summarize_hotspot_bins(combined_df, min_years_observed=len(feature_classes))
show_hotspot_map(home_portal, combined_df)
hottest_df = filter_hotspot_bins(summarized_df, min_value=2, max_value=3)
hottest_df.sort_values(by="Gi_Bin_median", ascending=False).head()
Co jsme zjistili
Jedním z nejzajímavějších zjištění bylo, že některá místa s nejvyšším rizikem se nutně nenacházela tam, kde byl nejvyšší objem dopravy. Riziko naopak často vznikalo vzájemným působením několika faktorů. V související práci v rámci projektu Frankfurt Urban Digital Twin jsme zjistili, že provozně důležitá místa se často nacházela tam, kde se vzájemně posilovalo několik ukazatelů. Historické vzorce nehod, dopravní simulace, kontext infrastruktury a chování účastníků mobility společně vytvářely mnohem ucelenější obraz, než jaký by mohl poskytnout kterýkoli jednotlivý soubor dat.
To poukazuje na jednu z předností prostorové datové vědy: Poloha poskytuje kontext. Prostorové vztahy často odhalují vzorce, které zůstávají skryté, když se jednotlivé datové soubory analyzují nezávisle.
Proč je to důležité
Podobným výzvám čelí mnoho organizací. Ať už jde o bezpečnost dopravy, infrastrukturu veřejných služeb, monitorování životního prostředí, veřejné zdraví nebo správu majetku, lidé s rozhodovací pravomocí často potřebují rozlišit dočasné anomálie od přetrvávajících vzorců. Prostorová datová věda pomáhá odpovídat na otázky, jako jsou:
- Na kterých místech trvale přetrvává zvýšené riziko?
- Které vzorce zůstávají v čase stabilní?
- Které oblasti si zaslouží další prozkoumání?
- Kam je třeba přednostně směřovat omezené zdroje?
Tyto otázky jsou stále důležitější, protože organizace usilují o přechod od popisné analytiky k rozhodovací podpoře založené na důkazech.
Prostorová datová věda jako základ
Vrstva rizika pro nás nebyla pouhým analytickým výstupem. Stala se základem pro další etapy prezentace projektu Frankfurt. Pracovní postup měl jednoduchou posloupnost:
- Prostorová datová věda identifikuje přetrvávající riziko.
- Agentní AI s prostorovým ukotvením využívá tyto důkazy k vytváření vysvětlitelných doporučení.
- Důvěryhodná GeoAI zavádí správu a lidský dohled ještě před přijetím opatření.
Tento postup odráží důležitou zásadu: AI nenahrazuje důkazy. AI je užitečnější, když dokáže uvažovat na základě důvěryhodných důkazů získaných prostorovou analýzou.
Závěrem
Jedno z hlavních sdělení semináře bylo jednoduché:
Nezjišťujeme, kde k nehodám došlo. Zjišťujeme, kde přetrvává riziko.
Přetrvávající prostorové vzorce poskytují důkazy potřebné pro vysvětlitelná doporučení, důvěryhodné systémy AI a v konečném důsledku lepší rozhodování. Když organizace zkoumají prostorovou datovou vědu, GeoAI a agentní AI, často není hlavní výzvou shromažďování dalších dat. Jde o to identifikovat důležité vzorce. A v mnoha případech jsou tyto vzorce prostorové.
Sešit o bezpečnosti silničního provozu @Github