[PYTHON] Erster OSMnx ~ Mit der kürzesten Routensuche ~

Es gab nicht viele japanische Artikel über OSMnx, und es war für mich als schwache englische Person zu schwierig, Informationen zu sammeln ... Also schrieb ich, dass es für andere schwache Engländer nützlich sein sollte. Daher ist es ein einführender Artikel über OSMnx für das schwache Englisch durch das schwache Englisch.

1. 1. Über OSMnx

Was ist OSMnx? Ich denke, es gibt viele Leute, die das denken, deshalb werde ich am Anfang ein wenig erklären. Kennen Sie OpenStreet zuerst?

Was ist OpenStreetMap?

Betrachten Sie es als eine Kartenversion von Wikipedia. Eine Karte, die jeder schreiben und verwenden kann, ist OpenStreetMap. Informationen wie Ortsnamen und Straßen sind auf dieser Karte geschrieben.

Und OSMnx wurde entwickelt, um diese Informationen zu verwenden.

Was ist OSMnx?

Dies ist ein Python-Paket zur Verwendung der Kartendaten von OpenStreetMap. Kartendaten können erfasst, analysiert und visualisiert werden.

2. Schritte zum Installieren von OSMnx

Die vom Entwickler geschriebene Installationsmethode hat es einfach gemacht, daher werde ich sie veröffentlichen.

STEP1 Lassen Sie uns zunächst Anaconda hinzufügen. Informationen zur Installation von Anaconda finden Sie unter Andere Websites.

Verschiedene Websites zeigen auch, wie es mit dem Befehl pip gemacht wird, aber es ist leicht, bei der Installation von Geopandas mit einem Fehler festzuhalten (Erfahrungsgeschichte)

STEP2 Sobald Sie Anaconda haben, geben Sie einfach diese beiden Befehle ein. conda config --prepend channels conda-forge conda create -n ox --strict-channel-priority osmnx

Jetzt können Sie OSMnx in Anacondas virtueller Umgebung ox verwenden.

Bei Verwendung von OSMnx beim Öffnen der Anaconda-Eingabeaufforderung activate ox Geben Sie den Befehl ein, um zur virtuellen Umgebung ox zu wechseln.

3. 3. Kürzeste Routensuche nach OSMnx

Die OSMnx-Installationsmethode war nicht sehr lecker, daher füge ich die kürzeste Routensuche hinzu.

Dieses Mal werden wir ein Straßennetz erwerben, das sich auf Tokyo Sky Tree konzentriert. Auf der OpenStreetMap sieht die Straße um Tokyo Sky Tree so aus. tokyoSkyTreeMap.png

Und es ist ein Bild, das das Straßennetz mit OSMnx erfasst und angezeigt hat. tokyoSkyTreeGraph.png

Sie können sehen, dass sie übereinstimmen, wenn Sie sie stapeln. overlay.jpg

Schauen wir uns die Arten dieses Straßennetzes genauer an und wie man es erhält.

Straßennetzart

Es gibt Straßen für Fußgänger und Autos, oder? So können Sie verschiedene Arten von Straßennetzen erhalten.

Dieses Mal haben wir das Straßennetz von'drive 'erworben.

So erhalten Sie ein Straßennetz

Beim Erwerb des Straßennetzes

Geben Sie eine davon an.

Dieses Mal werden der Breiten- und Längengrad angegeben und das Straßennetz erfasst.

Holen Sie sich nach Breite und Länge

Dies ist die Funktion, um das Straßennetz aus Längen- und Breitengraden zu ermitteln.

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



 * center_point --Taple mit Längen- und Breitengrad
 * dist-Wie viele Meter Daten sollten vom angegebenen Ort entnommen werden?
 * network_type - welche Art von Straßennetz soll man nehmen?

 Es gibt andere Argumente, die jedoch weggelassen wurden

## Kürzeste Routensuche
 Bisher haben wir gesehen, wie man ein Straßennetz bekommt.
 Solange Sie das Straßennetz haben, können Sie mit dieser Funktion einfach die kürzeste Routensuche berechnen.

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


 * G-Input-Diagramm
 * orig - Knoten starten
 * Zielknoten
 * weight --Geben Sie die Länge ein, wenn Sie den kürzesten Weg finden

 Der gesamte Code sieht folgendermaßen aus:


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

import osmnx as ox

#Breite und Länge des Tokyo Sky Tree
location_point = (35.7100069, 139.8108103)
#Diagramm der Straßen innerhalb von 300 m zentriert auf Tokyo Sky Tree
G = ox.graph_from_point(location_point, dist=300, network_type='drive')

#Zeigen Sie das erfasste Straßennetz an
ox.plot_graph(G, node_color='r')

#Berechnen Sie die kürzeste Route von orig zu dest eines Knotens
orig = list(G)[0]
dest = list(G)[1]
route = ox.shortest_path(G, orig, dest, weight='length')
#Zeigen Sie den kürzesten Weg
ox.plot_graph_route(G, route, route_color='y', route_linewidth=6, node_size=0)

Wenn dies ausgeführt wird, wird ein Diagramm der kürzesten Route von Knoten zu Knoten ausgegeben. Diesmal werden der 0. und 1. Knoten entsprechend ausgewählt.

tokyoSkyTreeRoot.png

Ich konnte bestätigen, dass die Route, die die kürzeste Route zu sein scheint, ordnungsgemäß ausgegeben wird.

Referenzmaterial

Vom Entwickler geschriebene Installationsmethode OpenStreetMap Entwickler-Github ・ Viele Beispielprogramme wurden hochgeladen. Beschreibung des OSMnx-Moduls

Recommended Posts

Erster OSMnx ~ Mit der kürzesten Routensuche ~
Implementieren Sie die Suche nach dem kürzesten Pfad für das Labyrinth
Finden Sie den kürzesten Weg mit dem Python Dijkstra-Algorithmus
Sequentielle Suche mit Python
Dichotomie mit Python
Dichotomie mit Python 3
Datenbank mit db.py durchsuchen
In-Graph-Pfadsuche mit Networkx
Vollbit-Suche mit Go
Erste Nervenzellsimulation mit NEURON + Python
Vollbit-Suche mit Python
oslo.config Suchpfad für Konfigurationsdatei
Ich kann nicht mit # google-map suchen. ..
Suchmaschinen arbeiten mit Python
Suche nach Twitter-Tweets mit Python
Optimieren Sie die Websuche mit Python
Versuchen Sie, den kürzesten Weg mit Python + NetworkX + Social Data zu lösen