选择两个栅格堆栈之间的最小值

问题描述 投票:0回答:2

我有两个栅格:一个代表给定最干燥的月度 VPD(蒸汽压力不足)的 SIF 值。另一个代表给定最干燥的 SM(土壤水分)月份的 SIF 值。我想要一个最终栅格层,其中每个单元格表示两个栅格之间的 SIF 的最低值。但是我需要在图例中知道 SIF 值是否与 VPD 或 SM 相关。

sif_min_vpd
class      : RasterLayer 
dimensions : 255, 702, 179010  (nrow, ncol, ncell)
resolution : 0.5, 0.5  (x, y)
extent     : -171, 180, -56, 71.5  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +datum=WGS84 +no_defs 
source     : memory
names      : SIF_deseasonalized 
values     : -3.453509, 2.578036  (min, max)
sif_min_sm
class      : RasterLayer 
dimensions : 255, 702, 179010  (nrow, ncol, ncell)
resolution : 0.5, 0.5  (x, y)
extent     : -171, 180, -56, 71.5  (xmin, xmax, ymin, ymax)
crs        : +proj=longlat +datum=WGS84 +no_defs 
source     : memory
names      : SIF_deseasonalized 
values     : -1.728031, 2.55345  (min, max)

我试过这段代码:

final_map <- min(sif_min_vpd, sif_min_sm_aligned)

但是我不知道SIF值是与VPD相关还是与SM相关

任何想法?

r raster min
2个回答
0
投票

如果没有 min 函数,你能检查它们吗?

if (sif_min_vpd < sif_min_sm_aligned) {
final_map <- c("vpd", sif_min_vpd)
}
else {
final_map <- c("sm", sif_min_sm_aligned)
}

print(final_map)

0
投票

您可以将

calc
which.min
一起使用。它将显示哪个层包含每个像素的最小值,第 1 层(vpd)或第 2 层(sm)。

library(raster)
minlayer <- calc(stack(sif_min_vpd, sif_min_sm_aligned), which.min)
© www.soinside.com 2019 - 2024. All rights reserved.