【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)
この記事が気に入ったらサポートをしてみませんか?