2017
01.29

NewYorkのTaxiのデータから長距離乗車(300km以上)の乗車ポイントのヒートマップを作る

OpenData

佐々木です。

1.7億程度あるNew YorkのTaxiのログから長距離乗車のHeatMapを作ってみる。データは下記にBigQueryのデータとして公開されている。

https://bigquery.cloud.google.com/table/833682135931:nyctaxi.trip_data

Datalabでは、高速にBigQueryからデータの取得/解析ができるので、Datalabに取り込みデータをGoogle Mapsにプロットしてみる。Datalabを用いたBigQueryへのアクセス方法は、DatalabのGithubのページが参考になる。

今回は、datalab.bigqueryとnumpyとgmapsを使用するので、importする。

import datalab.bigquery as bq
import numpy as np
import gmaps

次に、SQLを記載する。–module 変数名とする事で、変数名を使ってデータの処理をできるようになる。

%%sql --module taxilog
SELECT pickup_latitude,pickup_longitude FROM [nyc-tlc:green.trips_2015] WHERE distance_between_service > 300 AND pickup_latitude > 40.5 AND pickup_latitude < 40.9

taxilogに対してSQLを実行し、結果を表示する。

q = bq.Query(taxilog)
results = q.results(use_cache = False)
results

取得したデータを、Google Mapでプロットするために配列に入れ直す。

pickupPoints = np.empty((0,2), float)

for item in results:
 lat = item['pickup_latitude']
 lon = item['pickup_longitude']
 pickupPoints = np.append(pickupPoints, np.array([[lat, lon]]), axis=0)

最後にGoogle Mapsにプロットして完成。長距離乗車(300km以上)の乗車地点のヒートマップが完成する。

gmaps.configure(api_key="AIza.....")

m = gmaps.Map()
m.add_layer(gmaps.Heatmap(data=pickupPoints.tolist()))
m

DatalabのNotebookは、下記URLに公開しています。

https://github.com/FaBoPlatform/OpenData/blob/master/NewYorkTaxi.ipynb

Comment

  1. No comments yet.

  1. No trackbacks yet.

You must be logged in to post a comment.