[PYTHON] Ich möchte die Standortinformationen von GTFS Realtime auf Jupyter zeichnen! (Mit Ballon)

Einführung

Der aktuelle Standort des Busses kann auf Google Map angezeigt werden. Lassen Sie uns ihn jedoch selbst zuordnen. Lassen Sie es uns auf Python mit einem Webkarten-Display-Plug namens Folium anzeigen. Die Kartensymbole sind anklickbar und können auch detaillierte Informationen anzeigen.

Implementierung

realtimebus.py3


from google.transit import gtfs_realtime_pb2
import urllib.request, urllib.error
import folium
import pandas as pd

#GTFS-Öffentliche URL von RT(Uno Bus)
url ='http://www3.unobus.co.jp/GTFS/GTFS_RT-VP.bin'
#Erklärung des Spaltennamens
list_df = pd.DataFrame(columns=['id' , 'vehicle_id', 'trip_id','vehicle_timestamp','longitude','latitude','occupancy_status'])
feed = gtfs_realtime_pb2.FeedMessage()

#Daten herunterladen und Format konvertieren
with urllib.request.urlopen(url) as res: #Daten herunterladen
    feed.ParseFromString(res.read()) #Protokollpuffer deserialisieren
    for entity in feed.entity:
        tmp_se = pd.Series( [
              entity.id,                         #Fahrzeugidentifikation
              entity.vehicle.vehicle.id,         #Fahrzeugnummer
              entity.vehicle.trip.trip_id,       #Routennummer?
              entity.vehicle.timestamp,          #Fahrzeugzeit
              entity.vehicle.position.longitude, #Fahrzeugspielraum
              entity.vehicle.position.latitude,  #Fahrzeuglänge
              entity.vehicle.occupancy_status   #Überlastungsgrad
        ], index=list_df.columns )
        list_df = list_df.append( tmp_se, ignore_index=True )

#Berechnen Sie den Mittelpunkt der Karte
average_pos = list_df.mean()
#Erstellen Sie eine Karte in der Nähe der Mittelkoordinaten
m = folium.Map(location=[average_pos['latitude'], average_pos['longitude']], zoom_start=11)
#Zeichnen Sie jeden Bus(Die Farbe ist blau)
list_df.apply(lambda row:
             folium.Marker(
                 location=[row['latitude'], row['longitude']],
                 popup='<table border="1"><tr><th>occupancy_status</th></tr><tr><td>'
                 +str(row['occupancy_status'])
                 +'</td></tr></table>',
                 icon=folium.Icon(color='blue',icon='bus', prefix='fa')
             ).add_to(m), axis=1)
m

Ergebnis

Die heruntergeladenen Echtzeit-Standortinformationen wurden auf der Karte aufgezeichnet

スクリーンショット 2020-08-08 22.43.47.png

Der Zeitpunkt der Ausführung ist nach 22:30 Uhr, aber der Bus fährt noch. .. ..

Recommended Posts

Ich möchte die Standortinformationen von GTFS Realtime auf Jupyter zeichnen! (Mit Ballon)
Ich habe versucht, die Standortinformationen des Odakyu-Busses zu erhalten
Ich möchte Betriebsinformationen über die Yahoo-Route erhalten
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Ich möchte die Position meines Gesichts mit OpenCV überprüfen!
Ich möchte einen Blog mit Jupyter Notebook schreiben
Ich möchte meine Gefühle mit den Texten von Mr. Children ausdrücken
Ich möchte das automatische Löschen des tmp-Bereichs in RHEL7 stoppen
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Wenn ich mit matplotlib eine große Anzahl von Diagrammen generiere, möchte ich das Diagramm nicht auf dem Bildschirm anzeigen (Jupyter-Umgebung).
Ich möchte das Erscheinungsbild von zabbix anpassen
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
Eine Bibliothek für Datenwissenschaft "Ich möchte das tun" auf dem Jupyter Notebook
Ich bin ein Amateur am 14. Tag von Python, aber ich möchte maschinelles Lernen mit Scicit-Learn ausprobieren
Ich möchte das Ausführungsergebnis von strace erfassen
Fügen Sie mit Matplotlib Informationen am unteren Rand der Abbildung hinzu
Zeichnen auf Jupyter mit der Plot-Funktion von Pandas
Ich möchte mit Python-Datenklasse nach hinten erben
Ich möchte die Grundlagen von Bokeh vollständig verstehen
Ich habe versucht, die Spacha-Informationen von VTuber zu visualisieren
Ich möchte Lambda mit Python auf Mac AWS!
Ich möchte die Sicherheit der SSH-Verbindung erhöhen
Ich möchte einen Screenshot der Site in Docker mit einer beliebigen Schriftart erstellen
Ich habe versucht, die Eigenschaften der neuen Informationen über mit dem Corona-Virus infizierte Personen mit Wordcloud zu visualisieren
Ich habe versucht, es einfach zu machen, die Einstellung des authentifizierten Proxys auf Jupyter zu ändern
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich möchte eine andere Version von Python mit pyvenv angeben
Memo, um den Wert auf der HTML-Javascript-Seite mit Jupiter zu erhalten
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Ich habe die grundlegende Grammatik von Python in Jupyter Lab geschrieben
Ich möchte eine Jupyter-Umgebung mit einem Befehl starten
Ich möchte nur die SudachiPy-Normalisierungsverarbeitung verwenden
Ich möchte mit Numpy die japanische Flagge in die Palau-Flagge ändern
Ich möchte mit GAN Schwarzweißfotos von Erinnerungen ausmalen
[Python] Ich möchte die Option -h mit argparse verwenden
Ich möchte die Authentizität eines Elements eines numpy-Arrays bestimmen
Ich möchte eine virtuelle Umgebung mit Jupyter Notebook verwenden!
Ich möchte die Natur von Python und Pip kennenlernen
Keras Ich möchte die Ausgabe einer beliebigen Ebene erhalten !!
Ich möchte die Legende der IT-Technologiewelt kennenlernen
Ich habe die Grundoperation von matplotlib in Jupyter Lab geschrieben
Ich möchte das symbolische Linkziel von / lib64 unter CentOS von / usr / lib64 in / my-lib64 ändern
[Pytorch] Ich möchte die Trainingsparameter des Modells manuell zuweisen
Ich möchte das Wetter mit LINE bot feat.Heroku + Python wissen
Machen Sie sich mit der Pipeline von spaCy vertraut (wollen Sie es sein)
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Ich möchte mit Python eine beliebige URL aus der Zeichenfolge der HTML-Quelle extrahieren
Ich möchte die HTML-Version der OpenCV 3.1-Version "OpenCV-Python Tutorials" lesen
[Einführung in StyleGAN] Ich habe mit "The Life of a Man" ♬ gespielt
Ich habe mit Kaggle Start Book basierend auf Kaggle studiert [Teil 1]
Ich habe am Wochenende versucht, mit Bitcoin Systre zu beginnen
Ich habe die Grundoperation von Pandas im Jupyter Lab geschrieben (Teil 1)
Verwendung von Jupyter am Frontend von Spacon ITO
Ich habe versucht, die Größe des logischen Volumes mit LVM zu erweitern
Vorerst möchte ich jede Datei mit ffmpeg konvertieren !!
Ich möchte ○○ mit Pandas machen
Ich habe das Bild der Science University auf Twitter mit Word2Vec überprüft.
Ich möchte die Bevölkerung jedes Landes der Welt kennenlernen.
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern