jpmeshパッケージは、日本国内で利用される「地域メッシュ(メッシュコード)」をRから容易に利用可能にするパッケージです。地域メッシュとは、日本国土を緯度・経度により方形の小地域区画に細分することで、同一の基準による統計調査などの結果を得ることが可能となります。80kmから125mまでのメッシュコードに対応し、メッシュコードと緯度経度座標との相互変換を行います。
jpmeshの主な機能として、「緯度経度からの地域メッシュへの変換」、「地域メッシュからの緯度経度の取得」、「都道府県単位やleaflet上へのマッピング」があります。なお地域メッシュと緯度経度の変換の基礎は竹中明夫さんのRコードが基礎となっています。ここではその使い方を紹介します。
パッケージをインストールしたら環境内で利用可能にするため、読み込みを行いましょう。また、このサンプルページで用いるパッケージも同時に読み込むようにしておきます。
library(jpmesh)
library(sf)
library(dplyr)
library(purrr)
mesh_to_coords()
関数を利用し、緯度経度から地域メッシュを得ることができます。この関数では11桁までの細分地域メッシュに対応し、メッシュの中心座標とメッシュの範囲を示す値を返します。
mesh_to_coords(5133)
## # A tibble: 1 x 4
## lng_center lat_center lng_error lat_error
## <dbl> <dbl> <dbl> <dbl>
## 1 133.5 34.33333 0.5 0.3333333
mesh_to_coords(513377)
## # A tibble: 1 x 4
## lng_center lat_center lng_error lat_error
## <dbl> <dbl> <dbl> <dbl>
## 1 133.9375 34.625 0.0625 0.04166667
mesh_to_coords(51337783)
## # A tibble: 1 x 4
## lng_center lat_center lng_error lat_error
## <dbl> <dbl> <dbl> <dbl>
## 1 133.9187 34.65417 0.00625 0.004166667
得られるメッシュの領域データを使ってメッシュのポリゴンを作成する例です。
export_mesh(5133778311)
## Geometry set for 1 feature
## geometry type: POLYGON
## dimension: XY
## bbox: xmin: 133.9125 ymin: 34.65 xmax: 133.9156 ymax: 34.65208
## epsg (SRID): NA
## proj4string: NA
## POLYGON ((133.9125 34.65, 133.915625 34.65, 133...
mesh_to_coords(5133778311) %>%
dplyr::mutate(geometry = purrr::pmap_chr(., ~ jpmesh:::mesh_to_poly(...))) %>%
dplyr::select(geometry)
## # A tibble: 1 x 1
## geometry
## <chr>
## 1 POLYGON ((133.9125 34.65, 133.915625 34.65, 133.915625 34.65208333335, 133.
緯度経度から地域メッシュを得ることもできます。これにはlatlong_to_meshcode()
を利用します。引数に緯度と経度を与え、取得対象のメッシュコードの大きさを指定します。メッシュコードの大きさの初期値は標準地域メッシュ、すなわち1kmメッシュです。
coords_to_mesh(133, 34)
## [1] "51330000"
coords_to_mesh(133, 34, mesh_size = "80km")
## [1] "5133"
coords_to_mesh(133, 34, mesh_size = "125m")
## [1] "51330000111"
また対象の地域メッシュ内に含まれる緯度経度からスケールダウンした地域メッシュや、隣接するメッシュコードを得ることができます。
# 80kmメッシュに含まれる10kmメッシュを返します
coords_to_mesh(133, 34, "80km") %>%
fine_separate()
## [1] "513311" "513312" "513313" "513314" "513315" "513316" "513317"
## [8] "513318" "513321" "513322" "513323" "513324" "513325" "513326"
## [15] "513327" "513328" "513331" "513332" "513333" "513334" "513335"
## [22] "513336" "513337" "513338" "513341" "513342" "513343" "513344"
## [29] "513345" "513346" "513347" "513348" "513351" "513352" "513353"
## [36] "513354" "513355" "513356" "513357" "513358" "513361" "513362"
## [43] "513363" "513364" "513365" "513366" "513367" "513368" "513371"
## [50] "513372" "513373" "513374" "513375" "513376" "513377" "513378"
## [57] "513381" "513382" "513383" "513384" "513385" "513386" "513387"
## [64] "513388"
# 隣接するメッシュコードを同じスケールで返します
coords_to_mesh(133, 34, "80km") %>%
find_neighbor_mesh()
## [1] 5032 5033 5034 5132 5133 5134 5232 5233 5234
coords_to_mesh(133, 34, "500m") %>%
find_neighbor_mesh()
## [1] 513299894 513299903 513299904 513299992 513299994 513300001 513300002
## [8] 513300003 513300004
jpmeshでは、都道府県および市区町村名を含んだ基準地域メッシュのデータセットを用意しています。これを利用することで、都道府県や市区町村単位での地域メッシュを扱うことができます。
administration_mesh(code = 33, type = "prefecture") %>%
head() %>%
knitr::kable(format = "markdown")
meshcode | lng_center | lat_center | lng_error | lat_error | geometry |
---|---|---|---|---|---|
513376 | 133.8125 | 34.62500 | 0.0625 | 0.0416667 | 133.75000, 133.87500, 133.87500, 133.75000, 133.75000, 34.58333, 34.58333, 34.66667, 34.66667, 34.58333 |
513377 | 133.9375 | 34.62500 | 0.0625 | 0.0416667 | 133.87500, 134.00000, 134.00000, 133.87500, 133.87500, 34.58333, 34.58333, 34.66667, 34.66667, 34.58333 |
523305 | 133.6875 | 34.70833 | 0.0625 | 0.0416667 | 133.62500, 133.75000, 133.75000, 133.62500, 133.62500, 34.66667, 34.66667, 34.75000, 34.75000, 34.66667 |
523306 | 133.8125 | 34.70833 | 0.0625 | 0.0416667 | 133.75000, 133.87500, 133.87500, 133.75000, 133.75000, 34.66667, 34.66667, 34.75000, 34.75000, 34.66667 |
523307 | 133.9375 | 34.70833 | 0.0625 | 0.0416667 | 133.87500, 134.00000, 134.00000, 133.87500, 133.87500, 34.66667, 34.66667, 34.75000, 34.75000, 34.66667 |
523315 | 133.6875 | 34.79167 | 0.0625 | 0.0416667 | 133.62500, 133.75000, 133.75000, 133.62500, 133.62500, 34.75000, 34.75000, 34.83333, 34.83333, 34.75000 |