我正在处理2个相同时间序列的2个光栅::堆栈(RS 1和RS 2)。我需要创建第三个光栅(RS3),它是逐像素标准的结果-〉如果:RS 1〉RS 2,则为RS 1,否则为RS 2。我尝试了ifelse,但没有成功:
RS3 <-ifelse(RS1[] > RS2[], RS1[], RS2[])
我不知道该怎么办。
eqqqjvef1#
示例数据和使用"terra"代替(过时的)"raster"包。
library(terra) r <- rast(system.file("ex/elev.tif", package="terra")) x <- c(r, r/2, r*2) y <- c(r/2, r*2, r)
溶液:
z <- max(x, y)
最小值和最大值:
minmax(x) # elevation elevation elevation #min 141 70.5 282 #max 547 273.5 1094 minmax(y) # elevation elevation elevation #min 70.5 282 141 #max 273.5 1094 547 minmax(z) # elevation elevation elevation #min 141 282 282 #max 547 1094 1094
对于比max更复杂的函数,也就是非"内置"的函数,可以像这样使用lapp
max
lapp
zz <- lapp(sds(x, y), pmax)
1条答案
按热度按时间eqqqjvef1#
示例数据和使用"terra"代替(过时的)"raster"包。
溶液:
最小值和最大值:
对于比
max
更复杂的函数,也就是非"内置"的函数,可以像这样使用lapp