日本の47都道府県がどのようなオープンデータを公開しているのか気になったので調べてみた。扱いたいのは都道府県別の行政単位なので、市区町村単位で公開している場合でも今回は無視している。

各都道府県のwebページのURLをまとめる

まずは各都道府県のwebページのURLを一覧にする。地方公共団体の提供するwebページへのリンクが一覧にまとめられているページがあるので、そこからデータをスクレイピングしてくる。

library(XML)
library(dplyr)
url <- "http://www.wam.go.jp/content/wamnet/pcpub/top/link/top_link04.html"
df.pref <- readHTMLTable(doc = url,
                         skip.rows = 1)[[1]] %>% 
  mutate(link = getHTMLLinks(url)[35:81]) %>% 
  rename(prefecture = リンク先名称) %>% 
  dplyr::select(-説明)

head(df.pref)
##   prefecture                            link
## 1     北海道 http://www.pref.hokkaido.lg.jp/
## 2     青森県   http://www.pref.aomori.lg.jp/
## 3     岩手県       http://www.pref.iwate.jp/
## 4     宮城県      http://www.pref.miyagi.jp/
## 5     秋田県    http://www.pref.akita.lg.jp/
## 6     山形県    http://www.pref.yamagata.jp/

df.pref$linkに各行政のwebページのURLが格納されている。ブラウザで閲覧する場合はbrowseURL(url = df.pref[1, 2])browseURL(url = df.pref$link[1])のようにする

公開されているオープンデータを探す

ここはちまちまと手作業で。すべての行政がサイト内の検索ボックスを設けているので、そこから「オープンデータ」で検索。表示された結果から、妥当そうなページを拾ってくる。それらしいページがない場合は欠損値として扱った。

opendata <- c("http://www.pref.hokkaido.lg.jp/ss/jsk/opendata.htm", 
              NA, 
              NA, 
              NA, 
              NA, 
              "http://www.pref.yamagata.jp/ou/kikakushinko/020051/opendata.html",
              "http://www.pref.fukushima.lg.jp/sec/11045a/open-data-top.html",
              "http://www.pref.ibaraki.jp/kikaku/joho/it/opendata/od-00.html",
              "http://tochigiken.jp",
              NA,
              "http://www.pref.saitama.lg.jp/a0105/saitamaken-opendatacatalog-2014/",
              "http://www.pref.chiba.lg.jp/seisaku/toukeidata/opendata/index.html",
              "http://www.metro.tokyo.jp/SUB/OPENDATA/",
              NA,
              "http://search.pref.niigata.lg.jp/go?rt=1438227613471&docId=73be07ab64594614972d97d2312e473d",
              NA,
              NA,
              "http://www.pref.fukui.lg.jp/doc/toukei-jouhou/opendata/",
              NA,
              NA,
              "http://www.pref.gifu.lg.jp/kensei-unei/johoka/denshi-jichitai/opendata/",
              "http://open-data.pref.shizuoka.jp",
              "http://www.pref.aichi.jp/0000069289.html",
              "http://www.pref.mie.lg.jp/IT/HP/opendata/",
              NA,
              NA,
              "http://www.pref.osaka.lg.jp/kikaku_keikaku/opendata/index.html",
              "http://open-data.pref.hyogo.lg.jp",
              NA,
              "https://github.com/wakayama-pref-org/data_link_list",
              "http://db.pref.tottori.jp/opendataResearch.nsf",
              NA,
              NA,
              NA,
              NA,
              "http://ouropendata.jp",
              "http://www.pref.kagawa.lg.jp/content/etc/subsite/opendata/",
              NA,
              NA,
              "http://www.pref.fukuoka.lg.jp/dataweb/",
              NA,
              NA,
              NA,
              NA,
              NA,
              NA,
              NA)
df.pref %<>% cbind(., opendata)

opendataという列に公開されているオープンデータのページのURLをおさめた。

47都道府県のうち26の行政がオープンデータを公開していないらしい。

一覧はこちら

knitr::kable(df.pref)
prefecture link opendata
北海道 http://www.pref.hokkaido.lg.jp/ http://www.pref.hokkaido.lg.jp/ss/jsk/opendata.htm
青森県 http://www.pref.aomori.lg.jp/ NA
岩手県 http://www.pref.iwate.jp/ NA
宮城県 http://www.pref.miyagi.jp/ NA
秋田県 http://www.pref.akita.lg.jp/ NA
山形県 http://www.pref.yamagata.jp/ http://www.pref.yamagata.jp/ou/kikakushinko/020051/opendata.html
福島県 http://www.pref.fukushima.jp/ http://www.pref.fukushima.lg.jp/sec/11045a/open-data-top.html
茨城県 http://www.pref.ibaraki.jp/ http://www.pref.ibaraki.jp/kikaku/joho/it/opendata/od-00.html
栃木県 http://www.pref.tochigi.lg.jp/ http://tochigiken.jp
群馬県 http://www.pref.gunma.jp/index.html NA
埼玉県 http://www.pref.saitama.lg.jp/ http://www.pref.saitama.lg.jp/a0105/saitamaken-opendatacatalog-2014/
千葉県 http://www.pref.chiba.lg.jp/ http://www.pref.chiba.lg.jp/seisaku/toukeidata/opendata/index.html
東京都 http://www.metro.tokyo.jp/index.htm http://www.metro.tokyo.jp/SUB/OPENDATA/
神奈川県 http://www.pref.kanagawa.jp/ NA
新潟県 http://www.pref.niigata.lg.jp/ http://search.pref.niigata.lg.jp/go?rt=1438227613471&docId=73be07ab64594614972d97d2312e473d
富山県 http://www.pref.toyama.jp/ NA
石川県 http://www.pref.ishikawa.jp/ NA
福井県 http://www.pref.fukui.jp/index.html http://www.pref.fukui.lg.jp/doc/toukei-jouhou/opendata/
山梨県 http://www.pref.yamanashi.jp/ NA
長野県 http://www.pref.nagano.lg.jp/ NA
岐阜県 http://www.pref.gifu.lg.jp/ http://www.pref.gifu.lg.jp/kensei-unei/johoka/denshi-jichitai/opendata/
静岡県 http://www.pref.shizuoka.jp/ http://open-data.pref.shizuoka.jp
愛知県 http://www.pref.aichi.jp/ http://www.pref.aichi.jp/0000069289.html
三重県 http://www.pref.mie.jp/ http://www.pref.mie.lg.jp/IT/HP/opendata/
滋賀県 http://www.pref.shiga.lg.jp/ NA
京都府 http://www.pref.kyoto.jp/ NA
大阪府 http://www.pref.osaka.jp/ http://www.pref.osaka.lg.jp/kikaku_keikaku/opendata/index.html
兵庫県 http://web.pref.hyogo.jp/ http://open-data.pref.hyogo.lg.jp
奈良県 http://www.pref.nara.jp/ NA
和歌山県 http://www.pref.wakayama.lg.jp/ https://github.com/wakayama-pref-org/data_link_list
鳥取県 http://www.pref.tottori.lg.jp/ http://db.pref.tottori.jp/opendataResearch.nsf
島根県 http://www.pref.shimane.lg.jp/ NA
岡山県 http://www.pref.okayama.jp/ NA
広島県 http://www.pref.hiroshima.lg.jp/ NA
山口県 http://www.pref.yamaguchi.jp/ NA
徳島県 http://www.pref.tokushima.jp/ http://ouropendata.jp
香川県 http://www.pref.kagawa.jp/ http://www.pref.kagawa.lg.jp/content/etc/subsite/opendata/
愛媛県 http://www.pref.ehime.jp/ NA
高知県 http://www.pref.kochi.lg.jp/ NA
福岡県 http://www.pref.fukuoka.lg.jp/ http://www.pref.fukuoka.lg.jp/dataweb/
佐賀県 http://www.pref.saga.lg.jp/ NA
長崎県 http://www.pref.nagasaki.jp/ NA
熊本県 http://www.pref.kumamoto.jp/ NA
大分県 http://www.pref.oita.jp/ NA
宮崎県 http://www.pref.miyazaki.lg.jp/ NA
鹿児島県 http://www.pref.kagoshima.jp/ NA
沖縄県 http://www.pref.okinawa.jp/ NA

オープンデータ公開ページの有無を可視化する

せっかくなので。

日本地図の塗り分けには、前回同様 @hrbrmstr{lineworkmaps}を使う。

まずはデータセットの作成から。全国地方公共団体コードを地図データと結合させるためにISO3166_2という名前の列で用意し、オープンデータのページの有無を在不在データとしてdata.exist列を新規作成する。

library(lineworkmaps)
library(ggthemes)
## Warning: replacing previous import by 'scales::alpha' when loading
## 'ggthemes'
library(viridis)

jp <- linework_map(linework_set = "elmer_casual", fortified = TRUE) %$% 
  .[COUNTRY == "JP" & Name != "Japan",]
df.pref %<>% 
  mutate(ISO3166_2 = str_pad(seq(1:47), 2, pad = 0),
         data.exist = ifelse(is.na(opendata), yes = 0, no = 1)) %>% 
  left_join(., jp, by = "ISO3166_2")
## Warning in left_join_impl(x, y, by$x, by$y): joining factor and character
## vector, coercing into character vector
jp$Name %>% droplevels() %>% levels()
##  [1] "Aichi"     "Akita"     "Aomori"    "Chiba"     "Ehime"    
##  [6] "Fukui"     "Fukuoka"   "Fukushima" "Gifu"      "Gunma"    
## [11] "Hiroshima" "Hokkaido"  "Hyogo"     "Ibaraki"   "Ishikawa" 
## [16] "Iwate"     "Kagawa"    "Kagoshima" "Kanagawa"  "Kochi"    
## [21] "Kumamoto"  "Kyoto"     "Mie"       "Miyagi"    "Miyazaki" 
## [26] "Nagano"    "Nagasaki"  "Nara"      "Niigata"   "Oita"     
## [31] "Okayama"   "Osaka"     "Saga"      "Saitama"   "Shiga"    
## [36] "Shimane"   "Shizuoka"  "Tochigi"   "Tokushima" "Tokyo"    
## [41] "Tottori"   "Toyama"    "Wakayama"  "Yamagata"  "Yamaguchi"
## [46] "Yamanashi"

途中で気がついたのだけど、lineworkmapsの地図では沖縄県が描画されない。なお沖縄県は私が調べたところまだオープンデータを公開していないようである。

gg <- ggplot()
gg <- gg + geom_map(data = jp, map = jp,
                    aes(x = long, y = lat, map_id = id), size = 0.5)
gg <- gg + geom_map(data = df.pref, 
                    map = jp,
                    aes(fill = data.exist, map_id = id, stat = "identity"))
gg <- gg + scale_fill_viridis()
gg <- gg + coord_map(project = "albers", lat0 = 47.5, lat1 = 28.5)
gg <- gg + theme_map()
gg <- gg + theme(legend.position = "right")
gg

データの有無はカテゴリー変数なので、離散値のスケールにしないといけないけど、ひとまずはこれで勘弁。黄色で塗られている都道府県がオープンデータの整備が済んでいるところ。早く全都道府県が黄色になって欲しい。

所感

47都道府県のうち55.32%と思っていたよりもオープンデータを公開している都道府県が多かった。行政ごとにオープンデータに対しる意識の違いがなんとなくあるような気がした。栃木県や和歌山県、徳島県などはハジマタ感がある。提供されているデータもセンサスデータが基本だが行政ごとの特徴があったりして面白い。

提供しているデータの種類は.xls.pdfが多いが、.csvもあってRを使えば十分に扱えるだろう。また時間があるときに触ってみたい。