Otevřená data PID

Otevřená data jsou zpracovávána zejména pro datové analytiky a tvůrce dopravních aplikací. K dispozici jsou pravidelně aktualizované jízdní řády, ale i statistické údaje o Pražské integrované dopravě.

Kromě umístění zde jsou datové sady předávány též Institutu plánování a rozvoje, který je po dalším zpracování umisťuje též na pražský portál opendat. V budoucnu počítáme též se zapojením do datové platformy.

Licence

Data, která lze stáhnout přímo zde z webu, jsou stejně jako celý obsah webu opatřena licencí CC-BY, tedy je lze dále šířit, avšak je nutné uvést autora a případné provedené změny. Data, která lze stáhnout z jiných zdrojů zde odkazovaných, se řídí licencí daného zdroje.

Data umístěná zde jsou poskytována jako „preview“ bez záruky. Mohou být bez předchozího varování smazána, přemístěna, nebo může být upraven formát. V datech též mohou chybět některé údaje, které podléhají přísnějším licencím.

Kontakt

Pokud máte zájem některé datové sady systematicky využívat, nebo by se vám hodila jakákoliv jiná podpora, napište nám prosím na opendata@pid.cz.

Datové sady

Datová sada Četnost aktualizace Odkaz Podrobnosti
Jízdní řády PID ve formátu GTFS
Jízdní řády všech linek PID (MHD + region) na týden dopředu.
denně [GTFS] dokumentace
Seznam zastávek PID
Všechny zastávkové sloupky, uzly, názvy, pásma a polohy zastávek
denně [XML] [JSON] [XSD], dokumentace
Prodejní místa PID
Místa, kde lze zakoupit jízdenky, předplatní kupóny, nebo vyřídit průkaz PID (automaty, kontaktní místa, stanice)
cca měsíčně [XML] [JSON] [XSD], dokumentace
Číselníky: [XML] [JSON] [XSD]
GeoData
Trasy, linky, zastávky, vstupy do metra a tarifní pásma a v různých formátech (GeoJSON, Shapefile, …)
denně [opendata.praha.eu]
Novinky, výluky a operativní mimořádnosti v provozu real-time [RSS kanály]
Roční statistika PID ročně [opendata.praha.eu]
Další datové sady naleznete na portálu opendata.praha.eu

Dokumentace

Jízdní řády ve formátu GTFS

Soubor obsahuje jízdní řády všech linek PID (metro, tramvaje, autobusy, lanovka, přívozy, vlaky), trasy spojů, informace o tarifu pro výpočet ceny jízdného a garantované návaznosti mezi spoji. Jízdní řády vlaků jsou však zatím pouze experimentální, mohou obsahovat nepřesnosti v případě krátkodobých výluk a některých svátečních dnů!

Data splňují specifikaci GTFS Static s rozšířením Trip-to-trip transfers popisující garantované (vyčkávací) přestupní vazby. Specifika souboru s jízdními řády PID jsou vypsána níže. Tato specifika slouží jen pro lepší pochopení a lidskou čitelnost dat, případně poskytují doplnění pro správné použití těchto dat, na samotnou validitu nemají vliv.

stops.txt

  • V souboru jsou pouze zastávky, které jsou aktuálně využity, tj. alespoň v některý den platnosti feedu v zastávce zastavují nějaké spoje.
  • Stanice metra a vlaků mají dvě zastávky (pro každý směr jednu) sdružené do jedné stanice. stop_id této stanice je ve tvaru Učíslo_uzluSindex. U přestupních stanic metra jsou pak zastávky čtyři, rozdělené do dvou stanic, viz níže.

U1072S1,“Můstek – A“,50.08353,14.42456,“P“,“https://pid.cz/zastavkova-tabla?stop=Můstek“,1,,1
U1072S2,“Můstek – B“,50.08341,14.42339,“P“,“https://pid.cz/zastavkova-tabla?stop=Můstek“,1,,1
U1072Z101P,“Můstek – A“,50.08312,14.42496,“P“,“https://pid.cz/zastavkova-tabla?stop=Můstek“,0,U1072S1,1,M1
U1072Z102P,“Můstek – A“,50.08394,14.42415,“P“,“https://pid.cz/zastavkova-tabla?stop=Můstek“,0,U1072S1,1,M2
U1072Z121P,“Můstek – B“,50.08321,14.42279,“P“,“https://pid.cz/zastavkova-tabla?stop=Můstek“,0,U1072S2,1,M3
U1072Z122P,“Můstek – B“,50.08361,14.42398,“P“,“https://pid.cz/zastavkova-tabla?stop=Můstek“,0,U1072S2,1,M4

  • zone_id popisuje pásmové zařazení zastávky (P, 0, B, 1, 2, … ale i např. „B,1“). Může být prázdné pro linky se zvláštním tarifem (např. AE). Protože v jedné zastávce mohou být různé linky zařazeny do různých tarifních pásem, může kvůli tomu být zastávka rozštěpena do více „virtuálních“ záznamů, které všechny sdílí stejnou pozici v mapě. Toto je potřebné například pro výpočet ceny. Fyzicky je pak na místě pouze jeden sloupek. Níže příklad výstupní zastávky na Černém Mostě.

U897Z1P,“Černý Most“,50.10912,14.57713,„P“,…,V1    <– pro městské linky (MHD)
U897Z1,“Černý Most“,50.10912,14.57713,„0“,…,V1      <– pro příměstské linky v pásmu 0
U897Z1N,“Černý Most“,50.10912,14.57713,„“,…,V1      <– pro linku IKEA (bezpl. přeprava)
U897Z21,“Černý Most“,50.10912,14.57713,„B,1“,…,V1 <– pro příměstské linky v pásmu B,1

  • platform_code je kód stanoviště používaný k označení sloupku v rámci skupiny zastávek

routes.txt

  • Pro jednu linku může v souboru být více záznamů, pokud se na jejím provozu podílí více dopravců. Pokud pro vás není dopravce podstatný, je možné sloučit dohromady všechny linky se stejným route_short_name.
    • Poznámka: V budoucích verzích pravděpodobně dojde ke sloučení a pro každou linku bude záznam pouze jeden.
  • route_short_name odpovídá označení linky pro veřejnost (např. „A“, „22“, „S9“, „P7“).
  • route_long_name odpovídá licenční trase linky (nemusí nutně souhlasit s reálnou trasou například v případě výluky!)

trips.txt

  • block_id je konstruováno jako trip_id prvního spoje v sekvenci spojů, které na sebe navazují. Viz níže příklad spoje linky 174, který na Lukách mění číslo a pokračuje dále jako spoj linky 301 do Chýnice. Přes block_id jsou propojeny pouze spoje, kde vozidlo pokračuje dále a cestující tak nemusí přestupovat. Garantované návaznosti s přestupem zachycují transfers.txt.

L174D1,1111100-1D,174_17_180509,“Luka“,0,174_17_180509,L174V6,1,2,1
L301D1,1111100-1D,301_2_180509,“Ořech“,0,174_17_180509,L301V1,1,2,1

  • Speciálním případem použití block_id jsou výjezdové a zátahové spoje tramvají z/do vozovny, které přepravují cestující. Pokud vozovna není přímo na trase linky, je spoj roztržen v poslední/první zastávce na pravidelné trase linky na dva samostatné tripy propojené přes block_id. Příklad níže ukazuje zátah linky 5 ze Sídliště Barrandov do Vozovny Motol (poslední zastávka na trase je Anděl).

L5D1,0000100-1N,5_1_180511,“Anděl“,0,5_1_180511,L4V18,2,0,0
L5D1,0000100-1N,5_2_180511,“Vozovna Motol“,0,5_1_180511,L4V19,2,0,0

calendar.txt

  • service_id obsahuje řetězec sedmi nul a jedniček, které pro každý den v týdnu udávají, kdy spoj jede pro vyšší lidskou čitelnost
  • Platnost je vždy minimálně 7 dní ode dne vygenerování

transfers.txt

  • Soubor obsahuje pouze garantované přestupy mezi spoji za použití rozšíření Trip-to-trip transfers. Garantovaný přestup je takový, kde je navazující spoj povinen vyčkat příjezdu návazného spoje. Typicky je to omezeno limitem, do kdy musí návazný spoj přijet, aby se nevyčkávalo příliš dlouho. Tento limit v datech uveden není.

11. 5. 2018
  • Upraven formát trip_id, aby byl stabilní mezi feedy (stejný spoj by nově měl mít další den stejné ID). Nově se trip_id skládá ze tří částí – číslo linky, číslo spoje (přidělované postupně) a datum prvního výskytu
  • Upraven formát stop_id – pokud se zastávka v průběhu platnosti feedu mění (např. přejmenovává, nebo mění pásmo), je přidán záznam, jehož ID obsahuje navíc datum začátku platnosti tohoto nového záznamu
  • block_id se nevyplňuje, pokud ze spoje/na spoj není žádný přejezd a spoj by tak byl v bloku jediný
  • Upraveny barvy linek dle grafického manuálu PID

 

Seznam zastávek PID

Soubory se seznamem zastávek poskytují podrobnější informace o zastávkových sloupcích, které se nevejdou do feedu GTFS, který navíc neumožňuje strukturování dat. K dispozici je ve formátech XML a JSON, které jsou obsahem odpovídající. K XML formátu existuje XML schema, které formát popisuje. Níže jsou stručně popsány jednotlivé entity.

Skupiny <group>
Skupina definuje všechny zastávky ve stejném uzlu, které mají stejný název.

  • name je společný název zastávek ve skupině. Pozor, může existovat více skupin se stejným názvem, viz příklad níže.
  • fullName je plný název zastávek s rozepsanými zkratkami („rozc.“ -> „rozcestí“ apod.)
  • uniqueName je název zastávek, který je unikátní v rámci celého souboru. Vychází z name, kde v případě kolize upřesňuje v závorce okres nebo typ zastávky, viz příklady níže.
  • node je číslo uzlu, do kterého zastávky patří. Pozor, toto číslo není unikátním identifikátorem názvu zastávky, protože jeden uzel může obsahovat více zastávek různého názvu. Příkladem je uzel 237, který sdružuje zastávky Karlovo náměstí, Palackého náměstí, Moráň a Novoměstská radnice. Všechny tyto skupiny zastávek mají stejné číslo uzlu.
  • avgLat, avgLon, jtskX, jtskY je GPS/JTSK pozice agregovaná ze všech sloupků.
  • municipality je název města/obce, na jejímž území zastávka leží.
  • districtCode je „SPZ“ kód okresu, ve kterém zastávka leží.

Příklad 1: Skupiny zastávek s názvem „Chrášťany“ v různých okresech (pouze vybrané atributy)

<group name=“Chrášťany“ uniqueName=“Chrášťany (Benešov)“ node=“4471″ avgLat=“49.7927″ avgLon=“14.5866871″ municipality=“Chrášťany“ districtCode=“BN“>

<group name=“Chrášťany“ uniqueName=“Chrášťany (Kolín)“ node=“2410″ avgLat=“50.06581″ avgLon=“14.9295769″ municipality=“Chrášťany“ districtCode=“KO“>

<group name=“Chrášťany“ uniqueName=“Chrášťany (Praha-západ)“ node=“1190″ avgLat=“50.0447922″ avgLon=“14.2591076″ municipality=“Chrášťany“ districtCode=“PZ“>

<group name=“Chrášťany“ uniqueName=“Chrášťany (Rakovník)“ node=“9520″ avgLat=“50.1428″ avgLon=“13.6631536″ municipality=“Chrášťany“ districtCode=“RA“ isTrain=“true“>

Příklad 2: Skupiny zastávek v uzlu 237 (pouze vybrané atributy)

<group name=“Karlovo náměstí“ node=“237″ avgLat=“50.07532″ avgLon=“14.4185734″>

<group name=“Moráň“ node=“237″ avgLat=“50.0740242″ avgLon=“14.41873″>

<group name=“Novoměstská radnice“ node=“237″ avgLat=“50.0774574″ avgLon=“14.4195213″>

<group name=“Palackého náměstí“ node=“237″ avgLat=“50.07274″ avgLon=“14.4144449″>

Zastávky (sloupky) <stop>
Každá skupina zastávek stejného názvu obsahuje zastávkové sloupky.

  • id je interní identifikátor zastávky číslo uzlu / číslo sloupku. Tento identifikátor je unikátní v rámci celého souboru a neměnný mezi aktualizacemi souboru. Číslo uzlu odpovídá hodnotě node skupiny zastávek.
  • platform je kód stanoviště používaný k označení sloupku v rámci skupiny zastávek například na odjezdových tabulích
  • altName je název, který může obsahovat upřesnění, jehož účelem je bližší identifikace konkrétního sloupku, viz příklad níže
  • altNameFull je altName s rozepsanými zkratkami (např. „rozc.“ -> „rozcestí“ apod.)

Projíždějící linky <line>
Každá zastávka obsahuje seznam linek, které v ní zastavují

  • id je číselný identifikátor linky.
  • name je označení linky používané ve vztahu k cestujícím
  • type je typ dopravního prostředku (možné hodnoty viz XSD)
  • isNight je true, pokud jde o noční linku
  • direction je nejčastější konečná pro spoje odjíždějící z dané zastávky
  • direction2 je alternativní konečná, pokud jsou spoje pásmované (nemusí být vyplněno)

 

Prodejní místa PID

Soubory se seznamem prodejních míst obsahují detailní popis všech evidovaných míst, kde se pořizuje jízdné PID, což zahrnuje

  • Automaty na jízdenky
  • Předprodejní místa v metru
  • Infocentra
  • Pokladny v železničních stanicích
  • Kanceláře dopravců

Soubor je k dispozici ve formátu XML a JSON. K XML formátu existuje XML schema, které formát popisuje. Pro zobrazení dat uživatelům se hodí využít číselníky s texty.

Prodejní místa <point>

  • id jednoznačný identifikátor prodejního místa. Zůstává stejný i mezi aktualizacemi souboru, lze ho tedy využít například pro rozdílové aktualizace.
  • services je bitové pole příznaků jednotlivých služeb, které místo poskytuje. Jednotlivé služby jsou uvedeny v číselníku.
  • payMethods je bitové pole příznaků způsobů placení. Konkrétní hodnoty jsou uvedeny v číselníku.