MHDSim je real-time simulátor městské hromadné dopravy (tramvaje, autobusy a trolejbusy) založený celulárních automatech. Zadáním práce bylo vytvořit "Simulátor MHD linek v Brně", avšak vysledný program obsahuje i osobní vozidla a lze ho použit na jakékoliv město. Simulátor je napsaný v jazyce C++ a pro grafické uživatelské rozhraní byl použit Qt framework (Qt je také použito pro XML zpracování, podporu více vláken, stahování snímků map z internetu, ...). Aplikaci lze použít na jakékoliv město/oblast, stačí mít vstupní soubory s OpenStreetMap daty a jízdnými řády. Podrobnější informace o simulátoru jsou uvedeny v dokumentaci. [květen 2014]

MHDSim ukázka

Ocenění

Soubory

OpenStreetMap

OpenStreetMap (wiki) je projekt, který si klade za cíl vytvořit a volně poskytovat mapy celého světa. Mapy tvoří samotní uživatelé a kdokoli může přispět. OSM na rozdíl od ostatních volně dostupných digitálních map poskytuje samotná data ve formátu XML. OSM data právě slouží jako základ pro automatické generování dopravní sítě. OSM data však obsahují nemalé množství chyb a bylo nutné je ručně opravit. Většina chyb se na vizuální stránce mapy neprojeví, ale naprosto znemožňují automatické zpracování.

Pokud by někdo chtěl použít simulátor na jiné město, tak je to možné, ale pro menší města (menší jak Brno) většinou OSM mapy neobsahují dostatečné množství informací o linkách MHD a je nutné je ručně doplnit (ale je to jen otázka vytvoření vstupního souboru, samotný simulátor není třeba nijak upravovat). Musím dodat, že zpracování OSM dat a generování dopravní sítě zabralo většinu času při programování simulátoru. Generování dopravní sítě z OSM dat nebo jen "oprava" dat by vystačila na samostatnou bakalářskou práci. Čistá OSM data tvoří dobrý základ pro generování dopravní sítě, ale kvůli již zmíněným chybám je vždy nutné data ručně upravit.

Pro pohodlnější stahování OSM dat byl vytvořen program OSMDownloader, který umožňuje zvolit požadovanou oblast, stáhne potřebná data a následně všechny soubory spojí do jednoho (vetší oblasti jsou interně rozděleny na více požadavků jinak by OSM server požadavek odmítl) příčemž vybírá jen užitečné informace pro MHDSim. Ukládání jen potřebných informací značně snižuje velikost výsledného souboru, což má za následek rychlejší generování dopravní sítě při inicializaci simulátoru. OSMDownloader lze stáhnou zde.

OpenStreetMap downloader OpenStreetMap downloader download

Jízdní řády

Druhým vstupním souborem simulátoru jsou jízdní řády, které jsou v získány ze stránek http://www.jrbrno.cz. Online jízdní řády jsou poskytovány ve formě zastávkových jízdních řádů, ale pro simulaci není tato reprezentace vhodná. Proto jsou řády převáděny na záznamy o linkách (trasa linky, časy výjezdů a časy příjezdů).

Pro automatické stahování a převod jízdních řádů byl vytvořen program ScheduleDownloader, což je v podstatě HTML parser s převodem do nového formátu a jeho uložení do XML souboru. ScheduleDownloader lze stáhnout zde. ScheduleDownloader