【发布时间】:2018-09-18 17:41:30
【问题描述】:
我想对栅格列表进行一些计算。因此我写了一个循环,到目前为止,当我只使用栅格时它工作得很好。现在我使用栅格和数值变量进行计算,不知何故这会导致叠加函数出现错误。 我的代码是:
列出文件
NDVI <- list.files(path =
"C:/Users/Felix/Desktop/Bachelorarbeit/Daten/Datenverarbeitung_R/L8_NDVI",
pattern = 'NDVI.tif$', full.names=T)
定义函数
fun_PV <- function(x,y,z){((x-y)/(z+y))^2}
循环
for(i in seq_along(NDVI))
{
PV <- overlay(x = raster(NDVI[i]),
y = minValue(raster(NDVI[i])[[i]]),
z = maxValue(raster(NDVI[i])[[i]]),
fun = fun_PV)
sat = substr(NDVI[i], 73, 77)
path = substr(NDVI[i], 78, 84)
date = substr(NDVI[i], 85, 92)
setwd
("C:/Users/Felix/Desktop/Bachelorarbeit/Daten/Datenverarbeitung_R/L8_PV")
writeRaster(PV,filename = paste0(sat, path, date, '_PV', '.tif'))
removeTmpFiles(h=0.1)
}
我得到的错误是:
(函数(类,fdef,mtable)中的错误: 找不到签名“RasterLayer”、“numeric”的函数“overlay”的继承方法
【问题讨论】: