Till senaste kommentaren

Bästa sättet att identifiera färdmedelstyp (Tåg,buss,etc) för tripupdates KoDa

Hej igen! Uppskattar denna support då den hjälpt mig enormt I mitt ML-projekt att estimera sena anländelser/avgångar innan de sker mha väderdata, typ av färdmedel mm.

Jag undrar vad det bästa sättet att identifiera typen av färdmedel som använts inom SL för en tripupdate? Försökt vara så utförlig men kortfattad som möjligt i hopp på ett svar 😀

Mitt nuvarande arbetssätt består av att jag matchar trip_id från mitt data jag samlat från RT med trip_id i trips.txt från STATIC, följt av att ta dessa route_id och i routes.txt få fram route_type.

Det funkar fint för mitt nuvarande exempel den 26:e augusti, med ca 1.25 miljoner anländningar/avgångar. 
Problemet är att runt 3500+ av dessa händelser, saknar route_id eller deras trip_id inte finns i trips.txt så jag kan ej matcha de till en färdmedelstyp.
De som jag ej kan identifiera pga detta är fördelade så:

schedule_relationship
ADDED        3440
SCHEDULED      49
CANCELED       35

Lägger två tripids (en ADDED samt en SCHEDULED) från 2026/08/26 som jag ej lyckas identifiera färdmedelstypen via detta arbetssätt: 

14010517903572302 - ADDED
14010000717786939 - SCHEDULED
Lägger även info från en CANCELED då de saknar trip_id.
{
stop_id: 9022001002251002 
stop_name: Danderyds sjukhus    
event_type: arrival
time: 1787718164
source_file: sl-tripupdates-2026-08-26T06-34-26Z.pb 
}

Jag vill även nämna att om ni föreslår att använda vehicle_id så är det den andra kolumnen där jag stöter på saknade värden, 43089 av ca 1.25m.
Ett exempel tripid med saknat vehicle_id: 14010000733249448

Min sista tanke är att matcha via stop_id från RT med stops.txt och där jag har inga saknade värden. Det negativa med det är att jag kan göra fel då vissa stopp har fler färdmedelstyper än en, eller tänker jag fel här?

Tack för ert arbete och hoppas vi hörs snart!
/Thomas
Thomas

Kommentarer

  • Hej!

    Färdmedelstypen hämtas genom att matcha realtidsdata mot planerade data i GTFS, där informationen finns i exempelvis routes.txt. Matchningen görs via trip_id eller route_id.

    Om ingen matchning hittas, eller om trip_id och route_id saknas, kan det bero på att det rör sig om en extratur där motsvarande information inte finns i den planerade datan.

    Eftersom den planerade datan kan förändras över tid är det viktigt att använda en statisk GTFS-fil från Koda som är tidsmässigt nära den realtidsdata som ska matchas. Den statiska filen bör vara högst 7 dagar äldre än realtidsdatan. Om du exempelvis vill arbeta med realtidsdata för en hel månad behöver du därför hämta statiska GTFS-arkiv löpande under perioden. För att förenkla kan du exempelvis använda en statisk fil per vecka i stället för en per dag.

    Vid matchningen ska varje realtidsfil kopplas mot den statiska GTFS-filen som publicerades närmast före realtidsfilens datum.

    Hälsningar,
    Bert


    Bert på Trafiklab
  • Om jag tolkar det du säger korrekt, så är mitt nuvarande tillvägagångssätt korrekt, alltså att matcha RT trip_id med motsvarande route_type i routes.txt

    Problemet är av de 3524 som saknas för den exempeldagen, så är 3440 extraturer alltså ADDED, men 49 är SCHEDULED men saknas samt 35 är CANCELED vilket jag inte förstår varför de bör saknas?

    Lägger info för 2 exempel på arrivals/departures som är CANCELED samt SCHEDULED men saknas i trips.txt för 2026-08-26

    14010000717786939 - SCHEDULED
    Lägger även info från en CANCELED då de saknar trip_id.
    {
    stop_id: 9022001002251002 
    stop_name: Danderyds sjukhus    
    event_type: arrival
    time: 1787718164
    source_file: sl-tripupdates-2026-08-26T06-34-26Z.pb 
    }


    Är min enda utväg att exkludera alla adderade trips (känns som en rimlig begränsning om info:n ej finns) samt de få som är canceled/scheduled men saknas ändå?

    Oro:n är att om jag använder färdmedelstyp som en feature för träning av en modell, blir det problematiskt om den informationen ibland är tillgänglig och ibland inte. Men finns det ingen direkt lösning får jag väl exkludera de resorna både under träning och inferens!

    Tack igen Bert för snabb respons!
    Thomas

Kommentera eller skriv ett nytt inlägg

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