見出し画像

日本全国交通事故マップ(2019年〜2022年) - 警察庁が公開している交通事故データをGISで使いやすくしました

はじめに

警察庁がオープンデータとして公開している交通事故統計情報では、2019年以降に起きた交通事故の場所や状況が網羅的に記録されています。この貴重な情報を、地理情報の分析や可視化で扱いやすいように加工して再配布します。

作成したウェブ地図はこちら:交通事故発生箇所マップ
データ出典元:警察庁ウェブサイト
加工したデータソース:データ (github)
関連記事:円グラフ付きマップとその解説記事

  • 2023年8月に公開された2022年分データまでを統合済みです。

  • 留意点として、2022年分を統合したデータは、昨年時点とは別のgithubリポジトリに格納しています。昨年時点のリポジトリはこちらをご参照ください。

警察庁の交通事故統計情報とは

この記事を執筆している時点で、2019年〜2022年に起きた130万件近い交通事故の記録が(個人が特定できない範囲で)公開されており、大変貴重な情報になっています。このオープンデータの活用例としては朝日新聞の「みえない交差点」の特別連載が有名ですが、他にも三井住友海上のマップなどで活用されている模様です。

データ加工の理由と内容

このオープンデータ、CSV形式で公開されているので扱いやすいのは確かなのですが、単純にデータサイズが大きいのと緯度経度の座標値が度分秒の形式で格納されているため、場合によって若干のアレンジが必要になります。そのため、私のほうで地理情報システムやウェブマップで扱いやすいように変換して公開しました。

具体的には、2019年〜2022年の4年分の本票の情報を統合し、緯度経度を「度分秒」から「10進数(小数点以下7桁まで)」に変換しています。

再配布しているデータ様式は2種類あります。100万件以上の膨大なデータをウェブ地図で表示するのに適したベクトルタイル形式と、地理情報システム(GIS)で分析するのに適したGeoPackage形式です。

データはここに全て格納してありますので、出典元である警察庁の利用規約に準じて自由に活用してください。GeoPackage形式のデータは"gpkg"のディレクトリに都道府県別に分けて入れています。ベクトルタイルはウェブ地図版のソースコード内("dist/app/tile")に一式入っています。

なお、後述のウェブ地図版ではPMTiles形式のベクトルタイルを読み込んでいますが、github上のデータはファイルサイズ等の関係でフォルダ分割されたベクトルタイルを格納しています。PMTiles形式のベクトルタイルの参照先は、ソースコードからご確認ください。当該ファイルのサイズは672MBとなっています。

ウェブ地図版について

ベクトルタイル形式データの使用例は、ウェブ地図版をみてもらうのが早いと思います。下記のように交通事故のあった場所を点で表示するシンプルなものです。タイル化によりスマホでもスムーズに閲覧できます。

画像1
2019年〜2021年の交通事故情報マップ

拡大すると道路に沿って点がプロットされていることがわかります。また、クリックすると事故内容や当時の状況が表示されます。

画像2
交通事故情報マップの拡大図

GeoPackageについて

GeoPackageはQGISをはじめとする主要なGISソフトウェアで読込可能な地理情報データの形式です。仕様がオープンで特定のベンダーに依存せず、利用しやすさの観点でもGISで扱うのに適した様式になっています。
都道府県別に分割して格納していますので、必要な部分だけをGISに取り込んで、マージや切り出しも容易に実施できるかと思います。

参考までに、千葉県のデータをQGISで読み込み、ヒートマップ化した例を示します。交通事故が多く発生している場所を視覚化しつつ、さらにその内訳や属性などをもとに考察することで、交通安全のための分析や啓発活動に使えそうです。

千葉県の2019年〜2022年の交通事故記録

なお、ベクトルタイル化はTippecanoeを利用し、GeoPackageへの変換はQGISを利用しました。また、ウェブ地図はMaplibreをベースに構築しています。

留意点

センシティブなデータですので、分析の際はご注意ください。事故が集中しているから今もその場所が危険だとは一概に言い切れず、その後信号機が設置されるなど、適切な対策がされたかが最も重要だと思います。
また、データでは1レコードに過ぎなくとも、当然ながら交通事故1件はその人の一生を大きく左右するものです。データを取り扱う際にはくれぐれもその点をお忘れなく。自戒を込めて書いておきます。

この記事が気に入ったらサポートをしてみませんか?