背景

災害時の避難所におけるトイレの環境をビッグデータとICTを利用して改善するための提案の1つとして、平成28(2016)年の熊本地震で特に被害の大きかった南阿蘇市を例に、分析を行い、そのデータや結果について視覚化した。

分析に用いた環境

データ分析には、統計解析環境であるR言語および、地図に描画するためのパッケージであるleaflet等を用いた。

パッケージの読み出し

> library(rgdal)
> library(leaflet)
> library(classInt)
> library(RColorBrewer)
> library(knitr)

分析に用いたデータ

南阿蘇村における避難所・避難場所および収容人数等については、国土交通省の「」(現在サーバーが落ちている)を、南阿蘇村における実際の避難の状況については南阿蘇村ホームページの平成28年熊本地震に関する情報のうち「避難者数について(最新版)」を用いた(http://www.vill.minamiaso.lg.jp/site/28kumamotozisinn/h28nenhinannsyozyouhou.html)。

シェープファイルの読み込み

> k1<- readOGR("shp/P20-12_43.shp", layer = "P20-12_43")
OGR data source with driver: ESRI Shapefile 
Source: "shp/P20-12_43.shp", layer: "P20-12_43"
with 1969 features
It has 17 fields

データクレンジング

熊本県のデータから、南阿蘇村だけを抽出し、必要な変数だけを選別した。

> ad1 <- unique(k1@data$P20_003)
> ad2 <- ad1[grep("(南阿蘇)", ad1)]
> k2 <- subset(k1, subset = (k1@data$P20_003 %in% ad2) )
> k3 <- data.frame(name = k2@data$P20_002, 
+                      address = k2@data$P20_003, 
+                      lat = k2@data$緯度, 
+                      long = k2@data$経度, 
+                      type = k2@data$P20_004, 
+                      seat = k2@data$P20_005)

描画

緯度・経度の中央値より中心を決め、避難所・避難場所を描画した。 なお、このデータでは、南阿蘇村はすべて避難所で、収容人数は0。

> k3.lat.m <- median(with(k3,lat))
> k3.long.m <- median(with(k3,long))
> leaflet(k3)%>%setView(lng=k3.long.m,lat=k3.lat.m,zoom=12) %>% addTiles() %>% addMarkers(lng=~long,lat=~lat)

避難所データの描画

南阿蘇村のホームページより避難所データを抽出(現在鋭意実行中) ひとまず、一部のデータだけの、しかも2016年4月16日8時時点です。

> m1 <- read.csv("minamiaso.csv")
> m2 <- m1[c(1,2,5,10,11),]
> kable(m2)
ID name add lat long flg X04.16.08 X04.16.10 X04.16.16 X04.16.19
1 1 久木野福祉センター 熊本県阿蘇郡南阿蘇村大字久石2705 32.82039 131.0361 1 80 250 300 NA
2 2 久木野総合センター 熊本県阿蘇郡南阿蘇村大字河陰151-1 32.82248 131.0314 1 12 46 NA NA
5 5 堀渡公民館 熊本県阿蘇郡南阿蘇村大字河陰3759-3 32.83860 131.0042 1 40 30 0 NA
10 10 白水体育館 熊本県阿蘇郡南阿蘇村大字吉田1007-1 32.82723 131.0718 1 64 80 70 60
11 11 白水保健センター 熊本県阿蘇郡南阿蘇村大字吉田1495 32.82553 131.0817 1 150 280 230 NA

描画

> leaflet(m2)%>%setView(lng=k3.long.m,lat=k3.lat.m,zoom=13) %>% 
+   addTiles() %>% addCircles(radius = ~X04.16.08*3, weight=1, color="#FF0000",
+                             fillColor = "#FF0000", fillOpacity=0.7, popup = ~paste(name,"<BR>","推計人数: ",X04.16.08,"人",sep=""))