rijdendetreinen / rdt-serviceinfo

HTTP interface for train schedules
GNU General Public License v3.0
3 stars 2 forks source link

Diverted stop with no departure/arrival processed incorrectly #29

Closed geertw closed 5 years ago

geertw commented 7 years ago

Ritinfo does not process Diverted-Stops correctly. In this instance, the train does not stop at Rotterdam Stadion (rtst) but it is added as a 'Diverted-Stop'. This results in a cancelled arrival at Rotterdam Lombardijen (rlb) which is not true, the train did run between Rotterdam Zuid and Rotterdam Lombardijen.

Full XML message for service 5149:

<?xml version="1.0" encoding="UTF-8"?>
<jp:PutServiceInfoIn xmlns:jp="http://www.tt-solutions.nl/schemas/NS/RTI/1.1/">
    <ServiceInfoList>
        <ServiceInfo ServiceType="Diverted-Service">
            <CompanyCode>ns</CompanyCode>
            <ServiceCode>5149</ServiceCode>
            <TransportModeCode>SPR</TransportModeCode>
            <StopList>
                <Stop>
                    <StopCode>rtd</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                    <Departure>2016-11-27T13:45:00+01:00</Departure>
                    <DeparturePlatform>4</DeparturePlatform>
                </Stop>
                <Stop>
                    <StopCode>rtb</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                    <Arrival>2016-11-27T13:48:00+01:00</Arrival>
                    <Departure>2016-11-27T13:48:00+01:00</Departure>
                    <ArrivalPlatform>3</ArrivalPlatform>
                    <DeparturePlatform>3</DeparturePlatform>
                </Stop>
                <Stop>
                    <StopCode>rtz</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                    <Arrival>2016-11-27T13:51:00+01:00</Arrival>
                    <Departure>2016-11-27T13:51:00+01:00</Departure>
                    <ArrivalPlatform>3</ArrivalPlatform>
                    <DeparturePlatform>3</DeparturePlatform>
                </Stop>
                <Stop StopType="Diverted-Stop">
                    <StopCode>rtst</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                </Stop>
                <Stop>
                    <StopCode>rlb</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                    <Arrival>2016-11-27T13:54:00+01:00</Arrival>
                    <ArrivalTimeDelay>PT2M</ArrivalTimeDelay>
                    <Departure>2016-11-27T13:54:00+01:00</Departure>
                    <DepartureTimeDelay>PT2M</DepartureTimeDelay>
                    <ArrivalPlatform>3</ArrivalPlatform>
                    <DeparturePlatform>3</DeparturePlatform>
                </Stop>
                <Stop>
                    <StopCode>brd</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                    <Arrival>2016-11-27T13:57:00+01:00</Arrival>
                    <ArrivalTimeDelay>PT2M</ArrivalTimeDelay>
                    <Departure>2016-11-27T13:57:00+01:00</Departure>
                    <DepartureTimeDelay>PT2M</DepartureTimeDelay>
                    <ArrivalPlatform>3</ArrivalPlatform>
                    <DeparturePlatform>3</DeparturePlatform>
                </Stop>
                <Stop>
                    <StopCode>zwd</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                    <Arrival>2016-11-27T14:03:00+01:00</Arrival>
                    <ArrivalTimeDelay>PT2M</ArrivalTimeDelay>
                    <Departure>2016-11-27T14:03:00+01:00</Departure>
                    <DepartureTimeDelay>PT2M</DepartureTimeDelay>
                    <ArrivalPlatform>3</ArrivalPlatform>
                    <DeparturePlatform>3</DeparturePlatform>
                </Stop>
                <Stop>
                    <StopCode>ddr</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                    <Arrival>2016-11-27T14:08:00+01:00</Arrival>
                    <ArrivalTimeDelay>PT3M</ArrivalTimeDelay>
                    <Departure>2016-11-27T14:09:00+01:00</Departure>
                    <DepartureTimeDelay>PT3M</DepartureTimeDelay>
                    <ArrivalPlatform>4</ArrivalPlatform>
                    <DeparturePlatform>4</DeparturePlatform>
                </Stop>
                <Stop>
                    <StopCode>ddzd</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                    <Arrival>2016-11-27T14:12:00+01:00</Arrival>
                    <ArrivalTimeDelay>PT3M</ArrivalTimeDelay>
                    <Departure>2016-11-27T14:12:00+01:00</Departure>
                    <DepartureTimeDelay>PT5M</DepartureTimeDelay>
                    <ArrivalPlatform>1</ArrivalPlatform>
                    <DeparturePlatform>1</DeparturePlatform>
                </Stop>
                <Stop>
                    <StopCode>zlw</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                    <Arrival>2016-11-27T14:20:00+01:00</Arrival>
                    <ArrivalTimeDelay>PT3M</ArrivalTimeDelay>
                    <Departure>2016-11-27T14:20:00+01:00</Departure>
                    <DepartureTimeDelay>PT4M</DepartureTimeDelay>
                    <ArrivalPlatform>1</ArrivalPlatform>
                    <DeparturePlatform>1</DeparturePlatform>
                </Stop>
                <Stop>
                    <StopCode>zvb</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                    <Arrival>2016-11-27T14:25:00+01:00</Arrival>
                    <ArrivalTimeDelay>PT4M</ArrivalTimeDelay>
                    <Departure>2016-11-27T14:25:00+01:00</Departure>
                    <DepartureTimeDelay>PT4M</DepartureTimeDelay>
                    <ArrivalPlatform>2</ArrivalPlatform>
                    <DeparturePlatform>2</DeparturePlatform>
                </Stop>
                <Stop>
                    <StopCode>odb</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                    <Arrival>2016-11-27T14:31:00+01:00</Arrival>
                    <ArrivalTimeDelay>PT4M</ArrivalTimeDelay>
                    <Departure>2016-11-27T14:31:00+01:00</Departure>
                    <DepartureTimeDelay>PT4M</DepartureTimeDelay>
                    <ArrivalPlatform>1</ArrivalPlatform>
                    <DeparturePlatform>1</DeparturePlatform>
                </Stop>
                <Stop>
                    <StopCode>rsd</StopCode>
                    <StopServiceCode>5149</StopServiceCode>
                    <Arrival>2016-11-27T14:39:00+01:00</Arrival>
                    <ArrivalTimeDelay>PT2M</ArrivalTimeDelay>
                    <ArrivalPlatform>3b</ArrivalPlatform>
                </Stop>
            </StopList>
        </ServiceInfo>
    </ServiceInfoList>
</jp:PutServiceInfoIn>
geertw commented 7 years ago

For completeness, this is the result from serviceinfo:

{
    "services": [
        {
            "cancelled": false,
            "company": "ns",
            "company_name": "NS",
            "destination": "rsd",
            "service_id": "5149-rtd-rsd",
            "service_number": "5149",
            "servicedate": "2016-11-27",
            "source": "actual",
            "stops": [
                {
                    "actual_arrival_platform": null,
                    "actual_departure_platform": null,
                    "arrival_delay": 0,
                    "arrival_time": null,
                    "cancelled_arrival": false,
                    "cancelled_departure": false,
                    "departure_delay": 0,
                    "departure_time": "2016-11-27T13:45:00+01:00",
                    "scheduled_arrival_platform": null,
                    "scheduled_departure_platform": "4",
                    "servicenumber": "5149",
                    "station": "rtd",
                    "station_name": "Rotterdam Centraal"
                },
                {
                    "actual_arrival_platform": null,
                    "actual_departure_platform": null,
                    "arrival_delay": 0,
                    "arrival_time": "2016-11-27T13:48:00+01:00",
                    "cancelled_arrival": false,
                    "cancelled_departure": false,
                    "departure_delay": 0,
                    "departure_time": "2016-11-27T13:48:00+01:00",
                    "scheduled_arrival_platform": "3",
                    "scheduled_departure_platform": "3",
                    "servicenumber": "5149",
                    "station": "rtb",
                    "station_name": "Rotterdam Blaak"
                },
                {
                    "actual_arrival_platform": null,
                    "actual_departure_platform": null,
                    "arrival_delay": 0,
                    "arrival_time": "2016-11-27T13:51:00+01:00",
                    "cancelled_arrival": false,
                    "cancelled_departure": false,
                    "departure_delay": 0,
                    "departure_time": "2016-11-27T13:51:00+01:00",
                    "scheduled_arrival_platform": "3",
                    "scheduled_departure_platform": "3",
                    "servicenumber": "5149",
                    "station": "rtz",
                    "station_name": "Rotterdam Zuid"
                },
                {
                    "actual_arrival_platform": null,
                    "actual_departure_platform": null,
                    "arrival_delay": 2,
                    "arrival_time": "2016-11-27T13:54:00+01:00",
                    "cancelled_arrival": true,
                    "cancelled_departure": false,
                    "departure_delay": 2,
                    "departure_time": "2016-11-27T13:54:00+01:00",
                    "scheduled_arrival_platform": "3",
                    "scheduled_departure_platform": "3",
                    "servicenumber": "5149",
                    "station": "rlb",
                    "station_name": "Rotterdam Lombardijen"
                },
                {
                    "actual_arrival_platform": null,
                    "actual_departure_platform": null,
                    "arrival_delay": 2,
                    "arrival_time": "2016-11-27T13:57:00+01:00",
                    "cancelled_arrival": false,
                    "cancelled_departure": false,
                    "departure_delay": 2,
                    "departure_time": "2016-11-27T13:57:00+01:00",
                    "scheduled_arrival_platform": "3",
                    "scheduled_departure_platform": "3",
                    "servicenumber": "5149",
                    "station": "brd",
                    "station_name": "Barendrecht"
                },
                {
                    "actual_arrival_platform": null,
                    "actual_departure_platform": null,
                    "arrival_delay": 2,
                    "arrival_time": "2016-11-27T14:03:00+01:00",
                    "cancelled_arrival": false,
                    "cancelled_departure": false,
                    "departure_delay": 2,
                    "departure_time": "2016-11-27T14:03:00+01:00",
                    "scheduled_arrival_platform": "3",
                    "scheduled_departure_platform": "3",
                    "servicenumber": "5149",
                    "station": "zwd",
                    "station_name": "Zwijndrecht"
                },
                {
                    "actual_arrival_platform": null,
                    "actual_departure_platform": null,
                    "arrival_delay": 3,
                    "arrival_time": "2016-11-27T14:08:00+01:00",
                    "cancelled_arrival": false,
                    "cancelled_departure": false,
                    "departure_delay": 3,
                    "departure_time": "2016-11-27T14:09:00+01:00",
                    "scheduled_arrival_platform": "4",
                    "scheduled_departure_platform": "4",
                    "servicenumber": "5149",
                    "station": "ddr",
                    "station_name": "Dordrecht"
                },
                {
                    "actual_arrival_platform": null,
                    "actual_departure_platform": null,
                    "arrival_delay": 3,
                    "arrival_time": "2016-11-27T14:12:00+01:00",
                    "cancelled_arrival": false,
                    "cancelled_departure": false,
                    "departure_delay": 5,
                    "departure_time": "2016-11-27T14:12:00+01:00",
                    "scheduled_arrival_platform": "1",
                    "scheduled_departure_platform": "1",
                    "servicenumber": "5149",
                    "station": "ddzd",
                    "station_name": "Dordrecht Zuid"
                },
                {
                    "actual_arrival_platform": null,
                    "actual_departure_platform": null,
                    "arrival_delay": 3,
                    "arrival_time": "2016-11-27T14:20:00+01:00",
                    "cancelled_arrival": false,
                    "cancelled_departure": false,
                    "departure_delay": 4,
                    "departure_time": "2016-11-27T14:20:00+01:00",
                    "scheduled_arrival_platform": "1",
                    "scheduled_departure_platform": "1",
                    "servicenumber": "5149",
                    "station": "zlw",
                    "station_name": "Lage Zwaluwe"
                },
                {
                    "actual_arrival_platform": null,
                    "actual_departure_platform": null,
                    "arrival_delay": 4,
                    "arrival_time": "2016-11-27T14:25:00+01:00",
                    "cancelled_arrival": false,
                    "cancelled_departure": false,
                    "departure_delay": 4,
                    "departure_time": "2016-11-27T14:25:00+01:00",
                    "scheduled_arrival_platform": "2",
                    "scheduled_departure_platform": "2",
                    "servicenumber": "5149",
                    "station": "zvb",
                    "station_name": "Zevenbergen"
                },
                {
                    "actual_arrival_platform": null,
                    "actual_departure_platform": null,
                    "arrival_delay": 4,
                    "arrival_time": "2016-11-27T14:31:00+01:00",
                    "cancelled_arrival": false,
                    "cancelled_departure": false,
                    "departure_delay": 4,
                    "departure_time": "2016-11-27T14:31:00+01:00",
                    "scheduled_arrival_platform": "1",
                    "scheduled_departure_platform": "1",
                    "servicenumber": "5149",
                    "station": "odb",
                    "station_name": "Oudenbosch"
                },
                {
                    "actual_arrival_platform": null,
                    "actual_departure_platform": null,
                    "arrival_delay": 2,
                    "arrival_time": "2016-11-27T14:39:00+01:00",
                    "cancelled_arrival": false,
                    "cancelled_departure": false,
                    "departure_delay": 0,
                    "departure_time": null,
                    "scheduled_arrival_platform": "3b",
                    "scheduled_departure_platform": null,
                    "servicenumber": "5149",
                    "station": "rsd",
                    "station_name": "Roosendaal"
                }
            ],
            "transport_mode": "SPR",
            "transport_mode_description": "Sprinter"
        }
    ]
}