作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个土地覆盖 map 的栅格堆栈(年度时间序列),我想计算变化的百分比。我找到了this question ,但我不清楚。有什么想法如何做到这一点?
假设我的栅格堆栈名为r_stk
,目前我计算的唯一统计数据是sd
和cv
。
关于如何计算百分比变化有什么想法吗?
r_stk_sd<-calc(r_stk, fun=sd)
r_stk_cv<-r_stk_sd/r_stk_Mean
最佳答案
这是一些示例数据。来自 ?raster::stack
!
library(raster)
s <- stack(system.file("external/rlogo.grd", package="raster"))
我知道你已经这样做了
mn <- mean(s)
sd <- calc(s, sd)
cv <- sd / mn
现在您想要“%更改”,但您没有定义它。请编辑您的问题,并更好地解释您想要计算的内容。您是否想要进行本地更改(逐个单元地进行);但如果是这样,你会如何计算百分比?或者您想要全局的(每一层/时间段一个数字)。您想对所有时间段进行相互比较吗?或者??
这里还有另一种可能性,将第一层与所有其他层进行比较。也许这可以让你开始做你想做的事,或者提出更好的问题。
x <- s[[1]] != s[[-1]]
单元格有变化吗?
y <- any(x)
相对于第一年,细胞发生变化的总比例是多少?
cellStats(y, "mean")
#[1] 0.7923364
或者相对于第 1 年的每个“年”。</p>
cellStats(x, "mean")
# green blue
#0.6218336 0.7891218
如果你想要逐年改变,你可以这样做
s1 <- s[[2:nlayers(s)]]
s2 <- s[[1:(nlayers(s)-1)]]
z <- s1 != s2
cellStats(z, "mean")
# green blue
# 0.6218336 0.7672624
关于r - 如何计算栅格堆栈的变化百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57690544/
我是一名优秀的程序员,十分优秀!