理解R语言gdistance包下的transition函数

library(raster)
library(gdistance)
r <- raster(nrows=3, ncols=4, xmn=0, xmx=7, ymn=0, ymx=6, crs="+proj=utm +units=m")
r[] <- c(2, 2, 1, 1,
         2, 2, 4, 4,
         2, 1, 1, 4)
par(mar=c(2,2,2,2))
plot(r)
text(r)

那么如果我们要求算四个方向上的平均值,注意是四个方向上的,不是8个方向的。

T <- transition(r, function(x) mean(x), 4,symm=F)
plot(raster(T))

text(raster(T), digit=2)

对于左上角的结果值是如下计算的,2= (mean(c(2,2))+mean(c(2,2)))/2得到的,1.83 = (mean(c(2,2))+mean(c(2,2))+mean(c(2,1)))/3得到的,

1.67 = (mean(c(1,2))+mean(c(1,4))+mean(c(1,1)))/3,其他的都是可以这样推出来的。

 

那么如下的运算,得到的结果如何解释呢

am = function(x) max(x)
T <- transition(r,am, 4,symm=F)


为方便,左图为原始图层,显然右侧的值可以计算如下

左上角的2 = (max(c(2,2) + max(c(2,2))/2;

第一行第二列的2 =(max(c(2,2)) + max(c(2,2)) + max(c(2,1)))/3

第一行第三列的2.33 = (max(c(1,2) + max(c(1,4)) + max(c(1,1))))/3

 https://gis.stackexchange.com/questions/280593/understanding-the-values-from-transition-layers-produced-by-the-r-package-gdist

posted @   junjunang  阅读(956)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示