DK94 pod lupą – ruch i pogoda w czasie rzeczywistym

Droga krajowa nr 94 to jedna z kluczowych arterii komunikacyjnych południowej Polski, łącząca m.in. aglomerację śląsko-zagłębiowską — poprzez Olkusz — z Krakowem. Codziennie korzystają z niej tysiące kierowców, jednak czas dojazdu potrafi diametralnie różnić się w zależności od godziny, dnia tygodnia czy pogody. Postanowiłem sprawdzić, jak wygląda to w rzeczywistości, budując system, który na bieżąco monitoruje ruch drogowy i warunki panujące na trasie.

Popularne aplikacje nawigacyjne dobrze pokazują aktualną sytuację na drodze, ale zazwyczaj nie pozwalają analizować danych historycznych ani sprawdzać, jak na czas przejazdu wpływają warunki pogodowe czy konkretne godziny dnia. Dlatego stworzyłem własny system analityczny, który przy użyciu Grafany nie tylko pokazuje „co dzieje się teraz", ale również pozwala wyciągać wnioski na podstawie zgromadzonych danych.

Ruch na drodze

System monitoruje cztery relacje drogowe:

Trasa krakowska (DK94 i S52):

  • Olkusz → Kraków: Rynek w Olkuszu → Dworzec MDA, ul. Bosacka 18 – ok. 45 km (przez: Jerzmanowice, Biały Kościół, Modlnicę i północną obwodnicę)
  • Kraków → Olkusz: trasa powrotna tą samą drogą

Trasa katowicka (DK94 i S86):

  • Olkusz → Katowice: Rynek w Olkuszu → Galeria Katowicka, ul. 3 Maja 30 – ok. 45 km (przez: Bolesław, Sławków, Dąbrowę Górniczą i Sosnowiec)
  • Katowice → Olkusz: trasa powrotna tą samą drogą

W ramach projektu analizie poddawane są następujące metryki związane z ruchem i czasem przejazdu:

Metryka Źródło Opis
duration_min HERE: duration Aktualny czas przejazdu z uwzględnieniem ruchu [min]
base_duration_min HERE: baseDuration Czas przejazdu w warunkach idealnych [min]
length_km HERE: length Długość trasy [km]
congestion_index Obliczany: duration/baseDuration Indeks korków: 1.0 = brak, 1.3 = 30% spowolnienie
delay_min Obliczany: (duration−baseDuration)/60 Opóźnienie względem warunków idealnych [min]

Pomiar odbywa się co pięć minut, dzięki czemu możliwe jest obserwowanie zmian niemal w czasie rzeczywistym. Dziennie system zapisuje ponad tysiąc pomiarów ruchu drogowego. Dane o ruchu drogowym pobierane są z HERE Routing API – rozwiązania wykorzystywanego przez branżę transportową, które uwzględnia rzeczywiste natężenie ruchu, korki i utrudnienia na drodze.

Warunki atmosferyczne

Dodatkowo zbierane są również dane pogodowe z siedmiu punktów rozmieszczonych na całej trasie od Katowic aż po Kraków. Pochodzą one z Open-Meteo – API bazującego na modelach meteorologicznych europejskich i światowych służb pogodowych. Wszystkie pomiary trafiają do bazy InfluxDB, zoptymalizowanej pod dane oparte na szeregach czasowych. Pomiary wykonywane są w następujących lokalizacjach:

Lokalizacja Współrzędne Trasa Pozycja na trasie
Katowice 50.2594, 19.0180 Katowicka Punkt docelowy
Dąbrowa Górnicza 50.3254, 19.1872 Katowicka ~2/3 trasy
Sławków 50.2977, 19.3881 Katowicka ~1/3 trasy
Olkusz (Rynek) 50.2793, 19.5601 Wspólny Punkt startowy obu tras
Jerzmanowice 50.2203, 19.7354 Krakowska ~1/3 trasy
Wielka Wieś 50.1403, 19.8629 Krakowska ~2/3 trasy
Kraków 50.0678, 19.9493 Krakowska Punkt docelowy

Indeks warunków drogowych

Jednym z bardziej ambitnych elementów projektu było stworzenie wskaźnika oceniającego jakość warunków drogowych. System analizuje następujące składniki:

Składnik Waga Źródło Uzasadnienie
Deszcz 20% rain (mm/h) Mokra nawierzchnia, aquaplaning
Śnieg 20% snowfall (cm/h) Śliskość, zasypanie — ostrzejsza skala niż deszcz
Widoczność 20% visibility (m) Mgła, śnieżyca (tylko meteorologiczna)
Oświetlenie 15% is_day (0/1) Kompensacja ciemności nocnej
Temperatura 15% temperature_2m (°C) Gołoledź (0–4°C), oblodzenie (<0°C)
Wiatr 10% wind_speed_10m (km/h) Boczny wiatr na otwartych odcinkach

Na ich podstawie wyliczany jest syntetyczny wskaźnik „road index" w skali od 0 do 100, gdzie 100 oznacza warunki idealne, a 0 bardzo niebezpieczne. Co istotne, system rozróżnia np. wpływ deszczu i śniegu – ten drugi jest traktowany znacznie bardziej restrykcyjnie, ponieważ nawet niewielkie opady śniegu potrafią znacząco pogorszyć bezpieczeństwo jazdy. Uwzględniona została również noc, ponieważ dobra widoczność meteorologiczna nie oznacza automatycznie komfortowych warunków jazdy po zmroku. API pogodowe dynamicznie określa moment wschodu i zachodu słońca, dzięki czemu system automatycznie dostosowuje ocenę do pory roku.

Wzór

road_index = deszcz × 0.20 + śnieg × 0.20 + widoczność × 0.20 + wiatr × 0.10 + temperatura × 0.15 + oświetlenie × 0.15

To dopiero początek

System buduje bazę pomiarów, która z każdym dniem staje się coraz bardziej wartościowa. Do tematu wrócę za kilka miesięcy, gdy uda się zgromadzić odpowiednio dużą próbkę danych.

Przejdź do wizualizacji Grafana

DK94 pod lupą – ruch i pogoda w czasie rzeczywistym

Droga krajowa nr 94 to jedna z kluczowych arterii komunikacyjnych południowej Polski, łącząca m.in. aglomerację śląsko-zagłębiowską — poprzez Olkusz — z Krakowem. Codziennie korzystają z niej tysiące kierowców, jednak czas dojazdu potrafi diametralnie różnić się w zależności od godziny, dnia tygodnia czy pogody. Postanowiłem sprawdzić, jak wygląda to w rzeczywistości, budując system, który na bieżąco monitoruje ruch drogowy i warunki panujące na trasie.

Popularne aplikacje nawigacyjne dobrze pokazują aktualną sytuację na drodze, ale zazwyczaj nie pozwalają analizować danych historycznych ani sprawdzać, jak na czas przejazdu wpływają warunki pogodowe czy konkretne godziny dnia. Dlatego stworzyłem własny system analityczny, który przy użyciu Grafany nie tylko pokazuje „co dzieje się teraz", ale również pozwala wyciągać wnioski na podstawie zgromadzonych danych.

Ruch na drodze

System monitoruje cztery relacje drogowe:

Trasa krakowska (DK94 i S52):

  • Olkusz → Kraków: Rynek w Olkuszu → Dworzec MDA, ul. Bosacka 18 – ok. 45 km (przez: Jerzmanowice, Biały Kościół, Modlnicę i północną obwodnicę)
  • Kraków → Olkusz: trasa powrotna tą samą drogą

Trasa katowicka (DK94 i S86):

  • Olkusz → Katowice: Rynek w Olkuszu → Galeria Katowicka, ul. 3 Maja 30 – ok. 45 km (przez: Bolesław, Sławków, Dąbrowę Górniczą i Sosnowiec)
  • Katowice → Olkusz: trasa powrotna tą samą drogą

W ramach projektu analizie poddawane są następujące metryki związane z ruchem i czasem przejazdu:

Metryka Źródło Opis
duration_min HERE: duration Aktualny czas przejazdu z uwzględnieniem ruchu [min]
base_duration_min HERE: baseDuration Czas przejazdu w warunkach idealnych [min]
length_km HERE: length Długość trasy [km]
congestion_index Obliczany: duration/baseDuration Indeks korków: 1.0 = brak, 1.3 = 30% spowolnienie
delay_min Obliczany: (duration−baseDuration)/60 Opóźnienie względem warunków idealnych [min]

Pomiar odbywa się co pięć minut, dzięki czemu możliwe jest obserwowanie zmian niemal w czasie rzeczywistym. Dziennie system zapisuje ponad tysiąc pomiarów ruchu drogowego. Dane o ruchu drogowym pobierane są z HERE Routing API – rozwiązania wykorzystywanego przez branżę transportową, które uwzględnia rzeczywiste natężenie ruchu, korki i utrudnienia na drodze.

Warunki atmosferyczne

Dodatkowo zbierane są również dane pogodowe z siedmiu punktów rozmieszczonych na całej trasie od Katowic aż po Kraków. Pochodzą one z Open-Meteo – API bazującego na modelach meteorologicznych europejskich i światowych służb pogodowych. Wszystkie pomiary trafiają do bazy InfluxDB, zoptymalizowanej pod dane oparte na szeregach czasowych. Pomiary wykonywane są w następujących lokalizacjach:

Lokalizacja Współrzędne Trasa Pozycja na trasie
Katowice 50.2594, 19.0180 Katowicka Punkt docelowy
Dąbrowa Górnicza 50.3254, 19.1872 Katowicka ~2/3 trasy
Sławków 50.2977, 19.3881 Katowicka ~1/3 trasy
Olkusz (Rynek) 50.2793, 19.5601 Wspólny Punkt startowy obu tras
Jerzmanowice 50.2203, 19.7354 Krakowska ~1/3 trasy
Wielka Wieś 50.1403, 19.8629 Krakowska ~2/3 trasy
Kraków 50.0678, 19.9493 Krakowska Punkt docelowy

Indeks warunków drogowych

Jednym z bardziej ambitnych elementów projektu było stworzenie wskaźnika oceniającego jakość warunków drogowych. System analizuje następujące składniki:

Składnik Waga Źródło Uzasadnienie
Deszcz 20% rain (mm/h) Mokra nawierzchnia, aquaplaning
Śnieg 20% snowfall (cm/h) Śliskość, zasypanie — ostrzejsza skala niż deszcz
Widoczność 20% visibility (m) Mgła, śnieżyca (tylko meteorologiczna)
Oświetlenie 15% is_day (0/1) Kompensacja ciemności nocnej
Temperatura 15% temperature_2m (°C) Gołoledź (0–4°C), oblodzenie (<0°C)
Wiatr 10% wind_speed_10m (km/h) Boczny wiatr na otwartych odcinkach

Na ich podstawie wyliczany jest syntetyczny wskaźnik „road index" w skali od 0 do 100, gdzie 100 oznacza warunki idealne, a 0 bardzo niebezpieczne. Co istotne, system rozróżnia np. wpływ deszczu i śniegu – ten drugi jest traktowany znacznie bardziej restrykcyjnie, ponieważ nawet niewielkie opady śniegu potrafią znacząco pogorszyć bezpieczeństwo jazdy. Uwzględniona została również noc, ponieważ dobra widoczność meteorologiczna nie oznacza automatycznie komfortowych warunków jazdy po zmroku. API pogodowe dynamicznie określa moment wschodu i zachodu słońca, dzięki czemu system automatycznie dostosowuje ocenę do pory roku.

Wzór

road_index = deszcz × 0.20 + śnieg × 0.20 + widoczność × 0.20 + wiatr × 0.10 + temperatura × 0.15 + oświetlenie × 0.15

To dopiero początek

System buduje bazę pomiarów, która z każdym dniem staje się coraz bardziej wartościowa. Do tematu wrócę za kilka miesięcy, gdy uda się zgromadzić odpowiednio dużą próbkę danych.

Przejdź do wizualizacji Grafana