However, these feeds do not follow the spec (Google Maps users will probably have already noticed trains that go to numbers instead of cities).
Therefore, my plan is to make a converter to fix these issues by turning the default SNCF feed into a ✨pretty feed✨
What SNCF does wrong ❌
trip.trip_headsign contains a train number and not a destination (they don't use trip.trip_short_name instead)
route_type is defined at the route level instead of the trip level. This mostly means that hybrid bus/train routes are shown as train only
The actual route type comes from the stop.stop_id prefixes (OCETrain, OCECar, OCEInoui, OCEOuigo, ...)
No stable calendar even though most routes run on a known schedule, everything is stored as calendar_dates (not really extra hamful, but it's frustrating to have to deal with)
Usage
Just build and run the following:
./sncf-unfucker <config.json> <output.zip>
TODO 📋
Split route types by actual route type
Set trip.trip_headsign to the actual destination, and put the train number in trip.trip_short_name
Actually have a valid GTFS output
Give stable calendars whenever possible
Add attributions.txt in the output file to avoid legally spicy stuff
Make sure calendar ID space is unique
Attributions ⚖
Credit goes to SNCF for their feeds, which are published under ODbL