Opóźnione pociągi

Minęło trochę czasu od ostatnich wpisów dotyczących kolei, więc czas wrócić do tego tematu. Na stronie http://infopasazer.intercity.pl możemy śledzić opóźnienia pociągów, które są na bieżąco rejestrowane przez dyżurnych ruchu. W tym wpisie przeanalizuję próbkę danych i postaram się znaleźć jakieś prawidłowości w pociagach, które przyjeżdżają po czasie.

Opóźnienia

Na podstawie analizowanej próbki (dwa tygodnie ze stycznia) można powiedzieć, że:

  • co dziesiąty przyjazd jest opóźniony o przynajmniej 4 minuty,
  • co dwudziesty o przynajmniej 8 minut,
  • a raz na 100 przypadków pociąg przyjeżdża przynajmniej 26 minut po czasie.

Spośród przyjazdów, które są opóźnione to dominują opóźnienia niewielkie. Zdecydowanie najwięcej było tych kilkominutowych (mediana 2 minuty, średnia 5 minut).

Opóźnienia na kolei - rozkład wartości

Największe spóźnienie jakie znalazłem w analizowanym okresie wynosiło przeszło 1400 minut (czyli ponad dobę) i pewnie możemy potraktować to jako wypadnięcie pociągu danego dnia.

Oczywście żeby mieć pełen obraz musimy mieć szerszy kontekst. Na przestrzeni miesięcy procent opóźnionych pociągów się zmienia i w okresie zimowym zapewne sytuacja bywa najgorsza, choć w tym sezonie raczej nie było kataklizmu. Analizując jednak dane od września możemy zauważyć, że druga połowa października oraz druga połowa grudnia to najgorsze okresy. Na poniższym wykresie procent opóźnionych pociągów (procent przyjazdów, które były opóźnione o co najmniej 15 minut).

Opóźnienia na kolei w ostatnich miesiącach

Poniżej te same dane w rozbiciu na poszczególnych przewoźników:

Opóźnienia pociągów w ostatnich miesiącach

Gdzie powstają opóźnienia?

Interesowało mnie, gdzie najczęściej powstają opóźnienia. Dane, które zebrałem zdają się wskazywać, że większość opóźnień, szczególnie u regionalnych przewoźników, powstaje na samym początku trasy. Być może wynka to z tego, że wiele pociągów czeka na inne opóźnione składy, aby umożliwić podróżnym przesiadkę, albo by dojechała drużyna konduktorska. W przypadku Intercity opóźnienia powstają bardziej równomiernie w trakcie trwania całej podróży.

Wykres poniżej przedstawia jak wygląda przyrost opóźnienia w zależności od przebytej trasy i widać u większości przewoźników widać zdecydowanie większe wartości na początku trasy.

Przyrost opóźnień w spóźnionych pociągach

Są też stacje, na których mamy większe szanse trafić na opóźniony pociąg. Skupiając się tylko na dużych dworcach (mających ponad 100 przyjazdów dziennie) i opóźnienach przynajmniej 15 minutowych to zobaczymy, że na najwięcej opóźnień można trafić w:

Stacje z największą liczbą opóźnionych pociągów

Z kolei najmniej opóźnionych składów jest na następujących stacjach:

Stacje z najmniejszą liczbą opóźnionych pociągów

“Wielkość opóźnienia może ulec zmianie…”

Zastanawiałem się też jak zmienia się już istniejące opóźnienie. Czy częściej wzrasta, czy maleje? Bazując na pociągach, które osiągały przynajmniej 15 minutowe opóźnienie można zauważyć, że najprawdopodobniej opóźnienie się nie zmieni. Jeśli na poprzednią stację pociąg przyjechał opóźniony, to na kolejną przyjedzie:

  • z takim samym opóźnieniem w 44% przypadków,
  • z zmniejszym opóźnieniem w 35% przypadków,
  • z jeszcze większym opóźnieniem w 21% przypadków.

Tak więc optymistyczne jest to, że najczęściej opóźnienie już nie rośnie.

Nadrabianie spóźnień

Na koniec sprawdziłem jeszcze ile spóźnienia pociągi są w stanie nadrobić. Ilość odzyskanego czasu mierzyłem jako różnicę pomiędzy maksymalnym opóźnieniem na trasie a opóźnieniem na ostatniej stacji.

Wśród przewoźników to Intercity miało zdecydowanie największe szanse na nadrabianie zaległości (mediana 9 minut, średnia 11 minut) i zapewne wynikało to z tego, że u tego przewoźnika przeważają długie trasy, a więc jest więcej czasu do odrobienia strat.

Ile spóźnienia udaje się nadrobić

Na poniższym wykresie widać, że liczba nadrobionych minut może być większa im dłuższa jest planowana trasa: (współczynnik koreacji pomiędzy długościa trasy a nadrobionymy minutami wynosi 0.43)

Nadrobione spóźnienie w zależności od długości trasy

Nowy rozkład PKP

9 marca na kolei wprowadzono nowy rozkład. Chciałem sprawdzić, czy w nowym planie widać postęp prac remontowych. I rzeczywiście, są odcinki, po których jedzie się szybciej, natomiast wciąż wiele jest tras, na których średnia predkość została obniżona. Z pewnością w wielu przypadkach ma to związek z postępującymi pracami, które w tym roku jeszcze będą dość dokuczliwe dla podróżnych.

pkp_nowy_rozklad

Uzmysłowiłem sobie, że ta ilustracja nie jest idealna. Prędkość na trasie to jedno, ale podczas remontów często zdarza się, że pociągi są zmuszone dłużej czekać na stacjach (gdy np. w obie strony ruch przebiega po jednym torze), a to niestety nie jest uwzględnione.

 

Opóźnienia pociagów

Musiałem trochę poprawić swojego crawlera, żeby zbierać dokładniejsze dane dotyczące opóźnień. Problem polegał na tym, że gdy pociąg dojedzie do stacji docelowej to za parę minut informacja o nim jest kasowana. Zamiast więc wsadowo pobierać wszystkie strony co parę godzin program działa teraz w trybie ciągłym i we właściwym momencie uaktualnia dane o pociągu.

Zebrałem historię z jednego tygodnia (od 25 lutego do 4 marca). Nie było wtedy chyba żadnych afer kolejowych. Pogoda była zdecydowanie sprzyjająca. Powinienem też mieć gdzieś mniej dokładne wyniki ze stycznowego ataku zimy. Może znajdę chwilę, by do nich wrócić przy innej okazji.

Ile pociągów się spóźnia?

Z zebranych danych wynika, że 72% przyjazdów jest na czas. Z 28% opoźnionych przyjazdów tylko 5% ma opóźnienie większe niż 5 minut. W rozbiciu na przewoźnika wygląda to następująco:

Średnie opóźnienie wynosi nieco ponad 4 minuty, największe, 226 minut, miał pociąg Intercity Żuławy z Olsztyna do Szczecina. Zdaje się, że był to jakiś losowy przypadek, bo w pozostałych dniach nie było takich dużych opóźnień tego pociągu

Intuicja podpowiada, że nie wszędzie pociągi spóźniają sie tak samo często. Pewnie niektóre trasy są w złym stanie. Inne, remontowane też wydaje mi się, że mogą powodować opóźnienia ze względu na mijanie się pociągów po jednym torze. Jak to wygląda z szerszej perspektywy?

pkp_mapa_stacje
[kliknij, aby uruchomić w nowym oknie]

Powoli kończę pierwszą serię poświęconą kolei. Być może jeszcze znajdę czas i pomysł na jeden wpis, ale już zaczynam myśleć o nowym temacie. Do kolei pewnie wrócę za parę miesięcy, żeby porównać, czy coś się zmieniło. Poza tym będę się starał obserwować opóźnienia w razie kataklizmów pogodowych — wtedy powyższa mapka będzie na pewno wyglądać zupełnie inaczej.

PKP – czas podróży

Jak wyglądałaby mapa Polski, gdyby zamiast odległości pomiędzy miastami przedstawić czas podróży koleją? Wiadomo, że trasy są w różnym stanie.

Skupiłem się na PKP Intercity, bo chciałem sprawdzić tylko połączenia pomiędzy większymi miastami. W przypadku przewoźników osobowych duża liczba stacji mogłaby sztucznie wydłużać czas w obszarach gęsto zaludnionych.

Oczywiście nadal korzystam z d3js (bez tej biblioteki nie wyobrażam już sobie wizualizacji 🙂 ). Opcja wykorzystana tym razem to force layout. Idea jest taka: definujemy różne siły (grawitacji, przyciągania, odpychania), które dziłają na obiekty i zamiast samemu określać położenie przedmiotów pozwalamy by te siły “ułożyły” obiekty na płaszczyźnie.

W widoku podstawowym widzimy miasta w ich rzeczywistej pozycji. Odleglość pomiędzy nimi odpowiada odległości w linii prostej. Po przełączeniu odległości zostaną zmodyfikowane tak, by były proporcjonalne do czasu podróży. Wtedy zdefionowane siły “ułożą” graf zgodnie z zadanymi ograniczeniami (przed wszystkim odległości mają być propocjonalne do czasu podróży, w drugiej kolejności miasta starają się być jak najbliżej swoich pierwotnych pozycji).

pkp_mapa_stacje

Co do samych danych to widzimy, że w dobrym stanie jest linia Frankfurt-Rzepin-Poznań-Warszawa (po przełączeniu skraca się). Szczecin-Poznań też jest w dobrym stanie. Kiepsko wypadają natomiast połączenia na południu — tam praktycznie każda podróż ciągnie się niemiłosiernie.

Stacje kolejowe

Wszystkich stacji kolejowych jest 2500, więc trochę czasu zajęło przygotowanie danych do kolejnej wizualizacji, czyli mapy linii kolejowych. Najwięcej problemów było ze ściągnięciem i uporządkowaniem współrzędnych stacji. Dwa źródła okazały się pomocne.

  • Natrafiłem kiedyś na pakiet R o nazwie SmarterPoland. Funkcja getGoogleMapsAddress pobiera z Google’a współrzędne podanej lokalizacji. Jest niestety dość niski limit na liczbę requestów (chyba 1000 z tego co pamiętam — robiłem to parę miesięcy temu), niemniej jednak często stanowi to dobrą podstawę do dalszej pracy.
  • Hitem okazała się Wikipedia. Jest całkiem dużo artykułów poświęconych stacjom kolejowym, a na każdej stronie są zazwyczaj współrzędne geograficzne. Dla stacji X pobierałem więc strony: X, X_(stacja_kolejowa), oraz X_(przystanek_kolejowy). Dało to bardzo dobre rezultaty. Okazało się, że szczególnie te mniejsze stacje były dokładnie opisane. BTW: czy stacja w Cierpigórzu naprawdę tak wygląda?

Po ściągnięcie danych musiałem jeszcze wprowadzić całą masę poprawek i na pewno nadal jest troche nieścisłości.

Do rysowania mapy wykorzystałem d3js z dodatkiem topojson. Tutaj jest fajny tutorial.

pkp_mapa_stacje

Na zachodzie sieć kolejowa jest rozwinięta o wiele gęściej niż na wschodzie. Na wschodzie dominuje Warszawa. Poza liniami dobiegającymi do stolicy jest mało tras.