2017
01.25

会津若松市でOpenDataで公開されている走行データ(1万件)を解析

OpenData

佐々木です。

Datalabで解析第二弾として、会津若松市で公開されている公用車の走行データ(Data for Citizen)を取り込んでみました。結果は下記の通り。加速度から、どの信号で停止したかがわかりました(^^;

本当は、事故が発生しそうなポイントとか探せないかなぁと思ったのですが、簡単につくると、ここらへんが限界。時間ある時に事故の発生しそうなポイントをプロットしようと思うのですが、加速度の変化だけで推測するにはちょっと、工夫がいりそう。

import json
import requests
import gmaps
import numpy as np

url = 'http://www.data4citizen.jp/app/developer/query/query?odql=SELECT%20car_name%0A%2C%20measurement_data_id%0A%2C%20measurement_datetime%0A%2C%20measurement_ms%0A%2C%20latitude%0A%2C%20longitude%0A%2C%20gps_error_meter%0A%2C%20accel_x_transverse%0A%2C%20accel_y_longitudinal%0A%2C%20accel_z_vertical%0AFROM%20O_CAR_TRAFFIC_DATA%20limit%2010000'
r = requests.get(url)

data = r.json()
latlon = np.empty((0,2), float)
x = 0
y = 0
z = 0
for item in data["data"]:
 lat = item["latitude"]
 lon = item["longitude"]
 _latlon = np.array([[lat, lon]])
 _x = x
 _y = y
 _z = z
 x = item["accel_x_transverse"]
 y = item["accel_y_longitudinal"]
 z = item["accel_z_vertical"]
 if np.power((_x*100-x*100),2) > 5000:
  latlon = np.append(latlon, _latlon, axis=0)
 elif np.power((_y*100-y*100),2) > 5000:
  latlon = np.append(latlon, _latlon, axis=0)
 elif np.power((_z*100-z*100),2) > 5000:
  latlon = np.append(latlon, _latlon, axis=0)
 
gmaps.configure(api_key="AIzaS.....")
 
m = gmaps.Map()
m.add_layer(gmaps.Heatmap(data=latlon.tolist()))
m

DatalabのNotebookは下記で公開してます。
https://github.com/FaBoPlatform/OpenData/blob/master/AizuCar.ipynb

Comment

  1. No comments yet.

  1. No trackbacks yet.

You must be logged in to post a comment.