mapeditパッケージで、地図上のメッシュを選択する

前回は地域メッシュのシェープファイルを入手し可視化するところまでやりました。 今回はその続きです。

前回↓

ksmzn.hatenablog.com


今日の環境はMacです。

前回、新宿近辺のメッシュのみを抽出しましたが、では新宿近辺のメッシュをどうやって調べればよいのでしょうか。

おそらく最も手軽なのはWebサービスを使って、ブラウザ上で確認することだと思います。 「Geocode Viewer」「地図上で標準地域メッシュを確認するページ」 が便利です。

しかし、本シリーズはRでチャレンジすることが裏テーマなので、メッシュの選択もRでやってみましょう。 mapedit パッケージ を使うことで、地図上でフィーチャーを選択できます。

mapedit パッケージは、フィーチャーを選択するだけでなく、線や図形を書いてsfクラスとして取得することができるので、 メッシュ以外でも便利です。

くわしくは公式のページをご覧ください。

mapedit - interactively edit spatial data in R

それでは mapedit パッケージをインストールしましょう。 mapedit のREADME に従い、インストールします。 mapview パッケージは develop 版であることに注意してください。

devtools::install_github("bhaskarvk/leaflet")
devtools::install_github("bhaskarvk/leaflet.extras")
devtools::install_github("r-spatial/mapview@develop")
devtools::install_github("r-spatial/mapedit")

次に、 sf クラスのオブジェクトを用意します。 詳しくは、前回の記事を参照してください。

library(tidyverse)
library(sf)
d1 <- sf::read_sf("./Downloads/L03-a-14_5339-tky_GML/L03-a-14_5339-tky.shp", options=c("ENCODING=CP932”))

それでは、mapedit パッケージを使っていきましょう。 今回は地図上のフィーチャーを選択したいので、selectFeatures() 関数を使います。 selectFeatures() 関数は v0.2.0 から追加された、比較的新しい機能のようです。

使い方は簡単で、単純に sf クラスのオブジェクトを selectFeatures() 関数の第一引数に入れるだけです。 めっちゃラクだ…。

library(mapview)
library(mapedit)
mesh_shinjuku <- d1 %>% 
  mapedit::selectFeatures()

これを実行すると、mapview と同様に地図が開きます。

f:id:ksmzn:20170629123428j:plain

欲しいフィーチャーをクリックして選択し、右下のDoneボタンを押せば完了です。

返り値として sf クラスが返ってくるので、その後も普通に分析可能です。 すんごいラクだ…。

> mesh_shinjuku
Simple feature collection with 4 features and 13 fields
geometry type:  POLYGON
dimension:      XY
bbox:           xmin: 139.6875 ymin: 35.68333 xmax: 139.7125 ymax: 35.7
epsg (SRID):    4326
proj4string:    +proj=longlat +datum=WGS84 +no_defs
     メッシュ 田 他農用地  森林 荒地 建物用地   道路   鉄道 他用地 河川湖沼 海浜 海水域 ゴルフ場
3626 53394525  0        0 73182    0   710914 219547      0  31364    10455    0      0        0
3627 53394526  0        0 94091    0   606364 146364 188181  10455        0    0      0        0
3637 53394536  0        0     0    0   919905  62721  62721      0        0    0      0        0
3636 53394535  0        0     0    0   951272  41814      0  10454    41814    0      0        0
                           geometry
3626 POLYGON((139.6875 35.683333...
3627 POLYGON((139.7 35.683333333...
3637 POLYGON((139.7 35.691666666...
3636 POLYGON((139.6875 35.691666...
> class(mesh_shinjuku)
[1] "sf"         "data.frame"

新宿の4メッシュだけが入っています。

当然、このオブジェクトを mapview すれば、該当メッシュだけが可視化されています。

mesh_shinjuku %>% 
  mapview

f:id:ksmzn:20170627124654p:plain

完璧ですね。 だいぶスムーズにデータ分析できそうです。

GIFアニメを作ってみました。 地図を開いてメッシュを選択し、新宿メッシュのみを可視化する様子です。 容量ギリギリだったので少し見にくいのはご容赦ください…

f:id:ksmzn:20170629124601g:plain

EDIT [解説・ボーナストラック付き国内盤] (BRC-192)

EDIT [解説・ボーナストラック付き国内盤] (BRC-192)