Skip to content

Prévision d’occupation

Beta Preview — Feedback Welcome!


Prévision d’occupation dans l’horaire des CFF, sbb.ch

Accéder aux données

Aperçu bêta des données:

(occupancy-forecast)

Change Log / Journal des modifications

2024-02-23:

  • Nouveau statut “Beta Preview” : Cela signifie que nous produisons désormais l’ensemble des données de manière régulière et quotidienne, avec nos SLA habituels. Les adaptations des formats de données et autres optimisations restent toutefois possibles.
  • Nouveaux permaliensrépartition sur 2 datasets (voir ci-dessus), afin qu’un permalien soit disponible pour chacun. Attention : cela modifie le permalien du 2024-02-07 !

2024-02-07 Début de la mise à jour quotidienne des jeux de données.

2023-12-21 Première version de cette page publiée avec deux jeux de données de test.

Description

Une prévision d’occupation est une prédiction (pronostic) du taux d’occupation d’une option de transport donnée (train, bus, etc.) prédit à une certaine date et heure dans le futur. Elle est généralement indiquée par des symboles de petits hommes (1, 2 ou 3 petits hommes).

Dès le printemps 2024, nous publierons sur cette plateforme les prévisions d’occupation des CFF au niveau des classes, pour les trains des CFF et des autres opérateurs ferroviaires (BLS, Thurbo, SOB). Les données seront également utilisées dans notre planificateur d’itinéraires ouvert Open Journey Planner. La source des données est le système CAPRE des CFF, auquel nous avons accès avec l’aimable autorisation des CFF.

Aspects fonctionnels

Les prévisions du système CAPRE des CFF sont disponibles comme source. Nous compilons quotidiennement les données dans un ensemble de données pour les trois mois à venir et les proposons au téléchargement sur cette page.

Les prévisions d’occupation sont enregistrées dans un fichier par jour de service (DateFrameRef/opDate) et par entreprise de chemin de fer (operatorRef ; 11 : CFF, 33 : BLS, 65 : Thurbo AG, 82 : Schweizerische Südostbahn SOB). Tous les trains concernés (TrainNumberRef/trainNumber) y sont inclus. Pour chaque train, tous les arrêts ou sections du trajet sont indiqués avec le lieu (StopPoint, departureStation, etc.) et les heures, ainsi que les prévisions d’occupation.

Les prévisions d’occupation sont affichées par classe (firstClass, secondClass). Valeurs possibles:

  • “unknown” : aucun pronostic n’est disponible.
  • “manySeatsAvailable” : faible taux d’occupation, correspond à un petit homme.
  • “fewSeatsAvailable” : occupation moyenne, correspond à deux petits hommes.
  • “standingRoomOnly” : occupation élevée, correspond à trois petits hommes.

Le présent document contient une description détaillée et spécialisée ainsi qu’une spécification technique de deux formats de données, en anglais:

Aspects techniques

L‘ensemble des données est fourni en deux “saveurs” :

  • une variante conforme à la norme XML basée sur CEN SIRI ET.
  • un format indépendant et léger basé sur JSON.

Les deux fichiers contiennent environ 9000 trains par jour pour les 3 prochains mois (92 jours). Les fichiers de données (fichiers ZIP) ont chacun une taille d’environ 100 Mo.

Exemple : format basé sur SIRI-ET :

<?xml version="1.0" encoding="UTF-8"?>
<!-- (C) Copyright 2005-2012 CEN SIRI -->
<Siri xmlns="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1" xsi:schemaLocation="http://www.siri.org.uk/siri ../../xsd/siri.xsd">
  <ServiceDelivery>
    <ResponseTimestamp>2023-12-15T09:57:22+01:00</ResponseTimestamp>
    <ProducerRef>OdmchOccupancyForecast</ProducerRef>
    <EstimatedTimetableDelivery version="2.1">
      <ResponseTimestamp>2023-12-01T09:57:22+01:00</ResponseTimestamp>
      <EstimatedJourneyVersionFrame>
        <RecordedAtTime>2023-12-01T09:57:22+01:00</RecordedAtTime>
        <EstimatedVehicleJourney>
          <LineRef>null</LineRef>
          <DirectionRef>ch:1:Direction:H</DirectionRef>
          <FramedVehicleJourneyRef>
            <DataFrameRef>2023-12-04</DataFrameRef>
            <DatedVehicleJourneyRef>null</DatedVehicleJourneyRef>
          </FramedVehicleJourneyRef>
          <OperatorRef>11</OperatorRef>
          <TrainNumbers>
            <TrainNumberRef>1009</TrainNumberRef>
          </TrainNumbers>
          <EstimatedCalls>
            <EstimatedCall>
              <StopPointRef>8503424</StopPointRef>
              <StopPointName>Schaffhausen</StopPointName>
              <AimedDepartureTime>2023-12-04T06:47:00+01:00</AimedDepartureTime>
              <ExpectedDepartureOccupancy>
                <FareClass>firstClass</FareClass>
                <OccupancyLevel>fewSeatsAvailable</OccupancyLevel>
              </ExpectedDepartureOccupancy>
              <ExpectedDepartureOccupancy>
                <FareClass>secondClass</FareClass>
                <OccupancyLevel>standingRoomOnly</OccupancyLevel>
              </ExpectedDepartureOccupancy>
            </EstimatedCall>
            <EstimatedCall>
              <StopPointRef>8503000</StopPointRef>
              <StopPointName>Zürich HB</StopPointName>
            </EstimatedCall>
          </EstimatedCalls>
        </EstimatedVehicleJourney>
      </EstimatedJourneyVersionFrame>
    </EstimatedTimetableDelivery>
  </ServiceDelivery>
</Siri> 
</Siri>

Exemple : format basé sur JSON :

{
  "operatorRef": "11",
  "opDate": "2023-12-04",
  "lastUpdated": "2023-12-01T09:57:22+01:00",
  "timeToLive": "86400",
  "dataSource": "https://opentransportdata.swiss/search?q=occupancy",
  "version": "0.9",
  "trains": [
    {
      "trainNumber": "1009",
      "journeyRef": "null",
      "lineRef": "null",
      "sections": [
        {
          "departureDayShift": 0,
          "departureStationId": "8503424",
          "departureStationName": "Schaffhausen",
          "departureTime": "06:47:00",
          "destinationStationId": "8503000",
          "destinationStationName": "Zürich HB",
          "expectedDepartureOccupancy": [
            {
              "fareClass": "firstClass",
              "occupancyLevel": "fewSeatsAvailable"
            },
            {
              "fareClass": "secondClass",
              "occupancyLevel": "standingRoomOnly"
            }
          ]
        }
      ]
    }
  ]
}

Les archives ZIP contiennent

  • Un dossier par jour de fonctionnement, par exemple 2023-12-14
  • Un fichier par opérateur avec XML ou JSON, comme indiqué dans les exemples ci-dessus, par exemple operator-11.xml ou operator-82.json.