パッケージ: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