Créer des polygones de temps de conduite à l'aide d'outils Open Source?

55

Est-ce que quelqu'un utilise des outils et / ou des données open source pour générer des polygones de temps de conduite qui rayonnent à partir d'un emplacement donné? Par exemple, j'ai utilisé des produits ESRI tels que Network Analyst et Business Analyst pour générer des limites de polygone représentant la distance maximale que l'on peut parcourir sur un réseau routier à partir d'un point donné au cours d'une période définie par l'utilisateur (par exemple 5, 10 et / ou 15 minutes). Existe-t-il des alternatives similaires open source ou basées sur le Web?

J'ai vu ce message, mais il ne donne vraiment pas d'autres options: pouvez-vous créer un polygone de région de voyage avec l'API Google Maps?

J'étais particulièrement curieux de savoir si quelqu'un utilise (ou peut) utiliser OpenStreetMap pour analyser le temps de conduite.

De plus, existe-t-il une implémentation des utilitaires pgRouting qui pourrait être utilisée pour générer des polygones? http://pgrouting.postlbs.org/

RyanDalton
la source
Intéressé de voir la réponse à celle-ci. En ce qui me concerne, ESRI est le leader des produits serveur Open-Source, principalement parce qu’il expose le géotraitement dans un modèle facile à gérer / utiliser.
Simon
Une mise à jour sur cette question? Je suis vraiment intéressé à jouer avec un créateur open source de DT Poly en script de map.
Furlong
Je ne peux pas encore donner de réponse car j'ai dû mettre en pause mes travaux sur ce projet. Étant donné que je ne suis pas un type "GRASS", je ne vais probablement pas emprunter cette voie, même si cela semble être une solution très viable. Pour le moment, cependant, je suis plutôt enclin à essayer d’utiliser le pgRouting, qui contient soi-disant des fonctions Alpha Shapes.
RyanDalton

Réponses:

52

GRASS v.net.iso vous donnera un résultat comme celui-ci:

entrez la description de l'image ici

Vous ne voudrez peut-être pas exécuter un algorithme de coque convexe sur cette sortie. Imaginez les routes bleues: une coque convexe les entourant contiendrait un grand nombre de pièces inaccessibles dans le temps représenté par "bleu".

Au lieu de cela, vous voudrez peut-être examiner les formes alpha (question connexe: Que sont la définition, les algorithmes et les solutions pratiques pour une coque concave? )

croquis de forme alpha

Vous pouvez créer des isochrones de temps de conduite en utilisant pgRouting et QGIS ( comme décrit ici ). Je n'ai pas utilisé OSM dans ce cas, mais vous pouvez bien sûr construire votre réseau routable basé sur OSM (voir l' outil osm2pgrouting ).

entrez la description de l'image ici

( pleine résolution )

Pour une solution PostGIS pure, vous pouvez utiliser la fonction de forme alpha de pgRouting . Voici une comparaison des formes alpha telles qu’implémentées dans pgRouting et de l’approche présentée dans la mise à jour précédente:

entrez la description de l'image ici

Les zones colorées représentent les résultats de la fonction de forme alpha, les lignes noires sont les résultats de l’interpolation décrite précédemment. Les zones de chalandise sont moins détaillées en utilisant les formes alpha de pgRouting. En outre, il semble n'y avoir aucun moyen de faire varier la valeur de l'alpha pour créer des représentations plus détaillées.

underdark
la source
2
+1 sur les formes alpha! Apprendre quelque chose de nouveau chaque jour! Je savais que la coque convexe n'était pas vraiment la solution, mais je n'en savais rien!
Darren Cope
1
Merci beaucoup d'avoir posté la description de ceci sur votre blog. Je compte bien y jeter un coup d'œil bientôt pour voir si je peux le reproduire avec mes données. Cela a l'air fantastique, cependant!
RyanDalton
10

GRASS 'v.net.iso peut être utilisé pour créer le temps de conduite' réseau 'que vous pouvez passer dans une commande' coque convexe 'pour obtenir un polygone. Peut-être pas idéal, mais fonctionnerait!

Darren Cope
la source
1
Haha - viens de me battre!
om_henners
+1 pour v.net.iso, mais je ne suis pas sûr de la partie de coque convexe - voir ma réponse
underdark
9

Eh bien, vous pourriez potentiellement utiliser v.net.iso de GRASS GIS. Cependant, il ne crée pas de polygones (autant que je sache), mais scinde les lignes en classes de coûts de la source.

En ce qui concerne le calcul des temps de conduite depuis OSM, vous pouvez importer les données dans GRASS avec v.in.osm et utiliser v.net.iso pour calculer les zones de coût. Si vous souhaitez des temps de parcours et que vous n'avez pas de limite de vitesse sur route, vous pouvez calculer la limite de vitesse en fonction d'une fonction de la classe de route.

om_henners
la source
7

Vous pouvez utiliser GraphHopper pour cette tâche, qui prend également en charge différents modes, comme marcher ou faire du vélo, et utilise OpenStreetMap par défaut. Vous aurez besoin d'un code Java qui explore le réseau routier à partir du point de départ, similaire au fonctionnement des algorithmes de Dijkstra, mais vous pouvez obtenir le même résultat, même en temps réel (<0.5s):

entrez la description de l'image ici

Le code va collecter les points que vous devez convertir en polygone avec, par exemple, les outils JTS . La vitesse dépend en grande partie de cette dernière étape. Sans cela, il serait possible en moins de 0,5 seconde, même pour de grandes distances.

Une autre façon serait avec OpenTripPlanner .

Karussell
la source
6

osrm-isochrone est une petite bibliothèque node.js permettant de générer des temps de traitement.

Morgan Herlocker
la source
5

Vous voudrez peut-être consulter l' API JavaScript ouverte Route360 ° , qui fonctionne à la fois avec Leaflet et Google Maps. Il renvoie les polygones de temps de déplacement pour les modes de déplacement suivants: marche, vélo, voiture, transport en commun.

Polygones de temps de trajet - NYC

C'est gratuit et open source et la couverture est très bonne. Vous pouvez trouver de nombreux tutoriels sur son utilisation sur le site Web.

Yoya01
la source
1
Le côté client est open source, mais le côté serveur n'est pas IMO.
Karussell
2

Bien que ne répondant pas directement à votre question, vous devriez jeter un coup d'œil à l' API Mapnificent .

Mapnificent fournit des cartes dynamiques des temps de trajet des transports en commun pour de nombreuses villes aux États-Unis et dans le monde entier. Vous pouvez utiliser l’API Mapnificent pour compléter votre application Google Maps avec des superpositions, des superpositions de temps de trajet en transports en commun.

Jetez un coup d'œil à Londres ici . texte alternatif

Simon
la source
mapnificent est open source?
Karussell
2

Je suis également tombé sur l'extension réseau de gvSIG , mais la documentation de configuration que j'ai trouvée jusqu'à présent est assez médiocre. J'ai de grands espoirs, je dois juste comprendre les détails du calcul des coûts.

J'utilisais les données US Census TIGER pour le réseau routier et, en réalité, générais des polygones, mais je ne pouvais tout simplement pas comprendre les unités de coût. Si quelqu'un a implémenté cet outil avec succès, j'aimerais en entendre parler.

J'ai également trouvé Quantum Navigator pour QGIS, mais je n'ai trouvé aucune mise à jour récente.

RyanDalton
la source
2

Le résultat avec l'approche de coque concave est excellent et je me suis beaucoup inspiré des images ci-dessus. Mais j’ai remarqué que les résultats peuvent inclure certaines zones inaccessibles par la route (comme la rivière, par exemple). Nul doute que ce n’est pas un problème en termes de recherche de caractéristiques pertinentes (centroïdes de la population, nombre de foyers) en fonction de la distance ou du temps depuis l’origine. Mais cela ne fonctionne également qu'aux deux extrémités de chaque lien. Encore une fois, ce n’est pas un problème dans la grande majorité des cas (étant donné que les liaisons routières les plus longues ont un contrôle d’accès - vous ne pouvez normalement pas les quitter avant d’avoir atteint le prochain croisement / intersection).

Cependant, pour autant, j'ai travaillé sur une approche différente basée sur les LINKS renvoyés par PgRouting / (ou un algorithme brut "Dijkstra") ordonnés par heure à partir du noeud d'origine. C'est relativement simple et catégorise les liens par tranche de temps et divise également les liens qui traversent les limites de temps. Ensuite, les liens avec la même catégorie (par exemple, 0-2 minutes, 2-4 minutes) sont tamponnés à 250 mètres.

John Steedman
la source
1

Cette année, lors de la conférence WhereCampPDX, plusieurs représentants d’OpenStreetMap ont déclaré que l’utilisation de données OSM pour le routage est assez courante en Europe. Cependant, il est plus rare aux États-Unis car la carte n’est généralement pas suffisante. Vous pouvez extraire un service de routage basé sur OSM à l'adresse suivante:

http://openrouteservice.org/

Jvangeld
la source
1
Et aucun routage n'est différent du temps de conduite, mais il est lié.
Jvangeld
1
C'est une sorte de routage mais "un à tous" limité par le temps ou la distance
Karussell le
1
Ce service fonctionne bien pour moi. Je n'ai pas eu la chance de tester la précision, mais cela me permet par exemple de trouver un rayon d'une heure autour d'un certain secteur. Très à la main si on doit déménager dans une zone inconnue pour le travail, etc.
Roman,
1
Openrouteservices.org a une option pour exporter nos données vers geoJSON. Ensuite , nous pouvons convertir et afficher notre carte isochrone dire dans Google Earth, Google Maps, etc ... mkrgeo-blog.com/...
Mariusz Krukar
Impressionnant. Openrouteservice semble fonctionner maintenant de manière robuste aux États-Unis.
Jvangeld