Aller au contenu

Spatialisation réseau des probabilités ReLUT

Cette étape produit deux lectures cartographiques complémentaires des probabilités ReLUT :

  1. une couche routée des portions finales, entre l'entrée du buffer de destination et la fin de leg, utilisée pour dist_excess ;
  2. une couche observée des legs complètes, non routée OD, pour replacer la portion probable de recherche dans le contexte de la trajectoire entière ;
  3. une carte de relecture prioritaire montrant un échantillon de legs complètes originales, non agrégées, colorées par probabilité ReLUT.

Objectif

L'objectif est de produire une couche exploitable pour cartographier finement les secteurs routiers où les traces observées présentent une forte probabilité temporelle de recherche de stationnement.

La sortie des portions finales n'affiche pas chaque route individuelle. Elle agrège les segments de réseau issus des routes OSRM et calcule, pour chaque segment :

  • le nombre de routes observées ;
  • le nombre de legs distinctes ;
  • la probabilité ReLUT moyenne ;
  • la probabilité ReLUT maximale et le percentile 90 ;
  • la distance dist_excess_m moyenne des legs qui traversent le segment.

Entrées

L'étape dépend de deux sorties précédentes :

Output/data/routing_geometry_correspondence.parquet
Output/data/relut_predictions.parquet

La première fournit les géométries routées OSRM des portions finales et les identifiants leg_id. La seconde fournit les probabilités point par point du modèle ReLUT.

Le croisement est fait par leg_id. Dans l'état actuel des données, seules les legs Déclic disposant de waypoints et de prédictions ReLUT peuvent être pondérées. Les legs PL23 ne peuvent pas recevoir de probabilité ReLUT tant que les waypoints correspondants ne sont pas disponibles.

Méthode d'affectation des probabilités sur les portions finales routées

Chaque géométrie routée est découpée selon ses sommets OSRM natifs. Pour chaque segment élémentaire, on calcule la distance restante entre le milieu du segment et la destination routée.

Cette distance restante est comparée à distToParkingSpot, produit dans les points ReLUT. La probabilité du segment est estimée par interpolation linéaire de y_hat_p selon cette distance restante.

Hypothèse : la progression le long de la route OSRM entre l'entrée du buffer et la destination est suffisamment comparable à la progression temporelle observée dans les points GPS pour projeter la probabilité ReLUT sur le réseau routé.

Cette hypothèse est raisonnable pour produire une carte exploratoire, mais elle ne remplace pas un map-matching point par point.

Carte prioritaire de relecture

La carte prioritaire est relut_full_leg_probability_sample.html. Elle utilise un échantillon de géométries complètes observées dans la table spatiale Déclic, sans recalcul OSRM de l'origine à la destination. Elle sert à vérifier que la lecture cartographique ne se limite pas visuellement au dernier tronçon routé.

Les probabilités sont projetées le long de ces géométries par interpolation selon la distance observée restante dans la leg. Les cartes agrégées de réseau restent disponibles comme diagnostics optionnels via network_relut.write_diagnostic_network_maps: true.

Un futur routage OD complet devra être produit dans un cache séparé si l'on veut une carte strictement routée de toute la leg. Il ne faut pas réutiliser le cache dist_excess, car celui-ci ne couvre volontairement que la portion finale.

Carte d'échantillon des legs complètes originales

La carte relut_full_leg_probability_sample.html est la carte à ouvrir en priorité pour la relecture visuelle. Elle affiche par défaut 20 legs complètes, dans leur géométrie observée originale, et colore chaque segment selon la probabilité ReLUT interpolée. Le point rouge correspond à la fin de leg, utilisée comme stationnement supposé par le modèle.

Agrégation réseau

Les segments élémentaires sont agrégés par clé géométrique directionnelle neutralisée :

edge_key = paire de coordonnées arrondies, sans sens de parcours

Le paramètre edge_coordinate_precision contrôle l'arrondi des coordonnées. La valeur par défaut 6 correspond à une précision d'environ dix centimètres en latitude/longitude, suffisante pour agréger des géométries OSRM identiques sans sur-généraliser le réseau.

Sorties

Output/data/routed_network_relut_route_segments.parquet
Output/data/routed_network_relut_segments.parquet
Output/data/observed_network_relut_full_leg_segments.parquet
Output/data/observed_network_relut_full_leg_aggregated_segments.parquet
Output/reports/routed_network_relut_summary.json
Output/maps/relut_full_leg_probability_sample.html

Les cartes routed_network_relut_search_portions.html et observed_network_relut_full_legs.html peuvent être régénérées en mettant network_relut.write_diagnostic_network_maps: true. Elles ne font plus partie des cartes conservées par défaut.

La table routed_network_relut_route_segments.parquet contient les segments individuels, avant agrégation.

La table routed_network_relut_segments.parquet contient la couche réseau agrégée. Elle peut être ouverte dans QGIS comme GeoParquet.

Si les cartes de diagnostic sont activées, la carte HTML routed_network_relut_search_portions.html colore les portions finales routées par probabilité ReLUT moyenne. L'épaisseur augmente avec le nombre de routes observées.

La carte HTML observed_network_relut_full_legs.html colore alors les legs complètes observées agrégées. Elle est utile pour une relecture technique, mais ne doit pas être décrite comme un routage OD complet.

La carte HTML relut_full_leg_probability_sample.html est non agrégée et sert à comprendre comment la probabilité évolue le long de legs individuelles.

Commande

PYTHONPATH=src .venv-parking-search/bin/python scripts/43_routed_network_relut.py --config config/default.yaml

Limites

La sortie dépend directement de la couverture temporelle ReLUT. Si le modèle n'a été exécuté que sur un échantillon, la couche réseau ne représente que cet échantillon.

Un segment avec probabilité forte ne signifie pas nécessairement que tout le segment est du cruising. Il indique que les legs qui l'empruntent présentent, au même stade d'approche de la destination, une probabilité ReLUT élevée.

Avant usage opérationnel, il faut contrôler :

  • la couverture des leg_id entre ReLUT et routage ;
  • les routes OSRM de longueur nulle ;
  • les segments agrégés portés par une seule leg ;
  • la sensibilité à edge_coordinate_precision ;
  • la sensibilité à full_leg_simplify_tolerance_m pour la carte des legs complètes observées ;
  • la cohérence cartographique sur un échantillon annoté.