Einführung in die Bibliothek "** Scikit-Mobilität **" für den Umgang mit menschlichen Flussdaten in Python. Dieses Mal wird der Inhalt einführend sein, damit Menschen, die "Was sind überhaupt menschliche Flussdaten?" Sind, interessiert sind.
github[https://github.com/scikit-mobility/scikit-mobility]
Kennen Sie eine Python-Bibliothek namens "** Scikit-Mobility **"? Erst letztes Jahr erstellt, die Sie möglicherweise noch nicht kennen. ** Zur Analyse menschlicher Bewegungsdaten (im Folgenden als menschliche Flussdaten bezeichnet) Eine Funktionsbibliothek **. In den letzten Jahren wurde eine große Menge an Standortinformationen in Karten-Apps und SNS gesammelt und Algorithmen zur Verarbeitung und Analyse von Daten zum menschlichen Fluss, einschließlich der Bewertung von Datenschutzrisiken, wurden eingeführt.
Zunächst möchte ich kurz "** Was sind menschliche Flussdaten? " und " Was kann Scikit-Mobilität tun? **" vorstellen.
Scikit-Mobilität verarbeitet hauptsächlich ** 2 Arten ** von Daten.
** Bewegungsverlaufsdaten (Trajektorien) ** Breiten- und Längengraddaten zeigen die Bewegungsbahn. Für vertraute Elemente können Sie GPS verwenden, um aktuelle Standortinformationen zu sammeln und zu analysieren, die in Karten-Apps und SNS verwendet werden, sowie das langfristige Verhalten in Forschung und Forschung.
** Bewegliche Flussdaten (Flüsse) ** Es sind die Daten des Bewegungsflusses von Menschen zwischen Orten. Es sind Daten, die zeigen, wie viele Personen von einem bestimmten Ort (Startpunkt / Orient) zu einem bestimmten Ort (Endpunkt / Ziel) wie einer OD-Umfrage gegangen sind.
Mit Scikit-Mobilität können Sie die folgende Analyse von menschlichen Flussdaten problemlos durchführen.
Ich möchte mich in Zukunft mit jedem Inhalt befassen. Dieses Mal möchte ich jedoch kurz zuvor etwas mehr über "** Was sind menschliche Flussdaten überhaupt? **" vorstellen.
Lassen Sie uns zuerst die Bibliothek installieren.
$ pip install scikit-mobility
Verwenden Sie die auf Github bereitgestellten Beispieldaten. (* Bitte beachten Sie, dass es automatisch heruntergeladen wird. Es handelt sich um eine Textdatei von ca. 2 MB.)
Dies wird von Microsoft GeoLife GPS Trajectories veröffentlicht % 2Fen-us% 2Fdownloads% 2Fb16d359d-d164-469e-9fd4-daa38f2b2e13% 2F). Das Microsoft Research Asia Geolife-Projekt sammelt von 2007 bis 2012 GPS-Protokolldaten für 182 Benutzer in Peking.
Die Beispieldaten enthalten Daten für zwei von ihnen.
Lesen wir die heruntergeladenen Daten.
Bewegungsverlaufsdaten werden mit einem Datentyp namens "TrjDataFrame" gelesen. Dies ist eine Erweiterung des DataFrame von pandas.
#Daten lesen
tdf = skmob.TrajDataFrame.from_file('geolife_sample.txt.gz'
,latitude='lat'
,longitude='lon'
,user_id='user'
,datetime='datetime'
)
#Überprüfen Sie den Inhalt
print(tdf.head())
Der Inhalt ist so.
uid lat lng datetime
0 1 39.984094 116.319236 2008-10-23 13:53:05
1 1 39.984198 116.319322 2008-10-23 13:53:06
2 1 39.984224 116.319402 2008-10-23 13:53:11
3 1 39.984211 116.319389 2008-10-23 13:53:16
Um "TrajDataFrame" zu erstellen, müssen Sie die Spaltennamen angeben, die den drei Argumenten entsprechen.
Dies sind die grundlegenden Informationen der Bewegungsgeschichte, z. B. "wann und wo Sie waren".
Optional können Sie auch die folgenden Argumente angeben
Natürlich kann jede andere Spalte problemlos gelesen werden.
Es ist auch möglich, von einem Datenrahmen in einen "TrajDataFrame" zu konvertieren.
import pandas as pd
import skmob
#Vorbereitung der Probendaten
data_list = [[1, 39.984094, 116.319236, '2008-10-23 13:53:05'],
[1, 39.984198, 116.319322, '2008-10-23 13:53:06'],
[1, 39.984224, 116.319402, '2008-10-23 13:53:11'],
[1, 39.984211, 116.319389, '2008-10-23 13:53:16']]
#Erstellen Sie einen Datenrahmen
data_df= pd.DataFrame(data_list, columns=['user', 'lat', 'lon', 'datetime'])
print('Vor der Konvertierung: ', type(data_df))
#In TrjDataFrame konvertieren
tdf = skmob.TrajDataFrame(data_df, latitude='lat', longitude='lon', datetime='datetime', user_id='user')
print('Nach der Konvertierung: ', type(tdf))
print(tdf.head())
Vor der Konvertierung: <class 'pandas.core.frame.DataFrame'>
Nach der Konvertierung: <class 'skmob.core.trajectorydataframe.TrajDataFrame'>
uid lat lng datetime
0 1 39.984094 116.319236 2008-10-23 13:53:05
1 1 39.984198 116.319322 2008-10-23 13:53:06
2 1 39.984224 116.319402 2008-10-23 13:53:11
3 1 39.984211 116.319389 2008-10-23 13:53:16
Sie können nicht erkennen, wo sich die Breiten- und Längengrade befinden, indem Sie nur die Zahlen betrachten. Es ist wichtig, auf der Karte zu überprüfen. TrajDataFrame kann wie folgt einfach visualisiert werden.
tdf.plot_trajectory(zoom=12, weight=3, opacity=0.9, tiles='Stamen Toner')
Jede UID wird automatisch farbcodiert und angezeigt. Wenn Sie auf die Karte schauen, können Sie sehen, wohin Sie sich bewegt haben, wie viel Aktivität Sie haben und wohin Sie gehen.
Sie können sehen, wie weit sich der Benutzer bewegt hat, indem Sie herauszoomen, bis Sie den gesamten Aktivitätsbereich sehen können. Ein Benutzer ist ziemlich weit gegangen.
Zusätzlich werden Markierungen für das erste Protokoll (grün) und das letzte Protokoll (rot) jedes Benutzers angezeigt. Klicken Sie hier, um Zeit und Breite / Länge anzuzeigen
Indem Sie es auf diese Weise auf der Karte visualisieren, wird es einfacher, die Bewegung des Benutzers zu verstehen.
Was haben Sie gedacht. Dieses Mal habe ich kurz die Scikit-Mobilität und die Art der damit verbundenen Daten vorgestellt. Da Sie die Bewegungsverlaufsdaten normalerweise nicht sehen, haben Sie sie möglicherweise zum ersten Mal gesehen. Ich hoffe, Sie nutzen diese Gelegenheit, um sich für die Analyse menschlicher Flussdaten zu interessieren. Wenn Sie Google Map verwenden, kann es interessant sein, Ihre Standortinformationen herunterzuladen und zu analysieren. (Google Map-Verlauf herunterladen (Zeitleiste)) Im nächsten und den folgenden Artikeln möchte ich Flussdaten sowie spezifische Funktionen und Algorithmen vorstellen. Das ist alles für diese Zeit! Danke fürs Lesen!