1 目的

  • 隣接するデータを六角形ごとにまとめた地図を六角形(Hexbin)マップとよぶ.
    • Ubarが開発した地球上の領域を六角形のセルで覆ったH3がよく利用される.
    • ここでは,HDXから提供されているオープンデータの一つであるKontur Populationを利用.
      • このデータは各H3セルに総人口データが含まれる.各セルは同じ面積だと見なされているため,人口密度として解釈可能.

ライブラリsftidyverse

library(sf)
library(tidyverse)

2 Konturデータ

2.1 ダウンロード

  • 拡張子.gpkgファイル(地理空間データの保存によく利用)で提供されている.

  • HDX Kontur > 検索欄にJapanと入力し,Enterキー > Japan: Population Density for 400m H3 Hexagons 

  • kontur_population_JP_20231101.gpkg > DOWNLOAD

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

  • st_transform():JSD2011に投影するため.
hexagons <- 
  read_sf("kontur_population_JP_20231101.gpkg") %>% 
     st_transform("EPSG:6668")

#最初の6行
hexagons %>% 
  head()
h3 population geom
884ec9aeb3fffff 1 POLYGON ((142.1747 26.61367…
884ec9acddfffff 73 POLYGON ((142.1776 26.62691…
884ec9acd9fffff 1 POLYGON ((142.1715 26.62109…
884ec9acd7fffff 65 POLYGON ((142.1651 26.63593…
884ec9acd5fffff 8 POLYGON ((142.1744 26.63433…
884ec9acd3fffff 11 POLYGON ((142.1591 26.63011…
  • h3:ポリゴンとして表現されるH3セルのインデックス(H3Indexとよばれる).
  • population:各H3セルに含まれる総人口.

2.1.2 可視化

  • とりあえず,可視化.
    • 六角形で覆われているが,小さくてわからない.
ggplot()+
  geom_sf(data=hexagons)+
  ggtitle("図1:六角形マップ(日本)")+
  theme_bw()

神奈川県周辺

  • 神奈川県周辺だけ可視化.
    • x軸(経度)の範囲:138.8139.8
    • y軸(緯度)の範囲:35.135.8
ggplot()+
  geom_sf(data=hexagons)+
  ggtitle("図2:六角形マップ(神奈川県周辺)")+
  coord_sf(xlim= c(138.8, 139.8), 
           ylim=c(35.1, 35.8))+
  theme_bw()

  • 六角形で覆われていることを確認.
    • 今回は人口データのため,陸地の山岳地帯などpopulationに値がないポリゴンはh3がそもそもデータに含まれず,空白.

3 神奈川県行政区域データ

3.1 行政区域と人口密度の可視化

Kanagawa_map <-
  read_sf("N03-20240101_14_GML/N03-20240101_14.shp")

#神奈川を一つのポリンゴンとしてまとめる
Kanagawa_map  %>%
  group_by(N03_001) %>%
  summarise() ->
  Kanagawa_map 
  • 人口を色付けし,神奈川県を可視化.
ggplot()+
  geom_sf(data=hexagons, 
          aes(fill=population,
              color=population))+
  scale_fill_viridis_c(option="G")+
  scale_color_viridis_c(option="G")+
  geom_sf(data=Kanagawa_map, color="gray",
          linewidth=0.6, fill="NA")+
  labs(fill="人", color="人")+
  ggtitle("図3:神奈川県と人口密度")+
  coord_sf(xlim= c(138.8, 139.8), 
           ylim=c(35.1, 35.8))+
  theme_void()

3.2 神奈川県の人口密度

#準備
st_agr(hexagons)="constant"
st_agr(Kanagawa_map)="constant"
#重複部分の抽出
Kanagawa_pop <- 
  st_intersection(x=hexagons,
                  y=Kanagawa_map)
  • 神奈川県だけ抽出しているためx軸,y軸の指定を削除.
#可視化(完成)
ggplot()+
  geom_sf(data=Kanagawa_pop, 
          aes(fill=population,
              color=population))+
  scale_fill_viridis_c(option="G")+
  scale_color_viridis_c(option="G")+
  labs(fill="人", color="人",
       caption="出典:Kontur Population
       国土数値情報")+
  ggtitle("図4:神奈川県人口密度(2024年)")+
  theme_void()

4 応用

  • rayshader()を利用すると,図4を3Dマップにすることが可能.ここでは,以下の作業はコンピュータへの負荷が大きいため,示さない.

Rによる地理空間データの可視化