Spatialisation réseau des probabilités ReLUT¶
Cette étape produit deux lectures cartographiques complémentaires des probabilités ReLUT :
- 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; - 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 ;
- 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_mmoyenne des legs qui traversent le segment.
Entrées¶
L'étape dépend de deux sorties précédentes :
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 :
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_identre 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_mpour la carte des legs complètes observées ; - la cohérence cartographique sur un échantillon annoté.