Structure de l'import
L'export créée un zip contenant des fichiers csv.
Les fichiers csv produits par l'export gtfs sont :
- agencies.txt
- stops.txt
- routes.txt
- trips.txt
- stop_times.txt
- calendars.txt
Les fichiers respectent le format des fichiers GTFS défini dans la documentation officielle.
Rappel de la documentation officielle google : https://developers.google.com/transit/gtfs/reference/
Traitement des fichiers
agencies.txt
Une Agency GTFS sera créée à partir d'une Company Chouette.
| Chouette::Company | GTFS Agency |
|---|---|
| registration_number | agency_id |
| name | agency_name |
| url | agency_url |
| time_zone | agency_timezone |
| phone | agency_phone |
| agency_email |
Si l'attribut registration_number de la Company Chouette est vide, l'attribut GTFS agency_id sera égal à l'attribut id de la Company.
stops.txt
Un Stop GTFS sera créé à partir d'un StopArea Chouette.
Lorsque l'on fait la liste des StopArea à exporter, on récupère toute la hiérarchie d'arrêt que l'on ordonne par .
| Chouette::StopArea | GTFS Stop |
|---|---|
| registration_number | stop_id |
| name | stop_name |
| latitude | stop_lat |
| longitude | stop_lon |
| comment | stop_desc |
| url | stop_url |
| time_zone | stop_timezone |
Si l'attribut registration_number du StopArea Chouette est vide, l'attribut GTFS stop_id sera égal à l'attribut id du StopArea.
Si le StopArea Chouette a un parent, l'attribut GTFS parent_station sera rempli avec son identifiant GTFS.
Si l'attribut Chouette area_type est égal à "zdlp" alors l'attribut GTFS location_type sera égal à "1", sinon il sera égal à "0".
routes.txt
Une Route GTFS sera créée à partir d'une Line Chouette.
| Chouette::Line | GTFS Route |
|---|---|
| registration_number | route_id |
| published_name | route_long_name |
| number | route_short_name |
| type | route_type |
| desc | route_desc |
| url | route_url |
Si l'attribut registration_number de la Line Chouette est vide, l'attribut GTFS route_id sera égal à l'attribut id de la Line.
Si la Line Chouette a une Company, l'attribut GTFS agency_id sera rempli avec son identifiant GTFS.
Si l'attribut Chouette transport_mode est égal à "rail" alors l'attribut GTFS route_type sera égal à "2", sinon il sera égal à "3".
calendars.txt
Un Calendar GTFS sera créé à partir d'une TimeTable Chouette et de ses Periods et TimeTableDates.
Pour chaque Chouette::VehicleJourney concerné par l'export, on effectue un traitement pour fusionner ses TimeTables, Periods, et TimeTableDates. Après ce traitement, nous obtenons une liste de périodes qui seront utilisées pour produire les Calendars GTFS. Ce traitement rend inutile l'utilisation de CalendarDate GTFS car les exceptions sont également fusionnées avec les périodes.
Les Calendars sont générés à partir de ces périodes et ont un service_id aléatoire.
trips.txt
Un Trip GTFS sera créée à partir d'un VehicleJourney Chouette, de son lien avec une ligne, et de ses périodes.
On récupère la liste des périodes calculées à l'étape précédente, et pour chacune on créée un Trip GTFS.
L'attribut GTFS route_id est l'identifiant GTFS de la Line associée au VehicleJourney.
L'attribut GTFS service_id est l'identifiant GTFS de la période.
L'attribut GTFS trip_id est défini aléatoirement.
Si l'attribut wayback de la Route Chouette correspondant au VéhicleJourney est égal à "outbound" alors l'attribut GTFS route_type sera égal à "0", sinon il sera égal à "1".