Till senaste kommentaren

GTFS-RT updateringar för SL tunnelbanan

Det verkar som att SL har stora problem med datakvalitet för SL tunnebanan när det blir störningar. GTFS-RT flödet matchar med TripUpdates börjar då halta rejält i jämförelse med statisk GTFS data för planerad trafik. Varför får man inga TripUpdates i GTFS-RT när trafik ställs in på delsträcka eller totalt. T.ex. borde ScheduleRelashionship på stop nivå flagga SKIPPED när en tur är delvis inställd. Eller när hela turen är inställd borde ScheduleRelashionship flagga CANCELED om det är planerad trafik enligt statisk GTFS data.
Nu verkar det som inställda tunnelbaneavgångar istället bara saknas i GTFS-RT Trip updates. Dåligt kan man tycka då det är svårt att bygga bra logik för att visa användare/resenärer inställda avgångar versus planerad trafik.
Lars M

Kommentarer

  • När man väl har en CANCELED, så bryter man mot specifikationen.
    En CANCELED ska relatera till en trip, här saknas helt trip id och det verkar som man gör CANCELED på en ADDED vilket inte ska ske enligt specifikation.

          "id": "14050001844004538",
    "trip_update": {
    "trip": {
    "start_time": "22:28:56",
    "start_date": "20250901",
    "schedule_relationship": 3,
    "route_id": "9011001001100000",
    "direction_id": 0
    },
    "stop_time_update": [
    {
    "stop_sequence": 12,
    "arrival": {
    "delay": 555,
    "time": 1756760381
    },
    "departure": {
    "delay": 650,
    "time": 1756760476
    },
    "stop_id": "9022001001051006"
    },
    {
    "stop_sequence": 13,
    "arrival": {
    "delay": 551,
    "time": 1756760497
    },
    "departure": {
    "delay": 551,
    "time": 1756760497
    },
    "stop_id": "9022001003031001"
    }
    ],
    "vehicle": {
    "id": "9031001002510025"
    },
    "timestamp": 1756759651
    }


    Lars M
  • Och det finns flera problem, för fordon i tunnebanana som är ADDED, varför håller man inte ordning på direction på ett sådant fordon. Här är samma fordon som är ADDED, ena har direction 1 och andra 0.

    GTFS-RT positionen:
          "id": "100261756766729208",
    "vehicle": {
    "trip": {
    "start_time": "00:22:12",
    "start_date": "20250902",
    "schedule_relationship": 1,
    "route_id": "9011001001000000",
    "direction_id": 1
    },
    "position": {
    "latitude": 59.38931655883789,
    "longitude": 17.926668167114258,
    "bearing": 315,
    "speed": 0
    },
    "timestamp": 1756766728,
    "vehicle": {
    "id": "9031001002510026"
    }
    }
    },

          "id": "14050001844021525",
    "trip_update": {
    "trip": {
    "start_time": "00:47:41",
    "start_date": "20250902",
    "schedule_relationship": 1,
    "route_id": "9011001001000000",
    "direction_id": 0
    },
    "stop_time_update": [
    {
    "stop_sequence": 1,
    "arrival": {
    "delay": 0,
    "time": 1756766861,
    "uncertainty": 0
    },
    "departure": {
    "delay": 120,
    "time": 1756766981
    },
    "stop_id": "9022001003481002"
    },
    {
    "stop_sequence": 2,
    "arrival": {
    "delay": 95,
    "time": 1756767046
    },
    "departure": {
    "delay": 152,
    "time": 1756767103
    },
    "stop_id": "9022001003471002"
    },
    {
    "stop_sequence": 3,
    "arrival": {
    "delay": 96,
    "time": 1756767167
    },
    "departure": {
    "delay": 156,
    "time": 1756767227
    },
    "stop_id": "9022001003461002"
    },
    {
    "stop_sequence": 4,
    "arrival": {
    "delay": 90,
    "time": 1756767311
    },
    "departure": {
    "delay": 146,
    "time": 1756767367
    },
    "stop_id": "9022001003451002"
    },
    {
    "stop_sequence": 5,
    "arrival": {
    "delay": 109,
    "time": 1756767420
    },
    "departure": {
    "delay": 168,
    "time": 1756767479
    },
    "stop_id": "9022001003441002"
    },
    {
    "stop_sequence": 6,
    "arrival": {
    "delay": 114,
    "time": 1756767515
    },
    "departure": {
    "delay": 167,
    "time": 1756767568
    },
    "stop_id": "9022001003431002"
    },
    {
    "stop_sequence": 7,
    "arrival": {
    "delay": 115,
    "time": 1756767606
    },
    "departure": {
    "delay": 169,
    "time": 1756767660
    },
    "stop_id": "9022001003421002"
    },
    {
    "stop_sequence": 8,
    "arrival": {
    "delay": 88,
    "time": 1756767699
    },
    "departure": {
    "delay": 145,
    "time": 1756767756
    },
    "stop_id": "9022001003411002"
    },
    {
    "stop_sequence": 9,
    "arrival": {
    "delay": 60,
    "time": 1756767791
    },
    "departure": {
    "delay": 125,
    "time": 1756767856
    },
    "stop_id": "9022001003201003"
    },
    {
    "stop_sequence": 10,
    "arrival": {
    "delay": 106,
    "time": 1756767927
    },
    "departure": {
    "delay": 164,
    "time": 1756767985
    },
    "stop_id": "9022001003161002"
    },
    {
    "stop_sequence": 11,
    "arrival": {
    "delay": 108,
    "time": 1756768019
    },
    "departure": {
    "delay": 171,
    "time": 1756768082
    },
    "stop_id": "9022001001151004"
    },
    {
    "stop_sequence": 12,
    "arrival": {
    "delay": 94,
    "time": 1756768125
    },
    "departure": {
    "delay": 152,
    "time": 1756768183
    },
    "stop_id": "9022001003131002"
    },
    {
    "stop_sequence": 13,
    "arrival": {
    "delay": 54,
    "time": 1756768235
    },
    "departure": {
    "delay": 136,
    "time": 1756768317
    },
    "stop_id": "9022001001051006"
    },
    {
    "stop_sequence": 14,
    "arrival": {
    "delay": 54,
    "time": 1756768355
    },
    "departure": {
    "delay": 54,
    "time": 1756768355
    },
    "stop_id": "9022001003031002"
    }
    ],
    "vehicle": {
    "id": "9031001002510026"
    },
    "timestamp": 1756767015
    }
    },




    Här varierar direction id mellan trip och position för en ADDED.
    Det är kort och gott dags för SL att rätta upp sin data!


    Lars M
  • Olika direction_id är för att VehiclePosition fortfarande var kvar på en tidigare tur. Även start_time är olika. Verkar vara någon fördröjning som gör att VehiclePositions uppdateras senare än TripUpdates när ett fordon vänder och byter tur.
    Robert
  • Att man gör CANCELED på en ADDED kanske bryter mot specifikationen, men jag tycker ändå att det är bra att det syns att turen inte körs. Alternativet skulle vara att bara ta bort turen från TripUpdates utan något meddelande, det skulle skapa en osäkerhet eftersom det inte går att förstå om turen har blivit "inställd" eller om den bara har försvunnit på grund av tekniska problem.
    Robert
  • Dock är det större problemet att den planerade trafiken aldrig görs CANCELED på, utan den bara försvinner i det här fallet och sedan tillkommer en massa ADDED.
    ADDED har ju just problemet att den inte binder mot någon trip, och då blir t.ex.data kvalitets frågor såsom direction id osv lite mer belysta.
    Lars M

Kommentera eller skriv ett nytt inlägg

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