[PYTHON] OSMnx pour la première fois ~ Avec la recherche d'itinéraire la plus courte ~

Il n'y avait pas beaucoup d'articles en japonais sur OSMnx, et c'était trop difficile pour moi en tant qu'anglais faible de collecter des informations ... J'ai donc écrit que cela devrait être utile pour d'autres Anglais faibles. Par conséquent, il s'agit d'un article d'introduction sur OSMnx pour l'anglais faible par un anglais faible.

1. 1. À propos d'OSMnx

Qu'est-ce que OSMnx? Je pense qu'il y a beaucoup de gens qui pensent cela, alors je vais vous expliquer un peu au début. Connaissez-vous OpenStreet d'abord?

Qu'est-ce qu'OpenStreetMap?

Considérez-le comme une version cartographique de wikipedia. Une carte que n'importe qui peut écrire et utiliser est OpenStreetMap. Des informations telles que les noms de lieux et les routes sont inscrites sur cette carte.

Et OSMnx a été développé pour utiliser ces informations.

Qu'est-ce que OSMnx

Il s'agit d'un package Python permettant d'utiliser les données cartographiques d'OpenStreetMap. Vous pouvez acquérir, analyser et visualiser des données cartographiques.

2. Étapes pour installer OSMnx

La méthode d'installation écrite par le développeur a rendu les choses faciles, je vais donc la poster.

STEP1 Tout d'abord, ajoutons Anaconda. Veuillez consulter Autres sites pour savoir comment installer Anaconda.

Divers sites montrent également comment le faire avec la commande pip, mais il est facile de rester coincé avec une erreur lors de l'installation de Geopandas (histoire d'expérience)

STEP2 Une fois que vous avez Anaconda, tapez simplement ces deux commandes. conda config --prepend channels conda-forge conda create -n ox --strict-channel-priority osmnx

Vous pouvez maintenant utiliser OSMnx sur l'environnement virtuel d'Anaconda.

Lors de l'utilisation d'OSMnx, lors de l'ouverture de l'invite Anaconda activate ox Tapez la commande pour basculer vers l'environnement virtuel ox.

3. 3. Recherche d'itinéraire le plus court par OSMnx

La méthode d'installation OSMnx n'était pas très savoureuse, je vais donc ajouter la recherche d'itinéraire la plus courte.

Cette fois, nous allons acquérir un réseau routier centré sur Tokyo Sky Tree. En regardant l'OpenStreetMap, la route autour de Tokyo Sky Tree ressemble à ceci. tokyoSkyTreeMap.png

Et c'est une image qui a acquis et affiché le réseau routier avec OSMnx. tokyoSkyTreeGraph.png

Vous pouvez voir qu'ils correspondent lorsque vous les empilez. overlay.jpg

Examinons de plus près les types de ce réseau routier et comment l'obtenir.

Type de réseau routier

Il y a des routes pour les piétons et les voitures, non? Ainsi, vous pouvez obtenir différents types de réseaux routiers.

Cette fois, nous avons acquis le réseau routier de 'Drive'.

Comment obtenir un réseau routier

Lors de l'acquisition du réseau routier

Spécifiez l'un d'entre eux.

Cette fois, la latitude et la longitude sont précisées et le réseau routier est acquis.

Obtenir par latitude et longitude

C'est la fonction pour obtenir le réseau routier à partir de la latitude et de la longitude.

ox.graph_from_point(center_point, dist=300, network_type='drive')



 * center_point --Taple avec latitude et longitude
 * dist-Combien de mètres de données doivent être pris à partir de l'emplacement spécifié
 * network_type-quel type de réseau routier prendre

 Il y a d'autres arguments, mais omis

## Recherche d'itinéraire le plus court
 Jusqu'à présent, nous avons vu comment obtenir un réseau routier.
 La recherche de l'itinéraire le plus court peut être facilement calculée avec cette fonction tant que le réseau routier est acquis.

#### **`ox.shortest_path(G, orig, dest, weight='length')`**
```shortest_path(G, orig, dest, weight='length')


 * Graphique G-Input
 * orig - nœud de démarrage
 * noeud dest-cible
 * weight --Entrez "longueur" pour trouver l'itinéraire le plus court

 Le code entier ressemble à ceci:


#### **`shortestPath.py`**
```python

import osmnx as ox

#Latitude et longitude de Tokyo Sky Tree
location_point = (35.7100069, 139.8108103)
#Graphique des routes à moins de 300m centré sur Tokyo Sky Tree
G = ox.graph_from_point(location_point, dist=300, network_type='drive')

#Afficher le réseau routier acquis
ox.plot_graph(G, node_color='r')

#Calculer l'itinéraire le plus court de l'origine à la destination d'un nœud
orig = list(G)[0]
dest = list(G)[1]
route = ox.shortest_path(G, orig, dest, weight='length')
#Afficher l'itinéraire le plus court
ox.plot_graph_route(G, route, route_color='y', route_linewidth=6, node_size=0)

Lorsque ceci est exécuté, un graphique de la route la plus courte d'un nœud à l'autre est généré. Cette fois, les 0e et 1er nœuds sont sélectionnés de manière appropriée.

tokyoSkyTreeRoot.png

J'ai pu confirmer que l'itinéraire qui semble être l'itinéraire le plus court est affiché correctement.

Matériel de référence

Méthode d'installation écrite par le développeur OpenStreetMap Github du développeur ・ De nombreux exemples de programmes ont été téléchargés. Description du module OSMnx

Recommended Posts

OSMnx pour la première fois ~ Avec la recherche d'itinéraire la plus courte ~
Mettre en œuvre la recherche de chemin le plus court pour le labyrinthe
Trouvez l'itinéraire le plus court avec l'algorithme de Python Dijkstra
Recherche séquentielle avec Python
Dichotomie avec python
Dichotomie avec Python 3
Rechercher une base de données avec db.py
Recherche de chemin dans le graphique à l'aide de Networkx
Recherche de bits complète avec Go
Première simulation de cellule nerveuse avec NEURON + Python
Recherche de bits complète avec Python
oslo.config Chemin de recherche du fichier de configuration
Je ne peux pas effectuer de recherche avec # google-map. ..
Les moteurs de recherche fonctionnent avec python
Rechercher des tweets Twitter avec Python
Rationalisez la recherche Web avec Python
Essayez de résoudre l'itinéraire le plus court avec les données sociales Python + NetworkX +