MKuranowski / WarsawGTFS

Creates GTFS feed from ZTM Warsaw data
https://mkuran.pl/gtfs/
MIT License
34 stars 10 forks source link

Seperate SKM GTFS feed #49

Closed DomeQdev closed 9 months ago

DomeQdev commented 9 months ago

It would be great if there was a separate GTFS feed for SKM, just like there is for the metro. Currently, developers who want to create an app that only shows train schedules have to download and process the entire GTFS feed for Warsaw, which is a lot of data that they don't need.

MKuranowski commented 9 months ago

That would break fares, GTFS fares can't span across multiple feeds. Tickets in Warsaw are time-based with unlimited transfers†‡, so it's important to keep all of the modes in a single feed. If different modes were published in different feeds, any inter-modal transfers would force a fare change, which is incorrect.

The sole purpose of the metro GTFS is to be adjoined to the resulting warsaw.zip, because ZTM's datasets don't include metro schedules.

This change would also over-complicate the conversion process, as the current Converter has a simple 1 ZTM dataset → 1 GTFS correlation.


To get a SKM-only dataset one can use onebusaway-gtfs-transformer with a {"op": "retain", "match": {"file": "routes.txt", "route_type": "2"}} transform on warsaw.zip.


† AFAIK, there are no trips longer than 75 minutes/90 minutes (in zone 1/all zones respectively), so the single-ride rule is dead (unless delays come into play, but GTFS is static-schedules only). And even if such trips existed - it doesn't matter, the "75-minutes-or-single-ride" ticket is modeled as two separate fares: "75-minutes & unlimited transfers" and "unlimited time, no transfers",

‡ L** routes have single-journey tickets, but they have a completely different fare structure.