我有两个栅格:一个代表给定最干燥的月度 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相关
任何想法?
如果没有 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)
您可以将
calc
与which.min
一起使用。它将显示哪个层包含每个像素的最小值,第 1 层(vpd)或第 2 层(sm)。
library(raster)
minlayer <- calc(stack(sif_min_vpd, sif_min_sm_aligned), which.min)