見出し画像

【R】focal統計をRで実行する


概要

GRASSのr.neighbourをつかわずにRでやる方法のメモです.

必要なパッケージの読み込み

必要なパッケージを読み込む。

library(raster)
library(dplyr)

ラスタデータの読み込み

# ラスタデータの読み込み
  ras <- raster("path/to/file/dem.tif") 

検索セル数(半径)の設定とタイプ(円形,長方形)の設定

# 検索セル数
radius <- 100
 
# 円形範囲 
window <- focalWeight(r, (radius * (res(r)[1] + 0.00001)), type='circle', fillNA = T)

# 四角形範囲の場合
#window <- focalWeight(r, (radius * (res(r)[1] )), type='rectangle', fillNA = T)

# 重みづけなし
window[window[]>0] <- 1

# 集計ウィンドウの確認
window

フォーカル統計(半径100セル,円形で実施)

# フォーカル統計(平均値を集計)
focal <- focal(r, w = window ,fun = mean , na.rm = TRUE)

データの確認

plot(r, main = "DEM")
plot(focal, main = "DEM focal circlar radius 100")

tifファイルとして保存

writeRaster(focal, "path/to/file/dem_focal.tif", datatype = "FLT4S", overwrite = T)


この記事が気に入ったらサポートをしてみませんか?