How to use mesh cord in R

Shinya Uryu

2020-05-06

概要

jpmeshパッケージは、日本国内で利用される「地域メッシュ(メッシュコード)」をRから容易に利用可能にするパッケージです。地域メッシュとは、日本国土を緯度・経度により方形の小地域区画に細分することで、同一の基準による統計調査などの結果を得ることが可能となります。80kmから125mまでのメッシュコードに対応し、メッシュコードと緯度経度座標との相互変換を行います。

jpmeshの主な機能として、「緯度経度からの地域メッシュへの変換」、「地域メッシュからの緯度経度の取得」、「都道府県単位やleaflet上へのマッピング」があります。なお地域メッシュと緯度経度の変換の基礎は竹中明夫さんのRコードが基礎となっています。ここではその使い方を紹介します。

パッケージをインストールしたら環境内で利用可能にするため、読み込みを行いましょう。また、このサンプルページで用いるパッケージも同時に読み込むようにしておきます。

library(jpmesh)
library(sf)
library(purrr)

緯度経度と地域メッシュの相互変換

mesh_to_coords()関数を利用し、緯度経度から地域メッシュを得ることができます。この関数では11桁までの細分地域メッシュに対応し、メッシュの中心座標とメッシュの範囲を示す値を返します。

## # A tibble: 1 x 4
##   lng_center lat_center lng_error lat_error
##        <dbl>      <dbl>     <dbl>     <dbl>
## 1       134.       34.3       0.5     0.333
## # A tibble: 1 x 4
##   lng_center lat_center lng_error lat_error
##        <dbl>      <dbl>     <dbl>     <dbl>
## 1       134.       34.6    0.0625    0.0417
## # A tibble: 1 x 4
##   lng_center lat_center lng_error lat_error
##        <dbl>      <dbl>     <dbl>     <dbl>
## 1       134.       34.7   0.00625   0.00417

得られるメッシュの領域データを使ってメッシュのポリゴンを作成する例です。

## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## Geometry set for 1 feature 
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: 133.9125 ymin: 34.65 xmax: 133.9156 ymax: 34.65208
## CRS:            EPSG:4326
## POLYGON ((133.9125 34.65, 133.9156 34.65, 133.9...

緯度経度から地域メッシュを得ることもできます。これにはcoords_to_mesh()を利用します。引数に緯度と経度を与え、取得対象のメッシュコードの大きさを指定します。メッシュコードの大きさの初期値は標準地域メッシュ、すなわち1kmメッシュです。

## [1] "51330000"
## [1] "5133"
## [1] "51330000111"

また対象の地域メッシュ内に含まれる緯度経度からスケールダウンした地域メッシュや、隣接するメッシュコードを得ることができます。

##  [1] "513300" "513301" "513302" "513303" "513304" "513305" "513306" "513307"
##  [9] "513310" "513311" "513312" "513313" "513314" "513315" "513316" "513317"
## [17] "513320" "513321" "513322" "513323" "513324" "513325" "513326" "513327"
## [25] "513330" "513331" "513332" "513333" "513334" "513335" "513336" "513337"
## [33] "513340" "513341" "513342" "513343" "513344" "513345" "513346" "513347"
## [41] "513350" "513351" "513352" "513353" "513354" "513355" "513356" "513357"
## [49] "513360" "513361" "513362" "513363" "513364" "513365" "513366" "513367"
## [57] "513370" "513371" "513372" "513373" "513374" "513375" "513376" "513377"
## [1] "5032" "5033" "5034" "5132" "5133" "5134" "5232" "5233" "5234"
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## although coordinates are longitude/latitude, st_relate_pattern assumes that they are planar
## [1] "503277994" "503370903" "503370904" "513207092" "513207094" "513300001"
## [7] "513300002" "513300003" "513300004"

都道府県単位での基準地域メッシュの描画

jpmeshでは、都道府県および市区町村名を含んだ基準地域メッシュのデータセットを用意しています。これを利用することで、都道府県や市区町村単位での地域メッシュを扱うことができます。

meshcode geometry
5133 list(c(133, 134, 134, 133, 133, 34, 34, 34.66667, 34.66667, 34))
5233 list(c(133, 134, 134, 133, 133, 34.66667, 34.66667, 35.33333, 35.33333, 34.66667))
5234 list(c(134, 135, 135, 134, 134, 34.66667, 34.66667, 35.33333, 35.33333, 34.66667))
5134 list(c(134, 135, 135, 134, 134, 34, 34, 34.66667, 34.66667, 34))
5333 list(c(133, 134, 134, 133, 133, 35.33333, 35.33333, 36, 36, 35.33333))
5334 list(c(134, 135, 135, 134, 134, 35.33333, 35.33333, 36, 36, 35.33333))

Session Information

sessionInfo()
## R version 3.6.3 (2020-02-29)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Debian GNU/Linux 10 (buster)
## 
## Matrix products: default
## BLAS/LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.3.5.so
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=C             
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] purrr_0.3.3  sf_0.9-3     jpmesh_1.2.1
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_1.0.4.6       highr_0.8          pillar_1.4.4       compiler_3.6.3    
##  [5] later_1.0.0        class_7.3-15       tools_3.6.3        digest_0.6.25     
##  [9] evaluate_0.14      tibble_3.0.1       lifecycle_0.2.0    pkgconfig_2.0.3   
## [13] rlang_0.4.6        cli_2.0.2          shiny_1.4.0.2      DBI_1.1.0         
## [17] crosstalk_1.1.0.1  yaml_2.2.1         xfun_0.13          fastmap_1.0.1     
## [21] e1071_1.7-3        stringr_1.4.0      knitr_1.28         vctrs_0.2.4       
## [25] htmlwidgets_1.5.1  classInt_0.4-3     leaflet_2.0.3      grid_3.6.3        
## [29] glue_1.4.0         R6_2.4.1           fansi_0.4.1        rmarkdown_2.1     
## [33] magrittr_1.5       promises_1.1.0     htmltools_0.4.0    ellipsis_0.3.0    
## [37] units_0.6-6        assertthat_0.2.1   mime_0.9           xtable_1.8-4      
## [41] httpuv_1.5.2       utf8_1.1.4         KernSmooth_2.23-16 stringi_1.4.6     
## [45] miniUI_0.1.1.1     crayon_1.3.4.9000