1 目的

ライブラリsftidyverseMetBrewer

library(sf)
library(tidyverse)

#カラーパレット(標高・傾斜度の色付け)
library(MetBrewer)

2 標高・傾斜度メッシュデータ

2.1 ダウンロード

  • 国土数値情報ダウンロードサイト > 標高・傾斜度5次メッシュ > ダウンロードするデータの選択
    • 次の4地域のメッシュをクッリクし,ダウンロード
      • 5138513852385239
      • ダウンロードしたZIPファイルを展開し作業フォルダに格納.
  • crs(座標参照系)はJSD2011に投影するため6668と指示.
    • 標高・傾斜度5次メッシュデータはcrsが付与されていない模様.
#メッシュデータの読込
mesh_5138 <- 
  read_sf("G04-d-11_5138-jgd_GML/G04-d-11_5138-jgd_ElevationAndSlopeAngleFifthMesh.shp",
          crs=6668) 

mesh_5139 <- 
  read_sf("G04-d-11_5139-jgd_GML/G04-d-11_5139-jgd_ElevationAndSlopeAngleFifthMesh.shp",
          crs=6668)

mesh_5238 <- 
  read_sf("G04-d-11_5238-jgd_GML/G04-d-11_5238-jgd_ElevationAndSlopeAngleFifthMesh.shp",
          crs=6668) 

mesh_5239 <- 
  read_sf("G04-d-11_5239-jgd_GML/G04-d-11_5239-jgd_ElevationAndSlopeAngleFifthMesh.shp",
          crs=6668) 

2.2 データの結合・加工

  • 4つのメッシュデータを1つにまとめる(rbind).縦方向に長くなる.

  • 利用する列(変数)は次の2つ.

    • 平均標高(G04d_002列)
    • 平均傾斜角度(G04d_010列)
  • 平均標高,平均傾斜角度を連続変数として扱えるように数値に変更(as.numeric()).

#結合
mesh <-
  rbind(mesh_5138, mesh_5139,
        mesh_5238, mesh_5239)

#数値化
mesh <- mesh %>% 
  mutate(G04d_002=as.numeric(G04d_002),
         G04d_010=as.numeric(G04d_010))

2.3 平均標高の可視化

  • 伊豆地域が含まれていることを確認.
    • 色付けはPissaroPissaro)を指示.
ggplot()+
  geom_sf(data=mesh, 
          aes(color=G04d_002,
              fill=G04d_002))+
  scale_fill_met_c("Pissaro", direction=-1)+
  scale_color_met_c("Pissaro", direction=-1)+
  labs(color="平均標高", fill="平均標高",
       caption="出典:国土数値情報(標高・傾斜度5次メッシュデータ)")+
  ggtitle("平均標高")+
  coord_sf(datum = NA)+
  theme_dark()

3 行政区域データ

3.1 静岡県の行政区域データのダウンロード

#行政区域データの読込
Shizuoka <-
  read_sf("N03-20240101_22_GML/N03-20240101_22.shp")

3.2 伊豆地域の抽出

  • filterを用いて伊豆地域の市町を抽出.
Izu <- Shizuoka %>% 
  filter(N03_004=="沼津市" | 
           N03_004=="三島市" |
           N03_004=="函南町" |
           N03_004=="熱海市" |
           N03_004=="伊豆の国市" |
           N03_004=="伊豆市" |
           N03_004=="伊東市" |
           N03_004=="東伊豆市" |
           N03_004=="下田市" |
           N03_003=="賀茂郡")
  • 伊豆地域を1つのポリゴンに変更.
    • 上の市町で共通なのは静岡県内に位置すること.そこでN03_001列(すべての要素が静岡県)で1つにまとめる.
Izu %>%
  group_by(N03_001) %>%
  summarise() ->
  Izu

3.3 伊豆地域の可視化

  • 白枠が伊豆地域.
ggplot()+
  geom_sf(data=mesh, 
          aes(color=G04d_002,
              fill=G04d_002))+
  scale_fill_met_c("Pissaro", direction=-1)+
  scale_color_met_c("Pissaro", direction=-1)+
  geom_sf(data=Izu, 
          color="white", fill="NA",
          linewidth=0.6)+
  labs(color="平均標高", fill="平均標高",
       caption="出典:国土数値情報(標高・傾斜度5次メッシュデータ,行政区域データ)")+
  ggtitle("伊豆地域")+
  coord_sf(datum = NA)+
  theme_dark()

4 メッシュと伊豆地域行政区域の結合

  • meshIzuを結合.st_intersection()を用いて共通部分を抽出.
#Warning(警告)を出さないため
st_agr(mesh)="constant"
st_agr(Izu)="constant"

#結合
mesh_izu <-
  st_intersection(mesh, Izu)

4.1 伊豆地域の平均標高の可視化

ggplot()+
  geom_sf(data=mesh_izu, 
          aes(color=G04d_002,
              fill=G04d_002))+
  scale_fill_met_c("Pissaro", direction=-1)+
  scale_color_met_c("Pissaro", direction=-1)+
  labs(color="平均標高", fill="平均標高",
       caption="出典:国土数値情報(標高・傾斜度5次メッシュデータ,行政区域データ)")+
  ggtitle("伊豆地域,平均標高")+
  theme_void()

4.2 伊豆地域の平均傾斜角度の可視化

ggplot()+
  geom_sf(data=mesh_izu, 
          aes(color=G04d_010,
              fill=G04d_010))+
  scale_fill_met_c("Pissaro", direction=-1)+
  scale_color_met_c("Pissaro", direction=-1)+
  labs(color="平均傾斜角度", fill="平均傾斜角度",
       caption="出典:国土数値情報(標高・傾斜度5次メッシュデータ,行政区域データ)")+
  ggtitle("伊豆地域,平均傾斜角度")+
  theme_void()

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