Till senaste kommentaren

Bussnummer med den regionala GTFS-RT hämtningen

Hejsan, jag använder mig utav https://opendata.samtrafiken.se/gtfs-rt/skane/VehiclePositions.pb?key={apiKey} apiet.

jag får ut
FeedEntity {
id: '218788623',
vehicle: VehiclePosition {
trip: TripDescriptor {
tripId: '121120000307556479',
scheduleRelationship: 0
},
position: Position {
latitude: 55.85041046142578,
longitude: 13.651667594909668,
bearing: 255,
speed: 10.600000381469727
},
timestamp: Long { low: 1660316110, high: 0, unsigned: true },
vehicle: VehicleDescriptor { id: '9031012002402861' }
}
}

Min första fråga är, finns det specifikation för vad de olika objekten/properties betyder?

Min andra fråga blir besvarad om det nu finns specifikation på de olika fälten. Men frågan är hur jag kan få ut bussnummer på de olika bussarna runt skåne. För att veta vilken buss det är jag tar ut positioner för.

Mvh en väldigt glad användare av trafiklabs apier 😀 

Besim

Kommentarer

  • Hej Besim!

    Du hittar specifikationen på GTFS-RT formatet här: https://developers.google.com/transit/gtfs-realtime. Formatet används tillsammans med GTFS, där alla planerade data finns. GTFS-RT beskriver bara avvikelser från dessa planerade data.

    I dit exempel finns fordonet på Trip 121120000307556479 , som beskrivs i GTFS-filen, sig vid koordinaterna 55.85041046142578, 13.651667594909668.

    I Skånes GTFS fil hittar vi Trip 121120000307556479 som körs på Route 9011012040100000. Kollar vi då Route 9011012040100000 i samma GTFS fil ser vi att det är SkåneExpressen Kristianstad - Malmö.

    GTFS filerna finns såklart också publikt på Trafiklab, och dokumentation för dem hittar du här https://www.trafiklab.se/docs/using-trafiklab-data/using-gtfs-files/ och här https://developers.google.com/transit/gtfs.

    Säg till om vi kan hjälpa med något mer.

    Hälsningar,
    Bert
    Bert på Trafiklab
  • Hej, tack för tydligt och snabbt svar!

    Jag förstår vad du menar och det makes sense också. Men jag förstår nog inte riktigt med vad du menar med "Skånes GTFS fil", missar jag något här eller är det några fler anrop jag behöver göra? Jag trodde det skulle räcka med det anropet jag redan gör.


    Mvh Besim 😀
    Besim
  • Hej Besim,

    Skånes statiska GTFS fil kan du ladda ner från vår GTFS Regional Static API. Det är ett extra anrop som du måste göra. Filen uppdateras bara 1x varje dag, så man laddar ner filen 1 gång och använder det med alla realtidsfiler för operatören. Mer information hittar du här: https://www.trafiklab.se/api/trafiklab-apis/gtfs-regional/static/

    Hälsningar
    Bert
    Bert på Trafiklab
  • Tack så mycket för hjälpen. En till fråga bara.

    Här har du 2 stycken exempel från vad jag får för data av den regionala realtime hämtningen:

    FeedEntity {
       id: '79477499',
       vehicle: VehiclePosition {
       position: Position {
       latitude: 55.60600280761719,
       longitude: 13.04666805267334,
       bearing: 8,
       speed: 0
       },
       timestamp: 1660815039,
       vehicle: VehicleDescriptor { id: '9031012002204377' }
       }
    }
    FeedEntity {
       id: '79478007',
       vehicle: VehiclePosition {
       trip: TripDescriptor {
           tripId: '121120000309312611',
           scheduleRelationship: 0
       },
       position: Position {
       latitude: 55.85551452636719,
       longitude: 13.671270370483398,
       bearing: 222,
       speed: 0
       },
       timestamp: 1660815039,
       vehicle: VehicleDescriptor { id: '9031012002402861' },
       occupancyStatus: 1
       }
    }

    Det första objektet innehåller inte någon "tripId" data. Och det finns fler som det objektet. Hur ska man förhålla sig till det isåfall? Alltså hur vet jag vad det är för rutt och bussnamn på denna entiteten?

    Mvh Besim 😀
    Besim
  • Hej Besim,

    Detta kan bero på två saker:
    - Bussen är inte aktiv på en linje just nu (på väg från/till depån, parkerad på depån, ...)
    - Bussen är en extrainsatt förstärkningstur som inte var planerad. I detta fall finns det en route_id och start_date, men finns det ingen trip_id eftersom att avgången inte var planerad i tidtabellen.

    Hälsningar,
    Bert
    Bert på Trafiklab
  • Tack Bert för din info.

    Jag ser att det regionala RT apiet uppdateras varannan sekund när det gäller vehicleUpdates.

    Hur är det med det statiska API'et? Jag ser att det uppdateras en gång per dag, men är det någon fast tid det uppdateras?

    Mvh Besim 😀
    Besim
  • Hej Besim,

    Statiska filerna uppdateras en gång per dag på morgonen, men det finns ingen exakt tid. Uppdateringar brukar ske mellan kl 2 och kl 7.

    Hälsningar,
    Bert
    Bert på Trafiklab
  • Okej, tack så mycket. Jag märker även att varje dag så blir det uppdaterade vehicleID's, Entitet ID och Trip ID. Har ni någon rekommendation på hur jag skulle kunna jobba med det?

    Jag kollar nämligen livepositioner på Regionbussar i staden Veberöd, Skåne. Och har jag mitt program körandes i låt oss säga två dagar så skapas det nya entitetID's, vehicleId's och tripId's. Vilket gör det svårt för mig att urskilja de olika bussobjekten mot varandra.

    Vilket resulterar i att jag skapar nya objekt i min databas hela tiden. Medans jag helst hade velat kunna uppdatera mina bussar när det har blivit en ny dag istället för att skapa nya buss noder så att säga..

    Hoppas min fråga är tydlig nog att kunna svara på..

    Mvh Besim 😀
    Besim
  • Hej Besim,

    Du måste läsa in de statiska GTFS-data varje dag. När du läser in ny statisk GTFS data kan du kasta bort de gamla id:er.

    Hälsningar,
    Bert
    Bert på Trafiklab
  • Okej, jag förstår att jag kan kasta bort eller radera dom, men min tanke är att jag vill uppdatera mina entiteter på något sätt, så om man skulle vara intresserad av historisk data av exempelvis en buss, så ska man kunna se flera dagar bakåt.
    Besim
  • Typ license_plate hade varit bra att få tag i då den kan identifiera en bussnod. Finns det stöd för det? Ser att det var optional men lyckas inte få tag i det någonstans.
    Besim
  • Om du vill kunna kolla flera dagar bakåt är det nog bäst att lagra data "per trip" eller "per route + avgångstid", så att du kan visa olika körningar av en trip. license_plate publicerar vi tyvärr inte eftersom att detta kan möjligen gå emot sekretesslagar när taxibilar för närtrafik (som är kopplad till en person) blir spårbart på detta sätt.


    Bert på Trafiklab

Kommentera eller skriv ett nytt inlägg

Ditt namn och inlägg kan ses av alla. Din e-post visas aldrig publikt.