GTFS Regional (beta)

Introduktion

Observera att data som levereras här är i beta-version och kan komma att ändras utan förvarning från en feed till en annan. Vi kommer att fortsätta utveckla vårt NOPTIS- och GTFS-stöd, och feedback från tredjepartsutvecklare tas gärna emot. Dokumentationen kommer att uppdateras kontinuerligt, lämna gärna feedback på API och dokumentation här

Det finns flera skillnader mellan den GTFS-feed som vi redan levererar idag (GTFS Sverige 2) och den feed som beskrivs här. Eftersom dessa baseras på skilda indatakällor kan man inte använda ID:en dem emellan. GTFS Sverige 2-feeden innehåller sammanslagen information från hela Sveriges trafikföretag, medan den NOPTIS-baserade GTFS-feeden i dagsläget innehåller data per trafikföretag. Till exempel så finns det både en ul.zip (baserat på ULs data) och en otraf.zip (baserat på Östgötatrafikens data), till skillnad från sweden.zip som finns idag som innehåller Sveriges trafikföretags data. Detta gör bland annat att de NOPTIS-baserade GTFS-filerna inte behöver använda sig av rikshållplatser som i sweden.zip, utan kan använda sig direkt av trafikföretagens definierade hållplatsområden och hållplatsställen. Den NOPTIS-baserade GTFS-feeden inkluderar inte heller extrafiler utan följer endast GTFS-specifikationerna. Alla feeds inkluderar trafikdata med avgångsdatum senare än tre dygn bakåt i tiden från tidpunkten när det genererades.

Vad är GTFS?

GTFS innehåller den planerade trafikdatan. GTFS står för General Transit Feed Specification och är en standard som är framtagen av Google. För hjälp med formatet så hänvisar vi till den offentliga dokumentation som finns på här. I vissa filer använder vi oss av GTFS Extensions. Se dokumentation för det här.

Uppdaterar i GTFS Regional (beta)-filerna kan ske sporadiskt och vid behov under denna beta period. Utöver detta uppdaterar vi GTFS-datan automatiskt varje natt och nya GTFS-filer publiceras mellan kl 05:00-06:00

Metod

Likt GTFS Sverige 2 så kan man nå feed_info.txt för att se när GTFS-datan senast blev uppdaterad. Vi uppmanar att man utnyttjar denna fil för att se om man verkligen behöver hämta zip-filen på nytt.

Trafikbolag Planerad trafik feed_info.txt
UL https://gtfs-pp.samtrafiken.se/ul/ul.zip?key=<api-nyckel> https://gtfs-pp.samtrafiken.se/ul/feed_info.txt?key=<api-nyckel>
Östgötatrafiken https://gtfs-pp.samtrafiken.se/otraf/otraf.zip?key=<api-nyckel> https://gtfs-pp.samtrafiken.se/otraf/feed_info.txt?key=<api-nyckel>
SL https://gtfs-pp.samtrafiken.se/sl/sl.zip?key=<api-nyckel> https://gtfs-pp.samtrafiken.se/sl/feed_info.txt?key=<api-nyckel>
Västtrafik https://gtfs-pp.samtrafiken.se/vt/vt.zip?key=<api-nyckel> https://gtfs-pp.samtrafiken.se/vt/feed_info.txt?key=<api-nyckel>
Skånetrafiken https://gtfs-pp.samtrafiken.se/skane/skane.zip?key=<api-nyckel> https://gtfs-pp.samtrafiken.se/skane/feed_info.txt?key=<api-nyckel>
Kalmar Länstrafik https://gtfs-pp.samtrafiken.se/klt/klt.zip?key=<api-nyckel> https://gtfs-pp.samtrafiken.se/klt/feed_info.txt?key=<api-nyckel>
X-trafik https://gtfs-pp.samtrafiken.se/xt/xt.zip?key=<api-nyckel> https://gtfs-pp.samtrafiken.se/xt/feed_info.txt?key=<api-nyckel>
Dalatrafik https://gtfs-pp.samtrafiken.se/dt/dt.zip?key=<api-nyckel> https://gtfs-pp.samtrafiken.se/dt/feed_info.txt?key=<api-nyckel>
Värmlandstrafik + Karlstadbuss https://gtfs-pp.samtrafiken.se/varm/varm.zip?key=<api-nyckel> https://gtfs-pp.samtrafiken.se/varm/feed_info.txt?key=<api-nyckel>


 

Noteringar

  • Hållplatsinformation finns på både hållplatsområdenivå, hållplatsställenivå samt stationsentréer. I GTFS motsvaras detta av stops av location type station, location type stop och location type Station entrance or exit där ett stop refererar med fältet parent_station till den station som den tillhör.
  • Detaljerad sträckning för trips finns i filen shapes.txt.
  • Filen calendar.txt innehåller endast rader med nollor vid avgångsdagar. Alla avgångsdatum för en rad i calendar.txt definieras istället i calendar_dates.txt. 
  • Då både route_short_name och route_long_name har ett värde ska värdet för route_long_name ses som det korrekta namnet på linjen. Värdet för route_short_name ska då ett värde för route_long_name finns ses som ett alternativ för de system och gränssnitt som inte klarar av att visa route_long_name.
  • I NOPTIS-data som från trafikföretagen kan en route (routes.txt i GTFS) ibland ha vissa trips (trips.txt i GTFS) som körs av ett annorlunda slags fordon än det mest förekommande för routen. Eftersom det inte går att sätta fordonsslag på trip-nivå i GTFS så kan informationen ibland vara felaktig. Det vanligaste exemplet kan vara en route som har route_type-värdet för buss, men i verkligheten så körs vissa trips av ett fordon som borde haft route_type-värdet för taxi.
  • Slutdatum för en route kan variera jämfört med slutdatum för samma route i GTFS Sverige 2 pga att vi använder det slutdatum som finns i NOPTIS.
  • Bytestider och gånglänkar är annorlunda jämfört med GTFS Sverige 2. Dessa definieras i transfers.txt. Det finns bytestider på hållplatsområdesnivå och gånglänkar som definieras mellan två hållplatsställen tillhörande olika hållplatsområden. Det finns också gånglänkar mellan hållplatsställen inom samma hållplatsområde, t.ex. den tid det tar att gå mellan två plattformar på en tågstation. Anslutningar mellan turer finns också ibland och de är definierade på hållplatsställenivå. Dessa anger hållplatsställen där byte är att föredra och är prioriterade. Alla dessa bytestider, gånglänkar och anslutningar är definierade av trafikföretaget själva.

GTFS Realtime

GTFS-R innehåller realtidsdata. GTFS-R finns tillgängligt som filer i protocol-buffer-formatet. Läs mer om formatet här: https://developers.google.com/protocol-buffers/docs/overview. Vi rekommenderar att man använder ett bibliotek för att underlätta utvecklingen, se till exempel https://github.com/google/gtfs-realtime-bindings. Dokumentation för hur data ska tolkas finns på https://gtfs.org/reference/realtime/v2/. Vi använder oss inte av Extensions för GTFS-R.  

För GTFS-R finns fyra stycken filer tillgängliga per trafikföretag, en per entitet. Varje trafikföretag har två stycken filer som innehåller Trip Updates och två stycken filer som innehåller Service Alerts, där skillnaden mellan två filer som innehåller samma entiteter är filformaten, det är samma data i dem. Det ena formatet är den specifikationsföljande protocol-buffer-filen som man bör använda sig av när man har ett program som kontinuerligt frågar efter data. Det andra formatet innehåller samma data som protocol-buffer-filen fast i läsbart textformat. Textfilen är större än protocol-buffer-filen, vilket orsakar större krav på nätverksprestanda. Hämta textfilen endast vid felsökning. Båda filerna uppdateras samtidigt ungefär varje 15:de sekund.
Samtliga filer borde hämtas gzip-komprimerade för ytterligare överföringshastighet.

Då detta är ett beta-API kan man förvänta sig nedtid då och då pga undehåll av databaserna.

Noteringar

  • Effect-fältet i Alerts (http://gtfs.org/realtime/#message-alert) kommer alltid att ha värdet "UNKNOWN_EFFECT". Detta beror på att de effect-liknande fälten i NOPTIS-formatet inte matchar väl med de som finns i GTFS-R.
  • ServiceAlerts och TripUpdates uppdateras var 15:e sekund
  • I TripUpdates finns ett attribut som heter uncertainty. I GTFS Regional kan uncertainty endast anta värdet 0 eller uteslutas helt. Värdet 0 ska tolkas som att det är observerad att hållplatsen är passerad. Om uncertainty saknar är det brukar en prognos, som kan ändras.  För att säkerställa att hållplatsen passerats bör man verifiera att attributet uncertainty finns, och att den är 0. Om men glömmer att kolla om det finns, kan din programmeringsspråk tolka ett saknad attribut (Null) som 0, som kan ge fel i din applikation.
  • I TripUpdates finns ett timestamp för varje prognos. Denna timestamp visar när ankomst- eller avgångsprognosen senast uppdaterades.

Metoder:

Trafikbolag TripUpdates ServiceAlerts VehiclePositions
Östgötatrafiken

Protocol buffer-format

txt-format

Protocol buffer-format

txt-format

Kommer snart
UL

Protocol buffer-format

txt-format

Protocol buffer-format

txt-format

N/A
SL

Protocol buffer-format

txt-format

Protocol buffer-format

txt-format

N/A
Skånetrafiken

Protocol buffer-format

txt-format

Protocol buffer-format

txt-format 

Kommer snart
Kalmar länstrafik

Protocol buffer-format

txt-format

Protocol buffer-format

txt-format

Kommer snart
X-trafik

Protocol buffer-format

txt-format

Protocol buffer-format

txt-format

Kommer snart
Dalatrafik

Protocol buffer-format

txt-format

Protocol buffer-format

txt-format

N/A
Värmlandstrafik+Karlstadbuss

Protocol buffer-format

txt-format

Protocol buffer-format

txt-format

Kommer snart

      API-Nyckel

      Det krävs en giltig API-nyckel som skickas med som parametern "key" i metodanropen ovan. En API-nyckel får du genom att skapa ett projekt som använder detta API. Mer om hur du skapar och använder API nycklar hittar du här. För att få en API-nyckel så måste du godkänna de licensvillkor som finns för detta API.