Isochrones: démarche exploratoire, première partie

Note:

Imaginons que vous habitiez Paris au 90, Boulevard Saint-Germain.

Vous souhaitez trouver un café en tenant compte des modes de transports choisis et disponibles et d’une contrainte horaire. Partons du fait que vous voulez trouver une zone avec une accessibilité optimale et que vous voulez la cartographier (alors oui, dans la réalité vous regardez un plan des transports en commun et vous privilégiez un café qui a l’air agréable et proche mais là nous sommes dans une réalité alternative dans laquelle votre soif de connaissances en matière d’accessibilité est inextinguible, bien, reprenons).

Vos contraintes sont les suivantes:

  • 1 origine
  • Une contrainte sur l’heure de départ: 08:00
  • Un jour ouvrable type (exemple un jeudi hors vacances scolaires)
  • Une contrainte de temps: 20 minutes

Vous avez donc besoin de construire et/ou d’utiliser des graphes et de calculer des chemins les plus courts et ainsi calculer des isochrones comme on l’a vu - de manière théorique - dans le billet précédent.

Plus concrètement, il faut construire des graphes à la manière d’OpenTripPlanner ou de Navitia, ce qui ne pose pas de problème majeur, les données et les outils étant pour partie en libre accès.

Néanmoins, l’exploitation automatisée et une visualisation sous forme de cartes dynamiques et interactives demandent d’élaborer des programmes informatiques (nous utilisons en l’occurrence Python et des libraires géospatiales et de visualisation). Nous éviterons ici les détails techniques, mais vous pouvez, si vous le souhaitez, consulter le readme du dépôt GitHub.

Procédons à quelques calculs et tests. Commençons donc tout d’abord par une adresse unique (nous verrons la cartographie de plusieurs isochrones et de leur intersections dans un prochain billet).

Mesures à partir d’une adresse unique

On prend appui sur une API particulière pour les besoins de nos tests car elle est facilement exploitable et accessible, mais la méthode générique utilisée ne change pas de celle exposée dans l’article d’introduction.

On se base sur l’API de Navitia pour obtenir les points qui permettent de composer les isochrones.

Pour les besoins de ce test, nous allons récupérer, à partir d’une requête sur une origine, les arrêts de transports collectifs et le temps nécessaire pour les atteindre avec les paramètres suivants et en utilisant les modules que nous avons développés spécifiquement:

  • durée maximale: 20 minutes
  • adresse de départ: “90, Boulevard Saint-Germain, 75005, France”
  • date: Jour ouvrable type
  • heure de départ: 08:00
  • API: Navitia (journeys)

Il s’agit d’utiliser la requête journeys de Navitia pour mesurer l’accessibilité aux différentes stations de transports en commun en partant d’une origine en vue:

Les chemins minimaux en transports collectifs

Note: cliquez sur les images pour accéder à la version dynamique des cartes dans le Jupyter notebook

Une première exploration des résultats consiste à afficher les chemins les plus courts depuis l’origine et vers tous les arrêts du réseau. On cartographie les lignes et les arrêts (colorés en fonction du mode) qui représentent tous les chemins minimaux entre l’origine et les n arrêts du réseau atteignables dans le temps donné.

Cette première carte donne un premier aperçu du territoire accessible depuis une origine en utilisant les transports collectifs avec une double contrainte temporelle (une heure de départ et un temps de déplacement). Néanmoins, cela manque de précision car nous n’avons aucune indication concernant le temps disponible restant à chaque destination potentielle (c’est-à-dire le temps total moins le temps de déplacement en transports collectifs).

Voyons donc comment on peut améliorer la qualité et la précision de la cartographie.

Cartographie des durées et des distances à pied

Une indication sur le temps disponible à destination peut permettre d’avoir une meilleure appréhension de l’accessibilité et de calculer un périmètre de marche à pied possible autour de chaque station de transport collectif (temps restant disponible multiplié par une vitesse moyenne de marche à pied), comme le montre la carte suivante (n’oubliez pas de cliquer pour accéder à la version interactive).

La carte de gauche montre les durées de déplacement en transports collectifs depuis une origine spécifique vers tous les arrêts de transports collectifs accessibles en moins de 20 minutes et la carte de droite une indication sur la distance potentielle à pied. Cette distance potentielle est calculée à partir du temps restant à destination qui correspond au temps maximal de déplacement (ici 20 minutes) auquel on soustrait le temps de déplacement effectif. Ce temps restant est transformé en distance par l’intermédiaire d’une vitesse moyenne de marche à pied. Par exemple, s’il faut 15 minutes pour atteindre un arrêt B depuis l’origine A, il restera 5 minutes de marche à pied potentielle à la vitesse de 5km/h, soit environ 400 mètres.

Les 2 cartes sont liées, les interactions sur l’une auront des répercussions sur l’autre. Plus la couleur tire vers le jaune, plus la valeur (durée ou distance à pied) est importante

L’information est certes plus détaillée mais elle est reste assez peu lisible globalement et ne peut être comprise rapidement. Elle est utile pour une exploration plus approfondie et spatialisée mais ne peut être laissée telle quelle pour un usage courant et se révélera surtout incapable de montrer des intersections lorsque des calculs similaires seront effectués à partir de multiples origines.

Une approche par surface s’avère donc nécessaire.

Buffers et buffer

Il s’agit de tracer - dans un premier temps car nous verrons d’autres possibilités dans un procha in article - des cercles autour de chaque station de transports en commun accessible et dont le rayon correspond au temps restant disponible à destination multiplié par une vitesse moyenne de marche à pied (ce qui nous donne une distance en kilomètres qu’on convertit en mètres pour des raisons pratiques et liées à la projection spatiale utilisée, EPSG 3857).

Comme le montre l’image suivante (même chose que précédemment, cliquez dessus pour accéder à la version dynamique), à gauche se trouve tous les buffers (zone-tampons en français mais c’est assez peu utilisé) autour de chaque station (plus le temps disponible à destination est important, plus la couleur tire vers le jaune et plus le cercle est important) et à droite on trouve une union (suite à une opération spatiale dont nous parlerons plus dans un prochain article) de ces buffers pour obtenir un isochrone unique et plus lisible (au sacrifice de la précision).

Mais encore ?

Bon, avec tout cela on sait enfin quel territoire on peut atteindre à une heure donnée et dans un temps imparti à partir d’une origine unique.

Maintenant imaginons que vous souhaitiez donner rendez-vous à un ami qui habite au 334, Rue des Pyrénées. Il va falloir trouver un zone de rencontre qui soit accessible à la fois par votre ami et par vous-même et donc mettre en évidence les potentielles intersections.

Des améliorations sont donc nécessaires.

En effet, le buffer montre bien un territoire qui semble accessible, mais notre méthode ne tient pas compte du réseau viaire (les rues pour faire simple) et des obstacles urbains (bâtiments, autoroutes, …) ou géographiques (cours d’eau, montagne, …). Alors certes, vous me direz les montagnes, ça ne court pas les rues à Paris (oui et d’ailleurs ça ne court pas non plus, bien, bien, bien) mais ceci n’est qu’un exemple parmi d’autres.

Il nous faut donc préciser notre espace accessible en un temps égal, avant de pouvoir trouver une zone de rencontre accessible de manière optimale.

Nous verrons donc dans un prochain article comment améliorer cet isochrone ainsi que l’intersection de deux isochrones (en tenant compte de l’autre point de départ: 334, Rue des Pyrénées, Paris).