パッケージ:sf,tidyverse
拡張子.gpkgファイル(地理空間データの保存によく利用)で提供されている.
HDX
Kontur > 検索欄にJapanと入力し,Enterキー > Japan:
Population Density for 400m H3 Hexagons
kontur_population_JP_20231101.gpkg > DOWNLOAD
st_transform():JSD2011(EPSG:6668)に投影するため.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セルに含まれる総人口.神奈川県周辺
x軸(経度)の範囲:138.8~139.8.y軸(緯度)の範囲:35.1~35.8.ggplot()+
geom_sf(data=hexagons)+
ggtitle("図3:六角形マップ(神奈川県周辺)")+
coord_sf(xlim= c(138.8, 139.8),
ylim=c(35.1, 35.8))+
theme_bw()populationに値がないポリゴンはh3がそもそもデータに含まれず,空白viridisカラーmako色(option="G")で可視化.
グレーで表現.log10)に変換.#740人以上の抽出
hexagons_2 <- hexagons %>%
filter(population>=740)
ggplot()+
geom_sf(data=hexagons,
fill="gray", color="gray")+
geom_sf(data=hexagons_2,
aes(fill=population,
color=population))+
scale_fill_viridis_b(option="G",
trans="log10")+
scale_color_viridis_b(option="G",
trans="log10")+
labs(fill="人", color="人",
caption="出典:Kontur Population")+
ggtitle("図2:人口密度(2023年)")+
theme_void()行政区域データを利用して,神奈川県を可視化.
rmapshaperパッケージのms_dissolve()を使用し,市区町村ではなく県単位で境界を統合.N03_001列が神奈川県なので,これでまとめる.Kanagawa_map <-
read_sf("N03-20240101_14_GML/N03-20240101_14.shp")
#神奈川県を一つのポリンゴンとしてまとめる
Kanagawa_map <- Kanagawa_map %>%
ms_dissolve(field="N03_001") 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("図4:神奈川県と人口密度")+
coord_sf(xlim=c(138.8, 139.8),
ylim=c(35.1, 35.8))+
theme_void()図3は神奈川県周辺も含む⇒神奈川県だけ抽出.
st_intersection()を用いて,2つのシェープファイル(hexagonsとKanagawa_map)の重複部分を抽出.
Rコードの詳細はコミュニティバス路線上の人口密度の可視化参照.coord_sf()による範囲指定を削除.#可視化(完成)
ggplot()+
geom_sf(data=Kanagawa_pop,
aes(fill=population,
color=population))+
scale_fill_viridis_b(option="G")+
scale_color_viridis_b(option="G")+
labs(fill="人", color="人",
caption="出典:Kontur Population
国土数値情報")+
ggtitle("図5:神奈川県人口密度(2023年)")+
theme_void()rayshader()を利用すると,図5を3Dマップにすることが可能.ここでは,以下の作業はコンピュータへの負荷が大きいため,示さない.
render_highquality()を用いて高品質3Dを作成.(雑感:時間がかかるだけでなく,調整が難しい.)
Rコードを参考に作成.Rによる地理空間データの可視化
アイコン
Font Awesome 6.7.2