Relire les notebooks¶
Les notebooks sont la façade de relecture du pipeline et sont rangés à la racine
du dépôt dans Notebooks/. Ils doivent rester exécutables de haut en bas, mais
la logique métier réutilisable reste dans
src/parking_search_prediction/.
Chaque notebook commence par une cellule parameters. C'est la cellule à
modifier pour changer de configuration, passer du sample au run complet, tester
une source, changer une règle spatiale ou ajuster une taille d'échantillon
cartographique. Les chemins sont exprimés depuis la racine du projet.
Sources d'entrée¶
La convention de rangement des données est la suivante :
| Source | Dossier | Rôle |
|---|---|---|
| anonymous | Data/GPS/anonymous/ |
jeu GPS anonymisé historique ou de test |
| declic | Data/GPS/declic/ |
source principale actuelle pour appliquer les deux temps de méthode |
| pl23 | Data/GPS/pl23/ |
Panel Lémanique 2023 et dump Situee pour le temps géométrique |
La configuration par défaut utilise :
Pour passer du run borné au run complet, utiliser CONFIG_NAME =
"full_waypoints.yaml" ou mettre RUN_FULL = True dans les notebooks concernés.
Séquence recommandée¶
| Étape | Notebook | Rôle |
|---|---|---|
| 01 | 01_prepare_inputs_declic.ipynb |
préparer les waypoints Déclic, joindre les legs, produire waypoints_caronly |
| 21 | 21_spatial_eda_declic.ipynb |
explorer les indicateurs géométriques, les seuils et les cartes de contrôle |
| 22 | 22_spatial_detection_declic.ipynb |
appliquer le temps géométrique Déclic et exporter les candidates |
| 23 | 23_spatial_detection_pl23.ipynb |
appliquer le temps géométrique sur PL23, sans routage externe |
| 24 | 24_geometric_complements.ipynb |
produire courbes cumulées, cartes H3, graphiques survey et analyse communale optionnelle |
| 25 | 25_routing_dist_excess.ipynb |
préparer les paires de routage et, optionnellement, appliquer dist_excess_m |
| 31 | 31_temporal_eda_declic.ipynb |
explorer les waypoints voiture et la sensibilité de segmentation |
| 32 | 32_temporal_detection_relut_declic.ipynb |
lancer le modèle ReLUT et produire les sorties temporelles |
| 41 | 41_results_by_approach.ipynb |
relire séparément les résultats par temps de méthode |
| 42 | 42_compare_spatial_temporal_declic.ipynb |
consolider par leg_id, produire les portions et la carte de relecture |
| 43 | 43_routed_network_relut.ipynb |
relire les probabilités ReLUT sur legs complètes et produire l'agrégation réseau |
| 44 | 44_territorial_indicators.ipynb |
produire les indicateurs opérationnels de restitution territoriale |
Les anciens notebooks 00-03 sont archivés dans
Notebooks/archive_legacy_00_03/. Ils ne sont plus la séquence de reprise
recommandée.
01_prepare_inputs_declic.ipynb¶
Ce notebook contrôle :
- la découverte des fichiers de waypoints ;
- le chargement des CSV bruts ;
- le nettoyage ;
- la lecture de
legs.parquet; - la jointure temporelle
user_id+ intervalle de leg ; - le filtre des modes voiture ;
- la production de
waypoints_caronly.parquet.
Il ne lance ni le temps géométrique ni le modèle. Il sert à vérifier que la base de points voiture est correctement construite avant toute inférence.
21_spatial_eda_declic.ipynb¶
Ce notebook explore les indicateurs géométriques sur Déclic. Il produit :
- un profil des legs évaluées spatialement ;
- une analyse de sensibilité distance/tortuosité ;
- une agrégation cartographique sur grille métrique EPSG:2056 ;
- des figures de distribution ;
- des cartes HTML d'exemples.
La grille métrique sert à localiser les zones où les indicateurs de cruising se concentrent. Les cartes H3 thématiques sont produites par le notebook 24. H3 reste aussi utilisé dans la détection pour réactiver l'exclusion des destinations situées dans les cellules associées aux tunnels.
22_spatial_detection_declic.ipynb¶
Ce notebook applique la règle géométrique configurée et écrit
spatial_declic_candidates.parquet.
Deux variantes sont toujours exportées :
spatial_candidate_broad: règle large de repérage ;spatial_candidate_conservative: règle plus stricte.
La colonne spatial_candidate reprend la variante choisie par
SPATIAL_CANDIDATE_RULE.
Point ouvert : ce notebook n'applique pas encore de spatial join canton Genève
explicite côté Déclic. Il utilise les legs disponibles dans legs.parquet après
les filtres configurés. Si le périmètre d'étude doit être strictement genevois,
ajouter un filtre géographique auditable avant interprétation globale.
23_spatial_detection_pl23.ipynb¶
Ce notebook intègre la source PL23 dans le pipeline actuel pour appliquer le temps géométrique sur une seconde source de legs géométrisées.
Il lit par défaut la couche layer_GE du GPKG PL23 et produit :
pl23_spatial_candidates.parquet;pl23_spatial_candidates.csv;pl23_spatial_deliverable_table.csv;pl23_spatial_variable_dictionary.csv;- des figures de distributions et de volumes détectés ;
- une carte HTML d'exemples.
Le notebook ne requête pas Google Maps et ne lance pas OSRM. La variable routée
dist_excess n'est donc pas produite. La colonne
pl23_base3_proxy_without_routing est un proxy géométrique conservateur, utile
pour relire les ordres de grandeur mais insuffisant pour produire une distance
additionnelle stricte.
24_geometric_complements.ipynb¶
Ce notebook part des sorties des étapes 22 et 23. Il ne recalcule pas les détections. Il produit :
geometric_cumplots_indicators.png: courbes cumulées des distances et durées ;geometric_h3_thematic_stats.csv: statistiques H3 thématiques. La carte H3 active de restitution estterritorial_h3_hotspots.html;geometric_survey_parking_graphs.png: graphiques simples sur les variables de stationnement déclaré, lorsqu'elles existent ;geometric_commune_summary.csv: analyse communale sigeometric_complements.commune_boundaries_fileest configuré.
25_routing_dist_excess.ipynb¶
Ce notebook prépare le calcul routé de dist_excess_m.
Il lit les sorties spatiales 22 et 23 lorsqu'elles existent, puis écrit :
routing_candidates.parquet;routing_candidates.csv;routing_candidates_xyt_payload.jsonl;routing_candidates_summary.json.
Par défaut, RUN_XYT_ROUTING = False, FORCE_REROUTE = False et
APPLY_ROUTED_RESULTS = False. Si RUN_XYT_ROUTING est activé et qu'un cache
routing_results.parquet complet existe déjà, le notebook le recharge au lieu
de renvoyer les requêtes au routeur. FORCE_REROUTE = True force un nouveau
calcul.
La méthode route le tronçon entre spatial_entry_point_wkb_2056 et
destination_wkb_2056. Elle ne route pas la leg complète.
Si le routeur local a produit routing_results.parquet, l'application des
résultats écrit ensuite spatial_declic_candidates_routed.parquet et
pl23_spatial_candidates_routed.parquet, ainsi que
routing_geometry_correspondence.parquet et
routing_geometry_comparison.html pour comparer géométrie GPS observée et route
OSRM distance.
31_temporal_eda_declic.ipynb¶
Ce notebook part de waypoints_caronly.parquet. Il ne lance pas encore le
modèle. Il sert à vérifier :
- les distributions de précision GPS, vitesses et intervalles temporels ;
- la sensibilité du nombre de segments au seuil
gap_minutes; - les segments qui seront transmis au modèle.
32_temporal_detection_relut_declic.ipynb¶
Ce notebook lance la chaîne temporelle :
- segmentation intra-
leg_id; - conversion au contrat ReLUT ;
- validation des segments ;
- prédiction point par point ;
- export de
relut_predictions.parquet; - figures et carte de relecture temporelle.
Le dernier point de chaque segment reste interprété comme stationnement supposé. C'est l'hypothèse la plus sensible du temps temporel.
41_results_by_approach.ipynb¶
Ce notebook ne consolide pas encore les deux temps. Il produit une lecture séparée des résultats géométriques et temporels à source commune, et une relecture séparée de PL23 si l'étape 23 a été exécutée :
- nombre de legs ou segments détectés ;
- parts détectées ;
- distances et durées moyennes ou médianes ;
- figure de comparaison des distributions distance/durée pour Déclic.
Il sert à vérifier si un temps de méthode produit un niveau de détection manifestement incohérent avant la consolidation finale. Les lignes PL23 ne doivent pas être interprétées comme une comparaison avec Déclic.
42_compare_spatial_temporal_declic.ipynb¶
Ce notebook fusionne les résultats par leg_id et produit :
combined_spatial_temporal_by_leg.parquet;cruising_detected_legs.parquet;cruising_detected_portions.parquet;spatial_temporal_comparison_examples.html, utilisé comme carte de relecture comparative : leg complète, rayon spatial, portion spatiale et portion temporelle ReLUT.
Dans le run livrable actuel, le temps temporel couvre les fichiers de waypoints présents dans le glob configuré. Les résultats géométriques couvrent un périmètre plus large de legs Déclic nettoyées ; toute interprétation globale doit donc préciser la couverture effective des waypoints.
Ce notebook est aussi l'endroit où préparer une future règle hybride géométrique/temporelle, après validation : union pour le repérage sensible, intersection pour une borne stricte, ou règle hiérarchique combinant début temporel et plausibilité géométrique.
43_routed_network_relut.ipynb¶
Ce notebook part des probabilités ReLUT de l'étape 32 et, lorsque disponible, des géométries routées de l'étape 27.
La carte prioritaire de relecture est :
Elle affiche un échantillon de legs complètes observées, colorées segment par segment selon la probabilité ReLUT. Elle sert à vérifier visuellement si le signal temporel est localisé dans la bonne partie du trajet.
Le notebook peut aussi produire une couche réseau agrégée, où chaque segment de route porte une probabilité moyenne de recherche de stationnement. Cette sortie sert à spatialiser finement les probabilités temporelles sans superposer toutes les traces individuelles.
44_territorial_indicators.ipynb¶
Ce notebook part des sorties déjà générées et prépare les tableaux et figures orientés restitution client :
- scénarios de quantification : borne basse, scénario central routé, borne haute, profil temporel ReLUT ;
- typologie descriptive des signaux : boucles, tortuosité, excès de distance, passage près de l'activité, marche après stationnement ;
- hotspots H3 ;
- profil horaire ;
- profil par motif de destination ;
- hotspots réseau ReLUT.
Ce notebook ne remplace pas les étapes 41 et 42. Il change le point de vue : les étapes 41-42 servent au contrôle des méthodes, l'étape 44 sert à raconter ce que représente le cruising sur le territoire observé.
Règle de maintenance¶
Un notebook peut contenir des paramètres, du markdown de méthode, des appels de fonctions et des affichages. Il ne doit pas contenir une nouvelle logique métier complexe. Toute logique réutilisable doit être ajoutée dans un module Python documenté, puis appelée depuis le notebook et depuis un script.