Simutrans TimetablesCZ · fork 122.0 · pak128 VZ
kb/sources.mdView on GitHub ↗

Data sources

Every source the pipelines use, with the quirks that cost time. Per-sheet usage is on each sheet's page in the app and in its pipeline README (mirror/pipeline//README.md). Raw downloads are kept, dated, in the working folder pipeline//data/raw/// — never in this repo.

Timetables

Source Used by Notes
CIS JŘ JDF — ftp.cisjr.cz (pub/jdf/JDF.zip bus export ~107 MB; city export draha/mestske) Ostrava tram/trolleybus/bus, Most–Litvínov, Pardubice, Havířov/Karviná/Orlová, all ODIS sheets Bus lines are in the bus export, not the city one; Opava trolleybuses 905201–4 are in the city export. Version choice: latest "valid from" among versions valid on the day, ties → shortest validity. JDF 1.10/1.11 column differences (Zasspoje arr/dep idx 10/11).
CIS JŘ rail (CZPTT XML) — ftp.cisjr.cz/draha/celostatni/szdc//JR.zip MD-CR, all local-rail sheets, RegioJet/Leo Express One XML per train; monthly folders are gzip výluka variants → ignored. Parsed once into md-cr/data/derived/trains.json (71 MB, day bitmaps). No engineering works in it. JR2027 from 13 Dec 2026.
CIS JŘ NeTEx — ftp.cisjr.cz/netex/ early sheets (Pardubice v1, Most termini) NeTEx_DrahyMestske.zip (trolleybus), NeTEx_VerejnaLinkovaDoprava.zip (bus); filter by operator IČO.
IDS JMK GTFS — kordis-jmk.cz/gtfs/gtfs.zip Brno tram/trolleybus/bus No kurz numbers in block_id; trams route_type 0, trolleybus 800, bus 3. Feed splits long workings at timing points (Úzká, Královo Pole…). Tram timetable switched Tue 29 Sep.
PID GTFS (Prague) Prague tram/trolleybus/bus Trolleybus route_type 11. Has shapes (used for wire check).
PMDP GTFS — jizdnirady.pmdp.cz/jr/gtfs Plzeň tram/trolleybus/bus Returns the zip directly. No shapes.txt, no blocks; trolleybus route_type 11.
DPMO GTFS — dpmo.cz/doc/dpmo-olomouc-cz.zip Olomouc tram/bus —
pid.cz/zmeny/?type=vlaky, ČD výluka PDFs cd.cz/jizdni-rad/tratove-jizdni-rady/files/cz-k-2026vyluka.pdf rail sheets The only place engineering works show up. Read PDFs with pymupdf word coordinates.

Vehicles (who ran what)

Source Used by Notes
bmhd.cz — vypravenost.php?datum=&linka=, /evidence-dpmb/vozovna/{m,p}, vozp.php Brno WAF 403 for plain curl: full Chrome UA + Accept + Accept-Language, ~2 s between requests. Kurz → cars with notes (ráno/odpoledne/výměna), no times. Weekday odd kurz = Pisárky, even = Medlánky.
seznam-autobusu.cz — /vypravenost/?datum=, `/vypravenost/odis/vypis?datum= linka=, /seznam?…&page=N, /seznam?spz=` Praha, Plzeň, Olomouc (mhd-ol), Ostrava history, Most, Havířov/Karviná/Orlová, ODIS, Pardubice
DPO live API — POST https://dashboard.dpo.cz/api/server body {"endpoint":"transport/vehicle/list?page=dashboard&withTripId=1&vehicleStates=ride","apiMethod":"GET","data":{},"host":null} Ostrava tram/trolleybus/bus vehicleNumber, routeID, serviceID (= kurz). No history: poll on the vehicle day, keep the machine awake.
ODIS live map — POST https://mpvnet.cz/Odis/map/mapData body {"w":16.7,"s":49.4,"e":18.84,"n":50.45,"zoom":13,"showStops":false,"mapFilterId":null} Havířov/Karviná/Orlová, all ODIS regional, Ostrava Hranečník cards Needs Content-Type: application/json, Origin: https://mpvnet.cz, Referer: https://mpvnet.cz/odis/map (else 400). Decode utf-8-sig. Row cn = licence|line|trip|stop|delay|…|start|final|1|PLATE. Trip = JDF spoj number. Plate → seznam-autobusu vid → fleet number. No history; the 20 Oct 13:00–19:30 whole-region poll is in havirov-karvina-orlova/data/raw/2026-10-20/live/.
mhd-ostrava.cz, Wikipedia Ostrava trolleybus battery sections JDF doesn't mark battery sections.
Photos (seznam-autobusu galleries) Most–Litvínov bus Destination displays read off 114 photos (assets/photo_lines.json) when no records exist.
vagonweb.cz — /razeni/vlak.php?zeme=%C4%8CD&kategorie=Os&cislo=…&rok=2026 rail circuits zeme must be %C4%8CD (not CD); needs PHPSESSID cookie + referer (local-rail/vagonweb.py). Planned type + sighted units per date.

Infrastructure

Source Used by Notes
OSM Overpass trolley_wire=yes Prague, Plzeň, Opava trolleybus battery sections (03b_offwire.py, offwire.py) Needs Accept: application/json (else 406); Plzeň: a plain tool UA works where a browser UA is refused. Main server gave 502s on 22 Oct; the maps.mail.ru mirror worked.
prazsketramvaje.cz, bmhd.cz track plan, spvd.cz, Wikipedia, OSM the Termini sheets (12 Sep) Loop track counts.
Most city GIS mapy.mesto-most.cz/koop/rest/services/mhd/FeatureServer/0 Most Returns empty — no allocation data exists for DPmML.

Rate limits and etiquette

  • Operator sites (dpmp.cz) rate-limit: 429, then refuse connections — fetch sparingly.
  • Keep every download as fetched, in a dated raw folder, so a rebuild never needs the network.