Données sources du TD
Quatre sources pour étudier la fréquentation du réseau ferré francilien selon le calendrier et la météo.
Les exemples utilisent Python avec requests et portent sur 2023.
Installation : python -m pip install requests. Les API présentées sont publiques, sans clé d’accès.
1. Validations quotidiennes IDFM
Une ligne décrit les validations d’entrée pour un jour × transporteur × réseau × arrêt × catégorie de titre.
Source : historique des validations IDFM
Rôle : mesurer la fréquentation par jour, arrêt et catégorie de titre. Une validation ne correspond pas nécessairement à un voyageur unique.
Colonnes
| Colonne | Signification |
|---|---|
JOUR |
Jour d’exploitation, de 04 h à 03 h 59 le lendemain. |
CODE_STIF_TRNS |
Code du transporteur dans la codification des validations ; voir les correspondances ci-dessous. |
CODE_STIF_RES |
Code du réseau administratif, à interpréter avec CODE_STIF_TRNS ; voir ci-dessous. |
CODE_STIF_ARRET |
Code de l’arrêt. |
ID_ZDC |
Identifiant de la zone de correspondance. |
LIBELLE_ARRET |
Nom de l’arrêt. |
CATEGORIE_TITRE |
Catégorie du titre de transport. |
NB_VALD |
Nombre de validations. |
Signification des codes transporteur et réseau
Conserver ces codes comme du texte. Les correspondances suivantes servent à lire les validations ; elles ne constituent pas une cinquième source à collecter pour le TD.
Transporteur : CODE_STIF_TRNS
| Code | Signification |
|---|---|
100 |
RATP. |
800 |
SNCF. |
810 |
Code utilisé pour les RER A et B dans la codification STIF–SNCF, avec les réseaux 801 et 802. Ces lignes sont exploitées par la RATP et la SNCF : ce code ne suffit pas à identifier l’exploitant de chaque validation. |
760, 762 |
Codes présents dans les données de validations, dont le libellé transporteur n’a pas été confirmé par les sources ci-dessous. Conserver les codes. |
Sources : liste officielle des transporteurs IDFM pour 100 et 800 ; annexes du contrat STIF–SNCF, page PDF 104 pour 810 et les réseaux associés.
Réseau : couple CODE_STIF_TRNS, CODE_STIF_RES
Un réseau administratif n’est pas toujours une ligne commerciale. Lire les deux codes ensemble. Le tableau reprend la codification historique des contrats STIF de 2016 ; ses regroupements ne garantissent pas le périmètre exact des validations de 2023–2025.
| Transporteur | Réseau | Signification dans la codification historique |
|---|---|---|
100 |
110 |
Métro RATP ; la codification inclut aussi le funiculaire et Orlyval. |
100 |
112 |
Tramways RATP, généralement présents dans les données du réseau de surface. |
810 |
801 |
RER A. |
810 |
802 |
RER B. |
800 |
803 |
RER C. |
800 |
804 |
RER D. |
800 |
805 |
RER E. |
800 |
850 |
Réseau Paris Est : lignes P et T4 dans cette codification. |
800 |
851 |
Réseau Paris Sud Est : ligne R. |
800 |
852 |
Réseau Paris Rive Gauche : ligne N. |
800 |
853 |
Réseau Paris Nord : lignes H et K. |
800 |
854 |
Réseau Paris Saint-Lazare : lignes J et L. |
800 |
855 |
Liaison La Verrière–La Défense : ligne U. |
800 |
800 |
Code observé dans les données de validations ; libellé réseau non confirmé. |
760 |
760 |
Couple observé dans les données de validations ; libellé réseau non confirmé. |
762 |
762 |
Couple observé dans les données de validations ; libellé réseau non confirmé. |
100 |
ND |
Valeur observée sans correspondance réseau confirmée ; traiter le réseau comme non renseigné. |
Sources : annexes du contrat STIF–RATP 2016–2020, page PDF 121 pour les réseaux RATP ; annexes du contrat STIF–SNCF, page PDF 104 pour les réseaux SNCF.
Pour un code absent de ces tableaux, conserver sa valeur et indiquer « libellé non confirmé ». Ne pas déduire la ligne empruntée de ce seul code : les validations ferrées sont rattachées à l’entrée d’une station ou d’une gare, comme l’explique la documentation IDFM des validations.
Appel Python
Le catalogue renvoie le lien de l’archive annuelle :
import requests
url = (
"https://data.iledefrance-mobilites.fr/api/explore/v2.1/"
"catalog/datasets/histo-validations-reseau-ferre/records"
)
reponse = requests.get(url, params={"where": "annee = '2023'", "limit": 1}, timeout=30)
reponse.raise_for_status()
print(reponse.json())La réponse contient, pour l’année demandée, un champ reseau_ferre dont l’attribut url désigne l’archive ZIP à télécharger.
2. Zones de correspondance IDFM
Une zone regroupe des arrêts proches entre lesquels une correspondance à pied est possible. Elle peut réunir plusieurs modes de transport.
Source : zones de correspondance IDFM
Rôle : nommer et localiser les zones des validations, puis rechercher des stations météo proches.
Colonnes
| Colonne | Signification |
|---|---|
ZdCId |
Identifiant de la zone. |
ZdCVersion |
Version de la zone. |
ZdCCreated |
Date de création. |
ZdCChanged |
Date de dernière modification. |
ZdCName |
Nom de la zone. |
ZdCXEpsg2154 |
Coordonnée X du centre de la zone, en Lambert 93. |
ZdCYEpsg2154 |
Coordonnée Y du même point, en Lambert 93. |
ZdCTown |
Commune de ce point. |
ZdCPostalRegion |
Code INSEE de la commune, pas le code postal. |
ZdCType |
Type de zone selon le mode de transport principal. |
Appel Python
L’API exporte le référentiel actuel. Préférer le format Parquet : plus compact, et le schéma (noms et types des colonnes) est embarqué dans le fichier, ce qui simplifie le chargement dans BigQuery :
import requests
url = (
"https://data.iledefrance-mobilites.fr/api/explore/v2.1/"
"catalog/datasets/zones-de-correspondance/exports/parquet"
)
reponse = requests.get(url, params={"limit": -1}, timeout=120)
reponse.raise_for_status()
print(len(reponse.content), "octets")L’export CSV existe aussi : remplacer parquet par csv.
Cette source est traitée en exemple guidé dans le notebook.
3. Jours fériés
L’API fournit les dates et les noms des jours fériés. Utiliser la zone métropole pour l’Île-de-France.
Rôle : enrichir le calendrier pour comparer les jours fériés aux autres jours.
Structure de la réponse
La réponse est un objet JSON :
| Élément | Signification | Exemple |
|---|---|---|
| Clé | Date du jour férié. | 2023-07-14 |
| Valeur | Nom du jour férié. | 14 juillet |
Appel Python
import requests
url = "https://calendrier.api.gouv.fr/jours-feries/metropole/2023.json"
reponse = requests.get(url, timeout=30)
reponse.raise_for_status()
print(reponse.json())4. Météo quotidienne Météo-France
Une ligne décrit les observations d’une station pour un jour. Les fichiers sont des CSV compressés en GZIP, répartis par département et période.
Source : données météo quotidiennes
Rôle : rapprocher la pluie et les températures de la fréquentation. La famille de fichiers RR-T-Vent contient les variables utiles au TD.
Colonnes utiles
| Colonne | Signification |
|---|---|
NUM_POSTE |
Identifiant de station sur 8 chiffres, à conserver comme du texte. |
NOM_USUEL |
Nom de la station. |
LAT, LON |
Latitude et longitude, en degrés décimaux. |
ALTI |
Altitude, en mètres. |
AAAAMMJJ |
Date, par exemple 20230714. |
RR |
Précipitations quotidiennes, en mm. |
TN |
Température minimale, en °C. |
TM |
Moyenne des températures horaires, en °C. |
TX |
Température maximale, en °C. |
QRR, QTN, QTM, QTX |
Codes qualité des mesures correspondantes. |
Appel Python
L’API renvoie le catalogue des fichiers disponibles :
import requests
url = (
"https://www.data.gouv.fr/api/1/datasets/"
"donnees-climatologiques-de-base-quotidiennes/"
)
reponse = requests.get(url, timeout=30)
reponse.raise_for_status()
ressources = reponse.json()["resources"]