理解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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)