ne_states()で読込.2
Japanを指定.sfクラスを指定.Japan_mapとする.Japan_map <-
ne_states("Japan", returnclass="sf")
Shizuoka <- Japan_map %>%
filter(name=="Shizuoka")get_elev_raster():指定した位置の標高データ(ラスターデータ)をダウンロード.AWS Terrain Tilesから標高データを取得`
locations:位置情報を指定.今回は静岡県(Shizuoka)z:解像度(ズームレベル)の指定.数を大きくすると解像度が増すが,時間がかかるため注意.clip:
locationsを設定した場合,指定した位置のデータを切り取る(bboxを設定した場合,境界ボックスに合わせてデータを切り取る).ggplot()で可視するため,elevをデータフレーム(as.data.frame())に変更.
xy=TRUEを指定することで,座標情報をデータフレームの列として取り込む.elev_dfの3列目が標高を示すため,列名をelvationに変更.NA)削除(drop_na(everything())).geom_raster():標高(elev_dfのelevation列)の可視化.詳細.
scale_fill_fermenter():標高の色付け.連続変数を離散変数として扱う.パレットはBrBGを選択.
m).seq():数列の作成.0から3200まで400ずつ増加.#凡例目盛り
my_breaks <- seq(0, 3200, by=400)
ggplot() +
geom_raster(data=elev_df,
aes(x, y, fill=elevation))+
scale_fill_fermenter(palette="BrBG",
breaks=my_breaks)+
labs(fill="m",
caption="出典:Natural Earth,
AWS Terrain Tiles")+
coord_sf(crs="EPSG:6668")+
theme_void() terrain():標高データ(elv)から地形特性を計算する関数.
slope)をラジアン単位(radians)で計算するように指示.aspect)をラジアン単位(radians)で計算するように指示.shade():陰影計算.
angle:光源高度45度に指示.direction:光源方向315度に指示.注意:このままshade()を指示すると,
inherits(slope, "SpatRaster") は TRUEではありません
と出るためrasterをSpatRasterオブジェクトに変更.
sl <- sl %>%
as("SpatRaster")
asp <- asp %>%
as("SpatRaster")
hill_shade <-
shade(sl, asp,
angle=45,
direction=315,
normalize=TRUE)hill_shadeもデータフレーム(as.data.frame())に変更.hill_shade_dfのhillshade列)を紫色(Purples)で表現.
show.legend=FALSE:凡例非表示.ggplot() +
geom_raster(data=hill_shade_df,
aes(x, y, fill=hillshade),
show.legend=FALSE)+
scale_fill_distiller(palette="Purples")+
labs(caption="出典:Natural Earth,
AWS Terrain Tiles")+
coord_sf(crs="EPSG:6668")+
theme_void()hill_shade_df).new_scale_fill():重ねる標高地図の色付けを活かすため.elev_df).alphaを利用して透過表示.ggplot() +
geom_raster(data=hill_shade_df,
aes(x, y, fill=hillshade),
show.legend=FALSE)+
scale_fill_distiller(palette="Purples")+
new_scale_fill() +
geom_raster(data=elev_df,
aes(x, y, fill=elevation),
alpha=0.7) +
scale_fill_fermenter(palette="BrBG",
breaks=my_breaks)+
labs(fill="m",
caption="出典:Natural Earth,
AWS Terrain Tiles") +
coord_sf(crs="EPSG:6668") +
theme_void() 上の静岡県との違い
Izuと名付ける.z:解像度を8に指定して,標高データ(ラスターデータ)をダウンロード.Rコードは省略.hillshade_Izu_dfとする.静岡県同様に標高図(オブジェクトをIzu_elev_dfとする)と組み合わせ陰影段彩図を作成しようとしたところ,geom_raster()ではなくgeom_tile()を勧められたため,変更.等高線の作成
geom_contour():等高線の作成.2変数(x軸とy軸)に対するz軸の値を表現.ここで等高線の高さ.内側がより高い値.
color)と太さ(linewidth)の指定.#凡例目盛り
my_breaks <- seq(0, 1200, by=200)
ggplot() +
geom_tile(data=hillshade_Izu_df,
aes(x, y, fill=hillshade),
show.legend=FALSE)+
scale_fill_distiller(palette="Purples")+
new_scale_fill() +
geom_tile(data=Izu_elev_df,
aes(x, y, fill=elevation),
alpha=0.7)+
scale_fill_fermenter(palette="BrBG",
breaks=my_breaks)+
geom_contour(data=Izu_elev_df,
aes(x, y, z=elevation),
color="gray70", linewidth=0.2)+
labs(fill="m",
caption="出典:国土数値情報行政区域データ,
AWS Terrain Tiles") +
coord_sf(crs="EPSG:6668") +
theme_void() Kanagawa_map<-
read_sf("N03-20240101_14_GML/N03-20240101_14.shp")
Kanagawa_map %>%
filter(N03_004=="横浜市") ->
Yokohama10に指定.Rコードは省略.標高・傾斜度メッシュデータの可視化では国土数値情報標高・傾斜度メッシュデータを用いて標高を可視化.このメッシュデータは基盤地図情報数値標高モデルのラスターデータをシェープファイル(ベクターデータ:ポイント,ライン,ポリゴンで表現されるデータ形式)に変換されている.↩︎
Natural Earthの利用方法の詳細はNatural Earthの地理空間データの可視化参照.↩︎