都筑総研@HatenaBlog

データ処理

交通事故統計情報のオープンデータをQGISに読み込む

 はじめに

警察庁から公開されているオープンデータ「交通事故統計情報」には事故が発生した位置情報が記録されています。この位置情報をGISオープンソースソフトのQGISをつかって地図上にプロットします。

目次

 

作業のポイント

  1. 緯度経度の表記が特殊なためQGISのDBマネージャで前処理を行います。
  2. QGISのDBマネージャーでエラーが出るので、配布データのフィールド名を読み込まないようにします。

実施環境及びデータの出典

1. データのダウンロード

警視庁の配布サイトから2020年(令和2年)のCSVデータをダウンロードします。

2. QGISへ読み込み

2.1. CSVテキストレイヤの追加

QGISのメニュー レイヤ→レイヤを追加→CSVテキストレイヤの追加 を選択し、データソースマネージャー(CSVを読み込むウインドウ)を表示させます。

f:id:g0031067:20210815221729p:plain

CSVテキストレイヤを追加

2.2. ヘッダーを読み飛ばしてCSVデータを取り込む

ポイントは3つ

①  エンコーディングShift_JISに指定すること
② 破棄するヘッダ行数に1を指定して、CSVファイルに記載されているフィールド名を取り込まないこと

③ジオメトリ定義を「ジオメトリなし」とすること

f:id:g0031067:20210815222832p:plain

データ読み込みが完了すると、レイヤーに「honhyo_2020」が表示されます。

f:id:g0031067:20210817192140p:plain

 

3. データの加工と空間情報へ変換

DBツールを用いて位置情報の数値を空間情報に変換します。

3.1. DBマネージャの起動

QGISメニューからの「データベース→DBマネージャ」を選択し起動します。

f:id:g0031067:20210817195904p:plain

3.2. 仮想レイヤをSQLウインドウを起動

DBマネージャでは、QGISがインストールされているPCからアクセス可能なデータベースからデータを取得することができますが、QGISに読み込んだレイヤは「仮想レイヤ」としてSQLを実行することができます。

 

「仮想レイヤ」を選択、オレンジ色で囲んだアイコン「SQLウインドウ」をクリックします。

f:id:g0031067:20210817200529p:plain

 

3.3. SQLの記述

仮想レイヤでは、レイヤー名がテーブル名として扱われます。

また、列名を付与せずCSVを読み込んだ場合、QGISによってfield_の後に1から始まる列番号の名前が自動的に付与されます。

 56列(field_56)が経度、55列(field_55)緯度です。

 

3.3.1 座標の表記形式

このデータはDMS形式(度分秒形式)で経度10桁、緯度9桁の固定長で記載されています。

<記載例>

経度:1394443.55秒 → 1394443550

緯度: 353930.9秒 → 353930900

 

3.3.2 データ加工クエリ

DMS形式で記載されているデータをSQLでDgree形式(度単位10進数形式)に変換します。度、分、秒の要素を切り出した後、分は60、秒は3600で割ることで度に単位を統一することができます。

秒に関しては今回のフォーマットで上記のピンク色とオレンジ色部分の5桁を抽出すると、0.001秒が1と表現されているため,3600000の商を求めます。

 

交通事故統計情報の緯度経度変換クエリ

3.3.3 ジオメトリデータの読み込み
  • 「実行」ボタンをSQLを実行
  • ジオメトリカラム(今回はgeom)を指定
  • レイヤ名の入力(今回はhonhyo_2020_geom)
  • 「読み込み」ボタンをクリック

f:id:g0031067:20210818205241p:plain

3.3.4. 座標参照系の設定

クエリでは座標参照系を指定できていないため、レイヤーに表示されていているhonhyo_2020_geomを右クリックして、プロバティ画面を開き参照座標系を世界測地系(EPSG:4326)を指定します。

 

f:id:g0031067:20210818211529p:plain

 

4. 地図上にプロット

東京都心

f:id:g0031067:20210818212011p:plain

新宿駅付近

f:id:g0031067:20210818213433p:plain

© OpenStreetMap contributors