Aller au contenu

Temps géométrique PL23

L'étape 23_spatial_detection_pl23 applique le temps géométrique de la méthode aux données Panel Lémanique 2023 disponibles localement.

Objectif

L'objectif est de produire, pour PL23, les mêmes familles d'indicateurs géométriques que celles utilisées sur Déclic lorsque des legs géométrisées sont disponibles :

  • dernière leg voiture avant activité ;
  • distance et durée de la portion finale dans le buffer de destination ;
  • passage près de l'activité avant la fin ;
  • marche post-stationnement ;
  • boucles et tortuosité ;
  • exclusion explicite des zones tunnel connues.

Les sources PL23 et Déclic restent distinctes. Les résultats ne doivent donc pas être fusionnés ligne à ligne entre sources, ni comparés analytiquement comme deux échantillons équivalents. La consolidation des temps géométrique et temporel se fait uniquement à source commune.

Périmètre et filtres

Le traitement lit par défaut la couche layer_GE du GPKG PL23, puis :

  1. conserve les lignes Track ;
  2. applique les indicateurs qualité disponibles (usr_w_constant_bad_signal, low_quality_legs_2, extreme99_length_mode) lorsqu'ils existent ;
  3. rattache les legs aux trip_id ;
  4. conserve les déplacements dont l'activité de destination est dans le canton de Genève ;
  5. conserve les déplacements composés uniquement de marche, voiture thermique ou voiture électrique ;
  6. sélectionne la dernière leg voiture de chaque déplacement ;
  7. rattache la localisation de l'activité finale depuis les staypoints ;
  8. calcule la cellule H3 de destination et exclut les destinations dans les cellules associées aux tunnels.

Les seuils géométriques sont repris depuis spatial_detection afin de garder une implémentation cohérente du temps géométrique. Cette cohérence de code ne constitue pas une comparaison statistique PL23/Déclic.

Indicateurs produits

La sortie principale est pl23_spatial_candidates.parquet. Elle contient notamment :

  • spatial_eligible_before_exclusions : leg retenue après les seuils de base, avant exclusion des zones tunnel ;
  • h3_index_destination : cellule H3 de destination ;
  • spatial_excluded_tunnel_zone : destination située dans une cellule H3 tunnel exclue ;
  • spatial_exclusion_reason : motif d'exclusion spatiale ;
  • spatial_eligible : leg retenue après filtres de base et exclusions géographiques explicites ;
  • spatial_candidate_broad : règle large, incluant distance dans le buffer, passage près de l'activité, boucle ou tortuosité ;
  • spatial_candidate_conservative : règle stricte, limitée à la distance dans le buffer et au passage près de l'activité ;
  • spatial_search_distance_m : longueur de la portion finale dans le buffer de destination ;
  • spatial_search_duration_seconds : durée interpolée de cette portion ;
  • spatial_entry_point_wkb_2056 : point d'entrée dans le buffer destination, conservé pour un futur calcul routé ;
  • pl23_base2_proxy : proxy de base éligible ;
  • pl23_base3_proxy_without_routing : proxy conservateur sans plus court chemin routé.

Les variables descriptives disponibles sont également conservées : motif agrégé, jour, tranche horaire, distance de marche après stationnement, disponibilité de stationnement au domicile et au travail/études, zones domicile/travail et classe ARE du domicile.

Le fichier pl23_spatial_group_summary.csv fournit des statistiques par motif, jour, tranche horaire, stationnement, zones et classe ARE.

Routage et dist_excess

La variable dist_excess mesure l'écart entre la distance observée dans le buffer et un plus court chemin routé. Elle nécessite un routeur local contrôlé ou un cache de routes versionné hors dépôt Git.

L'étape 23 PL23 ne requête pas d'API externe. Elle produit des indicateurs géométriques contrôlés et les points nécessaires au routage. Les étapes 25 à 27 préparent ensuite les paires, appellent éventuellement xyt_routing local et calculent dist_excess_m.

Interpolation temporelle

Les timestamps des portions affectées ne sont pas observés directement. Ils sont reconstruits par interpolation linéaire :

durée portion = durée leg × longueur portion affectée / longueur leg
début portion = finished_at - durée portion
fin portion = finished_at

Cette hypothèse suppose une vitesse constante le long de la leg. Elle est utile pour produire des durées et des horodatages comparables, mais elle doit être relue avec prudence pour les legs très congestionnées, bruitées ou mal géométrisées.

Résultat du run local documenté

Sur la couche layer_GE disponible localement :

Indicateur Valeur
Legs PL23 chargées 125 534
Tracks après filtres qualité et périmètre 22 767
Dernières legs voiture 10 981
Legs éligibles avant exclusion tunnel 9 254
Legs exclues tunnel parmi les éligibles avant exclusion 338
Legs éligibles géométriquement 8 916
Candidates règle large 4 223
Candidates règle conservatrice 597

Ces chiffres sont des résultats du temps géométrique avant application du cache routé. Ils ne doivent pas être interprétés comme distance additionnelle stricte tant que dist_excess_m n'a pas été calculé.