ジオコーディング(アドレスジオコーディング,アドレスマッチングともいう)とは,住所情報を使って対応する緯度経度(ジオコード)を付加することをいう.
ライブラリ:sf
,tidyverse
境界データのダウンロード
犯罪オープンデータのダウンロード
car_theft <-
read.csv("kanagawa_2018zidousyatou.csv",
fileEncoding="CP932")
#自動車盗の中身
car_theft %>%
head()
ジオコーディング
car_theft
の6列目(都道府県),7列目(市区町村),8列目(町丁目)に発生地の情報がある.これを使い,ジオコーディング.
東京大学空間情報科学研究センターが提供するCSVアドレスマッチングサービスを利用.
詳細はチュートリアルを参照.
CSVアドレスマッチングサービスからパラメータ設定.ジオコード付きのデータを作成.
6
列目,7
列目,8
列目にあることを指示.kanagawa_2018zidousyatou.csv
を選択し,送信.kanagawa_2018zidousyatou_1.csv
として保存.
car_theft
としてファイルを読込(read.csv()
).fX
が経度,fY
が緯度が新たに加わったことが確認できる.car_theft <-
read.csv("kanagawa_2018zidousyatou_1.csv",
fileEncoding="CP932")
#自動車盗の中身
car_theft %>%
head()
発生地点の可視化
ggplot()
で発生地点を可視化.
点が密集している場所では自動車盗が多いことが予想されるが,同じ発生地点で自動車盗が複数回起きている場合は点が完全に重なり,地図上では複数回起きていることを確認できない.
geom_bin2d()
とstat_density_2d()
を使い,色分けする.
geom_bin2d()
:長方形(タイル)の領域をつくり,その領域内の自動車盗数に応じて色を付ける.このような地図はヒートマップ(密度マップ)とよばれる.ggplot()+
geom_sf(data=Kanagawa_map, fill="dark gray")+
geom_bin2d(data=car_theft, aes(x=fX, y=fY))+
scale_fill_viridis_c(option="G",
direction=-1)+
geom_sf(data=Kanagawa_map, fill="NA")+
labs(fill="盗数", x="", y="",
caption="出典:国土交通省国土数値情報,神奈川県警察オープンデータサイト")+
ggtitle("自動車盗分布(2018年)")+
coord_sf(datum=NA)+
theme_dark()+
theme(plot.caption=element_text(hjust=0))
カーネル密度推定
stat_density_2d()
:ポイントのない地点も含め,より連続的な領域を考え,色分けする.領域内の自動車盗数はカーネル密度推定によって求める.
fill=stat(level)
:色分けをレベル(この場合,自動車盗数)の違いに応じて行うように指示.geom="polygon"
:領域を色分けするように指示.このオプションを指示しない場合は,同色の等高線が表示.bins=7
:階級(ビン)数の指定.このオプションを指示しないことも考えられるが,階級が多すぎると雑然とした印象.連続にならない箇所も出現.theme_dark()
:背景を暗くするように指示.ggplot()+
geom_sf(data=Kanagawa_map, fill="dark gray")+
stat_density_2d(data=car_theft,
aes(x=fX, y=fY,
fill=after_stat(level)),
geom="polygon", bins=7)+
scale_fill_viridis_c(option="G",
direction=-1)+
geom_sf(data=Kanagawa_map, fill="NA")+
labs(fill="盗数", x="", y="",
caption="出典:国土交通省国土数値情報,神奈川県警察オープンデータサイト")+
ggtitle("カーネル密度推定による自動車盗分布(2018年)")+
coord_sf(datum=NA)+
theme_dark()+
theme(plot.caption=element_text(hjust=0))
bins
を指定しない場合.ggplot()+
geom_sf(data=Kanagawa_map, fill="dark gray")+
stat_density_2d(data=car_theft,
aes(x=fX, y=fY,
fill=after_stat(level)),
geom="polygon")+
scale_fill_viridis_c(option="G",
direction=-1)+
geom_sf(data=Kanagawa_map, fill="NA")+
labs(fill="盗数", x="", y="",
caption="出典:国土交通省国土数値情報,神奈川県警察オープンデータサイト")+
ggtitle("カーネル密度推定による自動車盗分布(2018年)")+
coord_sf(datum=NA)+
theme_dark()+
theme(plot.caption=element_text(hjust=0))
自転車盗の発生地点とカーネル密度推定の可視化
平成30年発生の自転車盗は点の重っている地点が多く,密集もしている.
自転車盗の分布(カーネル密度推定)は次のような地図になる.
bicycle_theft
とした.
bins
)のオプションは外して可視化.ggplot()+
geom_sf(data=Kanagawa_map, fill="dark gray")+
stat_density_2d(data=bicycle_theft,
aes(x=fX, y=fY,
fill=after_stat(level)),
geom="polygon")+
scale_fill_viridis_c(option="G",
direction=-1)+
geom_sf(data=Kanagawa_map, fill="NA")+
labs(fill="盗数", x="", y="",
caption="出典:国土交通省国土数値情報,神奈川県警察オープンデータサイト")+
ggtitle("カーネル密度推定による自転車盗分布(2018年)")+
coord_sf(datum=NA)+
theme_dark()+
theme(plot.caption=element_text(hjust=0))
Rによる地理空間データの可視化