【R】geodiv
2021年4月29日
1. はじめに
geodivは、ラスターやマトリックスなどの空間データの傾斜等を計算してくれるパッケージです。
2. インストール
CRANからインストールできます。
3. つかってみる
多摩地区のあるデータを国交省のページからダウンロードしてみてみます。
library(geodiv)
library(tidyverse)
library(xml2)
library(jpmesh)
library(sf)
library(raster)
tgt_file <- "FG-GML-5339-33-46-DEM5A-20161001.xml"
x <- read_xml(tgt_file)
xy_lc <- x %>%
xml_find_all("/*/*/*/gml:boundedBy/gml:Envelope/gml:lowerCorner") %>%
xml_contents() %>%
as.character() %>%
strsplit(" ") %>%
unlist() %>%
map_dbl(as.numeric)
xy_lc
mesh <- jpmesh::coords_to_mesh(xy_lc[2], xy_lc[1])
mesh
x %>% xml_find_first("/*/*/*/gml:gridDomain/gml:Grid/gml:limits/gml:GridEnvelope")
df_dem <- x %>%
xml_find_first("/*/*/*/gml:rangeSet/gml:DataBlock/gml:tupleList") %>%
xml_contents() %>%
as.character() %>%
readr::read_delim(delim = ",", col_names = c("type", "value"))
raster_dem <- df_dem$value %>%
matrix(nrow = 225, ncol = 150) %>%
t() %>%
raster()
raster_dem
mesh <-
jpmesh::export_mesh(mesh)
bb <- mesh %>%
st_bbox() %>%
as.numeric()
extent(raster_dem) <- extent(bb[1], bb[3], bb[2], bb[4])
crs(raster_dem) <- sp::proj4string(as_Spatial(mesh))
plot(raster_dem)
こんな地形データです。

average surface roughness, average surface roughness, mean summit curvature を計算してみます。
sa(raster_dem) svk(raster_dem) ssc(raster_dem)
> sa(raster_dem)
[1] 7.006029
> svk(raster_dem)
[1] 13.28818
> ssc(raster_dem)
[1] -0.004826036
4. さいごに
地表面の情報も簡単に計算できるといいですよね。