【发布时间】:2021-02-07 15:17:11
【问题描述】:
我找不到如何将此函数编写为for 循环:函数内部的for 循环,还是for 循环内部的函数?哪个更合适?
另外,我每次都需要用新名称保存新栅格。我分享了需要帮助的代码部分。
uav_dirs <- c("C:/Rs_Code/t_data/Data/UAV/DSM")
uav_fs <- do.call(c, lapply(uav_dirs, list.files, pattern = "tif$", full.names = TRUE))
UAV_Stack <- stack(uav_fs)
#Canopy Height Calculation
chmCalc <- function(DTM, DSM) {
return(DSM - DTM)
}
CHM_UAV_H1 <- chmCalc(UAV_Stack[[8]],UAV_Stack[[1]])
writeRaster(CHM_UAV_H1, filename=file.path(chmwd, "CHM_UAV_H1.tif"), format="GTiff", overwrite=TRUE)
CHM_UAV_H2 <- chmCalc(UAV_Stack[[8]],UAV_Stack[[2]])
writeRaster(CHM_UAV_H2, filename=file.path(chmwd, "CHM_UAV_H2.tif"), format="GTiff", overwrite=TRUE)
CHM_UAV_H3 <- chmCalc(UAV_Stack[[8]],UAV_Stack[[3]])
writeRaster(CHM_UAV_H3, filename=file.path(chmwd, "CHM_UAV_H3.tif"), format="GTiff", overwrite=TRUE)
CHM_UAV_H4 <- chmCalc(UAV_Stack[[8]],UAV_Stack[[4]])
writeRaster(CHM_UAV_H4, filename=file.path(chmwd, "CHM_UAV_H4.tif"), format="GTiff", overwrite=TRUE)
【问题讨论】:
标签: r function for-loop raster