「Pythonでの空間移動のアニメーション化」

「Pythonでの空間移動をアニメーション化する方法」

オリジン・デスティネーション行列を魅力的なアニメーションに変換する方法

バイクシェアリングデータからの移動の静的地図。画像は著者によるものです。

空間データは視覚的な性質を持っており、Pythonで(地理)空間データを可視化するための進歩により、さまざまな形状のマップを簡単にプロットすることができるようになりました。チャロプレス地図など、静的なポリゴンと変化する色を持つ特に、グラフや単純な地図をアニメーション化することは非常に容易です。

しかし、移動データやラインのアニメーション化に関しては、少々手間がかかります。ここでは、Pythonで空間移動データをアニメーション化する方法の例を示します。

初期データ

まず、いくつかの (ライン)データが必要です。今回の例では、ノルウェーのオスロ市の自転車共有システムから自転車共有データを使用します。データはノルウェー政府公開データライセンス(NLOD)2.0/オープンガバメントライセンスのもとで公開されており、Oslo Bysykkelのホームページから入手できます。

import geopandas as gpdimport pandas as pd# CSVからデータをインポートdata = pd.read_csv("https://data.urbansharing.com/oslobysykkel.no/trips/v1/2023/10.csv")data = data[['started_at','ended_at','duration', 'start_station_latitude', 'start_station_longitude','end_station_latitude', 'end_station_longitude']]# データを日付でサブセットデータ['start_day'] = data['started_at'].apply(lambda x: int(x[8:11]))data = data[data["start_day"]==day]data

データは旅行の始点と終点から成り立っているため、ポイント間にラインを作成する必要があります。そのために、NetworkXのディクストラアルゴリズムの実装を使用することができます。

移動ラインの作成

移動ラインを作成する前に、最短経路計算に使用できる道路のネットワークが必要です。 osmnxを使用して、興味のある地域のOpenStreetMapから自転車ネットワークを取得できます。研究エリアには、自転車の旅行データの範囲を使用します。

import osmnx as ox# 駅からGeoDataFrameを作成initial_data = gpd.GeoDataFrame(data, geometry=gpd.points_from_xy(data['start_station_longitude'],data['start_station_latitude']),crs="EPSG:4326")# 総境界を取得total_bounds =...

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more