Till senaste kommentaren

Vilken datakälla anger att en specifik SL-avgång är inställd?

Hej,  

Jag utvecklar en app som använder SL:s öppna data via Trafiklab och försöker förstå hur inställda tunnelbaneavgångar ska identifieras på ett säkert sätt.  

I ett konkret fall vid Skärholmen, linje 13 mot Norsborg, visade SL-appen två avgångar som “Inställd” (planerade 00:39 och 00:42), medan SL Departures-data som vår backend hade tillgång till fortfarande angav avgångarna som försenade/EXPECTED och inte inställda.  

Vi har även kontrollerat GTFS-RT TripUpdates, VehiclePositions och SL Deviations, men har ännu inte kunnat hitta en entydig cancellation-signal för just dessa avgångar.  

Min fråga är därför:
  1. Vilken datakälla eller vilket fält bör användas för att avgöra att en specifik tunnelbaneavgång är inställd?
  2. Kan SL-appen använda en annan källa än SL Departures/GTFS-RT/Deviations för denna information?
  3. Finns det något särskilt state, journey.state, schedule_relationship, stop-level-status eller annat fält som ska tolkas som inställd?
  4. Hur bör man hantera fall där Departures fortfarande visar EXPECTED/NORMALPROGRESS, men SL-appen redan visar “Inställd”?
  5. Finns det någon rekommenderad och dokumenterad metod för att koppla cancellation-status till rätt avgång vid en specifik station?
Vi vill undvika heuristik som “X minuter försenad = inställd” och endast markera en avgång som inställd när det finns en säker datakälla för detta.

Med vänliga hälsningar
Adam Karim

Adam Karim

Kommentarer

  • Hej Adam!

    Inställda turer hittas i SLs GTFS Regional Realtime, i TripUpdates. En inställd tur har trip.schedule_relationship satt till CANCELED. 

    En inställd tur saknar ofta trip_id, så den behöver matchas på andra fält:
    • Filtrera entities i TripUpdates.pb på trip.schedule_relationship = CANCELED
    • Turen matchas mot statiska GTFS Regional på route_id, direction_id, start_date och start_time
    • Stop_id i stops.txt matchas mot turens stop_time_update
    Här är ett exempel på en inställd tur med ett par stopp i TripUpdates:

    entity {
      id: "14050001986631085"
      trip_update {
        trip {
          start_time: "16:52:09"
          start_date: "20260929"
          route_id: "9011001001100000"
          schedule_relationship: CANCELED
          direction_id: 1
        }
        stop_time_update {
          stop_sequence: 11
          arrival {
            delay: 35
            time: 1790694020
          }
          departure {
            delay: 68
            time: 1790694089
          }
          stop_id: "9022001003251001"
        }
        stop_time_update {
          stop_sequence: 12
          arrival {
            delay: 36
            time: 1790694141
          }
          departure {
            delay: 66
            time: 1790694201
          }
          stop_id: "9022001003261001"
        }
    }

    Trots att turen är inställd har hållplatserna kvar sina ankomst- och avgångstider. Så kolla på turens status så hittar du de inställda avgångarna. 
    Om du vill använda SLs egna APIer kan du hitta info i SL Transport. Där har varje departure fältet state, och när det har värdet CANCELLED är avgången inställd.
    Trots inställda avgångar kan turens state visas som NORMALPROGRESS, så inställda turer kontrolleras på avgångs-nivå.
    Du kan också läsa fältet consequence på avgångens deviations. Om värdet där är CANCELLED är avgången inställd.

    Hälsningar,
    Linnea
    Linnea på Trafiklab
  • Notera att just för tunnelbanan finns en del felrapporter om datakvalitet vid CANCELED dock (finns trådar här).
    Det finns även rapporter med missmatch i korrelering mellan trip updates och vehicle positions vad gäller olika vehicle id på samma trip.
    Lars (swedentransportmap.info)
  • Tack för den viktiga informationen.
    Adam Karim

Kommentera eller skriv ett nytt inlägg

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