gpt4 book ai didi

r - 对路径列表中的栅格进行分组/堆叠,并提取每组的最小值

转载 作者:行者123 更新时间:2023-12-02 20:03:36 27 4
gpt4 key购买 nike

我有一个栅格路径列表(rplist = 912 raster pathe for 912 rasters (19yeras)(12months)(4weeks))如下:

  [1] "C:/Users/Eric/Downloads/Results/RMI_2000_02_18.tif"
[2] "C:/Users/Eric/Downloads/Results/RMI_2000_02_26.tif"
[3] "C:/Users/Eric/Downloads/Results/RMI_2000_03_05.tif"
[4] "C:/Users/Eric/Downloads/Results/RMI_2000_03_13.tif"
[5] "C:/Users/Eric/Downloads/Results/RMI_2000_03_21.tif"
[...] "......"
[912] "C:/Users/Eric/Downloads/Results/RMI_2019_03_21.tif"

我需要每年每月读取栅格数据(例如属于 RMI_2000_02 的栅格数据),然后提取每个覆盖像元的最小值作为单独的栅格(忽略 NA 值(如果有))。

################### SETTING UP WORKING DIRECTORY ############################
setwd(dirname(rstudioapi::getActiveDocumentContext()$path))

# list rasters in workin directory
rplist <- list.files(getwd(),full.names = TRUE)

从这里我不知道我可以用 rs 做什么(如上所述),但应该是:

1. read rasters using rplist
2. group them by month for each year
3. extract the min raster

最佳答案

一种方法如下:

# list rasters in workin directory
rplist <- list.files(getwd(),full.names = TRUE)
r_name <- list.files(getwd(),full.names = FALSE)

# 1. read rasters using rplist
mrlist <- lapply(rplist, raster)
names(mrlist) <- r_name

# 2. stack rasters of the same month
tstList <- list()
tstStack <- stack()
i <- 1
for (y in 2000:2019){
for (m in 1:12){
# paste0(y,"_",sprintf("%02d", m)) returnes YEAR_MONTH
tstStack <- stack(mrlist[grep(paste0(y,"_",sprintf("%02d", m)), names(mrlist))] )
tstList[[i]] <- tstStack
i <- i+1
}
}

#3. extract the min raster(s)
min.rlist <- list()
for (i in 1:length(tstList)) {
min.rlist[[i]] <- min(tstList[[i]])
print(i) # to track the process
}

关于r - 对路径列表中的栅格进行分组/堆叠,并提取每组的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55235675/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com