Datasets & Données
Documentation complète des données utilisées par THOR : sources, formats, et utilisation dans chaque module de la pipeline.
Vue d'ensemble
Structure des données
data/
├── raw/ # Données brutes sources
│ ├── audio/ # 200 fichiers WAV pour STT
│ ├── stop_times.txt # 367k horaires GTFS SNCF
│ ├── trips.txt # Trajets GTFS
│ ├── routes.txt # Lignes GTFS
│ ├── stops.txt # Arrêts GTFS
│ └── shapes.json # 3,348 géométries de voies
│
├── splits/ # Datasets annotés
│ ├── train/ # Entraînement (70%)
│ ├── valid/ # Validation (15%)
│ └── test/ # Test (15%)
│
└── train_station/ # Données traitées
├── dataset_gares.json # 2,782 gares
├── dataset_liaisons.json # Liaisons basiques
├── dataset_liaisons_enhanced.json # + temps réels
└── dataset_liaisons_with_shapes.json # + géométriesDonnées Audio (STT)
Fichiers Audio
data/raw/audio/Enregistrements vocaux de demandes de trajets en français, utilisés pour entraîner et évaluer le module Speech-to-Text.
Exemple d'échantillon
{
"id": "sample_000160",
"audio_path": "data/raw/audio/sample_000160.wav",
"transcript": "Je veux voyager de Toulouse à Bordeaux"
}Données NLP
Dataset d'entraînement NLP
data/splits/train/train_nlp.jsonlPhrases annotées avec origine et destination pour entraîner le modèle spaCy. Inclut des exemples positifs (demandes de trajet) et négatifs.
Dataset de validation
data/splits/valid/valid_nlp.jsonlUtilisé pendant l'entraînement pour ajuster les hyperparamètres et éviter le surapprentissage.
Dataset de test
data/splits/test/test_nlp.jsonlÉvaluation finale des modèles NLP. Non utilisé pendant l'entraînement.
Format des annotations NLP
// Demande valide avec origine et destination
{
"id": "nlp_001",
"sentence": "Je veux aller de Paris à Lyon",
"origin": "Paris",
"destination": "Lyon",
"is_valid": true
}
{
"id": "nlp_002",
"sentence": "Je veux voyager jusqu'à Lille",
"origin": null,
"destination": "Lille",
"is_valid": true
}
{
"id": "nlp_003",
"sentence": "Mon ami habite à Strasbourg",
"origin": null,
"destination": null,
"is_valid": false
}Données GTFS (SNCF)
Source officielle
Données ouvertes SNCF au format GTFS (General Transit Feed Specification). Téléchargées depuis data.sncf.com
Données exploitées par THOR
- • Temps de trajet entre gares
- • Codes UIC des gares
- • Type de train (TGV, TER...)
- • Fréquence des trains
- • Noms des gares
- • Coordonnées GPS
- • Identifiants de ligne
- • Direction du trajet
- • Horaires exacts
- • Calendrier (dates)
- • Prix / tarifs
- • Correspondances
stop_times.txt
data/raw/stop_times.txtHoraires de passage à chaque arrêt pour tous les trajets. Source principale pour extraire les temps de trajet réels entre gares.
trips.txt
data/raw/trips.txtDéfinition des trajets avec identifiants, lignes associées et directions.
stops.txt
data/raw/stops.txtListe des arrêts avec codes UIC, noms et coordonnées GPS.
stop_times.txt — Horaires de passage
trip_id,arrival_time,departure_time,stop_id,stop_sequence,...
OCETGV...,08:15:00,08:15:00,StopPoint:OCE87686006,0,...
OCETGV...,10:12:00,10:12:00,StopPoint:OCE87723197,1,...| Propriété | Description | Exploité ? |
|---|---|---|
| trip_id | Identifiant unique du trajet (encode le type de train) | ✓ Oui |
| arrival_time | Heure d'arrivée à l'arrêt (HH:MM:SS) | ✓ Oui |
| departure_time | Heure de départ de l'arrêt | ✓ Oui |
| stop_id | Identifiant de l'arrêt (contient code UIC) | ✓ Oui |
| stop_sequence | Ordre de l'arrêt dans le trajet (0, 1, 2...) | ✓ Oui |
stops.txt — Liste des arrêts
stop_id,stop_name,stop_lat,stop_lon,location_type,parent_station
StopArea:OCE87686006,PARIS GARE DE LYON,48.8447,2.3739,1,
StopPoint:OCETGV-87686006,PARIS GARE DE LYON,48.8447,2.3739,0,StopArea:OCE87686006| Propriété | Description | Exploité ? |
|---|---|---|
| stop_id | ID unique (contient code UIC : 87686006) | ✓ Oui |
| stop_name | Nom de la gare en majuscules | ✓ Oui |
| stop_lat | Latitude GPS | ◐ Backup |
| stop_lon | Longitude GPS | ◐ Backup |
| location_type | 0 = Quai, 1 = Station | ✗ Non |
| parent_station | Station parente (pour les quais) | ✗ Non |
trips.txt — Définition des trajets
route_id,service_id,trip_id,trip_headsign,direction_id
FR:Line::abc123,000001,OCETGV-6789-Paris-Lyon,6789,0
FR:Line::def456,000002,OCEOUIGO-1234-Paris-Lyon,1234,0| Propriété | Description | Exploité ? |
|---|---|---|
| route_id | Identifiant de la ligne | ✗ Non |
| service_id | Jour de service (lié au calendrier) | ✗ Non |
| trip_id | ID unique du trajet (préfixe = type train) | ✓ Oui |
| trip_headsign | Numéro du train affiché | ✗ Non |
| direction_id | Direction (0 = aller, 1 = retour) | ✗ Non |
Extraction du type de train
// Le trip_id GTFS encode le type de train
"OCETGV..." → TGV (pénalité ×1.0)
"OCEOUIGO..." → OUIGO (pénalité ×1.0)
"OCEINTERCITES..."→ Intercités (pénalité ×1.3)
"OCETER..." → TER (pénalité ×2.0)
"OCESN..." → Navette (pénalité ×2.0)
"OCEEA..." → Eurostar (pénalité ×1.0)
"OCELO..." → Train nuit (pénalité ×1.5)
"OCEL..." → Lyria (pénalité ×1.0)Données Traitées
dataset_gares.json
data/train_station/dataset_gares.jsonRéférentiel des gares SNCF avec codes UIC, coordonnées GPS, communes et noms normalisés. Généré à partir des données SNCF ouvertes.
Structure d'une gare (exemple réel)
{
"uic": ["87686006"],
"nom_gare": "Paris Gare de Lyon",
"trigramme": "PLY",
"position_geographique": { "lat": 48.8447, "lon": 2.3739 },
"ville": { "id_commune": "75056", "nom_commune": "PARIS" }
}| Propriété | Type | Description | Utilisé pour |
|---|---|---|---|
| uic | string[] | Code(s) UIC international (ex: 87686006) | Clé du graphe Dijkstra |
| nom_gare | string | Nom officiel de la gare | Affichage UI |
| trigramme | string | Code 3 lettres SNCF (PLY, LPD...) | Non utilisé |
| position_geographique.lat | float | Latitude GPS (WGS84) | Marqueurs carte |
| position_geographique.lon | float | Longitude GPS (WGS84) | Marqueurs carte |
| ville.id_commune | string | Code INSEE de la commune | Résolution ville → gare |
| ville.nom_commune | string | Nom de la commune (majuscules) | Recherche fuzzy |
dataset_liaisons_enhanced.json
data/train_station/dataset_liaisons_enhanced.jsonGraphe des connexions entre gares avec temps de trajet moyens, distances, fréquences et types de train. Généré depuis stop_times.txt.
Structure d'une liaison (exemple réel)
{
"depart": "87271494",
"arrivee": "87111849",
"depart_nom": "Aéroport CDG 2 TGV",
"arrivee_nom": "Marne-la-Vallée Chessy",
"temps_moyen_min": 11.1,
"temps_min_min": 9,
"temps_max_min": 18,
"nb_trains": 638,
"distance_km": 21.46,
"type_train": "TGV",
"types_details": { "TGV": 563, "OUIGO": 75 }
}| Propriété | Type | Description | Utilisé pour |
|---|---|---|---|
| depart | string | Code UIC de la gare de départ | Nœud source (graphe) |
| arrivee | string | Code UIC de la gare d'arrivée | Nœud destination (graphe) |
| depart_nom | string | Nom lisible de la gare de départ | Affichage UI |
| arrivee_nom | string | Nom lisible de la gare d'arrivée | Affichage UI |
| temps_moyen_min | float | Temps de trajet moyen en minutes | ⭐ Poids Dijkstra |
| temps_min_min | int | Temps minimum observé (train le plus rapide) | Info seulement |
| temps_max_min | int | Temps maximum observé (train le plus lent) | Info seulement |
| nb_trains | int | Nombre de trains par jour sur cette liaison | Affichage fréquence |
| distance_km | float | Distance en km (calculée via Haversine) | Affichage distance |
| type_train | string | Type de train majoritaire (TGV, TER, IC...) | ⭐ Pénalité Dijkstra |
| types_details | object | Répartition par type { TGV: 563, OUIGO: 75 } | Stats détaillées |
dataset_liaisons_with_shapes.json
data/train_station/dataset_liaisons_with_shapes.jsonLiaisons enrichies avec les géométries GeoJSON des voies ferrées pour l'affichage cartographique des trajets réels.
Structure avec géométrie (exemple réel)
{
"depart": "87271494",
"arrivee": "87111849",
"depart_nom": "Aéroport CDG 2 TGV",
"arrivee_nom": "Marne-la-Vallée Chessy",
"temps_moyen_min": 11.1,
"type_train": "TGV",
"geometry": {
"type": "LineString",
"coordinates": [[2.570892, 49.003652], ..., [2.782720, 48.869856]]
},
"ligne_code": 226310,
"ligne_nom": "Raccordement interconnexion LGV"
}| Propriété | Type | Description | Utilisé pour |
|---|---|---|---|
| ... tous les champs de dataset_liaisons_enhanced.json ... | |||
| geometry | object | Objet GeoJSON LineString | ⭐ Tracé carte |
| geometry.type | string | Toujours "LineString" | Validation GeoJSON |
| geometry.coordinates | number[][] | Liste de points [lon, lat] (ordre GeoJSON) | ⭐ Polyline Leaflet |
| ligne_code | int | Code numérique de la ligne RFN | Référence |
| ligne_nom | string | Nom officiel de la ligne ferroviaire | Info popup |
Géométries des Voies
shapes.json
data/raw/shapes.jsonTracés géographiques détaillés des lignes ferroviaires françaises au format GeoJSON. Source : Réseau Ferré National (RFN).
Structure d'une ligne ferroviaire (exemple réel)
{
"licence": "ODBL",
"source": "Portail Open Data SNCF",
"codeLigne": 1000,
"idGaia": "79e6edd0-e28c...",
"nomLigne": "Ligne de Paris-Est à Mulhouse-Ville",
"pkDebut": 0.052,
"pkFin": 491.081,
"statut": "Exploitée",
"geometry": {
"type": "LineString",
"coordinates": [[2.358926, 48.877370], ..., [7.344862, 47.742907]]
},
"electrifications": [{ "detail": "25000V alternatif", "from": 0, "to": 39 }],
"regimeExploitation": [{ "detail": "Double voie", "from": 0, "to": 491 }]
}| Propriété | Type | Description | Utilisé pour |
|---|---|---|---|
| licence | string | Licence des données (ODBL) | Métadonnée |
| source | string | Origine des données | Métadonnée |
| codeLigne | int | Code numérique RFN de la ligne (ex: 1000) | ⭐ Matching liaisons |
| idGaia | string | UUID interne SNCF | Non utilisé |
| nomLigne | string | Nom officiel (ex: "Paris-Est à Mulhouse") | ⭐ Info affichée |
| pkDebut | float | Point kilométrique de début | Non utilisé |
| pkFin | float | Point kilométrique de fin | Non utilisé |
| statut | string | État de la ligne (Exploitée, Fermée...) | Filtrage potentiel |
| geometry | object | Objet GeoJSON LineString | ⭐ Tracé carte |
| geometry.coordinates | number[][] | Points [lon, lat] de la voie (~100-2000 pts) | ⭐ Polyline |
| electrifications | array | Tronçons électrifiés (25kV, 1500V...) | Non utilisé |
| regimeExploitation | array | Double/simple voie, VU... | Non utilisé |
| vitesses | array | Limites de vitesse par tronçon | Non utilisé |